-6.74
Рейтинг
0.07
Сила

Эндрю

Плагин BlogContent - каждому блогу свой контент.

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

После установки плагина в основном меню (и в админке aceAdminPanel) появляется ссылка на страницу с настройками на которой можно установить соотношение типа топика и блога. После настройки при добавлении определенного типа топика, плагин будет исключать из списка те блоги куда размещать данный тип не разрешено. Также можно настроить типы контента для вновь создаваемых и персональных блогов.

Причина создания данного плагина кроется в том, что я планирую к реализации серию плагинов расширяющих стандартный тип топика (wiki, events, plases). И чтобы не множить разделы и акшины под каждый, решил просто добавить фильтрацию к текущим. Возможно кто-то захочет сделать свой тип топика подобным образом.

Буду очень рад замечаниям и пожеланиям по функционалу.

Скачать:
livestreetcms.com/addons/view/393/
shlykov.info/uploads/blogcontent.zip

З.Ы. В ближайшее время готовится к публикации плагин Wiki — страницы с историей, быстрой линковкой и ЧПУ.

Модификация списка блогов

В Livestreet CMS в списке блогов и в топе блогов выводятся все, кроме персональны блогов. Как-то раз мне потребовалось вывести в этот список еще и личные блоги пользователей.

Этот способ решения проблемы с выводом списка блогов придуман лично мной, и я не гарантирую, что он рационален, прост или полностью правилен

Порыскав по системным файлам, отслеживая выполнение кода, я нашел функцию, которая составляет этот список, а в ней и запрос к базе данных

Это функция GetBlogsRating в файле classes/modules/blog/mapper/Blog.mapper.class.php приблизительно на 280 строке

Посмотрев на нее, видно, что в запросе к базе данных фильтруются персональные блоги:
WHERE b.blog_type <> 'personal'


По умолчанию у личных блогов нет своего собственного url-адреса, они доступны по адресу site.ru/my/имя_пользователя. Поэтому, если мы просто уберем эту проверку, блоги выведутся, но ссылка будет вести в никуда

Поэтому я решил сделать следующим образом: выводить в список те блоги, у которых есть url-адрес

Я заменил вот эту проверку:
WHERE b.blog_type <> 'personal'
на вот такую:
WHERE 		b.blog_url IS NOT NULL


Сейчас ничего не изменится, так как у персональных блогов в базе данных url-адрес указан как NULL

Дальше есть несколько вариантов действий:
  • Вручную подправить url-адрес в базе данных у нужных блогов, таким образом, в список будут выводится только те блоги, которые вы выберете сами
  • Создать url-адрес для всех персональных блогов (уникальный для каждого) и назначать url-адрес каждому новому созданному персональному блогу

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

Для этого, в том же Blog.mapper.class.php нашел функцию CreatePersonalBlog приблизительно на 260 строке

Я уже не помню, устанавливается ли там url-адрес для персонального блога или нет. В общем ищем там (в функции) строку:
$oBlog->setUrl(что-то там);
(если ее нет, то добавьте ее, к примеру после $oBlog->setType('personal');)

Вместо этого «что-то там» и надо подставить url-адрес блога. Важно, чтобы он был уникален

Туда можно подставить логин пользователя:
$oUser->getLogin()

Но лучше что-нибудь еще добавить к этому, к примеру:
"blog_".$oUser->getLogin()
Url-адрес будет таким: blogs/blog_имя_пользователя

Теперь эти блоги появятся в списке (не забудьте почистить кеш!) и ссылки на них будут работать правильно

У этого способа правда есть недостатки: происходит дублирование контента, адреса my/имя_пользователя и blog/blog_имя_пользователя содержат один и тот же текст, что может не понравится поисковикам

Плюс к этому, по адресу my/имя_пользователя будет отображаться немного другое меню, эту проблему я пока не стал решать, но ее я думаю можно решить на уровне шаблона: в шаблоне блога проверять, не является ли он персональным и подключать соответствующее меню в этом случае

Для сайтов, которые уже давно работают и где уже много персональных блогов будет трудно (а возможно и очень трудно) поменять в базе данных вручную все url-адреса персональных блогов. Поэтому можно придумать какой-нибудь sql-запрос к базе данных, вроде этого:
UPDATE table имя_таблицы_блогов AS b SET b.blog_url=(SELECT u.user_login FROM имя_таблицы_пользователей AS u WHERE u.user_id=b.blog_owner_id) WHERE b.blog_urs IS NULL


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

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

Фотосет + фоторама

Подключил себе вместо фототопиков фотораму.
Возникли некоторые моменты, которые требуют решения.
1. Нужно, чтобы на загружаемых фотографиях простовлялся ватермарк.
2. Почему-то сайт не проглатывает фотографии более 800 Кб. В настройках выставлено 6 Мб.
3. Как вставлять блок с фоторамой во внутрь топика? Чтобы сначала текст, потом фоточки, потом снова текст и снова фоточки.

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

