Плагин "Вопросы"

Закончил работу над еще одним плагином. Целью ставил глубже вникнуть в устройство LiveStreet и создание плагинов, а в итоге получился плагин добавляющий новый раздел на сайт — раздел вопросов и ответов.

Итак, возможности плагина (в целом функционал схож с функционалом топиков, но с некоторыми изменениями):

  1. Зарегистрированные пользователи могут задавать вопросы и отвечать на них.
  2. Категоризация вопросов осуществляется при помощи тегов. На отдельной странице имеется список всех тегов с поиском по ним.
  3. За вопросы и ответы можно голосовать. Рейтинг и сила в таком случае начисляются аналогично топикам.
  4. Правильные ответы автор вопроса может отмечать как решение вопроса. В таком случае вопрос считается решенным и у его названия появляется соответствующая отметка.
  5. Решений для одного вопроса может быть несколько.
  6. За правильные ответы автору ответа начисляется сила и рейтинг. Величина — такая же как и при голосовании за топик.
  7. Вопросы и ответы можно добавлять к себе в избранное. Для вопросов можно добавлять свои теги.
  8. На новые ответы к вопросу можно подписываться.
  9. В «Активности» выводятся следующие события: добавления вопроса/ответа, голосование за вопрос/ответ.
  10. В сайдбаре помимо основных блоков «Прямой эфир» и «Теги» присутствует блок «Лучшее» в котором выводятся лучшие вопросы за указанный в конфиге период.

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

Вопросы по плагинам

Приветствую специалистов!
Хочу создать сайт на LS, напоминающий lit-era.com. В программировании разбираюсь слабо, поэтому хотелось бы реализовать все нужное через плагины. Подскажите, можно ли с помощью имеющихся плагинов (как платных, так и бесплатных) реализовать следующее:
1) В своем блоге сделать более компактный вид на манер витрины (как список романов на литэре — lit-era.com/author/novels/viktor-luginin-u581 например вот так), для демонстрации своих выложенных работ.
2) Можно ли каждый из блогов привести под вид произведения с делением на главы, вместо сплошной стены текста?
3) (Вытекает из «2») Коментарии сделать не в самом конце произведения, а под аннотацией.
4) Возможны ли внутренние ссылки внутри произведения на его части, или части других произведений?
5) Более гибкая система статистики (как у групп вконтакте)?
6) Возможность дополнять и редактировать уже выложенное произведение?
7) Прикрепление фиксированных тегов на выбор к произведению?
8) Возможность вставлять в конце публикации голосование из нескольких вариантов?
9) Возможно ли введение внутренней валюты на манер вконтактовских голосов?
10) Можно ли ввести ограничения к голосованию по разным признакам? (пол, возраст и т.д.)
11) Возможность ограничения просмотра произведения по разным признакам (в первую очередь 18+ имеется в виду)?
12) Можно ли сделать поиск произведений по тегам?
13) Можно ли сделать раздельный блог публикаций и обновления произведений и блога общего?

Надеюсь, поможете хотя бы с частью вопросов :) заранее спасибо!

Плагин «Аватар & Фото»


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

Возможности:
— Автоматическая установка аватара и фото у пользователя
— Изображения выбираются в случайном порядке
— Изображения выбираются по полу

Как работает:
— Если у пользователя загружено фото и не загружен аватар — плагин скопирует фото на место аватара
— Если у пользователя загружен аватар и не загружено фото — плагин скопирует аватар на место фото
— Если пользователь изменит пол в настройках и фото присвоено плагином (не пользователем) — ему будет загружено новое изображение
— Если пользователь изменит пол в настройках и аватар присвоен плагином (не пользователем) — ему будет загружено новое изображение
— Если пользователь удалит в настройках фото и аватар — ему будет загружено новое изображение

Зачем нужен этот плагин?
В каталоге есть бесплатные аналоги. Зачем покупать этот плагин? Данный плагин был написан по просьбе заказчика которому не понравилось как работают другие плагины поэтому был написан этот. Цена работы указана соответствующая.

