[TYPO3] calling extension on body load?

Rupali Gupta rupali.ffm at googlemail.com
Fri Oct 3 16:31:00 CEST 2008


page.bodyTag >
page.bodyTag <http://www.typo3.net/tsref/setup/page/index.html#bodytag> =
<body onload="eventLoader();T3_onloadWrapper();">

??

On Fri, Oct 3, 2008 at 4:12 PM, Rupali Gupta <rupali.ffm at googlemail.com>wrote:

> Hello list and all php experts here,
> how to call mooflow animation (rotation) onpage load, maybe  smthing like
> this:
>
> page.bodyTag <http://www.typo3.net/tsref/setup/page/index.html#bodytag> =
> <body onload="eventLoader();">
> i have integrated it on : http://www.wohlrath.de/
>
> but i m not able to figure it out how to write this
> page.bodyTag<http://www.typo3.net/tsref/setup/page/index.html#bodytag>=
> <body onload=
> "eventLoader();">
>
> pls help.
>
>  here is *pi1/class.tx_cfamooflow_pi1.php* of ext:cfa_mooflow
>
> <?php
> require_once(PATH_tslib.'class.tslib_pibase.php');
> /**
>  * Plugin 'MooFlow V0.2 integration' for the 'cfa_mooflow' extension.
>  *
>  * @author    Claus Fassing <claus at fassing.eu>
>  * @package    TYPO3
>  * @subpackage    tx_cfamooflow
>  */
> class tx_cfamooflow_pi1 extends tslib_pibase {
>    var $prefixId      = 'tx_cfamooflow_pi1';        // Same as class name
>    var $scriptRelPath = 'pi1/class.tx_cfamooflow_pi1.php';    // Path to
> this script relative to the extension dir.
>    var $extKey        = 'cfa_mooflow';    // The extension key.
>    var $filePath        = '';
>    var $uploadPath       = 'uploads/tx_cfamooflow/';
>    var $webPath       = 'typo3conf/ext/cfa_mooflow/res/';
>    var $pi_checkCHash = true;
>        var $linkMethod    = 'remooz';
>    var $catArray = Array();
>    var $catCaptionArray = Array();
>
>    /**
>     * The main method of the PlugIn
>     *
>     * @param    string        $content: The PlugIn content
>     * @param    array        $conf: The PlugIn configuration
>     * @return    The content that is displayed on the website
>     */
>    function main($content,$conf)    {
>        $this->pi_setPiVarDefaults();
>        $this->pi_loadLL();
>        $this->pi_USER_INT_obj=1;    // Configuring so caching is not
> expected. This value means that no cHash params are ever set. We do this,
> because it's a USER_INT object!
>        $this->filePath =
> dirname(t3lib_div::getIndpEnv("SCRIPT_FILENAME")).'/';
>        $this->initFlexformAndConfig($conf);
>        if(!empty($this->conf['useDynLoader']) &&
> $this->conf['mode']=='DAMCAT') {
>                  /* Call this function only to get the categories without
> return code */
>                  $this->getDamCatImages();
>                }
>
>
>        $startJS = '
>              <script type="text/javascript">
>              /* <![CDATA[ */
>                var myMooFlowPage = {
>                  start: function(){
>                    var mf = new MooFlow($(\'MooFlow\'), {';
>                $startJS .= "\n";
>                if(!empty($this->conf['reflection'])) {
>                  $reflection = $this->conf['reflection'];
>                  $reflection = substr($reflection, 0, -1);
>                  $startJS .= 'reflection: '.$reflection.','."\n";
>                }
>                if(!empty($this->conf['heightRatio'])) {
>                  $heightRatio = $this->conf['heightRatio'];
>                  $heightRatio = substr($heightRatio, 0, -1);
>                  $startJS .= 'heightRatio: '.$heightRatio.','."\n";
>                }
>                if(!empty($this->conf['offsetY'])) {
>                  $offsetY = $this->conf['offsetY'];
>                  $startJS .= 'offsetY: '.$offsetY.','."\n";
>                }
>                if(!empty($this->conf['startIndex'])) {
>                  $startIndex = $this->conf['startIndex'];
>                  $startJS .= 'startIndex: '.$startIndex.','."\n";
>                }
>                if(!empty($this->conf['interval'])) {
>                  $interval = $this->conf['interval'];
>                  $startJS .= 'interval: '.$interval.','."\n";
>                }
>                if(!empty($this->conf['factor'])) {
>                  $factor = $this->conf['factor'];
>                  $startJS .= 'factor: '.$factor.','."\n";
>                }
>                if(!empty($this->conf['bgColor'])) {
>                  $bgColor = $this->conf['bgColor'];
>                  $startJS .= 'bgColor: "'.$bgColor.'",'."\n";
>                }
>                if(!empty($this->conf['useCaption'])) {
>                  $startJS .= 'useCaption: true,'."\n";
>                }
>                if(!empty($this->conf['useResize'])) {
>                  $startJS .= 'useResize: true,'."\n";
>                }
>                if(!empty($this->conf['useSlider'])) {
>                  $startJS .= 'useSlider: true,'."\n";
>                }
>                if(!empty($this->conf['useWindowResize'])) {
>                  $startJS .= 'useWindowResize: true,'."\n";
>                }
>                if(!empty($this->conf['useMouseWheel'])) {
>                  $startJS .= 'useMouseWheel: true,'."\n";
>                }
>                if(!empty($this->conf['useKeyInput'])) {
>                  $startJS .= 'useKeyInput: true,'."\n";
>                }
>                if(!empty($this->conf['useViewer'])) {
>                  $startJS .= 'useViewer: true,'."\n";
>                }
>                if(!empty($this->conf['useAutoPlay'])) {
>                  $startJS .= 'useAutoPlay: true,'."\n";
>                }
>                $startJS .=
>                                        '\'onEmptyinit\': function(){
>
>
> this.loadJSON(\'index.php?eID=tx_cfamooflow_pi1&damcat='.$this->catArray[0].'\');
>                            },'."\n";
>                /* Cut off last char if needed */
>                // $startJS = substr($startJS, 0, -1);
>
>                /* Callback function */
>                if($this->linkMethod == "link") {
>                $startJS .= '
>                            \'onClickView\': function(obj){
>                                  myMooFlowPage.link(obj);
>                              }
>                            });
>                              },';
>                } elseif($this->linkMethod == "remooz") {
>                $startJS .= '
>                              \'onClickView\': function(obj){
>                                      var img = new
> Element(\'img\',{src:obj.src, title:obj.title, alt:obj.alt,
>
> styles:obj.coords}).setStyles({\'position\':\'absolute\',\'border\':\'none\'});
>                                      var link = new
>
> Element(\'a\',{\'class\':\'remooz-element\',\'href\':obj.href,\'title\':obj.title
> + \' - \'+ obj.alt, styles:{\'border\':\'none\'}});
>
> $(document.body).adopt(link.adopt(img));
>                                      var remooz = new ReMooz(link, {
>                                  centered: true,
>                                              resizeFactor: 0.8,
>                                  origin: link.getElement(\'img\'),
>                                              onCloseEnd:
> function(){link.destroy()}
>                              });
>                                      remooz.open();
>                              }
>                });
>                            $$(\'.loadremote\').addEvent(\'click\',
> function(){
>                                    mf.loadHTML(this.get(\'href\'),
> this.get(\'rel\'));
>                                    return false;
>                            });
>                            /* Dynloader */
>                            $$(\'.loadjson\').addEvent(\'click\',
> function(){
>                              mf.loadJSON(this.get(\'href\'));
>
> $(\'isInitLoadCat\').removeClass(\'isInitLoadCat\');
>                              var allToggler =
> $$(\'.tx_cfamooflow_pi1_loadjson\');
>
> allToggler.each(function(item, index){
>
> item.removeClass(\'activeCatMarker\');
>                                                            });
>
> this.getParent().addClass(\'activeCatMarker\');
>                              return false;
>                            });
>                          },';
>                }
>                $startJS .= 'link: function(result){
>                                if(result.target == "_self") {
>                                 document.location = result.href;
>                                } else {
>                                  document.location = result.href;
>                                }
>                          }
>                            };
>
>                          window.addEvent(\'domready\',
> myMooFlowPage.start);
>
>                          /* ]]> */
>                          </script>';
>
>        $GLOBALS['TSFE']->additionalHeaderData['mooflowCoreJS'] = '<script
> language="JavaScript" type="text/javascript"
> src="'.$this->webPath.'mootools-1.2-core.js"></script>';
>        $GLOBALS['TSFE']->additionalHeaderData['mooflowMoreJS'] = '<script
> language="JavaScript" type="text/javascript"
> src="'.$this->webPath.'mootools-1.2-more.js"></script>';
>        if($this->clickOption == "single") {
>            $GLOBALS['TSFE']->additionalHeaderData['mooflowJS'] = '<script
> language="JavaScript" type="text/javascript"
> src="'.$this->webPath.'MooFlow.Mod.js"></script>';
>        } else {
>          $GLOBALS['TSFE']->additionalHeaderData['mooflowJS'] = '<script
> language="JavaScript" type="text/javascript"
> src="'.$this->webPath.'MooFlow.js"></script>';
>        }
>        $GLOBALS['TSFE']->additionalHeaderData['mooflowCSS'] = '<link
> rel="stylesheet" type="text/css" href="'.$this->webPath.'MooFlow.css" />';
>    if($this->linkMethod == "remooz") {
>      $GLOBALS['TSFE']->additionalHeaderData['remoozCSS'] = '<link
> rel="stylesheet" type="text/css" href="'.$this->webPath.'ReMooz/ReMooz.css"
> />';
>      $GLOBALS['TSFE']->additionalHeaderData['remoozJS'] = '<script
> language="JavaScript" type="text/javascript"
> src="'.$this->webPath.'ReMooz/ReMooz.js"></script>';
>    }
>        $GLOBALS['TSFE']->additionalHeaderData['startmooflow'] = $startJS;
>
>        $content = $this->buildHtmlOutput();
>
>        return $this->pi_wrapInBaseClass($content);
>    }
>
>    /**
>     * This function builds the needed HTML code and inserts the images set
> in the content element
>     *
>     * @return  HTML Code
>     */
>     function buildHtmlOutput() {
>      if(!empty($this->conf['params'])) {
>            $parapairs = explode("\n",$this->conf['params']);
>          foreach($parapairs as $item) {
>          /* Reset the arrays */
>          unset($attrstr);
>          unset($attrstrpair);
>          unset($attrpair);
>          unset($attr);
>
>                 //$attrstr = explode("=",$item); obsolte
>                 // We do need a split function working with escape
> character to avoid delimiter characters from split
>                 //if using inside the string. Needed to get url (which have
> : inside) in title and/or description.
>                 $attrstr = $this->splitWithEscape($item,'=','#');
>                 $attrstrpair = explode(";",$attrstr[1]);
>                 foreach($attrstrpair as $keyvalue) {
>                    //$attrpair = explode(":",$keyvalue); obsolete see
> description above
>                    $attrpair =
> $this->splitWithEscape($keyvalue,':','#');
>                    $attr[$attrpair[0]] = $attrpair[1];
>                 }
>        /* url fix */
>        if(!empty($attr['href'])) {
>          if(substr($attr['href'], 0, 1) != "/") {
>            $attr['href'] = 'http://'.$attr['href'];
>          }
>        }
>                 $attrHash[$attrstr[0]] = $attr;
>          }
>      }
>
>    $hashnum = 1;
>    $html = '
>            <div id="MooFlow" class="mf">';
>    /* DynLoader */
>    if(!empty($this->conf['useDynLoader']) && $this->conf['mode']=='DAMCAT')
> {
>      $html .= '</div><div id="tx_cfamooflow_pi1_dynLoaderControl">';
>      $countCat = 0;
>      foreach($this->catArray as $cat) {
>         if($countCat == 0) {
>                $html .= '<div id="isInitLoadCat"
> class="tx_cfamooflow_pi1_loadjson isInitLoadCat"><a class="loadjson"
> href="index.php?eID=tx_cfamooflow_pi1&amp;damcat='.$cat.'"
> >'.$this->catCaptionArray[$cat].'</a></div>';
>         } else {
>            $html .= '<div class="tx_cfamooflow_pi1_loadjson"><a
> class="loadjson" href="index.php?eID=tx_cfamooflow_pi1&amp;damcat='.$cat.'"
> >'.$this->catCaptionArray[$cat].'</a></div>';
>        }
>        ++$countCat;
>      }
>
>      $html .= '<div style="clear:both"></div></div>';
>
>    } else {
>
>      if ($this->conf['mode']=='MANUAL') {
>        $imgs = $this->getManualImages($attrHash,$hashnum);
>      } elseif ($this->conf['mode'] == 'DIRECTORY') {
>        $imgs = $this->getDirectoryImages();
>      } elseif ($this->conf['mode']=='DAM') {
>        $imgs = $this->getDamImages();
>      } elseif ($this->conf['mode']=='DAMCAT') {
>        $imgs = $this->getDamCatImages();
>      }
>
>      $html .= $imgs.'</div>';
>    }
>        return $html;
>     }
>
>    /**
>     * Initializes Flexform values and TS, priority to FlexForms as they are
> more specific to the element
>     *
>     * @param    [type]        $conf: ...
>     * @return    [none]        none
>     * @param:    [array]        $conf: TSconf array
>     */
>    function initFlexformAndConfig($conf) {
>        // Initialize the FlexForms array
>        $this->pi_initPIflexForm();
>
>                // Images
>        $ffimages = $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'defaultmode','sPage1');
>        if(!empty($ffimages)) $this->conf['images'] = $ffimages;
>
>    // Directory
>    $ffdirectory = $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'directorymode','sPage1');
>        if(!empty($ffdirectory)) $this->conf['directory'] =
> $ffdirectory;
>
>    $ffdModeImageTitle =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'dModeImageTitle','sPage1');
>        if(!empty($ffdModeImageTitle)) $this->conf['dModeImageTitle'] =
> $ffdModeImageTitle;
>
>        $ffdModeImageAlt =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'dModeImageAlt','sPage1');
>        if(!empty($ffdModeImageAlt)) $this->conf['dModeImageAlt'] =
> $ffdModeImageAlt;
>
>    // Image Parameter
>        $ffparams = $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'params','sPage1');
>        if(!empty($ffparams)) $this->conf['params'] = $ffparams;
>
>    // Mode selection
>    $ffmode = $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'mode','sPage1');
>        if(!empty($ffmode)) $this->conf['mode'] = $ffmode;
>
>        // Get DamCat
>        $ffmodedamcat =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'modedamcat','sPage1');
>        if(!empty($ffmodedamcat)) $this->conf['modedamcat'] = $ffmodedamcat;
>
>        $ffrecursivedamcat =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'recursivedamcat','sPage1');
>        if(!empty($ffrecursivedamcat)) $this->conf['recursivedamcat'] =
> $ffrecursivedamcat;
>
>    //Reflection
>        $ffreflection =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'reflection','sPage2');
>        if(!empty($ffreflection)) $this->conf['reflection'] = $ffreflection;
>
>    //Doubleclick behavior
>        $fflinkMethod =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'linkMethod','sPage2');
>        if(!empty($fflinkMethod)) $this->linkMethod = $fflinkMethod;
>
>    //Click Option
>        $ffclickOption =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'clickOption','sPage2');
>        if(!empty($ffclickOption)) $this->clickOption = $ffclickOption;
>
>        //DynLoader
>        $ffuseDynLoader =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'useDynLoader','sPage1');
>        if(!empty($ffuseDynLoader)) $this->conf['useDynLoader'] =
> $ffuseDynLoader;
>
>        //heightRatio
>        $ffheightRatio =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'heightRatio','sPage2');
>        if(!empty($ffheightRatio)) $this->conf['heightRatio'] =
> $ffheightRatio;
>
>      //offsetY
>        $ffoffsetY = $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'offsetY','sPage2');
>        if(!empty($ffoffsetY)) $this->conf['offsetY'] = $ffoffsetY;
>
>        //startIndex
>        $ffstartIndex =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'startIndex','sPage2');
>        if(!empty($ffstartIndex)) $this->conf['startIndex'] = $ffstartIndex;
>
>        //interval
>        $ffinterval = $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'interval','sPage2');
>        if(!empty($ffinterval)) $this->conf['interval'] = $ffinterval;
>
>        //factor
>        $fffactor = $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'factor','sPage2');
>        if(!empty($fffactor)) $this->conf['factor'] = $fffactor;
>
>        //bgColor
>        $ffbgColor = $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'bgColor','sPage2');
>        if (preg_match("/Firefox\/2/i", $_SERVER['HTTP_USER_AGENT']) &&
> $ffbgColor == 'transparent') {
>               $ffbgColor = 'rgba(0,0,0,0)';
>        }
>        if(!empty($ffbgColor)) $this->conf['bgColor'] = $ffbgColor;
>
>        //useCaption
>        $ffuseCaption =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'useCaption','sPage2');
>        if(!empty($ffuseCaption)) $this->conf['useCaption'] = $ffuseCaption;
>
>        //useResize
>        $ffuseResize =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'useResize','sPage2');
>        if(!empty($ffuseResize)) $this->conf['useResize'] = $ffuseResize;
>
>        //useSlider
>        $ffuseSlider =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'useSlider','sPage2');
>        if(!empty($ffuseSlider)) $this->conf['useSlider'] = $ffuseSlider;
>
>        //useWindowResize
>        $ffuseWindowResize =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'useWindowResize','sPage2');
>        if(!empty($ffuseWindowResize)) $this->conf['useWindowResize'] =
> $ffuseWindowResize;
>
>        //useMouseWheel
>        $ffuseMouseWheel =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'useMouseWheel','sPage2');
>        if(!empty($ffuseMouseWheel)) $this->conf['useMouseWheel'] =
> $ffuseMouseWheel;
>
>        //useKeyInput
>        $ffuseKeyInput =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'useKeyInput','sPage2');
>        if(!empty($ffuseKeyInput)) $this->conf['useKeyInput'] =
> $ffuseKeyInput;
>
>        //useViewer
>        $ffuseViewer =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'useViewer','sPage2');
>        if(!empty($ffuseViewer)) $this->conf['useViewer'] = $ffuseViewer;
>
>    //useAutoPlay
>        $ffuseAutoPlay =
> $this->pi_getFFvalue($this->cObj->data['pi_flexform'],
> 'useAutoPlay','sPage2');
>        if(!empty($ffuseAutoPlay)) $this->conf['useAutoPlay'] =
> $ffuseAutoPlay;
>
>
>
>
>        // Other generic settings are fetched
>        $this->conf['pidList'] = $this->cObj->data['pages'];
>        $this->conf['recursive'] = $this->cObj->data['recursive'];
>
>        return;
>    }
>
>  function getManualImages($attrHash,$hashnum) {
>      $images = explode(",",$this->conf['images']);
>      foreach($images as $image) {
>        if($this->linkMethod == "remooz") {
>            if($attrHash[0]) {
>                /* If there an override for all picture, use only this */
>                $hashnum = 0;
>            }
>          $imgs .= '<a href="'.$this->uploadPath.$image.'" rel="image"
> target="_blank">';
>          $imgs .= '<img src="'.$this->uploadPath.$image.'"
> alt="'.$attrHash[$hashnum]['alt'].'" longdesc=""
> title="'.$attrHash[$hashnum]['title'].'" />';
>          $imgs .= '</a>';
>        } elseif($this->linkMethod == "link" &&
> !empty($attrHash[$hashnum]['href'])) {
>            $imgs .= '<a href="'.$attrHash[$hashnum]['href'].'" rel="image"
> target="_blank">';
>          $imgs .= '<img src="'.$this->uploadPath.$image.'"
> alt="'.$attrHash[$hashnum]['alt'].'" longdesc=""
> title="'.$attrHash[$hashnum]['title'].'" />';
>          $imgs .= '</a>';
>        } else {
>          $imgs .= '<div><img src="'.$this->uploadPath.$image.'"
> alt="'.$attrHash[$hashnum]['alt'].'"
> longdesc="'.$attrHash[$hashnum]['longdesc'].'"
> title="'.$attrHash[$hashnum]['title'].'" /></div>';
>        }
>        $hashnum++;
>      }
>      return($imgs);
>
>  }
>    function getDirectoryImages() {
>        if (is_dir($this->conf['directory'])) {
>            $images = array();
>            $images = $this->getFiles($this->conf['directory']);
>
>        // add the images
>        foreach ($images as $key=>$value) {
>          $path = $this->conf['directory'].$value;
>
>                    $imgs .= '<a href="'.$path.'" rel="image"
> target="_blank">';
>                    $imgs .= '<img src="'.$path.'" ';
>                    if(!empty($this->conf['dModeImageTitle'])) {
>                        $imgs .= 'title="'.$this->conf['dModeImageTitle'].'"
> ';
>                    } else {
>                        $imgs .= 'title=" " ';
>                    }
>                    if(!empty($this->conf['dModeImageAlt'])) {
>                        $imgs .= 'alt="'.$this->conf['dModeImageAlt'].'" ';
>                    } else {
>                        $imgs .= 'alt=" " ';
>                    }
>
>          /* $imgs .= '<img src="'.$path.'" alt=" " title=" " />'; */
>          $imgs .= ' /></a>';
>
>
>
>        } # end foreach file
>
>
>          } # end is_dir
>          return $imgs;
>  }
>
>  function getFiles($path, $extra = "") {
>    // check for needed slash at the end
>        $length = strlen($path);
>        if ($path{$length-1}!='/') {
>      $path.='/';
>    }
>
>    $imagetypes = $this->conf["filetypes"] ? explode(',',
> $this->conf["filetypes"]) : array(
>        'jpg',
>        'jpeg',
>        'gif',
>        'png'
>    );
>
>    if($dir = dir($path)) {
>        $files = Array();
>
>        while(false !== ($file = $dir->read())) {
>            if ($file != '.' && $file != '..') {
>                $ext = strtolower(substr($file, strrpos($file, '.')+1));
>                if (in_array($ext, $imagetypes)) {
>                    array_push($files, $extra . $file);
>                }
>                else if ($this->conf["recursive"] == '1' && is_dir($path .
> "/" . $file)) {
>                    $dirfiles = $this->getFiles($path . "/" . $file, $extra
> . $file . "/");
>                    if (is_array($dirfiles)) {
>                        $files = array_merge($files, $dirfiles);
>                    }
>                }
>            }
>        }
>
>        $dir->close();
>        // sort files, thx to all
>        sort($files);
>
>        return $files;
>    }
>  } # end getFiles
>
>
>    function getDamImages() {
>    // check if there's a localized version of the current content object
>    $uid = $this->cObj->data['uid'];
>    if ($this->cObj->data['_LOCALIZED_UID']) {
>            $uid = $this->cObj->data['_LOCALIZED_UID'];
>    }
>    $sys_language_uid = $GLOBALS['TSFE']->sys_language_content;
>
>    // get all DAM files
>    $images =
>
> tx_dam_db::getReferencedFiles('tt_content',$uid,'cfa_mooflow','tx_dam_mm_ref');
>
>    // add image
>    foreach ($images['files'] as $key=>$path) {
>      // get data from the single image
>      $fields = 'title,description,file_name,instructions';
>      $tables = 'tx_dam';
>
>      // now i check the tx_dam table to see if there's a localization for
> the current DAM record (image)
>      $temp_where='l18n_parent = '.$key.' AND sys_language_uid =
> '.$sys_language_uid;
>      $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid', $tables,
> $temp_where);
>      // if i find a localized record i overwrite the default language $key
> with the localized language $key
>      if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
>        $key = $row['uid'];
>      }
>      $GLOBALS['TYPO3_DB']->sql_free_result($res);
>
>      $temp_where='uid = '.$key;
>      $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($fields, $tables,
> $temp_where);
>      $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
>            /**
>            * Get link from instructions field if is available and
> linkMethod is "link"
>            * Elsewhere use picture path as link
>            */
>            if($this->linkMethod == "link" && $row['instructions']) {
>                /* url fix */
>                if(substr($row['instructions'], 0, 1) != "/") {
>            $row['instructions'] = 'http://'.$row['instructions'];
>        }
>                $imgs .= '<a href="'.$row['instructions'].'" rel="image"
> target="_blank">';
>            } else {
>          $imgs .= '<a href="'.$path.'" rel="image" target="_blank">';
>      }
>      $imgs .= '<img src="'.$path.'" alt="'.$row['description'].'"
> title="'.$row['title'].'" />';
>      $imgs .= '</a>';
>    }
>    return($imgs);
>  }
>
>  function getDamCatImages() {
>
>          // add image
>    $list= str_replace('tx_dam_cat_', '',$this->conf['modedamcat']);
>
>    $listRecursive =
> $this->getDamCatRecursive($list,$this->conf['recursivedamcat']);
>    $listArray = explode(',',$listRecursive);
>    $files = Array();
>      foreach($listArray as $cat) {
>        // add images from categories
>        $fields =
>
> 'tx_dam.uid,tx_dam.title,tx_dam.description,tx_dam.file_name,tx_dam.file_path,tx_dam.instructions';
>        $tables = 'tx_dam,tx_dam_mm_cat';
>        $temp_where = 'tx_dam.deleted = 0 AND
> tx_dam.file_mime_type=\'image\' AND tx_dam.hidden=0 AND
> tx_dam_mm_cat.uid_foreign='.$cat.' AND tx_dam_mm_cat.uid_local=tx_dam.uid';
>        $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($fields, $tables,
> $temp_where);
>
>        while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)){
>          $files[$row['uid']] = $row; # just add the image to an array
>        }
>
>        /* The dynLoader need the cat title to set this as caption */
>        if(!empty($this->conf['useDynLoader'])) {
>          array_push($this->catArray,$cat);
>          $field = 'title';
>          $table = 'tx_dam_cat';
>          $where = 'uid='.$cat;
>          $catres = $GLOBALS['TYPO3_DB']->exec_SELECTquery($field, $table,
> $where);
>          while($catrow = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($catres)){
>            $this->catCaptionArray[$cat] = $catrow['title'];
>          }
>        }
>      }
>
>      /* If DynLoader is active, just get the categories and return */
>      if(!empty($this->conf['useDynLoader'])) {
>        return;
>      }
>
>      // add the image for real
>    foreach ($files as $key=>$row) {
>      $path =  $row['file_path'].$row['file_name'];
>
>      if($this->linkMethod == "link" && $row['instructions']) {
>                  /* url fix */
>                  if(substr($row['instructions'], 0, 1) != "/") {
>              $row['instructions'] = 'http://'.$row['instructions'];
>          }
>                    $imgs .= '<a href="'.$row['instructions'].'" rel="image"
> target="_blank">';
>            } else {
>            $imgs .= '<a href="'.$path.'" rel="image" target="_blank">';
>      }
>      $imgs .= '<img src="'.$path.'" alt="'.$row['description'].'"
> title="'.$row['title'].'" />';
>      $imgs .= '</a>';
>    }
>    return($imgs);
>  }
>
>  function getDamCatRecursive($id,$level=0) {
>    $result = $id.','; # add id of 1st level
>    $idList = explode(',',$id);
>
>    if ($level > 0) {
>      $level--;
>
>      foreach ($idList as $key=>$value) {
>        $where = 'hidden=0 AND deleted=0 AND parent_id='.$id;
>        $res= $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid', 'tx_dam_cat',
> $where);
>        while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)){
>          $all[$row['uid']]=$row['uid'];
>          $rec = $this->getDamCatRecursive($row['uid'],$level);
>          if ($rec!='')  {
>            $result.=$rec.',';
>          }
>        }
>      } # end for each
>    } # end if level
>
>    $result = str_replace(',,',',',$result);
>    $result = substr($result,0,-1);
>    return $result;
>  }
>  function splitWithEscape($str, $delimiterChar = ',', $escapeChar = '"') {
>    $len = strlen($str);
>    $tokens = array();
>    $i = 0;
>    $inEscapeSeq = false;
>    $currToken = '';
>    while ($i < $len) {
>        $c = substr($str, $i, 1);
>        if ($inEscapeSeq) {
>            if ($c == $escapeChar) {
>                // lookahead to see if next character is also an escape char
>                if ($i == ($len - 1)) {
>                    // c is last char, so must be end of escape sequence
>                    $inEscapeSeq = false;
>                } else if (substr($str, $i + 1, 1) == $escapeChar) {
>                    // append literal escape char
>                    $currToken .= $escapeChar;
>                    $i++;
>                } else {
>                    // end of escape sequence
>                    $inEscapeSeq = false;
>                }
>            } else {
>                $currToken .= $c;
>            }
>        } else {
>            if ($c == $delimiterChar) {
>                // end of token, flush it
>                array_push($tokens, $currToken);
>                $currToken = '';
>            } else if ($c == $escapeChar) {
>                // begin escape sequence
>                $inEscapeSeq = true;
>            } else {
>                $currToken .= $c;
>            }
>        }
>        $i++;
>    }
>    // flush the last token
>    array_push($tokens, $currToken);
>    return $tokens;
>    }
> }
>
>
>
> if (defined('TYPO3_MODE') &&
>
> $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/cfa_mooflow/pi1/class.tx_cfamooflow_pi1.php'])
> {
>
>
> include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/cfa_mooflow/pi1/class.tx_cfamooflow_pi1.php']);
> }
>
> ?>
> --
> Regards,
> Rupali
> _______________________________________________
> TYPO3-english mailing list
> TYPO3-english at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-english
>



-- 
Regards,
Rupali


More information about the TYPO3-english mailing list