2016-10-23 11 views
0

Я создаю один модуль для joomla (backend), который должен сканировать данную папку для изображений (которая находится вне каталога администратора) и отображать для каждого из них поля ввода. $dir variable получает значение iDirName Поле из поля xml-файлов модуля joomla, который пользователь набирает с страницы редактирования модуля.Функция glob не может сканировать папки в joomla

Этот файл ниже работает только в том случае, если каталог является образами и ищет папку в каталоге модулей, а не в корневой директории сайта. Даже если я добавил в каталог образов модулей еще один directory(), он не работает, поэтому он может сканировать/администратор/modules/mod_slide_url_add/images/this directory, но не этот/administrator/modules/mod_slide_url_add/images/headers.

Мне нужно иметь возможность сканировать каталог/images/headers из joomla root. Прежде, чем я использовал одну маленькую форму с действием для этого php-файла, и он работал отлично, когда я печатал каталог, подобный этому ../../../images/headers, но в этом случае я был перенаправлен с страницы администрирования joomla, чтобы очистить страницы с этим файлом php и получает поля ввода на четкой странице, а не на странице joomla. Теперь я пытаюсь отобразить эти поля непосредственно на странице Joomla без переадресации. Вы можете мне помочь?

<?PHP 
    $dir = $params->get('iDirName','1'); 
    echo "Dir="; 
    echo $dir; 
?> 

<table border="0" cellspacing="0" cellpadding="0" align="center"> 
    <form action="modules/mod_slide_url_add/ValidateWriteLinks.php" autocomplete="off" method="post"> 
    <?PHP 
     if(isset($dir) && $dir!='' && !empty($dir)) 
     { 
      $slcfN=0; 
      $sclfTargetDirectory = $dir; 
      foreach(glob($sclfTargetDirectory.'*.{jpg,png,gif}',GLOB_BRACE) as $slcfFileName) 
      { 
       $slcfN++; 
       $info = pathinfo($slcfFileName); 
       $file_name = basename($slcfFileName,'.'.$info['extension']); 
       $slcfFileName = $sclfTargetDirectory.$file_name.'.txt'; 
       if(!file_exists($slcfFileName)) 
       { 
        $FileHandle = fopen($slcfFileName, 'w') or die("can't open file"); 
        fclose($FileHandle); 
       } 
       echo "<tr><td>"; 
       echo "File No $slcfN -".basename($slcfFileName); 
       echo "</td><td>"; 
       echo "<input type='text' name='URLNo$slcfN' maxlength='105' size='35'>"; 
       echo "<input type='checkbox' name='ChkBoxNo$slcfN' value='Yes' /> Del File Contents..."; 
       echo "<input type='hidden' name='FilenameNo$slcfN' value='$slcfFileName'>"; 
       echo "</td></tr>"; 
      } 
      echo "<tr><td>"; 
      echo "<input type='hidden' name='slcCounterS' value='$slcfN'>"; 
      echo "</td><td>"; 
      echo "<input type='submit' value='E N T E R'>"; 
      echo "</td></tr>"; 
     }else{echo"ERROR LVL1";} 
    ?> 
    </form> 
</table> 

ответ

0

Я нашел решение, добавил к первому коду PHP

$rootpath = JPATH_ROOT; 

, а затем изменили этот

$sclfTargetDirectory = $dir; 

к этому

$sclfTargetDirectory = $rootpath.$dir; 

и модуль работает, как я хотел.