Порой в CMS Joomla при попытке установить расширение, появляется ошибка:
- JFolder::create: Обнаружен Бесконечный цикл
- Внимание! Не удалось переместить файл!
Эта ошибка появляется в основном, если у вас неправильно указан каталог временных файлов и записи логов. Указать правильный вы можете 2 способами:
1. В файле configuration.php
public $log_path = ‘путь‘; //Каталог логов
public $tmp_path = ‘путь‘; //Каталог временных файлов
2. В панели управления, в графе «Общие настройки«. Здесь во вкладке «Система«, вы можете установить путь к логам, в форме «Путь к каталогу логов«. И во вкладке «Сервер«, установите путь к каталогу временных файлов в форме «Путь к каталогу временных файлов«
Будьте внимательны. Путь необходимо указать ПОЛНЫЙ, от корня системы, а не просто абсолютный http. Например:
/var/www/domens/www/youon.ru/logs
/var/www/domens/www/youon.ru/tmp
Модуль Установить: Другой модуль уже использует каталог: /var/www/site/data/www/test.youon.ru/modules/mod_check_domain_denver
Эта ошибка означает что у вас уже установлен плагин, и ошибка показывает какой из каталогов занят, при желании переустановить тот или иной плагин, вы можете зная каталог удалить конечную папку плагина, тем самым ликвидировав эту ошибку.
- JFolder::create: Не удалось создать каталог
- Плагин Установить: Не удалось создать каталог:
У папки недостаточно прав для копирования в неё файлов плагина или расширений, а именно стоит скорее всего 644, попробуйте поставить 755 (с рекурсией). Или если и это не поможет 777(не очень рекомендуется).
Сегодня рассмотрим класс для работы с папками в Joomla Framework.
Данный класс нам позволит выполнять копирование, перемещение, удаление файлов и не только!
Для начала использования этого класса подключим его в наш скрипт:
Так же как и для класс JFile для класса JFolder не обязательно объявлять объект
JFolder::copy( $src, $dest, $path = », $force = false ); — метод для копирования папки и её содержимого! Параметры метода:
$src — путь из которого копировать папку
$dest — куда копировать папку
$path — добавляет к в начало $src и $dest путь укатанный в этих переменных
$force — принудительное копирование. То есть при совпадении имен файлов и папок в директории $dest эти файлы будут принудительно заменены на файлы в из копируемой директории $src
JFolder::create( $path = », $mode = 0755 ); — создает папку по пути указанному в переменной $path с правами $mode (по умолчанию устанавливаются права 0755)
JFolder::delete( $path ); — удаляет папку по пути указанному в переменной $path
JFolder::exists( $path ); — проверяет или существует папка указанная в пути $path вернет true если папка существует
JFolder::files($path, $filter = ‘.’, $recurse = false, $full = false, $exclude); — получает список файлов в директории! Параметры метода: $path — путь по которому выбирать список файлов
$filter — фильтр файлов
$recurse — елси установить значение в true то будет рекурсивный обход всех папок внутри папки $path
$full — если установить значение в true то к имени файла будет добавлен путь по которому он располагается
$exclude — массив в котором передаются типы файлов которые не выбирать
Для примера выберем все jpg и png файлы из папки images и всех подпапок этой папки, также укажем полный путь к файлу:
JFolder::folders($path, $filter = ‘.’, $recurse = false, $full = false, $exclude); — получает список файлов из указанной папки! Параметры метода: $path — путь по которому выбирать список папок
$filter — фильтр
$recurse — если установить значение в true то будет рекурсивный обход всех папок внутри папки $path
$full — если установить значение в true то к имени папки будет добавлен путь по которому она располагается
$exclude — массив в котором передаются типы папок которые не выбирать
Для примера выберем все папки из папки images c отображением пути к папкам:
$folders = JFolder::listFolderTree( $path, $filter ); — возвращает дерево папко из папки указанной в пути $path.
Данная функция вернет массив элементами которого будет такой ассоциированный массив:
В элементах этого массива будет указание родительской категории, ключ id это идентификатор текущей категории для того что бы на её могли ссылаться дочернии категории!
JFolder::move( $src, $dest, $path = », $force = false ); — методя для перемещения папок и их содержимого! Параметры метода:
$src — путь из которого перемещать папку
$dest — куда перемещать папку
$path — добавляет к в начало $src и $dest путь указанный в этих переменных
$force — принудительное перемещение. То есть при совпадении имен файлов и папок в директории $dest эти файлы будут принудительно заменены на файлы в из копируемой директории $src

При обновлении >joomla 1.5, 1.6, 1.7, 2.5 или при установке каких-либо модулей или плагинов на нее же установщик может ругаться следующими фразами:
JFolder::files: Путь не указывает на правильную папку или папка была удалена
JFolder::folder: Путь не указывает на правильную папку или папка была удалена
JFolder::files: Путь не указывает на правильную папку или папка была удалена
Ошибка! Не найден XML-файл установки Joomla!
или, как вариант:
JFolder: :files: Путь ведёт не к каталогу. Путь: /***/tmp/install_4f31baa4cf881
JFolder: :folder: Путь ведёт не к каталогу. Путь: ***/tmp/install_4f31baa4cf881
JFolder: :files: Путь ведёт не к каталогу. Путь: ***/tmp/install_4f31baa4cf881
JInstaller: :Install: Не найден установочный XML-файл Joomla