<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
			<channel>
			<title>Как правильно оформлять виджеты плагина / Alto CMS inside - как это устроено и работает / Alto CMS</title>
			<link>http://79.174.14.219/comments/249/</link>
			<description><![CDATA[Для начала важно понять, что виджеты бывают двух видов — шаблонные и исполняемые. Шаблонные виджеты — это файлы-шаблоны, которые могут]]></description>
			<language>ru</language>
			<managingEditor>noreply@altocms.ru</managingEditor>
			<webMaster>noreply@altocms.ru</webMaster>
			<generator>Alto CMS v.1.5.0b1</generator>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3707)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3707</guid>
					<link>http://79.174.14.219/249.html#comment3707</link>
					<author>gufrep@bk.ru</author>
					<description><![CDATA[У меня такая проблема. Пдагин <strong>simpletpl</strong>.<br/>
1. Создаю файл simpletpl/widgets/<strong>WidgetSimpleTopicsTop.class.php</strong><br/>
2. вот его код<br/>
<pre class="prettyprint"><code>class PluginSimpletpl_WidgetSimpleTopicsTop extends Widget {
	public function Exec() {
		$sDate=date(&quot;Y-m-d H:00:00&quot;,time()-Config::Get('plugin.simpletpl.topic_time_top'));
		$aTopics=$this-&gt;Topic_GetTopicsRatingByDate($sDate,Config::Get('plugin.simpletpl.count_top_topics'));
		$this-&gt;Viewer_Assign('simpletpl_aTopicsTop',$aTopics);
		$this-&gt;Viewer_Assign('simpletpl_iCountSlide',ceil(count($aTopics)/2));
	}
}</code></pre><br/>
3.Далее в шаблоне пытаюсь вывести его:<br/>
<pre class="prettyprint"><code>{widget name=&quot;simpleTopicsTop&quot;}</code></pre><br/>
4. В итоге ошибка <br/>
<pre class="prettyprint"><code>Fatal error: Class 'BlockSimpleTopicsTop' not found in Z:\home\altocms\www\engine\modules\viewer\plugs\function.widget_exec.php on line 86</code></pre>]]></description>
					<pubDate>Sat, 13 Jul 2013 13:45:48 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3733)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3733</guid>
					<link>http://79.174.14.219/249.html#comment3733</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[Добавил в текст, как это можно сделать. Добавлю, что подразумевалось больше вариантов, но я проверил сейчас — для виджета плагина только один работает. В следующих версиях их обязательно будет больше.]]></description>
					<pubDate>Sun, 14 Jul 2013 01:53:54 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3824)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3824</guid>
					<link>http://79.174.14.219/249.html#comment3824</link>
					<author>gufrep@bk.ru</author>
					<description><![CDATA[Ясно. Но я подожду. Этот вариант не очень удобен для меня]]></description>
					<pubDate>Wed, 17 Jul 2013 11:30:30 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #26079)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment26079</guid>
					<link>http://79.174.14.219/249.html#comment26079</link>
					<author>lk0dee@abrahabr.ru</author>
					<description><![CDATA[Я к примеру попробовал создать допольнительный виджет к модулю Topic вывод самого читаемого. Так и не понял как сделать, по выше описанному мануалу, вариант с созданием виджета для встроенного модуля не канает]]></description>
					<pubDate>Thu, 07 Apr 2016 23:15:51 +0300</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3732)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3732</guid>
					<link>http://79.174.14.219/249.html#comment3732</link>
					<author>anp135@gmail.com</author>
					<description><![CDATA[Очень похоже на БЭМ, не так-ли?]]></description>
					<pubDate>Sat, 13 Jul 2013 23:32:41 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3734)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3734</guid>
					<link>http://79.174.14.219/249.html#comment3734</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[Честно говоря, работая с виджетами я про БЭМ даже не думал]]></description>
					<pubDate>Sun, 14 Jul 2013 01:57:09 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3738)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3738</guid>
					<link>http://79.174.14.219/249.html#comment3738</link>
					<author>anp135@gmail.com</author>
					<description><![CDATA[А если подумать?<br/>
Вроде идея толковая, виджетами можно красиво и удобно нарезать и меню и тебю…]]></description>
					<pubDate>Sun, 14 Jul 2013 02:05:37 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3832)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3832</guid>
					<link>http://79.174.14.219/249.html#comment3832</link>
					<author>reverty@gmail.com</author>
					<description><![CDATA[А есть ли функция вывода виджета прямо из экшена, аналог AddBlock в ЛС? (если есть то стоило бы упомянуть для полноты)]]></description>
					<pubDate>Wed, 17 Jul 2013 13:52:06 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3839)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3839</guid>
					<link>http://79.174.14.219/249.html#comment3839</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[Да, есть в модуле Viewer:<br/>
