Плагин замены стандартного загрузчика фото в фотосете

11
Плагин заменяет стандартный загрузчик в фотосете на jQuery File Upload

Разрабатывался на шаблоне new-jquery (с совместимыми шаблонами тоже должен работать).

Выглядит так:


Плагин пока сыроват, но всеже он работает (клиент не жаловался). А так как в ближайшее время руки у меня до него точно не дойдут, решил всеже поделиться «затак».

качать тут

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

Бесплатный плагин «LSGallery»

30
При поддержке проекта paintstrike.ru мы разработали бесплатный плагин для пользовательских галерей. Его можно скачать на GitHub или в официальном каталоге модулей.

В чем преимущество нашей Галереи?

Во первых она бесплатна и открыта :). Во вторых она грамотно спроектирована, быстро работает, красиво выглядит и удобна в использовании. Посудите сами:




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

[решено] «группировка» и вывод записей из нескольких блогов

7
Доброго времени суток. Возникла необходимость в «группировке» вывода записей из блогов.
Есть блоги a,b,c,d нужно в одном «разделе» вывести записи из блогов a и c, в в другом — b и d.
Вопрос. Как это сделать (понятно, что это плагин, а чуть конкретее)?
Есть ли похожие плагины, на основе которых можно было это реализовать (искал в разделе «Модули» но ничего похожего не нашел)?


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

Как прикрепить пост к нескольким блогам сразу? И можно ли прикрепить пост к географии?

4
Привет! Собственно, вопрос к сообществу. Есть ли готовые решения (плагины или собственные разработки) того как прицепить пост к сразу нескольким блогам, а также как сделать привязку поста к географии (городу, стране)?

Нужна такая функциональность, готовы заплатить за помощь в решении проблемы.

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

5
В 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-адреса, установить его равным логину автора блога.

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

Nofollow для всех, кроме Администратора [Решено]

14
Друзья, требуется ваша помощь. Недавно решил попробовать Livestreet. До этого делал не сложные сайты и разбираюсь в HTML гораздо лучше, чем в PHP.

Установил ЛайвСтрит, закрыл ссылки тегом nofollow, но вот беда, хочу убрать nofollow для админских постов. Пересмотрел много сообщений на данном форуме. Наткнулся на пост В топку noindex

