Прикрепляем топик без плагина

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

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

Нас интересует главная страница, а значит экшен Index, шаблон вывода которого находится в файле templates/skin/synio/actions/ActionIndex/index.tpl который и будем изменять.

Сразу приведу код
{if !LS::CurUsr() and !Router::GetActionEvent()}
	{include file='topic_topic.tpl' oTopic=$LS->Topic_GetTopicById(8)}
{/if}
Да-да, больше ничего не нужно, результат достигнут ;)


А теперь подробности того как это все работает

Инструмент для динамического обновления CSS

Для того чтобы увидеть результаты изменений в CSS файлах вашего рабочего проекта, необходимо просто перезагрузить страницу. При этом загружается не только таблицы стилей, но JS, разметка полностью и возможно выполняются запросы к БД. На это, как мне кажется, иногда уходит достаточно много времени, которого в наше прогрессивное время постоянно нехватает.
Мне надоело эта ситуация и, не изобретая велосипед, на широких просторах интернета я нашел для себе решение.
Читать дальше →

Несколько вопросов "How to"

  1. Как отключить обязательное заполнение поля Заголовок?.. Чтоб можно заполнять, а можно и нет.
  2. Как сделать вывод топиков по дате последнего обновления? т.е. либо по дате публикации топика, либо по дате публикации последнего комментария в топике.
  3. Как сделать чтобы при добавлении пользователя в друзья он автоматом попадал в раздел активность с определенным набором событий, которые будут отслеживаться?
  4. Тоже самое что и 3 только с блогами и лентой

Пока вроде все =)

Автоматическое подключение блога. Хак.

upd 15/05/10: для тех у кого были проблемы со счетчиком количества подписчиков — архив хака обновлен с инструкциями и функцией для устранения недочета.
Для версии 0.4 выпущен плагин. (тема)


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

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

Для тех, у кого нету изменений в движке хак выложен архивом в разделе бесплатных модулей =>Здесь. Для тех у кого есть изменения, или кому невтерпежь ждать модерации,(пройдена) вся информация под катом.


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

Автосохранение черновика при создании записи

Уверен, из названия топика ясно чем мы будем заниматься. Для того, чтобы цель выглядела «материальнее»:

Скриншоты:
Автосохранение запрещено

Автосохранение разрешено

Сообщение об успешности или ошибке — стандартный Notice в правом верхнем углу.
Реализация.


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

Хак: Выполнение PHP кода на статических страницах

Иногда бывает полезно выполнить на статической странице PHP код (различные сервисы, mini-tools, и т.д.). В WordPress для этого есть специальный плагин, а для полюбившегося LiveStreet сделал так:

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

Модернизация модуля Message - жизнь после редиректа

Описание проблемы.

Создавая новый модуль или экшн, очень часто прибегаю к использованию сообщений Message_AddNotice() и Message_AddError(). Штука очень симпатичная и удобная. Но. Всегда есть одно но. И заключается оно в том, что модуль выводит сообщения только на «текущей» странице. Если же где-то в экшене выполняется редирект, то наше сообщение теряется.

Почему это неудобно? Давайте посмотрим конкретный пример. Я разрабатываю модуль «Гараж». По адресу /garage/user_login можно увидеть список машин пользователя, если просматривающий пользователь = текущему авторизированному, то у каждого автомобиля есть ссылка «Удалить». Эта ссылка указывает на /garage/user_login/del/car_id, где происходит обработка удаления. За это отвечает EventDeleteCar() и именно здесь удобно сказать пользователю «Парень, твоя машина успешно удалена», ну или «Сорри, не получается». Для этого используем стандартное Message_AddNotice(), Message_AddError().

Но, мы не можем оставить пользователя на этой страничке, и в конце реализации event`а перекидываем его назад к списку с помощью func_header_location(). И все. Никакого сообщения пользователь не увидит!

Идея решения.

В Zend Framework есть action-плагин FlashMessenger, который для тех же целей использует сессию. Мы поступим аналогично.


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

Модернизация профиля. Часть 2. Облако интересов

Буквально на прошлой неделе доделал облако интересов.
Суть облака интересов, показывать теги, в которых пользователь заинтересован. То есть, либо теги, которыми он маркирует свои посты (ну а кто из вас пишет о неинтересном? :)), либо теги постов, который пользователь добавляет в «избранное».

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