Параметры шаблона Joomla и params.ini - файл становится недоступным для записи после сохранения - PullRequest
1 голос
/ 04 мая 2010

Я использую wamp на Win XP SP3 и создаю шаблон Joomla с изменяемыми параметрами. изначально сообщение

Файл параметров \ templates \ ssc_2010 \ params.ini запись!

как только я внесу изменения, все работает как положено, за исключением того, что теперь я получаю сообщение:

Файл параметров \ templates \ ssc_2010 \ params.ini недоступна для записи!

Одно из решений заключается в том, чтобы просмотреть каталог, щелкнуть правой кнопкой мыши по файлу, выбрать свойства и снять флажок только для чтения. Файл снова доступен для записи, но как только я снова изменяю параметры, он снова становится доступным только для чтения. Я довольно ленив и хотел бы, чтобы это не повторилось, я заметил, что это происходило в прошлых проектах, но теперь мне приходится много работать с параметрами, так что выполнять ручной труд становится довольно скучно: P

Ответы [ 2 ]

1 голос
/ 31 октября 2010

В Joomla 1.5 есть ошибка, которая приводит к отображению сообщения.

Была добавлена ​​функция безопасности, которая делает файлы шаблонов недоступными для записи до момента сохранения, где они становятся доступными для записи, сохраняются, а затем снова становятся недоступными для записи.

Попробуйте внести изменения, затем вернитесь и проверьте предварительный просмотр. Вы увидите, что изменение действительно было сделано.

Если вы хотите исправить надоедливое неписываемое сообщение, добавьте следующий код в

administrator / components / controller.php в строке 179 сразу после установки учетных данных FTP:

        $file = $client->path.DS.'templates'.DS.$template.DS.'params.ini';

    // Try to make the params file writeable
    if (!$ftp['enabled'] && JPath::isOwner($file) && !JPath::setPermissions($file, '0755')) {
        JError::raiseNotice('SOME_ERROR_CODE', JText::_('Could not make the template parameter file writable'));
    }

Это сделает файл доступным для записи во время процесса загрузки редактирования и до публикации статуса файла в шаблоне.

Тогда для безопасности, если экран редактирования закрыт без сохранения, найдите следующие строки:

        require_once (JPATH_COMPONENT.DS.'admin.templates.html.php');
    TemplatesView::editTemplate($row, $lists, $params, $option, $client, $ftp, $template);

и вставьте следующий код только ПОСЛЕ этих строк, но перед закрывающей скобкой:

        // Try to make the params file unwriteable
    if (!$ftp['enabled'] && JPath::isOwner($file) && !JPath::setPermissions($file, '0555')) {
        JError::raiseNotice('SOME_ERROR_CODE', JText::_('Could not make the template parameter file unwritable'));
    }

Это сделает файл снова недоступным для записи.

Это тот же код, который используется в функции saveTemplate (). Мы просто делаем это снова, прежде чем отобразить статус файла на экране редактирования. Если процесс завершится неудачно из-за конфигурации вашего веб-сервера, вы получите предупреждающие сообщения, ДО того, как вы внесли кучу изменений в свой шаблон. :)

P.S. Не забудьте сохранить копию этого файла отдельно, чтобы вы могли повторить изменения при обновлении Joomla! (если они сами это еще не исправили.)

0 голосов
/ 14 мая 2010

Это звучит как проблема с правами пользователя в Windows - посмотрите разрешения безопасности для каталога, в котором находится файл, который вы редактируете, и проверьте, что пользователь "IUSR_xxx" (где xxx - имя вашего компьютера ) имеет полный контроль.

Если это не сработает, то вы можете сказать нам, какую версию Windows вы используете, так как это может помочь ...

Мэтт

...