<pre class="prettyprint"><code>public function AddWidget($sGroup, $sName, $aParams = array(), $iPriority = 0)</code></pre>]]></description>
					<pubDate>Wed, 17 Jul 2013 16:42:01 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3837)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3837</guid>
					<link>http://79.174.14.219/249.html#comment3837</link>
					<author>gufrep@bk.ru</author>
					<description><![CDATA[Вадим, хоть убей не работают у меня виджеты… делаю все по инструкции. Можно посмотреть где-нибудь рабочий пример?]]></description>
					<pubDate>Wed, 17 Jul 2013 15:59:23 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3838)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3838</guid>
					<link>http://79.174.14.219/249.html#comment3838</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[<a href="http://yadi.sk/d/I3frHcU56vrAx" rel="nofollow">yadi.sk/d/I3frHcU56vrAx</a><br/>
Это рабочий пример плагина с двумя виджетами, только что проверил]]></description>
					<pubDate>Wed, 17 Jul 2013 16:40:10 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3840)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3840</guid>
					<link>http://79.174.14.219/249.html#comment3840</link>
					<author>gufrep@bk.ru</author>
					<description><![CDATA[Ну тогда не<br/>
<blockquote>И этот код должен находится в файле /plugins/dummy/widgets/WidgetFoo.class.php — это виджет Foo плагина Dummy.</blockquote>а<br/>
/plugins/dummy/classes/widgets/WidgetFoo.class.php]]></description>
					<pubDate>Wed, 17 Jul 2013 16:44:37 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3843)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3843</guid>
					<link>http://79.174.14.219/249.html#comment3843</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[А ведь верно, извини, глаз замылился]]></description>
					<pubDate>Thu, 18 Jul 2013 08:21:25 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #3844)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment3844</guid>
					<link>http://79.174.14.219/249.html#comment3844</link>
					<author>gufrep@bk.ru</author>
					<description><![CDATA[А еще сначала удивился такому решению)) Хорошо что это была всего лишь опечатка. Спасибо за помощь]]></description>
					<pubDate>Thu, 18 Jul 2013 10:10:52 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #4177)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment4177</guid>
					<link>http://79.174.14.219/249.html#comment4177</link>
					<author>reverty@gmail.com</author>
					<description><![CDATA[Во время переименовывания своих блоков в виджеты, у меня возник только один вопрос, а зачем создали практически аналогичную сущность виджетов. В чем их принципиальное отличие от блоков?]]></description>
					<pubDate>Thu, 25 Jul 2013 21:04:25 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #4180)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment4180</guid>
					<link>http://79.174.14.219/249.html#comment4180</link>
					<author>vladimir.o.yuriev@gmail.com</author>
					<description><![CDATA[Вопрос в том, что в том же ЛС, да и у нас будет шаблон на наследованиях, где повсеместно используются так называемые smarty блоки. Чтобы избежать путаницы — они заблаговременно и постепенно мигрируют в виджеты. В виджетах также расширенные настройки отображения блоков. Но пока работает и устаревшая логика блоков для совместимости.]]></description>
					<pubDate>Thu, 25 Jul 2013 21:48:33 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #4182)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment4182</guid>
					<link>http://79.174.14.219/249.html#comment4182</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[Во-первых, термин «блок», на мой взгляд, весьма неудачен. Есть понятие «блоки» у Смарти, и они не имеют ничего общего с ЛС-блоками. А еще есть «блочные хуки», которые не имеют ничего общего ни с ЛС-блоками, ни со Смарти-блоками. Поэтому я давно предлагал ЛС-блоки называть виджетами (как, вообще-то, подобные вещи обычно и называются в сайтостроении), чтобы не создавать путаницы.<br/>
