Documentation TYPO3 par Ameos

rte_select_image.php

00001 <?php
00002 /***************************************************************
00003 *  Copyright notice
00004 *  
00005 *  (c) 1999-2004 Kasper Skaarhoj (kasperYYYY@typo3.com)
00006 *  All rights reserved
00007 *
00008 *  This script is part of the TYPO3 project. The TYPO3 project is 
00009 *  free software; you can redistribute it and/or modify
00010 *  it under the terms of the GNU General Public License as published by
00011 *  the Free Software Foundation; either version 2 of the License, or
00012 *  (at your option) any later version.
00013 * 
00014 *  The GNU General Public License can be found at
00015 *  http://www.gnu.org/copyleft/gpl.html.
00016 *  A copy is found in the textfile GPL.txt and important notices to the license 
00017 *  from the author is found in LICENSE.txt distributed with these scripts.
00018 *
00019 * 
00020 *  This script is distributed in the hope that it will be useful,
00021 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 *  GNU General Public License for more details.
00024 *
00025 *  This copyright notice MUST APPEAR in all copies of the script!
00026 ***************************************************************/
00065 unset($MCONF);
00066 require ('conf.php');
00067 require ($BACK_PATH.'init.php');
00068 require ($BACK_PATH.'template.php');
00069 
00070 require_once (PATH_t3lib.'class.t3lib_foldertree.php');
00071 require_once (PATH_t3lib.'class.t3lib_stdgraphic.php');
00072 require_once (PATH_t3lib.'class.t3lib_basicfilefunc.php');
00073 $LANG->includeLLFile('EXT:rte/app/locallang_rte_select_image.php');
00074 
00075 
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00090 class localFolderTree extends t3lib_folderTree {
00091         var $ext_IconMode=1;
00092 
00100         function wrapTitle($title,$v)   {
00101                 if ($this->ext_isLinkable($v))  {
00102                         $aOnClick = 'return jumpToUrl(\'?expandFolder='.rawurlencode($v['path']).'\');';
00103                         return '<a href="#" onclick="'.htmlspecialchars($aOnClick).'">'.$title.'</a>';
00104                 } else {
00105                         return '<span class="typo3-dimmed">'.$title.'</span>';
00106                 }
00107         }
00108 
00115         function ext_isLinkable($v)     {
00116                 $webpath=t3lib_BEfunc::getPathType_web_nonweb($v['path']);
00117                 if ($GLOBALS['SOBE']->act=='magic') return 1;   //$webpath='web';       // The web/non-web path does not matter if the mode is 'magic'
00118 
00119                 if (strstr($v['path'],'_recycler_') || strstr($v['path'],'_temp_') || $webpath!='web')  {
00120                         return 0;
00121                 } 
00122                 return 1;
00123         }
00124 
00134         function PM_ATagWrap($icon,$cmd,$bMark='')      {
00135                 if ($bMark)     {
00136                         $anchor = '#'.$bMark;
00137                         $name=' name="'.$bMark.'"';
00138                 }
00139                 $aOnClick = 'return jumpToUrl(\'?PM='.$cmd.'\',\''.$anchor.'\');';
00140                 return '<a href="#"'.$name.' onclick="'.htmlspecialchars($aOnClick).'">'.$icon.'</a>';
00141         }
00142 
00149         function printTree($treeArr='') {
00150                 $titleLen=intval($GLOBALS['BE_USER']->uc['titleLen']);  
00151 
00152                 if (!is_array($treeArr))        $treeArr=$this->tree;
00153 
00154                 $out='';
00155                 $c=0;
00156                 
00157                         // Traverse rows for the tree and print them into table rows:
00158                 foreach($treeArr as $k => $v) {
00159                         $c++;
00160                         $bgColor=' class="'.(($c+1)%2 ? 'bgColor' : 'bgColor-10').'"';
00161                         $out.='<tr'.$bgColor.'><td nowrap="nowrap">'.$v['HTML'].$this->wrapTitle(t3lib_div::fixed_lgd($v['row']['title'],$titleLen),$v['row']).'</td></tr>';
00162                 }
00163                 
00164                 $out='<table border="0" cellpadding="0" cellspacing="0">'.$out.'</table>';
00165                 return $out;
00166         }
00167 }
00168 
00169 
00170 
00171 
00172 
00173 
00174 
00175 
00176 
00177 
00178 
00179 
00180 
00181 
00189 class SC_rte_select_image {
00190         var $content;
00191         var $siteUrl;
00192         
00193         var $act;
00194         var $modData;
00195         var $thisConfig;
00196         var $allowedItems;
00197         var $doc;       
00198         var $imgPath;
00199 
00205         function preinit()      {
00206                 global $BE_USER;
00207 
00208                 // Current site url:
00209                 $this->siteUrl = t3lib_div::getIndpEnv("TYPO3_SITE_URL");
00210                 
00211                 // Determine nature of current url:
00212                 $this->act=t3lib_div::_GP("act");
00213                 
00214                 $this->modData = $BE_USER->getModuleData("rte_select_image.php","ses");
00215                 if ($this->act!="image")        {
00216                         if (isset($this->act))  {
00217                                 $this->modData["act"]=$this->act;
00218                                 $BE_USER->pushModuleData("rte_select_image.php",$this->modData);
00219                         } else {
00220                                 $this->act=$this->modData["act"];
00221                         }
00222                 }
00223                 $expandPage = t3lib_div::_GP("expandFolder");
00224                 if (isset($expandPage)) {
00225                         $this->modData["expandFolder"]=$expandPage;
00226                         $BE_USER->pushModuleData("rte_select_image.php",$this->modData);
00227                 } else {
00228                         t3lib_div::_GETset($this->modData["expandFolder"],'expandFolder');
00229                 }
00230                 
00231                 if (!$this->act)        {
00232                         $this->act="magic";
00233                 }
00234                 
00235                 
00236                 
00237                 $RTEtsConfigParts = explode(":",t3lib_div::_GP("RTEtsConfigParams"));
00238                 if (count($RTEtsConfigParts)<2) die("Error: The GET parameter 'RTEtsConfigParams' was missing. Close the window.");
00239                 $RTEsetup = $GLOBALS["BE_USER"]->getTSConfig("RTE",t3lib_BEfunc::getPagesTSconfig($RTEtsConfigParts[5])); 
00240                 $this->thisConfig = t3lib_BEfunc::RTEsetup($RTEsetup["properties"],$RTEtsConfigParts[0],$RTEtsConfigParts[2],$RTEtsConfigParts[4]);
00241                 $this->imgPath = $RTEtsConfigParts[6];
00242 
00243                 $this->allowedItems = array_diff(explode(",","magic,plain,dragdrop,image"),t3lib_div::trimExplode(",",$this->thisConfig["blindImageOptions"],1));
00244                 reset($this->allowedItems);
00245                 if (!in_array($this->act,$this->allowedItems))  $this->act = current($this->allowedItems);
00246         }
00247 
00253         function rteImageStorageDir()   {
00254                 $dir = $this->imgPath ? $this->imgPath : $GLOBALS["TYPO3_CONF_VARS"]["BE"]["RTE_imageStorageDir"];;
00255                 return $dir;
00256         }
00257 
00263         function magicProcess() {
00264 
00265                 if ($this->act=="magic" && t3lib_div::_GP("insertMagicImage"))  {
00266                         $filepath = t3lib_div::_GP("insertMagicImage");
00267                         
00268                         $imgObj = t3lib_div::makeInstance("t3lib_stdGraphic");
00269                         $imgObj->init();
00270                         $imgObj->mayScaleUp=0;
00271                         $imgObj->tempPath=PATH_site.$imgObj->tempPath;
00272                 
00273                         $imgInfo = $imgObj->getImageDimensions($filepath);
00274                         
00275                         if (is_array($imgInfo) && count($imgInfo)==4 && $this->rteImageStorageDir())    {
00276                                 $fI=pathinfo($imgInfo[3]);
00277                                 $fileFunc = t3lib_div::makeInstance("t3lib_basicFileFunctions");
00278                                 $basename = $fileFunc->cleanFileName("RTEmagicP_".$fI["basename"]);
00279                                 $destPath =PATH_site.$this->rteImageStorageDir();
00280                                 if (@is_dir($destPath)) {
00281                                         $destName = $fileFunc->getUniqueName($basename,$destPath);
00282                                         @copy($imgInfo[3],$destName);
00283                 
00284                                         $cHeight=t3lib_div::intInRange(t3lib_div::_GP("cHeight"),0,500);
00285                                         $cWidth=t3lib_div::intInRange(t3lib_div::_GP("cWidth"),0,500);
00286                                         if (!$cHeight)  $cHeight=200;
00287                                         if (!$cWidth)   $cWidth=300;
00288                                                 // This thing allows images to be based on their width - to a certain degree - by setting a high height. Then we're almost certain the image will be based on the width 
00289                                                         $cHeight=1000;
00290                 //                      debug(array($cHeight,$cWidth));
00291                 //exit;                 
00292                                         $imgI = $imgObj->imageMagickConvert($filepath,"WEB",$cWidth."m",$cHeight."m");  // ($imagefile,$newExt,$w,$h,$params,$frame,$options,$mustCreate=0)
00293                         //              debug($imgI);
00294                                         if ($imgI[3])   {
00295                                                 $fI=pathinfo($imgI[3]);
00296                                                 $mainBase="RTEmagicC_".substr(basename($destName),10).".".$fI["extension"];
00297                                                 $destName = $fileFunc->getUniqueName($mainBase,$destPath);
00298                                                 @copy($imgI[3],$destName);
00299                 
00300                                                 $iurl = $this->siteUrl.substr($destName,strlen(PATH_site));
00301                                                 echo'
00302 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
00303 <html>
00304 <head>
00305         <title>Untitled</title>
00306 </head>
00307 <script language="javascript" type="text/javascript">
00308         function insertImage(file,width,height) {       //
00309                 self.parent.parent.renderPopup_insertImage(\'<img src="\'+file+\'" width="\'+width+\'" height="\'+height+\'" border=0>\');
00310         }
00311 </script>
00312 <body>
00313 <script language="javascript" type="text/javascript">
00314         insertImage(\''.$iurl.'\','.$imgI[0].','.$imgI[1].');
00315 </script>
00316 </body>
00317 </html>';
00318                                         }
00319                                         
00320                                 }
00321                         }
00322                         exit;
00323                 }
00324         }
00325 
00331         function init() {
00332                 global $LANG,$BACK_PATH;
00333 
00334                 $this->doc = t3lib_div::makeInstance('template');
00335                 $this->doc->backPath = $BACK_PATH;
00336                 $this->doc->JScode='
00337                 <script language="javascript" type="text/javascript">
00338                         function jumpToUrl(URL,anchor)  {       //
00339                                 var add_act = URL.indexOf("act=")==-1 ? "&act='.$this->act.'" : "";
00340                                 var RTEtsConfigParams = "&RTEtsConfigParams='.rawurlencode(t3lib_div::_GP('RTEtsConfigParams')).'";
00341                 
00342                                 var cur_width = selectedImageRef ? "&cWidth="+selectedImageRef.width : "";
00343                                 var cur_height = selectedImageRef ? "&cHeight="+selectedImageRef.height : "";
00344                 
00345                                 var theLocation = URL+add_act+RTEtsConfigParams+cur_width+cur_height+(anchor?anchor:"");
00346                                 document.location = theLocation;
00347                                 return false;
00348                         }
00349                         function insertImage(file,width,height) {       //
00350                                 self.parent.parent.renderPopup_insertImage(\'<img src="\'+file+\'" width="\'+width+\'" height="\'+height+\'" border=0>\');
00351                         }
00352                         function launchView(url)        {       //
00353                                 var thePreviewWindow="";
00354                                 thePreviewWindow = window.open("'.$this->siteUrl.TYPO3_mainDir.'show_item.php?table="+url,"ShowItem","height=300,width=410,status=0,menubar=0,resizable=0,location=0,directories=0,scrollbars=1,toolbar=0");    
00355                                 if (thePreviewWindow && thePreviewWindow.focus) {
00356                                         thePreviewWindow.focus();
00357                                 }
00358                         }
00359                         function getCurrentImageRef()   {       //
00360                                 if (self.parent.parent 
00361                                 && self.parent.parent.document.idPopup 
00362                                 && self.parent.parent.document.idPopup.document 
00363                                 && self.parent.parent.document.idPopup.document._selectedImage) {
00364                 //                      self.parent.parent.debugObj(self.parent.parent.document.idPopup.document._selectedImage);
00365                                         return self.parent.parent.document.idPopup.document._selectedImage;
00366                                 }
00367                                 return "";
00368                         }
00369                         function printCurrentImageOptions()     {       //
00370                 //              alert(selectedImageRef.href);
00371                                 var styleSelector=\'<select name="iClass" style="width:140px;"><option value=""></option><option value="TestClass">TestClass</option></select>\';
00372                                 var alignSelector=\'<select name="iAlign" style="width:60px;"><option value=""></option><option value="left">Left</option><option value="right">Right</option></select>\';
00373                                 var bgColor=\' class="bgColor4"\';
00374                                 var sz="";
00375                                 sz+=\'<table border=0 cellpadding=1 cellspacing=1><form action="" name="imageData">\';
00376                                 sz+=\'<tr><td\'+bgColor+\'>'.$LANG->getLL("width").': <input type="text" name="iWidth" value=""'.$GLOBALS["TBE_TEMPLATE"]->formWidth(4).'>&nbsp;&nbsp;'.$LANG->getLL("height").': <input type="text" name="iHeight" value=""'.$GLOBALS["TBE_TEMPLATE"]->formWidth(4).'>&nbsp;&nbsp;'.$LANG->getLL("border").': <input type="checkbox" name="iBorder" value="1"></td></tr>\';
00377                                 sz+=\'<tr><td\'+bgColor+\'>'.$LANG->getLL("margin_lr").': <input type="text" name="iHspace" value=""'.$GLOBALS["TBE_TEMPLATE"]->formWidth(4).'>&nbsp;&nbsp;'.$LANG->getLL("margin_tb").': <input type="text" name="iVspace" value=""'.$GLOBALS["TBE_TEMPLATE"]->formWidth(4).'></td></tr>\';
00378                 //              sz+=\'<tr><td\'+bgColor+\'>Textwrapping: \'+alignSelector+\'&nbsp;&nbsp;Style: \'+styleSelector+\'</td></tr>\';
00379                                 sz+=\'<tr><td\'+bgColor+\'>'.$LANG->getLL("title").': <input type="text" name="iTitle"'.$GLOBALS["TBE_TEMPLATE"]->formWidth(20).'></td></tr>\';
00380                                 sz+=\'<tr><td><input type="submit" value="'.$LANG->getLL("update").'" onClick="return setImageProperties();"></td></tr>\';
00381                                 sz+=\'</form></table>\';
00382                                 return sz;
00383                         }
00384                         function setImageProperties()   {       //
00385                                 if (selectedImageRef)   {
00386                                         selectedImageRef.width=document.imageData.iWidth.value;
00387                                         selectedImageRef.height=document.imageData.iHeight.value;
00388                                         selectedImageRef.vspace=document.imageData.iVspace.value;
00389                                         selectedImageRef.hspace=document.imageData.iHspace.value;
00390                                         selectedImageRef.title=document.imageData.iTitle.value;
00391                                         selectedImageRef.alt=document.imageData.iTitle.value;
00392                 
00393                                         selectedImageRef.border= (document.imageData.iBorder.checked ? 1 : 0);
00394                 
00395                 /*                      
00396                                         var iAlign = document.imageData.iAlign.options[document.imageData.iAlign.selectedIndex].value;
00397                                         if (iAlign || selectedImageRef.align)   {
00398                                                 selectedImageRef.align=iAlign;
00399                                         }
00400                 
00401                                         selectedImageRef.style.cssText="";
00402                 
00403                                         var iClass = document.imageData.iClass.options[document.imageData.iClass.selectedIndex].value;
00404                                         if (iClass || (selectedImageRef.attributes["class"] && selectedImageRef.attributes["class"].value))     {
00405                                                 selectedImageRef["class"]=iClass;
00406                                                 selectedImageRef.attributes["class"].value=iClass;
00407                                         }
00408                 */
00409                 //                      selectedImageRef.style="";
00410                                         self.parent.parent.edHidePopup();
00411                                 }
00412                                 return false;
00413                         }
00414                         function insertImagePropertiesInForm()  {       //
00415                                 if (selectedImageRef)   {
00416                                         document.imageData.iWidth.value = selectedImageRef.width;
00417                                         document.imageData.iHeight.value = selectedImageRef.height;
00418                                         document.imageData.iVspace.value = selectedImageRef.vspace;
00419                                         document.imageData.iHspace.value = selectedImageRef.hspace;
00420                                         document.imageData.iTitle.value = selectedImageRef.title;
00421                                         if (parseInt(selectedImageRef.border))  {
00422                                                 document.imageData.iBorder.checked = 1;
00423                                         }
00424                 /*
00425                                                 // Update align
00426                                         var fObj=document.imageData.iAlign;
00427                                         var value=selectedImageRef.align;
00428                                         var l=fObj.length;
00429                                         for (a=0;a<l;a++)       {
00430                                                 if (fObj.options[a].value == value)     {
00431                                                         fObj.selectedIndex = a;
00432                                                 }
00433                                         }
00434                                                 // Update class
00435                                                         // selectedImageRef.className ??
00436                                         var fObj=document.imageData.iClass;
00437                                         var value=selectedImageRef.attributes["class"].value;
00438                                         var l=fObj.length;
00439                                         for (a=0;a<l;a++)       {
00440                                                 if (fObj.options[a].value == value)     {
00441                                                         fObj.selectedIndex = a;
00442                                                 }
00443                                         }
00444                                         */
00445                                         
00446                                 }
00447                         //      alert(document.imageData);
00448                                 return false;
00449                         }
00450                         
00451                         function openDragDrop() {       //
00452                                 var url = "'.$this->doc->backPath.'browse_links.php?mode=filedrag&bparams=|||"+escape("gif,jpg,jpeg,png");
00453                                 browserWin = window.open(url,"Typo3WinBrowser","height=350,width=600,status=0,menubar=0,resizable=1,scrollbars=1");
00454                                 browserWin.focus();
00455                                 self.parent.parent.edHidePopup(1);
00456                         }
00457                 
00458                         var selectedImageRef = getCurrentImageRef();    // Setting this to a reference to the image object.
00459                 
00460                         '.($this->act=="dragdrop"?"openDragDrop();":"").'
00461                         
00462                 //      alert(selectedImageRef.href);
00463                 </script>
00464                 ';
00465                 
00466                         // Starting content:
00467                 $this->content="";
00468                 $this->content.=$this->doc->startPage("RTE image insert");
00469         }
00470 
00476         function main() {
00477                 global $LANG, $TYPO3_CONF_VARS, $FILEMOUNTS;
00478                 
00479                 $menu='<table border=0 cellpadding=2 cellspacing=1><tr>';
00480                 $bgcolor=' class="bgColor4"';
00481                 $bgcolorA=' class="bgColor5"';
00482                 if ($this->act=="image" || t3lib_div::_GP("cWidth"))    {       // If $this->act is specifically set to "image" or if cWidth is passed around...
00483                         $menu.='<td align=center nowrap="nowrap" width="25%"'.($this->act=="image"?$bgcolorA:$bgcolor).'><a href="#" onClick="jumpToUrl(\'?act=image\');return false;"><strong>'.$LANG->getLL("currentImage").'</strong></a></td>';
00484                 }
00485                         if (in_array("magic",$this->allowedItems))      $menu.='<td align=center nowrap="nowrap" width="25%"'.($this->act=="magic"?$bgcolorA:$bgcolor).'><a href="#" onClick="jumpToUrl(\'?act=magic\');return false;"><strong>'.$LANG->getLL("magicImage").'</strong></a></td>';
00486                         if (in_array("plain",$this->allowedItems))      $menu.='<td align=center nowrap="nowrap" width="25%"'.($this->act=="plain"?$bgcolorA:$bgcolor).'><a href="#" onClick="jumpToUrl(\'?act=plain\');return false;"><strong>'.$LANG->getLL("plainImage").'</strong></a></td>';
00487                         if (in_array("dragdrop",$this->allowedItems))   $menu.='<td align=center nowrap="nowrap" width="25%"'.$bgcolor.'><a href="#" onClick="openDragDrop();return false;"><strong>'.$LANG->getLL("dragDropImage").'</strong></a></td>';
00488                 $menu.='</tr></table>';
00489                 
00490                 $this->content.='<img src=clear.gif width=1 height=2>';
00491                 $this->content.=$menu;
00492                 $this->content.='<img src=clear.gif width=1 height=10>';
00493                 
00494                 if ($this->act!="image")        {
00495 
00496                                 // Getting flag for showing/not showing thumbnails:
00497                         $noThumbs = $GLOBALS["BE_USER"]->getTSConfigVal("options.noThumbsInRTEimageSelect");
00498                 
00499                         if (!$noThumbs) {
00500                                         // MENU-ITEMS, fetching the setting for thumbnails from File>List module:
00501                                 $_MOD_MENU = array('displayThumbs' => '');
00502                                 $_MCONF['name']='file_list';
00503                                 $_MOD_SETTINGS = t3lib_BEfunc::getModuleData($_MOD_MENU, t3lib_div::_GP('SET'), $_MCONF['name']);
00504                                 $addParams = '&act='.$this->act.'&expandFolder='.rawurlencode($this->modData["expandFolder"]);
00505                                 $thumbNailCheck = t3lib_BEfunc::getFuncCheck('','SET[displayThumbs]',$_MOD_SETTINGS['displayThumbs'],'rte_select_image.php',$addParams).' '.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_file_list.php:displayThumbs',1);
00506                         } else {
00507                                 $thumbNailCheck='';
00508                         }
00509 
00510                                 // File-folders:        
00511                         $foldertree = t3lib_div::makeInstance("localFolderTree");
00512                         $tree=$foldertree->getBrowsableTree();
00513                         list(,,$specUid) = explode("_",t3lib_div::_GP("PM"));
00514                         $files = $this->expandFolder($foldertree->specUIDmap[$specUid],$this->act=="plain",$noThumbs?$noThumbs:!$_MOD_SETTINGS['displayThumbs']);
00515                         
00516                         $this->content.= '<table border=0 cellpadding=0 cellspacing=0>
00517                         <tr>
00518                                 <td valign=top>'.$this->barheader($LANG->getLL("folderTree").':').$tree.'</td>
00519                                 <td>&nbsp;</td>
00520                                 <td valign=top>'.$files.'</td>
00521                         </tr>
00522                         </table>
00523                         <BR>'.$thumbNailCheck;
00524                         
00525                         
00526                         
00527                         /*
00528                                 // Target:
00529                         if ($this->act!="mail") {
00530                                 $ltarget='<table border=0 cellpadding=2 cellspacing=1><form name="ltargetform" id="ltargetform"><tr>';
00531                                 $ltarget.='<td width=90>Target:</td>';
00532                                 $ltarget.='<td><input type="text" name="ltarget" onChange="setTarget(this.value);" value="'.htmlspecialchars($curUrlArray["target"]).'"></td>';
00533                                 $ltarget.='<td><select name="ltarget_type" onChange="setTarget(this.options[this.selectedIndex].value);document.ltargetform.ltarget.value=this.options[this.selectedIndex].value;this.selectedIndex=0;">
00534                                 <option></option>
00535                                 <option value="_top">Top</option>
00536                                 <option value="_blank">New window</option>
00537                                 </select></td>';
00538                                 if (($curUrlInfo["act"]=="page" || $curUrlInfo["act"]=="file") && $curUrlArray["href"]) {
00539                                         $ltarget.='<td><input type="submit" value="Update" onClick="return link_current();"></td>';
00540                                 }
00541                                 $ltarget.='</tr></form></table>';
00542                                 
00543                                 $this->content.=$ltarget;
00544                         }
00545                         */
00546                         
00547                         
00548                         
00549                         
00550                         // ***************************
00551                         // Upload
00552                         // ***************************
00553                         $fileProcessor = t3lib_div::makeInstance("t3lib_basicFileFunctions");
00554                         $fileProcessor->init($FILEMOUNTS, $TYPO3_CONF_VARS["BE"]["fileExtensions"]);
00555                         $path=t3lib_div::_GP("expandFolder");
00556                         if (!$path || $path=="/" || !@is_dir($path))    {
00557                                 $path = $fileProcessor->findTempFolder();       // The closest TEMP-path is found
00558                                 if ($path)      $path.="/";
00559                         }
00560                         if ($path && @is_dir($path))    {
00561                                 $this->content.=$this->uploadForm($path)."<BR>";
00562                         }
00563                 
00564                         // ***************************
00565                         // Help
00566                         // ***************************
00567                         
00568                         if ($this->act=="magic")        {
00569                                 $this->content.='<img src="'.$this->doc->backPath.'gfx/icon_note.gif" width="18" height="16" align=top>'.$LANG->getLL("magicImage_msg").'<BR>';
00570                         }
00571                         if ($this->act=="plain")        {
00572                                 $this->content.='<img src="'.$this->doc->backPath.'gfx/icon_note.gif" width="18" height="16" align=top>'.$LANG->getLL("plainImage_msg").'<BR>';
00573                         }
00574                 } else {
00575                         $this->content.='
00576                         <script language="javascript" type="text/javascript">
00577                 document.write(printCurrentImageOptions());
00578                 insertImagePropertiesInForm();
00579                         </script>
00580                         ';
00581                 }
00582 
00583         }
00584 
00590         function printContent() {
00591                 $this->content.= $this->doc->endPage();
00592                 echo $this->content;
00593         }
00594         
00595 
00596 
00597 
00598 
00599 
00600 
00601 
00602 
00603 
00604 
00605         /***************************
00606          *
00607          * OTHER FUNCTIONS:     
00608          *
00609          ***************************/
00610          
00616         function expandFolder($expandFolder=0,$plainFlag=0,$noThumbs=0) {
00617                 global $LANG;
00618 
00619                 $expandFolder = $expandFolder ? $expandFolder :t3lib_div::_GP("expandFolder");
00620                 $out="";
00621                 
00622                 $resolutionLimit_x=640;
00623                 $resolutionLimit_y=680;
00624                 
00625                 if ($expandFolder)      {
00626                         $files = t3lib_div::getFilesInDir($expandFolder,($plainFlag?"jpg,jpeg,gif,png":$GLOBALS["TYPO3_CONF_VARS"]["GFX"]["imagefile_ext"]),1,1);       // $extensionList="",$prependPath=0,$order="")
00627                         if (is_array($files))   {
00628                                 reset($files);
00629                 
00630                                 $out.=$this->barheader(sprintf($LANG->getLL("images").' (%s):',count($files)));
00631                         
00632                                 $titleLen=intval($GLOBALS["BE_USER"]->uc["titleLen"]);  
00633                                 $picon='<img src="'.$this->doc->backPath.'gfx/i/_icon_webfolders.gif" width="18" height="16" align=top>';
00634                                 $picon.=htmlspecialchars(t3lib_div::fixed_lgd(basename($expandFolder),$titleLen));
00635                                 $out.='<span class="nobr">'.$picon.'</span><BR>';
00636                                 
00637                                 $imgObj = t3lib_div::makeInstance("t3lib_stdGraphic");
00638                                 $imgObj->init();
00639                                 $imgObj->mayScaleUp=0;
00640                                 $imgObj->tempPath=PATH_site.$imgObj->tempPath;
00641 
00642                                 $lines=array();
00643                                 while(list(,$filepath)=each($files))    {
00644                                         $fI=pathinfo($filepath);
00645                                         
00646                                         $iurl = $this->siteUrl.t3lib_div::rawUrlEncodeFP(substr($filepath,strlen(PATH_site)));
00647                                         $imgInfo = $imgObj->getImageDimensions($filepath);
00648                                         
00649                                         $icon = t3lib_BEfunc::getFileIcon(strtolower($fI["extension"]));
00650                                         $pDim = $imgInfo[0]."x".$imgInfo[1]." pixels";
00651                                         $size=" (".t3lib_div::formatSize(filesize($filepath))."bytes, ".$pDim.")";
00652                                         $icon = '<img src="'.$this->doc->backPath.'gfx/fileicons/'.$icon.'" width=18 height=16 border=0 title="'.$fI["basename"].$size.'" class="absmiddle">';
00653                                         if (!$plainFlag)        {
00654                                                 $ATag = '<a href="#" onclick="return jumpToUrl(\'?insertMagicImage='.rawurlencode($filepath).'\');">';
00655                                         } else {
00656                                                 $ATag = '<a href="#" onclick="return insertImage(\''.$iurl.'\','.$imgInfo[0].','.$imgInfo[1].');">';
00657                                         }
00658                                         $ATag_e="</a>";
00659                                         if ($plainFlag && ($imgInfo[0]>$resolutionLimit_x || $imgInfo[1]>$resolutionLimit_y))   {
00660                                                 $ATag="";
00661                                                 $ATag_e="";
00662                                                 $ATag2="";
00663                                                 $ATag2_e="";
00664                                         } else {
00665                                                 $ATag2='<a href="#" onClick="launchView(\''.rawurlencode($filepath).'\'); return false;">';
00666                                                 $ATag2_e="</a>";
00667                                         }
00668                                         
00669                                         $filenameAndIcon=$ATag.$icon.htmlspecialchars(t3lib_div::fixed_lgd(basename($filepath),$titleLen)).$ATag_e;
00670                                         
00671                                         $lines[]='<tr class="bgColor4"><td nowrap="nowrap">'.$filenameAndIcon.'&nbsp;</td><td nowrap="nowrap">'.$pDim.'&nbsp;</td></tr>';
00672                                         $lines[]='<tr><td colspan=2>'.(
00673                                                 $noThumbs ? 
00674                                                 "" :
00675                                                 $ATag2.t3lib_BEfunc::getThumbNail($this->doc->backPath.'thumbs.php',$filepath,'hspace="5" vspace="5" border="1"').$ATag2_e).
00676                                                 '</td></tr>';
00677                                         $lines[]='<tr><td colspan=2><img src="clear.gif" width=1 height=3></td></tr>';
00678                                 }
00679                                 $out.='<table border=0 cellpadding=0 cellspacing=1>'.implode("",$lines).'</table>';
00680                         }
00681                 }
00682                 return $out;
00683         }
00684 
00691         function uploadForm($path)      {
00692                 global $LANG,$SOBE;
00693 
00694         //      debug($path);
00695                 $count=1;
00696                 $header = t3lib_div::isFirstPartOfStr($path,PATH_site)?substr($path,strlen(PATH_site)):$path;
00697                 $code=$this->barheader($LANG->getLL("uploadImage").":");
00698                 $code.='<table border=0 cellpadding=0 cellspacing=3><FORM action="'.$this->doc->backPath.'tce_file.php" method="post" name="editform" enctype="'.$GLOBALS["TYPO3_CONF_VARS"]["SYS"]["form_enctype"].'"><tr><td>';
00699                 $code.="<strong>".$LANG->getLL("path").":</strong> ".$header."</td></tr><tr><td>";
00700                 for ($a=1;$a<=$count;$a++)      {
00701                         $code.='<input type="File" name="upload_'.$a.'"'.$this->doc->formWidth(35).' size="50">
00702                                 <input type="Hidden" name="file[upload]['.$a.'][target]" value="'.$path.'">
00703                                 <input type="Hidden" name="file[upload]['.$a.'][data]" value="'.$a.'"><BR>';
00704                 }
00705                 $code.='
00706                         <input type="Hidden" name="redirect" value="'.t3lib_extMgm::extRelPath('rte').'app/rte_select_image.php?act='.$this->act.'&expandFolder='.rawurlencode($path).'&RTEtsConfigParams='.rawurlencode(t3lib_div::_GP("RTEtsConfigParams")).'">
00707                         <input type="Submit" name="submit" value="'.$LANG->sL("LLL:EXT:lang/locallang_core.php:file_upload.php.submit").'">
00708                         <div id="c-override">
00709                                 <input type="checkbox" name="overwriteExistingFiles" value="1" /> '.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_misc.php:overwriteExistingFiles',1).'
00710                         </div>
00711                         
00712                 </td>
00713                 </tr>
00714                 </FORM>
00715                 </table>';
00716 
00717                 return $code;
00718         }
00719 
00726         function barheader($str)        {
00727                 global $LANG,$SOBE;
00728 
00729                 return '<table border=0 cellpadding=2 cellspacing=0 width=100% class="bgColor5"><tr><td><strong>'.$str.'</strong></td></tr></table>';
00730         }
00731 
00738         function printCurrentUrl($str)  {
00739                 global $LANG,$SOBE;
00740 
00741                 return '<table border=0 cellpadding=0 cellspacing=0 width=100% class="bgColor5"><tr><td><strong>Current Link:</strong> '.$str.'</td></tr></table>';
00742         }
00743 }
00744 
00745 // Include extension?
00746 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rte/app/rte_select_image.php'])        {
00747         include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rte/app/rte_select_image.php']);
00748 }
00749 
00750 
00751 
00752 
00753 
00754 
00755 
00756 
00757 
00758 
00759 
00760 
00761 // Make instance:
00762 $SOBE = t3lib_div::makeInstance('SC_rte_select_image');
00763 $SOBE->preinit();
00764 $SOBE->magicProcess();
00765 $SOBE->init();
00766 $SOBE->main();
00767 $SOBE->printContent();
00768 ?>


Généré par TYPO3 Ameos avec  doxygen 1.4.6