NAVIGATION
This shows you the differences between two versions of the page.
deutsch:ersetzer_rts:frontend_render:fck-bilder-aus-dateizentrale [2010/06/30 07:53] Knut Heermann (flip-flop) |
deutsch:ersetzer_rts:frontend_render:fck-bilder-aus-dateizentrale [2018/06/03 18:09] (current) |
||
---|---|---|---|
Line 13: | Line 13: | ||
**Kurze Beschreibung:** \\ | **Kurze Beschreibung:** \\ | ||
- | Basiert auf einer neuen experimentellen Funktion um Bilder aus der Dateizentrale im FCK WYSIWYG-Editor in CPs zu verwenden. Die Höhen/Breiten-Bildparamter aus dem FCK-Editor werden in die hier verwendete Funktion image_resized.php autom. eingesetzt und in die Funktion cmsimage.php übertragen. \\ | + | Basiert auf einer neuen experimentellen Funktion um Bilder aus der Dateizentrale im FCK WYSIWYG-Editor in CPs zu verwenden. Die Höhen/Breiten-Bildparameter aus dem FCK-Editor werden in die hier verwendete Funktion image_resized.php autom. eingesetzt und in die Funktion cmsimage.php übertragen. \\ |
- | **Siehe auch:** | + | **Siehe auch:** \\ |
- [[deutsch/andere-erweiterungen/fck-dateizentrale]] \\ | - [[deutsch/andere-erweiterungen/fck-dateizentrale]] \\ | ||
- [[deutsch/ersetzer_rts/frontend_init/cp_trigger/wysiwyg-image-resize]] | - [[deutsch/ersetzer_rts/frontend_init/cp_trigger/wysiwyg-image-resize]] | ||
Line 25: | Line 25: | ||
* Bildpositionierung mit dem Mauszeiger möglich | * Bildpositionierung mit dem Mauszeiger möglich | ||
* Bildgrößenänderung mit dem Mauszeiger möglich | * Bildgrößenänderung mit dem Mauszeiger möglich | ||
+ | * **V1.1 Update 25.10.2011**: | ||
+ | * LightBox partiell im Editor ausschalten: Parameter "xnolight" | ||
+ | * Cropping partiell im Editor ausschalten: Parameter "xnocrop" | ||
<note> | <note> | ||
- | Diese Technik funktioniert **ausschließlich im FCK-Editor**, **nicht** im CK-Editor. \\ | + | <del>Diese Technik funktioniert **ausschließlich im FCK-Editor**, **nicht** im CK-Editor.</del> \\ |
+ | Diese Technik funktioniert im FCK-Editor und im CK-Editor. \\ | ||
Und **ist nicht für** die Erstellung von **Galerien** gedacht!! | Und **ist nicht für** die Erstellung von **Galerien** gedacht!! | ||
</note> | </note> | ||
Line 42: | Line 46: | ||
**CMS-Version:** >= V1.4.2 r308 (07.04.2009) \\ | **CMS-Version:** >= V1.4.2 r308 (07.04.2009) \\ | ||
**Version:** V1.0 //2010/06/25// \\ | **Version:** V1.0 //2010/06/25// \\ | ||
+ | **Update:** V1.1 //2011/10/25// \\ | ||
Line 68: | Line 73: | ||
* **$xnextprev = true;** //%%// [true|false] vor/zurück anzeigen, wenn mehr als ein Bild verfügbar ist%%// | * **$xnextprev = true;** //%%// [true|false] vor/zurück anzeigen, wenn mehr als ein Bild verfügbar ist%%// | ||
+ | |||
+ | |||
+ | |||
+ | ==== Setupschalter im Editor: ==== | ||
+ | |||
+ | * **V1.1 Update 25.10.2011**: 2 Parameter in "Bild einfügen/editieren" -> "Erweitert" -> "Stylesheet Klasse" hinzugefügt [xnolight xnocrop] | ||
+ | * LightBox partiell im Editor ausschalten: Parameter "xnolight" | ||
+ | * Cropping partiell im Editor ausschalten: Parameter "xnocrop" | ||
\\ | \\ | ||
Line 90: | Line 103: | ||
\\ | \\ | ||
+ | **Update V1.1:** In Bild-Eigenschaften: "xnolight" und "xnocrop" | ||
+ | {{:deutsch:ersetzer_rts:frontend_render:fck_image_resize03_1.gif|}} | ||
+ | \\ | ||
- | === Code: === | + | === PHP V1.0: === |
Line 229: | Line 245: | ||
\\ | \\ | ||
+ | === PHP V1.1: === | ||
+ | |||
+ | **Version:** V1.1 //2011/10/25// \\ | ||
+ | |||
+ | **Dateiname:** rt_wysiwyg_cmsimage.php \\ | ||
+ | **Verzeichnis:** template/inc_script/frontend_render/ \\ | ||
+ | |||
+ | **Bedingung:** -> [[http://www.phpwcms-docu.de/confincphp_de.phtml|/config/phpwcms/conf.inc.php]] \\ | ||
+ | * %%$phpwcms['allow_ext_render'] = 1; // allow including of custom external scripts at frontend rendering%% | ||
+ | * %%$phpwcms['FCK_FileBrowser'] = 1; // enable|disable phpwcms Filebrowser in FCKeditor instead of built-in FCK file bowser support%% | ||
+ | |||
+ | |||
+ | \\ | ||
+ | |||
+ | <code php|h template/inc_script/frontend_render/rt_wysiwyg_cmsimage.php (v1.1) |h> | ||
+ | <?php | ||
+ | /********************************************************************************************* | ||
+ | rt: image_resize.php -> cmsimage.php_ | ||
+ | V1.0 25.06.10 K.Heermann (flip-flop) http://planmatrix.de | ||
+ | |||
+ | Since phpwcms V1.4.2 r308 (07.04.2009) | ||
+ | Based on the new experimental function for using filecenter images with the fck wysiwyg editor. | ||
+ | |||
+ | -> http://code.google.com/p/phpwcms/source/detail?r=308 | ||
+ | "FCKEditor got support for phpwcms file browser. Use new setting | ||
+ | $phpwcms['FCK_FileBrowser'] = 1 in conf.inc.php to enable it (thanks Markus Köhl | ||
+ | <www.pagewerkstatt.ch> for idea and code)." | ||
+ | |||
+ | The height/widht paramters from fck are injected into the used function image_resized.php | ||
+ | (with jpg quality declared in conf.inc.php) | ||
+ | |||
+ | V1.1 25.10.2011 KH: Update | ||
+ | ********************************************************************** | ||
+ | // FCK -> images -> enhanced -> style sheet class: | ||
+ | // Classes separated with blanks | ||
+ | // - xnolight = lightbox off (if set generally to on) | ||
+ | // - xnocrop = crop thumb off (if set generally to on) | ||
+ | |||
+ | // e.g. xnocrop xnolight -> using Thumb no cropping and no LightBox | ||
+ | ********************************************************************** | ||
+ | |||
+ | *********************************************************************************************/ | ||
+ | // ------------------------------------------------------------------------------------------- | ||
+ | // obligate check for phpwcms constants | ||
+ | if (!defined('PHPWCMS_ROOT')) { | ||
+ | die("You Cannot Access This Script Directly, Have a Nice Day."); } | ||
+ | // ------------------------------------------------------------------------------------------- | ||
+ | |||
+ | |||
+ | // ======================================================================== | ||
+ | // Search for all image strings between "<img" ">" | ||
+ | $content['all'] = preg_replace_callback("/<img(.*?) \/>/", "image_resize_to_cmsimage" , $content['all']); | ||
+ | // ======================================================================== | ||
+ | |||
+ | |||
+ | function image_resize_to_cmsimage($img_tag) { | ||
+ | |||
+ | |||
+ | if (strpos($img_tag[1],'image_resized.php')) { // image_resized.php available? | ||
+ | |||
+ | /********************** CUSTON VAR ************************************* | ||
+ | Switches for own JPG quaility, generally function call and generally LightBox | ||
+ | - simple image_resized without file storage (low rendered img qualitiy) | ||
+ | - img/cmsimage with rendered file stored in content/images/* (better quality) | ||
+ | **********************************************************************/ | ||
+ | // Switch between quality parameter from config or your own one | ||
+ | $quality = 85; // default | ||
+ | // $my_quality = $GLOBALS['phpwcms']['jpg_quality']; | ||
+ | |||
+ | // The image quality generated by image_resized is very crappy | ||
+ | // Switch between simple image_resized = 0 <-> img/cmsimage = 1 | ||
+ | $cmsimage = true; | ||
+ | |||
+ | $xcrop = 0; // [0|1] crop the image | ||
+ | |||
+ | // Using the LightBox generally | ||
+ | $xlightbox = true; // [true|false] | ||
+ | |||
+ | // Next / Prev in LightBox if there more than one image | ||
+ | $xnextprev = true; // [true|false] | ||
+ | |||
+ | // 1. Dimensions adjusted in fck image attributes: e.g. height="150" width="200" | ||
+ | // 2. Dimensions adjusted direct using the computer mouse: e.g. style="width: 200px; height: 150px;" | ||
+ | |||
+ | /**********************************************************************/ | ||
+ | |||
+ | |||
+ | preg_match_all('/((height="|height: )(\d+)("|px))|((width="|width: )(\d+)("|px))|filearchive\/([a-fA-F0-9]{32}).([jJpPeEgGnNiIfF]{3,4})"/', $img_tag[1], $temp); // "fck height/width" search and save in $temp[3]/[7] = value | ||
+ | |||
+ | // Set search- and replacer | ||
+ | |||
+ | //kh Wird erwartet: <img src="image_resized.php?format=jpg&w=100&h=200&q=85&imgfile=test.jpg" alt="" border="0"> | ||
+ | //kh Alte Version: $search = '#image_resized\.php\?format\=(.*?)\&q\=(.*?)\&imgfile\=filearchive/(.*?)" #'; | ||
+ | |||
+ | $search = '#image_resized\.php\?format\=(.*?)\&q\=(.*?)\&imgfile\=filearchive/([a-fA-F0-9]{32}).([jJpPeEgGnNiIfF]{3,4})"#'; | ||
+ | $width = implode($temp[7]); // FCK image width | ||
+ | $height = implode($temp[3]); // FCK image height | ||
+ | $image[1] = implode($temp[9]); // Filecenter hash name | ||
+ | $image[2] = implode($temp[10]); // Filecenter hash extend | ||
+ | |||
+ | $img_wrap = array(); | ||
+ | $temp = ''; | ||
+ | |||
+ | |||
+ | if (empty($cmsimage)) { // using simple image_resized without stored files? | ||
+ | |||
+ | $replace = 'image_resized.php?format=$1'.'&w='.$width.'&h='.$height.'&q='.$quality.'&imgfile=filearchive/$3.$4" '; | ||
+ | } | ||
+ | else { // ====== No,we uses cmsimage | ||
+ | // and there we have some paramaters concealed in class names | ||
+ | $title = preg_match('/title\="(.*?)"/i',$img_tag[1], $g) ? html_specialchars($g[1]) : '' ; // | ||
+ | |||
+ | // -------------------- V1.1 Update 25.10.2010 KH +xnocrop +xnolight | ||
+ | // === catch the classes and sort if xnp ist set | ||
+ | $class_temp = preg_match('/class="(.*?)"/i',$img_tag[1], $g) ? trim($g[1]) : ''; // cut out all class names | ||
+ | $temp = explode(' ', $class_temp); | ||
+ | asort($temp); | ||
+ | |||
+ | if ($xlightbox) | ||
+ | $xlightbox = (in_array('xnolight', $temp))? false : true; | ||
+ | |||
+ | if ($xcrop) | ||
+ | $xcrop = (in_array('xnocrop', $temp))? 0 : 1; | ||
+ | |||
+ | // -------------------- End V1.1 Update | ||
+ | |||
+ | // ====== LIGHTBOX ?? Set | ||
+ | if ($xlightbox) { // only do if lightbox ist true and xnolight isn´t set. | ||
+ | |||
+ | $xnextprev = ($xnextprev) ? '[xyz]':''; | ||
+ | $img_wrap['begin'] = '<a href="img/cmsimage.php/'.$GLOBALS['phpwcms']['img_prev_width'].'x'.$GLOBALS['phpwcms']['img_prev_height'].'/'.$image[1].'.'.$image[2].'" rel="lightbox'.$xnextprev.'" title="'.$title.'" target="_blank">'; | ||
+ | $img_wrap['end'] = '</a>'; | ||
+ | |||
+ | if (isset( $GLOBALS['phpwcms']['release_date']) AND $GLOBALS['phpwcms']['release_date'] > '2009/11/23') // V1.4.3 r380 | ||
+ | initslimbox(); | ||
+ | else | ||
+ | initializeLightbox(); // start mootools and slimbox | ||
+ | |||
+ | } // LightBox END ====== | ||
+ | |||
+ | // ====== Thumb with width/height and crop from FCK | ||
+ | //kh Wird erwatet: cmsimage.php/%WIDTH%x%HEIGHT%x%CROP%x%QUALITY%/%HASH%.%EXT% | ||
+ | $replace = 'img/cmsimage.php/'.$width.'x'.$height.'x'.$xcrop.'x'.$quality.'/$3.$4" '; | ||
+ | |||
+ | } // END cms_image | ||
+ | |||
+ | $img_tag[0] = $img_wrap['begin'] . preg_replace($search, $replace, $img_tag[0]) . $img_wrap['end']; | ||
+ | |||
+ | } // End function | ||
+ | |||
+ | return $img_tag[0]; | ||
+ | } | ||
+ | |||
+ | |||
+ | ?> | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
===== Historie ===== | ===== Historie ===== | ||
**Version:** \\ | **Version:** \\ | ||
- | **V1.0.0** //25.06.10// : + Basic stuff \\ | + | * **V1.0.0** //25.06.10// : + Basic stuff |
+ | * **V1.1.0** //25.10.11// : + LightBox und Cropping durch Parameter "xnolight" und "xnocrop" in "Stylesheet Klasse" partiell ausschaltbar wenn durch Script permanent eingeschaltet. \\ | ||