<br/>
Во-вторых, виджеты все же не есть «аналогичная сущность», они весьма отличаются от ЛС-блоков, как и сама система их организации. Если кратко:<br/>
<br/>
1. В ЛС сначала создаются правила, а потом к этим правилам привязываются ЛС-блоки. В Альто мы не виджеты к правилам привязываем, а правила к виджетам, т.е. для каждого конкретного виджета задается где, когда и при каких условиях он будет выводится. Я считаю, что такой подход интуитивно более понятный.<br/>
<br/>
2. В Альто более логично (ИМХО) определяется тип виджета: если есть соответствующий класс, то это исполняемый виджет, если класса нет, но есть шаблон — это шаблонный виджет.<br/>
<br/>
3. С точки зрения разработчика виджет в Альто — это не просто массив параметров в конфиге, как в ЛС, а действительно полноценная сущность (т.е. имеется класс EntityWidget) со всеми вытекающими.<br/>
<br/>
В общем, это только на поверхностный взгляд кажется, что просто переименовали, на самом деле все гораздо глубже и ширше. Есть только один недостаток во всем этом — отсутствие нормальной документации с описаниями и примерами. Но я исправляюсь — пишу.]]></description>
					<pubDate>Thu, 25 Jul 2013 22:43:30 +0400</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #24328)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment24328</guid>
					<link>http://79.174.14.219/249.html#comment24328</link>
					<author>mifkys@yandex.ru</author>
					<description><![CDATA[Добрый день. Можно передавать параметры в код виджета? Интересует, например, при выводе виджета на странице с топиком передать в него ID автора топика, чтобы вывести доп. информацию. Сейчас приходится вычленять все это через название экшена/эвента и дальше обрабатывать.]]></description>
					<pubDate>Tue, 27 Oct 2015 11:04:56 +0300</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #24330)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment24330</guid>
					<link>http://79.174.14.219/249.html#comment24330</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[В вашем случае можно сделать так:<br/>
<pre class="prettyprint"><code>class PluginDummy_WidgetFoo extends Widget {

    public function Exec() {
        // Получаем шаблонную переменную из вьюера
        $oTopic = E::ModuleViewer()-&gt;getTemplateVars('oTopic');
        if ($oTopic) {
            // Получаем автора топика
            $oUser = $oTopic-&gt;getUser();
            // Получаем доп. информацию, вызывая метод getSomeInfo() модуля Foo плагина Other
            $xSomeInfo = E::Module('PlugineOther\Foo')-&gt;getSomeInfo($oUser-&gt;getId);
            // Передаем значение в шаблон для вывода
            E::ModuleViewer()-&gt;Assign('xSomeInfo', $xSomeInfo);
        }
    }
}</code></pre>]]></description>
					<pubDate>Tue, 27 Oct 2015 13:20:55 +0300</pubDate>
									</item>
							<item>
					<title>Как правильно оформлять виджеты плагина (comment #24331)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/249/#comment24331</guid>
					<link>http://79.174.14.219/249.html#comment24331</link>
					<author>mifkys@yandex.ru</author>
					<description><![CDATA[Шикарно. Спасибо]]></description>
					<pubDate>Tue, 27 Oct 2015 13:46:54 +0300</pubDate>
									</item>
					</channel>
	</rss>