Как в плагине задать путь к файлу шаблона плагина?

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

$this->Subscribe_Send('question_new_answer',$oQuestion->getId(),'notify.comment_new.tpl',$this->Lang_Get('notify_subject_comment_new'),array(
				'oQuestion' => $oQuestion,
				'oComment' => $oCommentNew,
				'oUserComment' => $this->oUserCurrent,
			),$aExcludeMail);


Файл notify.comment_new.tpl забирается из шаблона сайта. Подскажите, пожалуйста, как правильно прописать, чтобы подтягивался файл из шаблона плагина.

Habra Style [ссылка на скачивание]

Добрый вечер! livestreet.ru/blog/18391.html идет в свободное плавание…

Вот ссылка на скачивание: yadi.sk/d/TRvEWQPWmn2z2
Вот ссылка на демо: habrastyle.ru

От поддержки не отказался бы: yasobe.ru/na/habrastyle

P.S. За ссылки прошу прощения:
Ошибка: Спам защита! Вам нельзя писать топики с активными ссылками.

Расширение "Навыки" или типо того

Привет! Скажите, есть ли в LS какое нибудь расширение типа личных навыков?
Например как в профиле сделаны контакты. Добавляешь селект, а из него выбираешь значение, «PHP-программист, Маркетолог» и так далее…

Вопрос по записи данных в разные таблицы БД и ORM

Пробую написать плагин вопросов. Делаю по аналогии с топиками. В БД создаю две таблицы для вопросов:

CREATE TABLE IF NOT EXISTS `prefix_question` (
  `question_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(11) unsigned NOT NULL,
  `question_title` varchar(200) NOT NULL,
  `question_tags` varchar(250) NOT NULL COMMENT 'tags separated by a comma',
  `question_date_add` datetime NOT NULL,
  `question_date_edit` datetime DEFAULT NULL,
  `question_user_ip` varchar(20) NOT NULL,
  `question_publish_index` tinyint(1) NOT NULL DEFAULT '0',
  `question_count_read` int(11) unsigned NOT NULL DEFAULT '0',
  `question_cut_text` varchar(100) DEFAULT NULL,
  `question_text_hash` varchar(32) NOT NULL,
  PRIMARY KEY (`question_id`),
  KEY `user_id` (`user_id`),
  KEY `question_date_add` (`question_date_add`),
  KEY `question_text_hash` (`question_text_hash`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


CREATE TABLE IF NOT EXISTS `prefix_question_content` (
  `question_id` int(11) unsigned NOT NULL,
  `question_text` longtext NOT NULL,
  `question_text_short` text NOT NULL,
  `question_text_source` longtext NOT NULL,
  `question_extra` text NOT NULL,
  PRIMARY KEY (`question_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


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

Базовые вопросы по LiveStreet CMS

Всем привет! Я сейчас в поиске нового движка для своих разработок. С опенсорными php-движками как-то грустно все сейчас. Активно развиваются фреймворки, а КМС или совсем хилые, или очень устаревшие. Drupal 8 не оправдал надежд. Собирался даже свой движок писать, от отчаянья.
Случайно наткнулся на Ливстрит. В целом нравится. Хоть и плохо, что нет поддержки современных стандартов PSR. Но есть некоторые базовые вещи по структуре, которые не очень понятны. И прошу пояснить, кто может, или накидайте ссылок, где можно почитать, честно искал но не нашел.

Вот есть архитектура MVC. Про V и C я понял, V — это модуль на базе Smarty, а C здесь называются ActionXXX. А вот с M не очень понятно. Есть ModuleXXX, MapperXXX и EntityXXX. Это все к модели относится? А зачем тогда такое разделение было задумано? Наверно есть, какие-то причины?

И еще посоветуйте где почитать про ORM. А то нашел много статей про это на сайте, но хочется с самого начала понять как работат. Мне нравится как в yii это сделано. Но здесь сильно отличается.

Плагин "Отзывы"

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

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

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

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