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() 函数中使用的代码相同。我们只是在编辑屏幕上显示文件状态之前再次执行此操作。如果该过程由于您的 Web 服务器的配置而失败,在您对模板进行大量更改之前,您将收到警告消息。:)
PS 记得单独保存这个文件的副本,以便在升级 Joomla 时可以重做更改!(如果他们自己还没有解决这个问题。)