#php #function #joomla #glob
#php #функция #joomla #глоб
Вопрос:
Я создаю один модуль для joomla (серверной части), который должен сканировать данную папку на наличие изображений (которые находятся вне каталога администратора) и отображать для каждого из них поля ввода. $dir
переменная получает значение iDirName
поля из поля xml files модуля joomla, которое пользователь вводит на странице редактирования модуля.
Приведенный ниже файл работает, только если каталог — изображения, и выполняет поиск папки в каталоге модуля, а не в корневом каталоге сайта. Даже если я добавил в каталог изображений модулей другой directory()
, это не работает, поэтому она может сканировать /administrator/modules/mod_slide_url_add/images/ этот каталог, но не этот /administrator/modules/mod_slide_url_add/images /headers.
Мне нужно иметь возможность сканировать каталог / images / headers из корня joomla. Раньше я использовал одну небольшую форму с действием к этому 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) amp;amp; $dir!='' amp;amp; !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>
Ответ №1:
Я нашел решение, добавленное в первый php-код
$rootpath = JPATH_ROOT;
а затем изменил это
$sclfTargetDirectory = $dir;
к этому
$sclfTargetDirectory = $rootpath.$dir;
и модуль работает так, как я хотел.