Здравствуйте дорогие друзья и любители Joomla. Сегодня я хотел бы поговорить о самой первой линейки Joomla 1.0.х и ее работе с php версии 5.3 и выше, точнее о некорректной ее работе. Я понимаю, что линейку Joomla 1.0.x уже давно никто не использует, но все же я начал создавать сайты именно с нее и сейчас на обслуживании у меня есть пару сайтов. Так вот, линейка Joomla 1.0.x в связке с php 5.3 не выводит содержимое компонента com_content, а вместо статей или новостей просто пустота. И сегодня я хочу представить временное решение, которое поможет исправить данное положение.
Сразу хочу заметить, что данный способ временный и вам нужно обновить ваш сайт на Joomla 1.0.x до последней версии CMS Joomla.
Заставляем работать Joomla 1.0.x на версии PHP 5.3 и выше
- Вносим изменения в com_content, в файле /includes/Cache/Lite/Function.php находим строчку:
$arguments = func_get_args();
и заменяем её на:
$arguments = func_get_args(); $numargs = func_num_args(); for($i=1; $i < $numargs; $i++){ $arguments[$i] = &$arguments[$i]; }
- Исправляем com_contact, находим в /includes/vcard.class.php функцию:
function quoted_printable_encode($input, $line_max=76, $space_conv=false) { /* … */ }
заменяем на:
if(!function_exists(‘quoted_printable_encode’)) { function quoted_printable_encode($input, $line_max=76, $space_conv=false) { /* … */ } }
- В PHP 5.3.3 были больше не поддерживаются функции ereg*(). Решение проблем с ereg*() заключается в замене этой функции на preg_match() по следующим алгоритмам:
ereg(«\.([^\.]*$)», $this->file_src_name, $extension);
заменить на
preg_match(«/\.([^\.]*$)/», $this->file_src_name, $extension);
———————————-
$this->file_dst_name_body = ereg_replace(«[^A-Za-z0-9_]«, «», $this->file_dst_name_body);
заменить на
$this->file_dst_name_body = preg_replace(«/[^A-Za-z0-9_]/», «», $this->file_dst_name_body);
———————————-
eregi(«\.([^\.]*$)», $this->file_src_name, $extension);
заменить на
preg_match(«/\.([^\.]*$)/i», $this->file_src_name, $extension);
———————————-
split (string pattern, string string [, int limit])
заменить на
preg_split ( string pattern, string subject [, int limit [, int flags]] )
Еще раз хочу напомнить, что это только временный выход из такой ситуации и вам лучше обновить Joomla 1.0.x до последней версии.
А скоро выйдет статья о том как заставить работать плагин комментариев SocComments вместе с JComments в компоненте K2. Увидимся.
Joomla Блог Nauca – научись работать с Joomla