-6.38
Рейтинг
0.46
Сила

Пересчет количества коментариев в топике

Здравствуйте, вопрос в следующем:
Я многократно программно удаляю\добавляю комментарии к топику, но показатель «количество комментариев» только увеличивается. Должен ли я его также программно пересчитывать?

Хукеты в livestreet 1.0

Обработка блока с популярными пользователями на главной странице


class PluginSimpletpl_BlockSimpleUsersTop extends Block {
	public function Exec() {
		$aResult=$this->User_GetUsersRating('good',1,Config::Get('plugin.simpletpl.count_top_users'));

		$this->Viewer_Assign('simpletpl_aUsersTop',$aResult['collection']);
	}
}


Fatal error: Uncaught exception 'Exception' with message 'Undefined method module: GetUsersRating' in C:\web\xampp\htdocs\is\engine\classes\Engine.class.php:597 Stack trace: #0 C:\web\xampp\htdocs\is\engine\classes\Engine.class.php(524): Engine->GetModule('GetUsersRating') #1 C:\web\xampp\htdocs\is\engine\classes\Module.class.php(56): Engine->_CallModule('GetUsersRating', Array) #2 [internal function]: Module->__call('GetUsersRating', Array) #3 [internal function]: ModuleUser->GetUsersRating('good', 1, 10) #4 C:\web\xampp\htdocs\is\engine\classes\Engine.class.php(551): call_user_func_array(Array, Array) #5 C:\web\xampp\htdocs\is\engine\classes\Block.class.php(71): Engine->_CallModule('User_GetUsersRa...', Array) #6 [internal function]: Block->__call('User_GetUsersRa...', Array) #7 C:\web\xampp\htdocs\is\plugins\simpletpl\classes\blocks\BlockSimpleUsersTop.class.php(24): PluginSimpletpl_BlockSimpleUsersTop->User_GetUsersRating('good', 1, 10) #8 C:\web\xampp\htdocs\is\engine\modules\viewer\plugs\insert.block.php(63): Plugin in C:\web\xampp\htdocs\is\engine\classes\Engine.class.php on line 597


почему ошибки?

данные функции это хукет-функции
как использовать хукеты в версии 1? Как активировать тестовый плагин (не найден плагин пишет)?
поскажите что менять чтобы перевести плагин с версии 0.5 на 1.


Буду благодарен всем за разъяснения ошибок и помощи в образовании)

Как добавить username в ватермарк?

Всем привет!

Не даёт покоя насущный вопрос: "Как добавить имя пользователя (загрузившего картинку) в ватермарк?"
Курил блоги и ФАК, но везде вопрос оставался без ответа. Ковырялся сам, но нюанс остался. Итак.

С добавлением статичного текста всё ясно — правим конфиг.

Сама функция добавления ватермарка, насколько я понимаю, находится в файле engine\modules\image\Image.class.php

Непосредственно добавление ватермарка происходит здесь (строка 180):

    $oImage->watermark(
	$aParams['watermark_text'],
	explode(',',$aParams['watermark_position'],2),
        explode(',',$aParams['watermark_font_color']),
	explode(',',$aParams['watermark_back_color']),
	$aParams['watermark_font_alfa'],
	$aParams['watermark_back_alfa']
    );


За сам текст отвечает первый параметр:
$aParams['watermark_text']