В комментариях к нему один из участников предлагает следующее решение проблемы:
Text.class.php
168 строка добавьте
if (BLOG_URL_NO_INDEX && !$this->oUserCurrent->isAdministrator()) {

и топики созданные админом не будут проходить через MakeNoindex.

Попробовал так сделать. Не выходит. Думаю потому, что ответ уже устарел, ведь дан он был в 2009 году. Возможно сейчас эту строку нужно добавлять в другое место. Проблема в том, что я не знаю, куда именно. Поэтому решил задать вопрос снова: подскажите, как можно убрать nofollow из постов Администратора?

Моя версия LiveStreet — 0.5.1

РЕШЕНИЕ ДАННОЙ ЗАДАЧИ
Благодарность beauty_free и ort за то, что отозвались и помогли в решении проблемы.

Итак, в файле Text.class.php (/engine/modules/text.Text.class.php) находим строку (у меня строка 79)
if (Config::Get('view.noindex') and isset($this->oJevix->tagsRules['a'])) {
    $this->oJevix->cfgSetTagParamDefault('a','rel','nofollow',true);
}

Заменяем на
$oUserCurrent = $this->User_GetUserCurrent();
if (Config::Get('view.noindex') and isset($this->oJevix->tagsRules['a']) and (!$oUserCurrent or !$oUserCurrent->isAdministrator())) {
    $this->oJevix->cfgSetTagParamDefault('a','rel','nofollow',true);
}

Результат: ссылки с администраторских постов становятся do-follow. (В уже созданных постах ничего не изменится, нужно пересохранять старые посты)

Псевдонимы в Static page (url без page)

6
Требуется изменить формат вывода статических страниц, с domen.ru/page/articles/article1/ на domen.ru/articles/article1/ или более лучший вариант domen.ru/articles/article1.html

при добавлении в config.local.php
$config['router']['uri']['~^articles$~i'] = "page/articles";

создаётся псеводоним для страницы domen.ru/articles/ а вложенные страницы отображаются в формате domen.ru/page/articles/article1/

Как создать псевдонимы для вложенных страниц?

Новое в LiveStreet 1.0 для разработчиков

22
Для разработчиков плагинов и шаблонов в LiveStreet 1.0 есть некоторые изменения.
Постараюсь их все собрать в одном месте.
Изменений, на самом деле, не так много.

Список:
  1. Модуль GEO, теперь в своих плагинах с помощью него можно делать географические привязки различных объектов
  2. Модуль Subscribe, организация подписок пользователей на различные события и рассылка по ним. Например, через него реализован механизм подписки на комментарии к топикам
  3. js вынесены за пределы шаблона в библиотеки, теперь в шаблонах достаточно только переопределить необходимый функционал
  4. Механизм валидации данных, подробнее — livestreet.ru/blog/dev_documentation/10221.html
  5. Возможность в тулбар добавлять свои элементы через стандартных механизм блоков
  6. Консоль для автоматической генерации каркаса плагина
  7. Переопределять настройки редактора стало проще, теперь они находятся в ls.settings
  8. Класс Object переименован в LsObject, позволит избежать проблем с некоторыми IDE и подключить автоподстановку методов
  9. Доработан модуль Image, теперь для сохранения изображения на другой сервер, достаточно переопределить методы SaveFile() и RemoveFile()
  10. Каптча вынесена в блочный хук {hookb run=«popup_registration_captcha»}, что позволит ее переопределить
  11. Возможность делать всплывающие подсказки через poshytip или infobox.js (с погрузкой данных через ajax)
  12. Появился модуль Tools, сейчас в нем только один метод — формирование облака тегов
  13. Шаблоны блоков перенесены в отдельный каталог /blocks/
  14. При ручном определении сеттеров в сущностях теперь следует возвращать данные как return $this->_getDataOne('blog_id'); — это позволит избежать проблемы с Notice ошибками
  15. Прямой эфир теперь автоматически группирует вкладки, если их много, в выпадающий список
  16. Смена приоритетов при загрузке блоков — теперь блоки из конфига загружаются после блоков, объявленных в коде экшенов, соответственно блоки из конфига имеют более высокий приоритет. Это позволит применять правила к блокам после окончательного определения экшена/евента, которые можно переопределить в ходе выполнения логики экшена/хуков.
  17. Возможность делать именованные евенты и управлять блоками из конфига о их именам. Например для евента на основе регулярно выражения можно задать имя и его использовать в правилах блоков. Если имя не задать, то оно автоматически определится как имя метода евента.
  18. Теперь все текстовки плагинов помещаются в пространство 'plugin.name', например, Get_Lang('plugin.page.admin_title');


Если есть вопросы, то отвечу более подробно.
  • +13
  • 26 апреля 2012, 15:49
  • ort

Как запретить вывод публикаций из определенного блога на Главной и в Новых?

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

Публикации из определенного блога (или нескольких блогов) не должны появляться на главной странице и в новых.

Поясню для чего мне это нужно. Хочу оставить пару НЕ тематичных блогов (например, «курилка»), НО запретить вывод публикаций из этих блогов в основном разделе сайта (а это как правило главная и новые).
  • -3
  • 24 апреля 2012, 20:06
  • g3n0m

Доступ к сайту только для администрации

5
По нужде сделал что-то вроде «Ведутся технические работы». Доступ к сайту будет закрыт всем кроме администрации.

1. открываем /plugins/aceadminpanel/classes/actions/ActionAdminSiteSettings.class.php
находим
'adm_set_general_close' => array(
                        'type' => 'checkbox',
                        'config' => 'general.close',
                    ),

после, добавляем:
'adm_set_general_reconstruction' => array(
                        'type' => 'checkbox',
                        'config' => 'general.reconstruction',
                    ),



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