Differences

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\=(.*?)\&amp;q\=(.*?)\&amp;imgfile\=filearchive/(.*?)" #';
 + 
 +            $search   = '#image_resized\.php\?format\=(.*?)\&amp;q\=(.*?)\&amp;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'.'&amp;w='.$width.'&amp;h='.$height.'&amp;q='.$quality.'&amp;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. \\
deutsch/ersetzer_rts/frontend_render/fck-bilder-aus-dateizentrale.1277877198.txt.gz · Last modified: 2018/06/03 18:07 (external edit)
www.planmatrix.de www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0