Сюда обычно чего-то пишут. Но меня ломает...

Joomla на сателитах

Времени делать проекты для людей практически нету - леплю только на досуге ГС.

Если вы решили сделать ставку на нормальные ГСы, с уникальным, читаемым, полезным пользователям контентом, да еще и с удобной навигацией (то есть это вроде даже и не совсем ГС, а вполне себе человечий сайт, но монетизируется он сами понимаете как), то тут было бы неплохо использовать портальный движок, такой как joomla.

Из Джумлы не торчат блоггерские рожки да ножки как в вордпрессе например (облака тегов, сортировка по дате и т.п.). На джумлу есть куча бесплатных шаблонов, которые не надо руссифицировать, поскольку руссификация там реализована в виде отдельного лэгвич-пака. Джумла гораздо менее прихотлива по ресурсам. Ну и наконец при наличии приличного шаблона сайт на ней выглядит совсем как настоящий ;)

Но есть и минусы. Первоначальная настройка движка после инсталляции занимает огромное количество времени. В джумле нет автопагинации длинных статей. Нет автоматического вывода статей в виде тизеров (как excerpt в вордпрессе). Ну и опять же в базовой сборке не поддержки metaweblog api. Последнее не радует лично меня, потому как я привык заливать контент на ГС с помощью semagic’a (вы же не заливаете контент через веб-морду да?).

Пара советов ниже о том, как побороть указанные минусы. Собранная по ним сборка по удобству заливки контента почти не будет отличаться от сборки на вордпрессе. А скорость развертывания будет даже выше, потому что вам не нужно руссифицировать шаблон. Итак:

1. Придется потратить на первоначальную установку и настройку движка некоторое время. Лучше сразу делать две инсталляции - из одной делаем живой сателит сразу с контентом, на второй повторяем все те же самые настройки, но сайт держим пустым. Заводим категории, настраиваем меню, включаем модули, в общем получаем вполне себе приличные два сайта - один готовый сателит, второй - пустой. На пустом выгружаем базу - mysql -uuser -ppassword dbname >dump.sql и архивируем все в один архив. Развертывание будет сводиться к разархивированию архива, глобальной замене в дампе имени домена, заливке дампа и правке имени базы в configuration.php. На все 5-7 минут. Еще минут 20 на подбор и установку шаблона, благо инсталлеры в джумле весьма удобны.

2. Для того, чтобы наши статьи не вываливались в полном объеме в категориях, ставим не особо известный но весьма удобный плагин AutoReadMore. Он обеспечит нам аналог the_excerpt в виде blog - content category.

3. Теперь основная головная боль - джумла не умеет делать авторазбивку статей на страницы. Есть специализированный цсс-класс, который определяет разрывы страниц, и код разрыва (<hr class=”system-pagebreak” />)надо вставлять ручками из редактора. Зело неудобно, особенно если в статье хотя бы полсотни страниц. Двиглу уже огромное количество лет и никто не написал соответствующего расширения. Странно. Ладно, придется делать самим. Как - об этом в следующем пункте.

4. Как я уже говорил, я предпочитаю заливаться из семагика. Поэтому мне важно поднять на джумле XML-RPC MetaWeblog API. Посклольку это все равно плагин, вот в него и вставим функцию автопагинации. Для начала ставим сам плагин - версию 0.9, она самая последняя на сегодня. (Правильным является конечно же создание модифицированного плагина. Но нам не до жиру, нам надо чтоб работало. Развертываемся мы все равно из дампа.) Поэтому мы тупо правим код плагина - /plugins/xmlrpc/metaweblog.php.

После строчки         //using <hr> as a read more separator

Вставляем

$content['description'] = mb_eregi_replace (’<hr’, ‘<hr class=”system-pagebreak”‘, $content['description']);

Это позволит нам ручками добавлять разрыв страницы (<hr>) при правке текста в семагике.

Теперь ниже ищем: jimport(’joomla.filter.filteroutput’);

И перед этой строчкой вставляем:

$ii=4000;

while ($ii <= mb_strlen ($introtext)) {
$ii=mb_strpos ($introtext, “.”, $ii);
$introtext=mb_substr($introtext,0, $ii+1) . ‘<hr class=”system-pagebreak” />’ . mb_substr($introtext,$ii+1,mb_strlen($introtext)-1);
$ii=$ii+4000;
}

Готово? Ну вот и хорошо. Этот примитивный код будет вставлять разрывы страниц после каждой точки, которую найдет после каждых 2000 (4000/2, потому что юникод) символов. То есть на каждой странице будет немного больше 2000 символов. Пагинация топорная, если есть желание код можно доработать ;) Но пока сойдет  и так. Теперь как настроить плагин, желательно чтобы цепляться к нему также как к вордпрессу. Тут можете прочитать детальные рассуждения о  настройках, но если коротко, то:

1. Идем в System settings, и включаем Web Services
2. Идем в Plugins и включаем XMLRPC-MetaWeblog API
3. В настройках плагина включаем Use <HR> as page separator
4. Если хочется, чтобы джумла откликалась на тот же путь (/xmlrpc.php), что и WP, прописываем в .htaccess перед Joomla! core SEF Section строчку:

RewriteRule ^xmlrpc.php$ xmlrpc/index.php

Настройки для подключения клиента будут выглядеть также как для вордпресса:

settings

Вот пожалуй и все.

Небольшое дополнение - теперь вам теперь не надо вносить изменения в код плагина. Правленный плагин лежит тут. В нем реализовано и еще несколько полезных функций.

Материалы по теме

12 Каментов к статье “Joomla на сателитах”. Оставьте камент »

  1. Камент от SkyDSL — 2009/12/11 @ 23:43

    Уже в который раз натыкаюсь на темы про создание ГС. Простите за неосведомленность, но готовый сайт с контентом на пятьдесят страниц - это как? Откуда такое наполнение? Просто покупка статей? Ведь самому написать такой объем сложно.

  2. Камент от Timp — 2009/12/12 @ 10:09

    Ну вы будто сами не знаете :)
    Это рерайт (как в вашем случае например - геморно, зато хорошо сидит в индексе), копирайт, копипаст, синонимайзинг, сканы, переводы. Вот пожалуй как то так :)

  3. Камент от KeyArch — 2009/12/25 @ 13:28

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

  4. Камент от Даниил — 2010/01/17 @ 19:25

    Спасибо за статью. Как решили проблему с в Semagik?

  5. Камент от Timp — 2010/01/18 @ 13:32

    Даниил, не понял, какую именно проблему? П.4 по моему исчерпывающая инструкция, или речь идет о чем то другом?

  6. Камент от Павел — 2010/02/05 @ 18:11

    Здравствуйте Timp, в принципе все понятно(%60) не понял самой главной мысли, зачем пустой сайт?для того что б создать шаблон для заливки контента на очередной гс?
    вы мне очень поможете, если объясните как новичку..если не трудно, и у вас есть время конечно..(на мыло писать постеснялся)

  7. Камент от Timp — 2010/02/17 @ 9:15

    Павел, да, пустой сайт нужен, чтобы собрать из него шаблон для последующего быстрого развертывания.

  8. Камент от Саша — 2010/07/03 @ 21:07

    Спасибо за статью!
    А как сделать тоже,но без использования программы т.е. данные вводить через браузер?

  9. Камент от Timp — 2010/07/04 @ 9:10

    Ну, разработчики джумлы думают, что это надо делать руками - внизу редактора в панели управления есть кнопки pagebreak и readmore. И на самом деле они в чем то правы - если вы постите материалы через административную панель, то вы их наверно правите, причесываете под сайт, и соответственно странички проставите ручками там, где они нужны, а не там где робот нашел конец предложения после очередных 2000 символов :)
    А эта статья про сателиты, ну какой смысл наполнять их из браузера? Я в ближайшее время выложу кусок кода, который пострит материалы из файла по xmlrpc metaweblog api. Это куда как быстрее и удобнее.

  10. Камент от Саша — 2010/07/04 @ 14:12

    Из файла это хорошо,но можно что б из Бд тоже))

  11. Камент от faraoni — 2010/08/25 @ 13:22

    Вопрос такой, все сделал по вашему посту, но не подключается семагик, не находит сайт. Стоит джумла.
    В .htaccess так записал
    RewriteRule ^xmlrpc.php$ xmlrpc/index.php

    ########## Begin - Joomla! core SEF Section наверно сдесь, что-то не правильно.

    Не знаю, что же еще делать-то. Помогите

  12. Камент от Timp — 2010/08/25 @ 13:57

    faraoni, попробуйте в настройках клиента прописать прямой путь - xmlrpc/index.php . Если не будет работать, вышлите мне скрин этих настроек, и кроме того, хотелось бы посмотреть на больного, лечить по фотографии я не умею :)
    Пишите на me[at]timp[dot]ru

RSS поток бредоспама. Трэкбэк адрес

Оставьте камент




Политика комментирования:

Как вы можете заметить, тут нет поля "сайт", бесполезно оставлять бессмысленные каменты ради ссылок.
Однако ссылки в теле комментариев, как, например вот эта, приветствуются и открыты для индексации.
Поэтому комментарии проходят ручную модерацию. Адекватные комментарии обычно апрувятся.