Горе у меня, ребята… Вообще не знаю, с чем это связано, но у меня на сайте не отображаются видео из вконтактика. Пустое пространство появляется и все.
Вставлял такой код. Из всего из этого отображается только ютубовский ролик.
<iframe src="http://vk.com/video_ext.php?oid=12824791&id=162582797&hash=ea883bcc7f01846f&hd=1" width="607" height="360" frameborder="0"></iframe>

<iframe src="http://vkontakte.ru/video_ext.php?oid=14055366&id=159572110&hash=1a556f3caf1542be&hd=1" width="607" height="360" frameborder="0"></iframe>

<video>http://vkontakte.ru/video_ext.php?oid=14055366&id=159572110&hash=1a556f3caf1542be&hd=1</video>

<video>http://vk.com/wall12824791_5579?z=video12824791_162582797%2Fbbe7b8075b26004528</video>

<iframe width="560" height="315" src="http://www.youtube.com/embed/K4gRtZNWxls" frameborder="0" allowfullscreen></iframe>


Кстати, на этом же моем сайте был пост, где все-таки вконтактовское видео работало. И был там такой код:
<iframe src="http://vkontakte.ru/video_ext.php?oid=14055366&id=159572110&hash=1a556f3caf1542be&hd=1" width="607" height="360" frameborder="0"></iframe>

Я внес небольшие изменения (дописал строку ниже, в сам код пллеера не влезал). Сохранился. Видео уже не показывалось. Опять отредактировал (убрал то, что дописывал) — а видео все так же и не работает.

Я наверное просто упустил какой-то момент… В какую сторону капать?

Краткий мануал по работе с блоками или как правильно изменять шаблоны LS

Уже второй день разбираюсь с LS — добился того, что нужно, при этом пришлось прочитать много инфы. Учитывая, что я ни разу не программист, изначально многое не понятно в движке, так как большая часть документации и объяснений находится в разных топиках, комментариях, мануалах.

Надеюсь данный топик поможет начинающим понять структуру LS, как с ним работать, как редактировать шаблоны и как добавлять нужные блоки на сайт.


Читать дальше →

[Решено] Вызов функции jquery в header.tpl

Добрый день, уважаемые.

Сегодня 5 по счету день, который я провожу без сна из за проклятья под названием «вызов функции». Очень прошу Вас помочь обрести мне покой.

Пытаюсь подключить к ls jquery галерею PikaChoose по примеру Фоторамы. Скачал js плагин, css плагина, собственно сам jquery. Инициализировал их в header.tpl в нужном порядке. (сначала кьуэрри, потом цсс, потом плагин) далее необходимо инициализировать функцию вызова плагина… По мануалам делается это в header.

Читать дальше →

Кнопка "Добавить пост" при просмотре блога




Добрый день ув. Сообщество!
Сегодня я бы хотел рассказать о небольшой «фиче», которую можно легко добавить к себе на сайт под управлением LS. Фича заключачается в следующем — при просмотре блога появится ссылка, при нажатии на которую, пользователь будет публиковать сразу в этот блог (присоединен он к блогу или нет).
Фича подходит для сайтов с большим кол-вом блогов, чтобы пользователи не мучались, листая выпадающий список с большим кол-вом блогов, да и вообще, по-моему, такая структура более понятна обычным пользователям.

Читать дальше →

Мануал по интеграции плагинов с плагином "Role", на примере плагина "Публикация от чужого имени"

Данный топик является примером интеграции ролей с другими плагинами, и никак не призывом к действию. Предложения и замечания принимаются в комментариях.

Первое что нужно сделать для интеграции — это создать чекбоксы для плагина "Публикация от чужого имени" в добавлении и редактировании ролей.
Плагин "Role" имет хуки.

  • template_roles_role — в шаблоне добавления к списку прав роли
  • template_roles_user — в шаблоне добавления к списку прав отдельному пользователю
  • template_roles_role_show_end — в шаблоне редактирования к списку прав роли
  • template_roles_role_user_show_end — в шаблоне редактирования к списку прав отдельному пользователю

Читать дальше →

Система блоков - расставляем точки...

Была потребность разобраться с системой блоков. Очень много чего перечитал с сайта. Например, Система блоков. Ниже будет краткое изложение полученных знаний. Попытаюсь рассказать про систему блоков простым языком, чтобы и новички поняли.

Самое главное, что я выяснил:
1. Блоки можно создавать самостоятельно.
2. Блоки можно размещать в произвольном месте страницы (нужно заранее указать эти места)
3. Блоки могут отображаться в зависимости от Action'ов и Event'ов
4. Блоки могут отображаться в зависимости от адреса страницы. Адрес страницы можно задать с помощью регулярных выражений.
Итак, основные моменты.
Читать дальше →