Если добавить
. " | "
, выводится
текст |
— значит иду верным путём.
Остаётся каким-то образом добавить переменную, отвечающую за имя пользователя, некий {username}. Пробовал $aParams['user_login'] — не прокатывает… ((

Вопрос, что это за переменная и как её правильно добавить? Люди добрые, и прогеры злобные, помогите, плиз.

UPD

Вопрос решился благодаря spolischook .
Добавляем в код следующие элементы:

$usver = $this->User_GetUserCurrent();
$oImage->watermark(
«Posted by ». $usver->getLogin(). " | ". $aParams['watermark_text'],
explode(',',$aParams['watermark_position'],2),
explode(',',$aParams['watermark_font_color']),
explode(',',$aParams['watermark_back_color']),
$aParams['watermark_font_alfa'],
$aParams['watermark_back_alfa']
);

И получаем результат вида «Posted by {имя_пользователя} | {текст_ватермарка_из_конфига}».
Спасибо, spolischook , за помощь!

Плагин «Подпись пользователей (Topic signature)», версия 1.1.0 для ЛС 1.0+


Для каждого добавленного в конфиге пользователя задается файл шаблона, в котором и должна отображаться нужная информация (подпись). Файлы подписей должны находится в папке /plugins/topicsignature/templates/skin/default/users_signs/

Плагин доступен в каталоге.
Мои контакты.

Плагин «Лента Твиттера (Twitter Feed)», Версия 1.2.0 для ЛС 1.0+


Позволяет организовать вывод последних твитов вашего сайта, любимого исполнителя (группы), новостей и т.п. в «прямом эфире».

Плагин доступен в каталоге.

P.S. Плагин не будет работать без этого фикса в ЛС 1.0. Впрочем ни один плагин с вкладкой в прямом эфире не будет работать без этого фикса.
Мои контакты.

Плагин «Зарезервированные пользователи (Reserved Users)», версия 1.1.0 для ЛС 1.0+


Запрещает регистрацию зарезервированных имен пользователей (прописывается в конфиге) и похожих на них (задается процент схожести с зарезервированными).

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

Проблема с выводом постов из определенного блога (GetTopicsByBlogId)

В общем в чем суть — хочу вывести на отдельную страницу новости, которые в данный момент являются блогом

Все как полагается, создал отдельный экшен, в нем:

protected function EventNews() { // Регистрируем       реализуем евент News
        
        $this->Viewer_SetHtmlRssAlternate(Router::GetPath('rss').'index/',Config::Get('view.name'));	
		/**
		 * Меню
		 */
		$this->sMenuSubItemSelect='good';
		/**
		 * Передан ли номер страницы
		 */
		$iPage=$this->GetEventMatch(2) ? $this->GetEventMatch(2) : 1;
		/**
		 * Получаем список топиков
		 */					
		$aResult=$this->Topic_GetTopicsByBlogId(1, 1, 3);			
		$aTopics=$aResult['collection'];	
		/**
		 * Формируем постраничность
		 */
		$aPaging=$this->Viewer_MakePaging($aResult['count'],$iPage,Config::Get('module.topic.per_page'),4,Router::GetPath('index'));
		/**
		 * Загружаем переменные в шаблон
		 */
		$this->Viewer_Assign('aTopics',$aTopics);
		$this->Viewer_Assign('aPaging',$aPaging);		
        
                /**
                 * Устанавливаем шаблон вывода
                 */
                $this->SetTemplateAction('index');
        }


При вызове выдает ошибку

Notice: Undefined index: collection in /var/www/kirill/data/www/site.ru/classes/actions/ActionNews.class.php on line 83

Notice: Undefined index: count in /var/www/kirill/data/www/site.ru/classes/actions/ActionNews.class.php on line 87


Что я упустил? Спасибо

Рекомендация к использованию: Наследование шаблонов

На примере будущего jQuery-шаблона для ПриветСочи.ру решил выложить мини-инструкцию использования наследования шаблонов, сильно сокращающий количество часто повторяющегося Smarty-кода.

Коротко о файлах в примере (ссылка на архив внизу):

  • topic.prototype.tpl — прототип топика, содержащий всю повторяющуюся разметку. Использованы вложенные конструкции типа
    {block name=...}
  • topic_link.tpl, topic_photoset.tpl, topic_question.tpl, topic_topic.tpl — файлы, наследующие и заменяющие/дописывающие некоторые блоки прототипа топика (topic.prototype.tpl)
  • topic.social.tpl — включение с кодом кнопочек публикации в разные соц-сети.


Коротко о содержании файлов:

Посмотрев файлы примера, не сложно заметить, что файлы topic_*.tpl содержат:
  1. в начале каждого файла наличиствует код
    {extends file=topic.prototype.tpl}
  2. минимум специфической разметки, обрамленной в конструкции
    {block name=... флаг}
    — это замены и дополнения блоков. Флаг может либо отсутствовать (что означает полную замену содержимого блока), либо принимать принимать значения:
    • append — дописывает в конец содержимое блока к наследуемому блоку.
    • prepend — дописывает в начало содержимое блока к наследуемому блоку.
    • hide — скрывает блок (насколько я понял, если добавить в блок прототипа, то по умолчанию блок будет скрыт).
    • nocache — запрещает кеширование содержания блока (а это вообще актуально для LS?).


Документация


ZIP-архив с примером

Валидация данных в LiveStreet 0.6

В транковую версию LS на github.com добавлен новый функционал — валидация данных и полей сущностей. Этот функционал призван заменить функцию func_check(). За основу был взят функционал валидации Yii.

На данный момент доступны следующие типы валидации:
  • Boolean — проверка значения на булевый тип
  • Date — проверка значения на формат даты и времени
  • Email — проверка корректности емайл
  • Inline — валидация произвольным методом сущности или другого объекта
  • Number — проверка на числа
  • Required — проверка на пустое или конкретное значение
  • String — проверка строк на длину
  • Type — проверка на тип значения
  • Url — проверка на корректность URL


Как использовать

В сущности необходимо составить список правил валидации.
class PluginTest_ModuleMain_EntityTest extends Entity {

	protected $aValidateRules=array(
		array('login, name','string','max'=>7,'min'=>'3'),
		array('title','my','on'=>'register'),
	);

	public function ValidateMy($sValue,$aParams) {
		if ($sValue!='Мега заголовок') {
                    return 'Ошибочный заголовок';
                }
		return true;
	}
}


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