Фишки

Перенос сайта на CMS Joomla 1.5 с Denwer на хостинг или другой хостинг за 10 минут.

Статья не будет чем-то новым для профессионалов, но думаю будет полезна для новичков. Итак, как быстро и без проблем перенести сайт на другой сервер?

Дублирование главной страницы ч2

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

Вариант рабочий, использовал на многих сайтах, однако есть и проблема - первый пункт меню который мы прописали как ссылку (назовем его Главная) не подсвечивается при выборе, то есть ему не присваивается id-свойство current.

Отключаем кириллицу в SH404SEF

Последние версии компонента замечательно работают с кириллицей в URL но не всегда это пока нужно, поэтому можно достаточно просто отключить кириллицу в URL.

Убираем ограничение на использование кириллицы в URL в стандартных материалах

Возникла задача - разрешить русские алиасы для статей для использования кириллицы в URL. Многие сторонние компоненты , например SH404SEF позволяют это делать, однако при сохранении стандартного материала в Joomla 1.5 система не позволяет использовать кириллицу и подставляет вместо нее дату, в случае использования либо заменяет на "-".

Конечно, такая ситуация меня не устраивала, пришлось углубиться в код CMS.

Опущу  тут методы, дам сразу результат - нам необходимо сделать правку в файле /libraries/joomla/database/table/content.php

Ищем нижеследующий кусок

		$this->alias = JFilterOutput::stringURLSafe($this->alias);

		if(trim(str_replace('-','',$this->alias)) == '') {
			$datenow =& JFactory::getDate();
			$this->alias = $datenow->toFormat("%Y-%m-%d-%H-%M-%S");
		}

	

и просто комментируем его.

/*		$this->alias = JFilterOutput::stringURLSafe($this->alias);

		if(trim(str_replace('-','',$this->alias)) == '') {
			$datenow =& JFactory::getDate();
			$this->alias = $datenow->toFormat("%Y-%m-%d-%H-%M-%S");
		}

		
*/

ВНИМАНИЕ!!! Закомментировав все эти строки мы также отключили проверку на не-HTML символы, поэтому если воспользуетесь советом, то ОБЯЗАТЕЛЬНО заполняйте алиас к статье, не использую пробелы и другие спецсимволы!!

Если Вы также хотите использовать кириллицу в алиасах в категориях и разделах необходимо сделать точно такие же правки в /libraries/joomla/database/table/section.php и /libraries/joomla/database/table/category.php

Дорабатываем Custom Properties

Есть такой хороший компонент Custom Properties который позволяет добавлять к статьям тэги и выводить облако тэгов, кстати именно он и используется на этом сайте.

И все бы хорошо, но есть в нем такая неприятная особенность - при клике по тэгу поиск отображается иногда неверно.


После того, как я немного поломал голову, почему одни тэги работают хорошо, а другие не хотят - я выявил закономерность - не показываются тэги к свежим статьям...

 

Дальнейшие изыскания привели к файлику components/com_customproperties/models/search.php к строке 453

if($ce->publish_up) $wherestr[] = "( c.".$ce->publish_up." = " . $database->Quote( $nullDate ) . " OR c.".$ce->publish_up." publish_down)$wherestr[]= "( c.".$ce->publish_down." = " . $database->Quote( $nullDate ) . " OR c.".$ce->publish_down." >= CURDATE() )";

проблема здесь оказалось в том что вызов функции CURDATE() в MySQL возвращает время сервера, а учитывая что он находится в Америке разница составляет 12 часов. То есть нам нужно ждать 12 часов перед тем как статья начнет искаться по тэгам, а это не хорошо.

Для решения проблемы заменяем строчку на следующую -  

        if($ce->publish_up) $wherestr[] = "( c.".$ce->publish_up." = " . $database->Quote( $nullDate ) . " OR c.".$ce->publish_up." Quote($now)." )";
        if($ce->publish_down)$wherestr[]= "( c.".$ce->publish_down." = " . $database->Quote( $nullDate ) . " OR c.".$ce->publish_down." >= ".$database->Quote($now)." )";

 а в строке 451 (то есть чуть выше) добавляем еще 2 строчки кода

 

        $jnow        =& JFactory::getDate();
        $now        = $jnow->toMySQL();

Собственно весь рецепт, как обычной простой, но отнявший немало времени. 

Последние комментарии

  • В любом случае это будет инструкция, постараюсь конечно максимально полно, но инструкция как выявлять ...

    Подробнее...

     
  • Ок жду. у меня почти 120 сайтов из них 90 на джумле разных версий ) так что мне это важно поэтому ...

    Подробнее...

     
  • Да, это важная часть. Проблема в том что айболит видит не всё. То есть это мера необходимая, но ...

    Подробнее...

     
  • Короче, я обновил php пропатчил сайты и почистился от вирусов ай болитом на этом моя процедура защиты ...

    Подробнее...

     
  • Прошло еще почти полтора месяца а так и не дописали (

    Подробнее...

Вы смотрели