Модифицированный дистрибутив LiveStreet от Kitsune Solar

Статус: тестирование.

LiveStreet CMS — бесплатный блого-социальный движок. Позволяет удобно и быстро создать сообщество с коллективными блогами.

Описание

Версия LiveStreet CMS, модифицированная Kitsune Solar для своих проектов.

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

"Супер-хуки" в шаблонах - вставка кода в любое место

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

Вот и сейчас я хочу рассказать о новой классной фиче, которая, на мой взгляд, может оказать такое же революционное влияние на развитие движка (уж простите за нескромность), которое на него оказала реализация идеи плагинов с автонаследованием.

Если кратко, то суть такая: в шаблонах можно задавать практически произвольные точки (назовем их HTML-хуки или DOM-хуки) с помощью CSS-селекторов а-ля jQuery для вставки своего кода.

А теперь подробнее.
Читать дальше →

По поводу сбора конфиденциальной информации LS.

Для начала преамбула.
Мы начали разработку сайта на livestreet. Работаем с этой CMS в первый раз. И по этому мы начали изучать саму CMS. Второй день изучения и возникло несколько неприятных моментов в плане безопасности движка и самого сайта.

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

Модификация плагина Extended Registration

Наверняка большинство вэб-мастеров знают и используют плагин Extended Registration. Но если вы читали эту статью на хабре (если нет, но стоит наверно уделить ей внимание), то понимаете об таящейся опасности в капче.

Под катом ссылка для скачивания модифицированного плагина.

Внесено 2 добавления.

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

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

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

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

Помечаем куски шаблонов в скомпилированой странице for 0.5.1

Навеяно топиком, хотя сам использую для верстки практически с момента выхода 05 версии, както не подумал что это может быть полезно и другим ;) исправляюсь )

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

Серьезное предложение по шаблонизатору.

Всем привет долго я занимался версткой, и Joomla десятки шаблонов и WP пару десятков. И даже vBulletin 3.8 ой мама дорогая и даже 4.* (кто знает тот поймет :))

Так что мне есть с чем сравнивать шаблонизатор LS, хорошо что выбрали Smarty очень умненький и интуитивный, как верстальщик это говорю.

Но в чем проблема не всегда понятно где какой шаблон? в каком Action или еще где? А бывает ИНОГДА что плагин БЛИН заменяет шаблон, не знаю почему такое решение выбрали :) как мне кажется не самое удачное но ладно. ПО мне так хуки лучшее решение…

Ну так в чем ПРЕДЛОЖЕНИЕ!

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

Модификации за $

1. Нужно модифицировать профиль пользователя на вот такой логин livestreet пароль demo11 чтобы посмотреть как выглядит. Блок «Моя личная страница» кроме кладки мои действия, но в принципе и он бы не помешала, а так смотрите там как она работает.
Читать дальше →

Большие хотелки

Есть желание на основе лайвстрит проапрейдить текущий турсайт
общая структура
страна-регион-(город)-отель
город может отсутствовать
туры(хтмл, файл) привязаны к любому объекту из структуры регионов, тур тегируется видом(экскурсионные, горящие и тд) возмност коментов и добавления фотогалереи или привязки к текущей
для региона(города) погода(импорт weather.com или гизметео), интересные места(тегируются-музеи, рестораны и тд) для интересных мест возможность коментариев
для отеля — отзывы (текст, фото, (видео?)) с возможность коментов. Возможность для пользователя добавлять фото и видео без публикации отзывы.
фото — должны публиковаться в контексте страны региона отеля возможность постинга фоток на любом из этих уровней. Коментарии к фоткам. Рейтинг.
Поиск пары.
Блоги возможность привязки поста из блога к определенной стране — региону.
малость сумбурно, но суть я думаю ясна
от Вас деньги и время на разработку, предложения на мыло rybkin.v@gmail.com, или ася 5167881