<?xml version="1.0" encoding="utf-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">

    <title type="text">EE Club &#45;  Форум</title>
    <link rel="alternate" type="text/html" href="http://eeclub.ru/forum/" />
    <link rel="self" type="application/atom+xml" href="http://eeclub.ru/forum/atom/" />
    <updated>2010-11-11T09:47:59Z</updated>
    <rights>Copyright (c) 2012</rights>
    <generator uri="" version="1.6.9">ExpressionEngine</generator>
    <id>tag:eeclub.ru,2012:01:09</id>


    <entry>
      <title>Видеоуроки ExpressionEngine</title>
      <link rel="alternate" type="text/html" href="http://eeclub.ru/forum/viewthread/443/" />      
      <id>tag:eeclub.ru,2008:forum/viewthread/.443</id>
      <published>2008-08-30T00:44:15Z</published>
      <updated>2010-11-11T09:47:59Z</updated>
      <author><name>Станислав</name></author>
      <content type="html">
      <![CDATA[
        <p><span style="font-size:16px;"><b>Видеоролики по переводу статичного сайта на движок ExpressionEngine </b></span><br />
подопытным был <a href="http://eeclub.ru/?URL=http%3A%2F%2Fmosrazr.ru">http://mosrazr.ru</a></p>

<p>Процесс занял 1 ч. 40 мин., делалось это не в коммерческих целях, поэтому не ругать, все таки первый опыт <img src="http://eeclub.ru/images/smileys/smile.gif" width="19" height="19" alt="smile" style="border:0;" />)</p>

<p>Записывалось программой BB FlashBack  (очень удобная и простая программа)</p>

<p>Итак, перед нами сайт mosrazr.ru. План работы следующий:</p>

<p>1. Сохраняем, разбиваем на части<br />
2. Создаем веблоги, категории, поля<br />
3. Активируем нужные модули<br />
4. Наполняем сайт<br />
5. Вставляем функциональные элементы в шаблоны</p>

<p><b>Видео:</b><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Feeclub.ru%2Ffiles%2Fmov%2F1.Sozdaem.veblog.polya.shablony.stranitsu.spika.novostei.rar">http://eeclub.ru/files/mov/1.Sozdaem.veblog.polya.shablony.stranitsu.spika.novostei.rar</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Feeclub.ru%2Ffiles%2Fmov%2F2.Sozdanie.stranitsy.polnoi.novosti.rar">http://eeclub.ru/files/mov/2.Sozdanie.stranitsy.polnoi.novosti.rar</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Feeclub.ru%2Ffiles%2Fmov%2F3.Sozdanie.statichnyh.stranits.rar">http://eeclub.ru/files/mov/3.Sozdanie.statichnyh.stranits.rar</a> <br />
<i>Просьба выкладывать на посещаемых ресурсах только зеркала</i></p>

<p><span style="font-size:16px;"><b>Видеоуроки по интеграции шаблона в движок ExpressionEngine</b></span><br />
Видеролики записаны при работе над созданием сайта, в котором присутствуют следующие разделы: Новости, Акции, Форма обратной связи, Статьи и Портфолио.</p>

<p><a href="http://eeclub.ru/?URL=http%3A%2F%2Feeclub.ru%2Ffiles%2Fmov%2FNatyagivanie_dizayna_1_-_sozdanie_veblogov_i_poley%2C__napolnenie.rar">http://eeclub.ru/files/mov/Natyagivanie_dizayna_1_-_sozdanie_veblogov_i_poley,__napolnenie.rar</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Feeclub.ru%2Ffiles%2Fmov%2FNatyagivanie_dizayna_2_-_shabloni_news%2C_sales%2C_articles.rar">http://eeclub.ru/files/mov/Natyagivanie_dizayna_2_-_shabloni_news,_sales,_articles.rar</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Feeclub.ru%2Ffiles%2Fmov%2FNatyagivanie_dizayna_3_-_rabota_s_Freeform.rar">http://eeclub.ru/files/mov/Natyagivanie_dizayna_3_-_rabota_s_Freeform.rar</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Feeclub.ru%2Ffiles%2Fmov%2FNatyagivanie_dizayna_4_-_shabloni_straniz_polnogo_opisaniya.rar">http://eeclub.ru/files/mov/Natyagivanie_dizayna_4_-_shabloni_straniz_polnogo_opisaniya.rar</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Feeclub.ru%2Ffiles%2Fmov%2FNatyagivanie_dizayna_5_-_glavnaya_straniza_i_portfolio.rar">http://eeclub.ru/files/mov/Natyagivanie_dizayna_5_-_glavnaya_straniza_i_portfolio.rar</a><br />
<i>Для републикаций, просьба использовать файлообменные сервера типа rapidshare.</i>
</p>
      ]]>
      </content>
    </entry>

    <entry>
      <title>Пример успешной работы кеширования</title>
      <link rel="alternate" type="text/html" href="http://eeclub.ru/forum/viewthread/1638/" />      
      <id>tag:eeclub.ru,2011:forum/viewthread/.1638</id>
      <published>2011-01-06T15:18:16Z</published>
      <updated></updated>
      <author><name>Станислав</name></author>
      <content type="html">
      <![CDATA[
        <p>Хостинг timeweb, обычный виртуальный хостинг по тарифу Year.<br />
Сайт с посещаемостью 6000-8000 человек в сутки. В основном все посетители идут с поисковика на одну страницу (она в топе по многим запросам) и дальше никуда не идут.<br />
Хостер начал слать письма типа возрастает нагрузка и все такое.</p>

<p>Закешировал шаблон, который отвечает за вывод странички с полным описанием новости (soft/item) на период 10 мин.</p>

<p><a href="http://eeclub.ru/?URL=http%3A%2F%2Fcontent.screencast.com%2Fusers%2Fpupper%2Ffolders%2FSnagit%2Fmedia%2F0ebb926a-cd35-4f43-b245-f0b8fa779570%2F01.06.2011-15.17.08.png"><img src="http://content.screencast.com/users/pupper/folders/Snagit/media/0ebb926a-cd35-4f43-b245-f0b8fa779570/01.06.2011-15.17.08.png"  width="656" height="251" border="0" class="embeddedObject"  alt='01.06.2011-15.17.08.png width=656 height=251 border=0 class=embeddedObject ' /></a></p>

<p>В итоге, вот как изменилась нагрузка. Работает ведь! =)</p>

<p><a href="http://eeclub.ru/?URL=http%3A%2F%2Fcontent.screencast.com%2Fusers%2Fpupper%2Ffolders%2FSnagit%2Fmedia%2F102bb581-0eac-4c3f-a783-4f2ee5fc527a%2F01.06.2011-15.16.20.png"><img src="http://content.screencast.com/users/pupper/folders/Snagit/media/102bb581-0eac-4c3f-a783-4f2ee5fc527a/01.06.2011-15.16.20.png"  width="650" height="466" border="0" class="embeddedObject"  alt='01.06.2011-15.16.20.png width=650 height=466 border=0 class=embeddedObject ' /></a>
</p>
      ]]>
      </content>
    </entry>

    <entry>
      <title>Различные дополнения, без пояснений</title>
      <link rel="alternate" type="text/html" href="http://eeclub.ru/forum/viewthread/657/" />      
      <id>tag:eeclub.ru,2009:forum/viewthread/.657</id>
      <published>2009-01-08T13:27:28Z</published>
      <updated>2010-10-24T21:02:28Z</updated>
      <author><name>Станислав</name></author>
      <content type="html">
      <![CDATA[
        <p>Различные дополнения и сайты разработчиков, без пояснений</p>

<p>Взято <a href="http://eeclub.ru/?URL=http%3A%2F%2Fexpressionengine.com%2Fforums%2Fviewthread%2F92808%2F">отсюда</a> и <a href="http://eeclub.ru/?URL=http%3A%2F%2Fexpressionengine.com%2Fwiki%2FList_of_Add-On_Sites%2F">отсюда</a> </p>

<p><a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.solspace.com">http://www.solspace.com</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fleevigraham.com%2F">http://leevigraham.com/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.trulyee.com%2Faddons%2F">http://www.trulyee.com/addons/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fdocs.markhuot.com%2F">http://docs.markhuot.com/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.masugadesign.com%2Fthe-lab%2F">http://www.masugadesign.com/the-lab/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.designchuchi.ch%2Findex.php%2Fblog%2Fcategory%2Fexpressionengine%2F">http://www.designchuchi.ch/index.php/blog/category/expressionengine/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.lars-kirchhoff.de%2Fgo%2Fjournal%2Fsection%2FExpression">http://www.lars-kirchhoff.de/go/journal/section/Expression</a> Engine/<br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fbrandon-kelly.com%2F">http://brandon-kelly.com/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Flincolnite.com%2Fee%2Frepeet%2F">http://lincolnite.com/ee/repeet/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.putyourlightson.net%2F">http://www.putyourlightson.net/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.brandnewbox.co.uk%2Fproducts%2F">http://www.brandnewbox.co.uk/products/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Futilitees.silenz.org%2Findex.php">http://utilitees.silenz.org/index.php</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fmedia-cow.com%2Findex.php%2Fdownloads%2F">http://media-cow.com/index.php/downloads/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.lumis.com%2Fsite%2Fpage%2Fimgsizer%2F">http://www.lumis.com/site/page/imgsizer/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Floweblog.com%2Ffreelance%2F">http://loweblog.com/freelance/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fstudio625.com%2Fee%2F">http://studio625.com/ee/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fryanirelan.com%2Futilities">http://ryanirelan.com/utilities</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.ennovy.org%2Fweblog%2Fcomments%2Fthe_livejournal_crosspost_module_extension%2F">http://www.ennovy.org/weblog/comments/the_livejournal_crosspost_module_extension/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fcode.google.com%2Fp%2Fshapeshed-ee-addons%2F">http://code.google.com/p/shapeshed-ee-addons/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.ngenworks.com%2Fsoftware%2Fee%2Fstructure%2F">http://www.ngenworks.com/software/ee/structure/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fbegoodnotbad.com%2Fee%2Fadmin-comments">http://begoodnotbad.com/ee/admin-comments</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.vayadesign.net%2Fblog%2Fcomments%2Fee-plugin-delete-entries-outside-of-the-control-panel%2F">http://www.vayadesign.net/blog/comments/ee-plugin-delete-entries-outside-of-the-control-panel/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.glenswinfield.co.uk%2Factivity%2Fcomment%2Fexpressionengine_text_plugin">http://www.glenswinfield.co.uk/activity/comment/expressionengine_text_plugin</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fstevepsharpe.com%2Fblog%2Fpermalink%2Fee-timesince-plugin%2F">http://stevepsharpe.com/blog/permalink/ee-timesince-plugin/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.hopstudios.com%2Fsoftware%2F">http://www.hopstudios.com/software/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fmichaelbystrom.com%2Fdownload%2Fee%2F">http://michaelbystrom.com/download/ee/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fexpressionengine.com%2Fforums%2Fmember%2F33000%2F">http://expressionengine.com/forums/member/33000/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fexpressionengine.com%2Fforums%2Fmember%2F38398%2F">http://expressionengine.com/forums/member/38398/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fchrismacpherson.com%2F">http://chrismacpherson.com/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fnathanpitman.com%2F">http://nathanpitman.com/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.purple-dogfish.co.uk%2Ffree-stuff%2F">http://www.purple-dogfish.co.uk/free-stuff/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.hccdevelopment.com%2FWeb-Based-Software%2FProducts%2F">http://www.hccdevelopment.com/Web-Based-Software/Products/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Flaxa.ca%2Fee_home.html">http://laxa.ca/ee_home.html</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.bridgingunit.com%2Flabs%2Fexpressionengine%2F">http://www.bridgingunit.com/labs/expressionengine/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.caleydon.com%2Fexpressionengine%2F">http://www.caleydon.com/expressionengine/</a></p>

<p><a href="http://eeclub.ru/?URL=http%3A%2F%2Fbooyant.com%2Faddons%2F">http://booyant.com/addons/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.brianlitzinger.com%2Fee%2F">http://www.brianlitzinger.com/ee/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Feec.ms%2Fforums%2F">http://eec.ms/forums/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fexpressionengine-addons.com%2F">http://expressionengine-addons.com/</a> <br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fengaging.net%2Fproducts%2F">http://engaging.net/products/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.devdemon.com%2Fstore">http://www.devdemon.com/store</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.twomile.com%2Fservices%2Fdetail%2Fcms-add-ons">http://www.twomile.com/services/detail/cms-add-ons</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwiseupstudio.com%2Fexpressionengine%2Fextensions%2F">http://wiseupstudio.com/expressionengine/extensions/</a><br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.tomkiss.net%2Fee">http://www.tomkiss.net/ee</a>
</p>
      ]]>
      </content>
    </entry>

    <entry>
      <title>Идеи расширение, плагинов, модулей</title>
      <link rel="alternate" type="text/html" href="http://eeclub.ru/forum/viewthread/304/" />      
      <id>tag:eeclub.ru,2008:forum/viewthread/.304</id>
      <published>2008-05-22T08:31:33Z</published>
      <updated>2008-05-22T08:32:01Z</updated>
      <author><name>Calm</name></author>
      <content type="html">
      <![CDATA[
        <p>В преддверии EEv2 предлагаю погенерировать идеи которые позволили бы сделать работу с CMS еще лучше:</p>

<p>1. Как вам идея расширения, посредством которого, при публикации новостей, комментариев, постов в форум, все ссылки в теле сообщения будут заносится в базу, а выводится будут только шорткаты-ридеректы с сайта. То есть, вместо eeclub.ru/url=www.eeclub.ws или просто <a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.eeclub.ws">http://www.eeclub.ws</a>, будет eeclub.ru/url/12331344124. </p>

<p>p.s. кстати, скоро должен выйти плагин от Solspace которые позволит задавать правила обработки текста при публикации - оттуда можно будет базу вырезать...
</p>
      ]]>
      </content>
    </entry>

    <entry>
      <title>Оптимизация сайта</title>
      <link rel="alternate" type="text/html" href="http://eeclub.ru/forum/viewthread/67/" />      
      <id>tag:eeclub.ru,2008:forum/viewthread/.67</id>
      <published>2008-01-17T07:48:40Z</published>
      <updated></updated>
      <author><name>Calm</name></author>
      <content type="html">
      <![CDATA[
        <p>Пока вот такая ссылка (интересное еще есть в комментах)<br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.habrahabr.ru%2Fblog%2Fwebdev%2F23615.html">http://www.habrahabr.ru/blog/webdev/23615.html</a></p>

<blockquote><p>я хотел поделиться своим решением для сжатия JS (Apache, mod_deflate, mod_rewrite):</p>

<p>AddType text/javascript .js</p>

<p>&lt;FilesMatch \\.js.gz$&gt;<br />
ForceType text/javascript<br />
Header set Content-Encoding: gzip<br />
&lt;/FilesMatch&gt;</p>

<p>&lt;FilesMatch .*\.js$&gt;<br />
RewriteEngine On<br />
RewriteCond %&#123;HTTP:Accept-Encoding&#125; gzip<br />
RewriteCond %&#123;REQUEST_FILENAME&#125;.gz -f<br />
RewriteRule (.*)\.js$ $1\.js.gz [L]</p>

<p>ForceType text/javascript<br />
AddOutputFilterByType DEFLATE text/javascript<br />
&lt;/FilesMatch&gt;</p>

<p>смылс такой: я использую Prototype у себя и ещё несколько написанных библиотек, которые меняются (мной или выпуском) раз, скажем, в пол года. их я сразу сжимаю gzip&#8217;ом и когда в коде есть</p>

<p>апач, сервирует уже сжатую версию - &#8220;/js/prototype.js.gz&#8221;. другие файлы я меняю намного чаще и апач их сжимает налету. это всё лежит в DocumentRoot. можно тоже самое сделать и с CSS, у меня пока не было необходимости в этом.</p></blockquote>
      ]]>
      </content>
    </entry>

    <entry>
      <title>Создание своего первого плагина для ExpressionEngine</title>
      <link rel="alternate" type="text/html" href="http://eeclub.ru/forum/viewthread/1188/" />      
      <id>tag:eeclub.ru,2009:forum/viewthread/.1188</id>
      <published>2009-11-07T18:09:31Z</published>
      <updated>2009-11-07T20:02:14Z</updated>
      <author><name>Станислав</name></author>
      <content type="html">
      <![CDATA[
        <p>Перевод статьи <a href="http://eeclub.ru/?URL=http%3A%2F%2Fnet.tutsplus.com%2Ftutorials%2Fcmss%2Fbuilding-your-first-expressionengine-plugin%2F">Building your First ExpressionEngine Plugin</a></p>

<p><i>Не важно, насколько превосходна Ваша система управления контентом, наступит момент, когда вам потребуется что-то, на что она просто-напросто неспособна. В этой статье мы рассмотрим способ создания плагина для ExpressionEngine, который будет отвечать вашим нуждам.</i></p>

<blockquote><p>Заметки о версиях. Совсем недавно, Ellislab, создатели ExpressionEngine, объявили официальную дату выхода ExpressionEngine 2.0, которая назначена на первое декабря 2009 года. Обратите внимание, что эта статья написана специально по версии 1.6.х. в версии 2.0 изменятся некоторые детали, такие как пути к файлам и глобальные объекты. Несмотря на эти изменения, основное приложение и подход к созданию плагинов для ExpressionEngine останется без изменений.</p></blockquote>

<h3>Типы адонов для ExpressionEngine.</h3>

<p>Как все доступные нормальные системы управления, ExpressionEngine включает в себя несколько возможностей для разработчика добавить ему функциональности, которой нет в нем по умолчанию. В отличие от популярной системы типа WordPress, ExpressionEngine позволяет называть эти аддоны в зависимости от того, как они взаимодействуют с сайтом. Существует три основных способа, как вы можете добавить функциональности ExpressionEngine 1.6.х. это Плагины, Расширения и Модули. Плагины, в основном используются при изменении кода шаблона и чаще всего являются начальными шагами в работе. Расширения обычно подправляют функциональность на конечных этапах работы, или через Control Panel используя зацепки в системе.&nbsp; Модули обладают большим полем применения, у них есть свое место в Control Panel и также могут быть использованы для основной работы с веб-сайтами ExpressionEngine. Модули могут полноценными аддонами внутри ExpressionEngine и используют членство, шаблоны, базы данных и так далее.</p>

<h3>Необходимые навыки.</h3>

<p>Вот что вам поможет перед тем, как продвигаться дальше:<br />
- Как настроить и установить ExpressionEngine в среде разработчика.<br />
- Основные понятия Контрольной панели (Control Panel)&nbsp; ExpressionEngine и парсинг шаблонов.<br />
- Основные понятия РНР и Объектно-ориентированного программирования.</p>

<h3>Наш плагин.</h3>

<p>Для нашей статьи мА собираемся создать простой плагин, который будет сканировать проходящую через него информацию и упаковывает некоторые строки HTML-тэгами. Это очень простое приложение для плагина ExpressionEngine, которое продемонстрирует вам как это легко – начать разработку плагинов. Наш плагин будет использоваться для поиска и замены акронимов, которые мы использовали как разработчики. Для наглядности мы будем использовать три из них: HTML, CSS и RSS. Назовем плагин “Auto Acronym”.</p>

<h3>Как начать?</h3>

<p>Наилучшим для начала разработки Аддона для ExpressionEngine является <a href="http://eeclub.ru/?URL=http%3A%2F%2Fexpressionengine.com%2Fdocs%2Fdevelopment%2Findex.html">официальная документация ExpressionEngine</a> (<a href="http://eeclub.ru/?URL=http%3A%2F%2Feeclub.ru%2Fdocs%2Fdevelopment%2Findex.html">перевод</a>). Перед тем, как окунетесь с головой в разработку приложений для ExpressionEngine, вам действительно стоит прочитать руководство, которое, при условии следования инструкциям, поможет поддержать систему в рабочем состоянии. «Руководство по эксплуатации» включает такие понятия как присвоение имени условным обозначениям, работа и безопасность. Потратьте несколько минут и прочитайте <a href="http://eeclub.ru/?URL=http%3A%2F%2Fexpressionengine.com%2Fdocs%2Fdevelopment%2Fguidelines%2Findex.html">Руководство по разработке Аддонов для ExpressionEngine</a>. </p>

<p><img src="http://foto.nnov.ru/psh800/0/3a/f9/73/b6/85/f0/b1fca9a0d789b056.jpg"  alt='b1fca9a0d789b056.jpg' /></p>

<p>Итак, будем считать, вы прочитали, и теперь готовы к&nbsp; тому, чтобы ознакомиться с тем, как мы в действительности создадим Плагин и насколько это просто.</p>

<h3>Части мозаики.</h3>

<p>Для каждого Плагина требуется один класс и как минимум одна функция. Название условных обозначений является очень специфичной функцией, и взаимодействует с именем файла, именем класса и тэгами ExpressionEngine. Имя файла включает имя плагина и заменяет все пробелы подчеркиваниями, ставя в начале «pi.”. все буквы должны быть в нижнем регистре. В итоге, наш файл будет называться “pi.auto_acronym..php”. Все плагины ExpressionEngine сохраняются в одной директории, которая находится в system/plugins  (Нет! Вы только представьте!). </p>

<p>Название класса схоже с названием файла за исключением того, что первая буква – заглавная. Выглядит это так: :Auto_acronym”. Этому плагину потребуется только одна функция, которую мы назовем также как и класс. Также это будет название, которые мы будем использовать в тэгах EXpressionEngine. Тэги плагина всегда начинаются с “exp:”, который говорит разделителю шаблонов «Алле! Тут че-то надо сделать!». Следом идет название класса (все в нижнем регистре). В итоге получим: “exp:auto_acronym”. Третий сегмент тэга плагина вызывает функцию внутри класса плагина. В нашем примере мы будем использовать только одну функцию, конструктор, поэтому нам понадобится только название класса. Итак, вот что нам известно о нашем плагине:</p>

<p><img src="http://foto.nnov.ru/psh640/0/51/7a/79/39/aa/78/0c3bc0bf08db8ed6.jpg"  alt='0c3bc0bf08db8ed6.jpg' /></p>

<p>Auto Acronym<br />
Название файла: pi.auto_acronym.php<br />
Название класса и конструктора: Auto_acronym<br />
Тэг ExpressionEngine: &#123;exp:auto_acronym&#125;</p>

<h3>Включение этого в код.</h3>

<p>Давайте посмотрим, как выглядит наш код:</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">Auto_acronym<br />&#123;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">Auto_acronym</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;&nbsp;<br />&#125;<br /><br /></span><span style="color: #FF8000">/*&nbsp;End&nbsp;of&nbsp;file&nbsp;pi.auto_acronym.php&nbsp;*/<br />/*&nbsp;Location:&nbsp;./system/plugins/pi.auto_acronym.php&nbsp;*/&nbsp;</span>
</span>
</code></div>

<p>Тем из вас, кто знаком с разработкой плагинов для WordPress, известно, что WordPress извлекает немного информации из кода комментариев, когда демонстрирует детали в Менеджере Плагинов. ExpressionEngine делает то же самое, за исключением массива внутри файла плагина. Давайте продвинемся немного вперед и добавим это к нашему вышеуказанному файлу класс и дадим этому соответствующую информацию.</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /><br />$plugin_info&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;array(<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'pi_name'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'Auto&nbsp;Acronym'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'pi_version'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'1.0'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'pi_author'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'Erik&nbsp;Reagan'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'pi_author_url'&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'http://erikreagan.com'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'pi_description'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'Automatically&nbsp;wraps&nbsp;certain&nbsp;acronyms&nbsp;in&nbsp;the&nbsp;HTML&nbsp;&lt;acronym&gt;&nbsp;tag'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'pi_usage'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">Auto_acronym</span><span style="color: #007700">::</span><span style="color: #0000BB">usage</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;);<br /><br />class&nbsp;</span><span style="color: #0000BB">Auto_acronym<br />&#123;<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">Auto_acronym</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#123;<br /><br />&nbsp;&nbsp;&nbsp;&#125;<br /><br />&#125;<br /><br /></span><span style="color: #FF8000">/*&nbsp;End&nbsp;of&nbsp;file&nbsp;pi.auto_acronym.php&nbsp;*/<br />/*&nbsp;Location:&nbsp;./system/plugins/pi.auto_acronym.php&nbsp;*/&nbsp;</span>
</span>
</code></div>

<p>Каждый знак массива должен явно соответствовать тому, для чего он предназначен. Последний знак, как бы то ни было, слегка отличается. Очевидно, не только строка. Это используется для того, чтобы дать понять Контрольной Панели ExpressionEngine где найти применение или простую документацию для плагина. Каждый плагин ExpressionEngine должен иметь основную документацию внутри файла плагина, для того, чтобы пользователь плагина могли просмотреть ее в Контрольной Панели и разобраться, как использовать тэги. Это делается с помощью добавления функции классу плагина, которая называется “usage” (использование). Мне нравится ставить функцию «использование» в конце класса, поэтому давайте пройдем вперед и скопируем&nbsp; и вставим из <a href="http://eeclub.ru/?URL=http%3A%2F%2Fexpressionengine.com%2Fdocs%2Fdevelopment%2Fplugins.html">ExpressionEngine Plugin Docs</a>, уберем содержимое между тэгами РНР «?&gt;» и «&lt;?», так как тут будет наше содержимое. </p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #FF8000">//&nbsp;----------------------------------------<br />&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;Plugin&nbsp;Usage<br />&nbsp;&nbsp;&nbsp;//&nbsp;----------------------------------------<br /><br />&nbsp;&nbsp;&nbsp;//&nbsp;This&nbsp;function&nbsp;describes&nbsp;how&nbsp;the&nbsp;plugin&nbsp;is&nbsp;used.<br />&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;Make&nbsp;sure&nbsp;and&nbsp;use&nbsp;output&nbsp;buffering<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">usage</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;ob_start</span><span style="color: #007700">();&nbsp;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">?&gt;<br /><br />&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&lt;?php<br />&nbsp;&nbsp;&nbsp;$buffer&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ob_get_contents</span><span style="color: #007700">();<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ob_end_clean</span><span style="color: #007700">();&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$buffer</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#125;&nbsp;</span>
</span>
</code></div>

<p>Наше использование будет написано после того, как мы закончим с нашим плагином. А сейчас, давайте вставим немного текста для тестирования. Не забывайте, что этот текст будет расценен как форматированный ранее и все знаки будут конвертированы в значения HTML; HTML не будет работать. Давайте взглянем на плагин целиком:</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /><br />$plugin_info&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;array(<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'pi_name'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'Auto&nbsp;Acronym'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'pi_version'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'1.0'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'pi_author'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'Erik&nbsp;Reagan'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'pi_author_url'&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'http://erikreagan.com'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'pi_description'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'Automatically&nbsp;wraps&nbsp;certain&nbsp;acronyms&nbsp;in&nbsp;the&nbsp;HTML&nbsp;&lt;acronym&gt;&nbsp;tag'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'pi_usage'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">Auto_acronym</span><span style="color: #007700">::</span><span style="color: #0000BB">usage</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;);<br /><br />class&nbsp;</span><span style="color: #0000BB">Auto_acronym<br />&#123;<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">Auto_acronym</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#123;<br /><br />&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;----------------------------------------<br />&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;Plugin&nbsp;Usage<br />&nbsp;&nbsp;&nbsp;//&nbsp;----------------------------------------<br /><br />&nbsp;&nbsp;&nbsp;//&nbsp;This&nbsp;function&nbsp;describes&nbsp;how&nbsp;the&nbsp;plugin&nbsp;is&nbsp;used.<br />&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;Make&nbsp;sure&nbsp;and&nbsp;use&nbsp;output&nbsp;buffering<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">usage</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;ob_start</span><span style="color: #007700">();&nbsp;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">?&gt;<br /><br />&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;where&nbsp;our&nbsp;simplified&nbsp;documentation&nbsp;will&nbsp;go<br /><br />&nbsp;&nbsp;&nbsp;&lt;?php<br />&nbsp;&nbsp;&nbsp;$buffer&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ob_get_contents</span><span style="color: #007700">();<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ob_end_clean</span><span style="color: #007700">();&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$buffer</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#125;<br /><br />&#125;<br /><br /></span><span style="color: #FF8000">/*&nbsp;End&nbsp;of&nbsp;file&nbsp;pi.auto_acronym.php&nbsp;*/<br />/*&nbsp;Location:&nbsp;./system/plugins/pi.auto_acronym.php&nbsp;*/&nbsp;</span>
</span>
</code></div>

<p>Итак, у нас есть костяк файла плагина, который нам надо сохранить в директорию system/plugins, чтобы быть уверенными, что он будет правильно прочитан системой. После его сохранения мы увидим его в Admin&gt;Utilities&gt;Plugin Manager (Администратор – Утилиты – Управление плагинами). Если вы кликните на новый плагин, вы должны увидеть примерно такую страницу, которая содержит информацию, которую мы только что добавили к плагину.</p>

<p><img src="http://foto.nnov.ru/psh640/0/db/d0/38/7e/a8/f9/ca85367615723fc1.jpg"  alt='ca85367615723fc1.jpg' /></p>

<h3>Запуск.</h3>

<p>Теперь, когда наш плагин правильно введен в систему ExpressionEngine, мы можем наконец-то что-то сделать. Каждый плагин возвращает некоторую форму информации. Эта информация всегда будет исходить из стандартизированных переменных, которые будет искать ExpressionEngine. Они называются “return_data” (возвращаемая информация). Первое, что мы хотим сделать – это определить ее перед&nbsp; нашей первой функцией внутри класса. Тогда (чисто для проверки) мы будем использовать ее внутри нашей первой функции для возврата простой строки.</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">Auto_acronym<br />&#123;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">var&nbsp;</span><span style="color: #0000BB">$return_data&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">""</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">Auto_acronym</span><span style="color: #007700">()<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">return_data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"Just&nbsp;making&nbsp;sure&nbsp;this&nbsp;works"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#125;&nbsp;</span>
</span>
</code></div>

<p>Теперь у нас будет возвращаться некоторое количество информации, и мы можем протестировать ее на веб-сайте.&nbsp; Я использую минимальный шаблон в целях тестирования, но вы можете использовать любой шаблон ExpressionEngine. Если вы вспомните наш тэг, то он выглядит следующим образом: &#123;exp:auto_acronym&#125;. А так как у нас только одна функция нам нет нужды использовать третий сегмент плагина. Вот как выглядит мой код шаблона, и вот что покажет мой браузер:</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #007700">&lt;</span><span style="color: #0000BB">h1</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">Plugin&nbsp;Tutorial</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">h1</span><span style="color: #007700">&gt;<br /><br />&lt;</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">&#123;exp</span><span style="color: #007700">:</span><span style="color: #0000BB">auto_acronym&#125;</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;&nbsp;</span>
</span>
</code></div>

<p><img src="http://foto.nnov.ru/psh640/0/0f/19/32/44/1d/25/0e239fa916e7122b.jpg"  alt='0e239fa916e7122b.jpg' /></p>

<p>Конечно не Бог весть что, но мы на шаг ближе к цели. Теперь, когда мы знаем, как направить информацию назад, мы можем перейти к рассмотрению захвата информации прошедшей через наш плагин.</p>

<h3>Обработка данных нашим Плагином.</h3><p>
Первый метод, на котором мы остановим наше внимание, связанный с обработкой информации это как ExpressionEngine читает информацию между тэговыми парами плагина. Если вы еще не знаете, наша тэговая пара очень схожа с тем, как работает тэговая пара HTML. У нас есть открывающий тэг, за ним идет информация, а за ней закрывающий тэг. По такому типу:</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000BB">&#123;exp</span><span style="color: #007700">:</span><span style="color: #0000BB">auto_acronym&#125;<br />This&nbsp;gets&nbsp;processed<br />&#123;</span><span style="color: #007700">/</span><span style="color: #0000BB">exp</span><span style="color: #007700">:</span><span style="color: #0000BB">auto_acronym&#125;&nbsp;</span>
</span>
</code></div>

<p>ExpressionEngine позволяет легко получить эту информацию, используя Template Object (объект шаблона). В этом случае нам будет нужно сделать ее глобальной (главной, основной) внутри нашей функции, для того чтобы иметь к ней доступ. Потом мы определим нашу переменную, вызывая проигрывание переменной “tagdata” (информация тэгов). Эта переменная представляет собой информацию между открывающей и закрывающей тэговыми парами. Взгляните:</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">Auto_acronym</span><span style="color: #007700">()<br /></span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">global&nbsp;</span><span style="color: #0000BB">$TMPL</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$TMPL</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">tagdata</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">&#125;&nbsp;</span>
</span>
</code></div>

<p>А сейчас, давайте сделаем кое-что очень простое с нашей информацией и сделаем ее выделенной полужирным шрифтом, так как теперь это просто текст. Мы добавим тэги &lt;strong&gt; вокруг нее, затем определим нашу переменную return_data. Вот так должны выглядеть наш код, шаблон и выполненная страница:</p>

<h3>Plugin: Плагин</h3>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">Auto_acronym</span><span style="color: #007700">()<br /></span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">global&nbsp;</span><span style="color: #0000BB">$TMPL</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'&lt;strong&gt;'</span><span style="color: #007700">.</span><span style="color: #0000BB">$TMPL</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">tagdata</span><span style="color: #007700">.</span><span style="color: #DD0000">'&lt;/strong&gt;'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">return_data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">&#125;&nbsp;</span>
</span>
</code></div>

<h3>Template: Шаблон</h3>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #007700">&lt;</span><span style="color: #0000BB">h1</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">Plugin&nbsp;Tutorial</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">h1</span><span style="color: #007700">&gt;<br /><br /></span><span style="color: #0000BB">&#123;exp</span><span style="color: #007700">:</span><span style="color: #0000BB">auto_acronym&#125;<br /></span><span style="color: #007700">&lt;</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">This&nbsp;gets&nbsp;processed</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;<br /></span><span style="color: #0000BB">&#123;</span><span style="color: #007700">/</span><span style="color: #0000BB">exp</span><span style="color: #007700">:</span><span style="color: #0000BB">auto_acronym&#125;&nbsp;</span>
</span>
</code></div>

<h3>Выполненное в браузере:</h3>

<p><img src="http://foto.nnov.ru/psh640/0/55/98/e2/a4/00/13/2542874be206b7e8.jpg"  alt='2542874be206b7e8.jpg' /></p>

<h2>Сделайте уже хоть что-нибудь!</h2>

<p>Ладно, ладно. Давайте уже немного повеселимся с этим. Наша цель относительно данного плагина – сканировать проходящую через него информацию на общие акронимы веб-дизайна. Я уже упоминал, что мы будем использовать три для статьи: HTML, CSS и RSS. Первое что мы хотим сделать – это вставить их в массив внутри нашей функции. Помните, что если мы использовали массив в плагине и у нас были <b>множественные функции</b> в плагине нам, возможно, придется сохранить это вне конструктора, так, чтобы это могло быть вызвано любой функцией.</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">Auto_acronym</span><span style="color: #007700">()<br /></span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">global&nbsp;</span><span style="color: #0000BB">$TMPL</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$TMPL</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">tagdata</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$acronyms&nbsp;</span><span style="color: #007700">=&nbsp;array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'HTML'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'HyperText&nbsp;Markup&nbsp;Language'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'CSS'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'Cascading&nbsp;Style&nbsp;Sheets'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'RSS'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'Really&nbsp;Simple&nbsp;Syndication'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#125;&nbsp;</span>
</span>
</code></div>

<p>Теперь, когда наша тэговая информация с массивом акронимов готова, нам нужно запустить петлю “foreach()”&nbsp; для каждого из акронимов. Первое что мы сделаем – это пропустим акроним и тэговую информацию через функцию “strpos()”&nbsp; для того, чтобы убедиться, что акроним действительно присутствует в нашей строке. Если ваш словарь акронимов включает в себя сотни значений, и вы пропускаете большое количество статей, это может привести к риску ненужного времени обработки. Если, и только если акроним находится внутри нашей тэговой информации, мы используем функцию “str_replace()” для того, чтобы уже добавить тэг «акроним» &lt;acronym&gt;. После петли “foreach()” мы определим нашу переменную возвратной информации (return_data). Вот как это выглядит:</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">Auto_acronym</span><span style="color: #007700">()<br /></span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">global&nbsp;</span><span style="color: #0000BB">$TMPL</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$TMPL</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">tagdata</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$acronyms&nbsp;</span><span style="color: #007700">=&nbsp;array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'HTML'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'HyperText&nbsp;Markup&nbsp;Language'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'CSS'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'Cascading&nbsp;Style&nbsp;Sheets'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'RSS'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">'Really&nbsp;Simple&nbsp;Syndication'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span style="color: #0000BB">$acronyms&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">$short&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">$long</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$short</span><span style="color: #007700">)&nbsp;!==&nbsp;</span><span style="color: #0000BB">FALSE</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #0000BB">$short</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'&lt;acronym&nbsp;title="'</span><span style="color: #007700">.</span><span style="color: #0000BB">$long</span><span style="color: #007700">.</span><span style="color: #DD0000">'"&gt;'</span><span style="color: #007700">.</span><span style="color: #0000BB">$short</span><span style="color: #007700">.</span><span style="color: #DD0000">'&lt;/acronym&gt;'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#125;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&#125;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">return_data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #0000BB">&#125;&nbsp;</span>
</span>
</code></div>

<p>Для того, чтобы правильно протестировать, нам нужно изменить наш шаблон, для того чтобы наши акронимы действительно присутствовали в нем. Я собираюсь изменить шаблон следующим образом:</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #007700">&lt;</span><span style="color: #0000BB">h1</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">Plugin&nbsp;Tutorial</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">h1</span><span style="color: #007700">&gt;<br /><br /></span><span style="color: #0000BB">&#123;exp</span><span style="color: #007700">:</span><span style="color: #0000BB">auto_acronym&#125;<br /></span><span style="color: #007700">&lt;</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">My&nbsp;name&nbsp;is&nbsp;Erik&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">I&nbsp;am&nbsp;an&nbsp;addict</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">I&nbsp;stay&nbsp;up&nbsp;late&nbsp;into&nbsp;the&nbsp;night&nbsp;marking&nbsp;up&nbsp;HTML&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">CSS&nbsp;with&nbsp;magical&nbsp;alignment</span><span style="color: #007700">.<br /></span><span style="color: #0000BB">Whitespace&nbsp;speaks&nbsp;volumes&nbsp;of&nbsp;my&nbsp;care&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">finesse&nbsp;of&nbsp;the&nbsp;code</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">My&nbsp;RSS&nbsp;subscribers&nbsp;wait&nbsp;on&nbsp;their&nbsp;toes&nbsp;</span><span style="color: #007700">for&nbsp;</span><span style="color: #0000BB">my&nbsp;next<br />example&nbsp;of&nbsp;code&nbsp;beauty</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">Okay</span><span style="color: #007700">...</span><span style="color: #0000BB">not&nbsp;really</span><span style="color: #007700">.&lt;/</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;<br /></span><span style="color: #0000BB">&#123;</span><span style="color: #007700">/</span><span style="color: #0000BB">exp</span><span style="color: #007700">:</span><span style="color: #0000BB">auto_acronym&#125;&nbsp;</span>
</span>
</code></div>

<p>Сохранение шаблона и обновление браузера представят следующую картину:</p>

<p><img src="http://foto.nnov.ru/psh640/0/85/a1/5d/01/ed/c2/5526692f9def7b51.jpg"  alt='5526692f9def7b51.jpg' /></p>

<h3>Вот уже кое-что!</h3><p>
Теперь, когда тэги между открывающими и закрывающими тэгами нашего плагина работают правильно, давайте рассмотрим другую опцию: пропускание информации через единичный тэг. Использование единичного тэга в плагине потребует добавления параметров, по которым информация, которая будет продолжать проходить через плагин, будет обрабатываться. Вы можете назвать параметр как вам угодно. В нашем случае мы используем следующее название и добавим его к нашему шаблону:</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000BB">&#123;exp</span><span style="color: #007700">:</span><span style="color: #0000BB">auto_acronym&nbsp;data</span><span style="color: #007700">=</span><span style="color: #DD0000">"HTML"</span><span style="color: #0000BB">&#125;&nbsp;</span>
</span>
</code></div>

<p>Теперь, когда у нас есть единичный тэг, мы должны найти способ как использовать его в нашем плагине. Любой параметр, который вы хотите использовать в вашем плагине, может быть выбран, используя Объект Шаблона (или Шаблон Объекта), который мы использовали ранее. Вместо возможности выбора через переменные вы должны выбрать функцию, которая называется “fetch_param()”.&nbsp; Мы хотим, чтобы наш плагин мог работать, используя как единичный тэг, так и тэговую пару, поэтому мы примем это в расчет, когда будем определять нашу $переменную информации ($data variable). Вот что мы изменим:</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #FF8000">//&nbsp;Original&nbsp;<br /></span><span style="color: #0000BB">$data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$TMPL</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">tagdata</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">//&nbsp;New<br /></span><span style="color: #0000BB">$data&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">$TMPL</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch_param</span><span style="color: #007700">(</span><span style="color: #DD0000">'data'</span><span style="color: #007700">))&nbsp;?&nbsp;</span><span style="color: #0000BB">$TMPL</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch_param</span><span style="color: #007700">(</span><span style="color: #DD0000">'data'</span><span style="color: #007700">)&nbsp;:&nbsp;</span><span style="color: #0000BB">$TMPL</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">tagdata&nbsp;</span><span style="color: #007700">;&nbsp;</span>
</span>
</code></div>

<p>Если вы не&nbsp; знакомы с этим синтаксисом, он в действительности говорит следующее: если информационный параметр существует (или true) тогда использовать его как нашу информационную переменную, в другом случае использовать тэговую информацию между тэговыми парами». Это изменение позволит нам использовать как тэговые пары, так и единичные тэги с определенным параметром информации. Вот как определится наш шаблон:</p>

<p><img src="http://foto.nnov.ru/psh640/0/84/d3/1c/6e/2c/cb/0961ee1d84825043.jpg"  alt='0961ee1d84825043.jpg' /></p>

<h3>Почти готово!</h3><p>
 Теперь у нас есть полностью функционирующий плагин для ExpressionEngine. Заключительным шагом в его завершении станет добавление полезной «используемой» (usage) информации. Дайте перейдем к функции “usage()” и добавим некоторую простую документацию для Контрольной Панели.</p>

<div class="codeblock"><code><span style="color: #000000">
<span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">usage</span><span style="color: #007700">()<br /></span><span style="color: #0000BB">&#123;<br />&nbsp;&nbsp;&nbsp;ob_start</span><span style="color: #007700">();&nbsp;<br /></span><span style="color: #0000BB">?&gt;<br /><br />The&nbsp;</span><span style="color: #DD0000">"dictionary"&nbsp;</span><span style="color: #0000BB">of&nbsp;acronyms&nbsp;is&nbsp;stored&nbsp;in&nbsp;an&nbsp;</span><span style="color: #007700">array&nbsp;</span><span style="color: #0000BB">within&nbsp;the&nbsp;plugins</span><span style="color: #007700">/</span><span style="color: #0000BB">pi</span><span style="color: #007700">.</span><span style="color: #0000BB">auto_acronym</span><span style="color: #007700">.</span><span style="color: #0000BB">php&nbsp;file</span><span style="color: #007700">.<br /><br /></span><span style="color: #0000BB">Automatically&nbsp;turn&nbsp;a&nbsp;string&nbsp;into&nbsp;an&nbsp;HTML&nbsp;acronym&nbsp;</span><span style="color: #007700">if&nbsp;</span><span style="color: #0000BB">it&nbsp;is&nbsp;within&nbsp;our&nbsp;acronym&nbsp;dictionary</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">You&nbsp;can&nbsp;</span><span style="color: #007700">do&nbsp;</span><span style="color: #0000BB">this&nbsp;with&nbsp;individual&nbsp;words&nbsp;</span><span style="color: #007700">or&nbsp;</span><span style="color: #0000BB">large&nbsp;blocks&nbsp;of&nbsp;text</span><span style="color: #007700">.<br /><br /><br /></span><span style="color: #0000BB">Simple&nbsp;Example<br /></span><span style="color: #007700">===========================<br /><br /></span><span style="color: #0000BB">&#123;exp</span><span style="color: #007700">:</span><span style="color: #0000BB">auto_acronym&nbsp;data</span><span style="color: #007700">=</span><span style="color: #DD0000">"HTML"</span><span style="color: #0000BB">&#125;<br /><br />This&nbsp;outputs</span><span style="color: #007700">:<br />&lt;</span><span style="color: #0000BB">acronym&nbsp;title</span><span style="color: #007700">=</span><span style="color: #DD0000">"Hypertext&nbsp;Markup&nbsp;Language"</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">HTML</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">acronym</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">in&nbsp;your&nbsp;ExpressionEngine&nbsp;template</span><span style="color: #007700">.<br /><br /><br /><br /></span><span style="color: #0000BB">Large&nbsp;Block&nbsp;Example<br /></span><span style="color: #007700">===========================<br /><br /></span><span style="color: #0000BB">&#123;exp</span><span style="color: #007700">:</span><span style="color: #0000BB">auto_acronym&#125;<br /><br /></span><span style="color: #007700">&lt;</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">My&nbsp;name&nbsp;is&nbsp;Erik&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">I&nbsp;am&nbsp;an&nbsp;addict</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">I&nbsp;stay&nbsp;up&nbsp;late&nbsp;into&nbsp;the&nbsp;night&nbsp;marking&nbsp;up&nbsp;HTML&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">CSS&nbsp;with&nbsp;magical&nbsp;alignment</span><span style="color: #007700">.<br /></span><span style="color: #0000BB">Whitespace&nbsp;speaks&nbsp;volumes&nbsp;of&nbsp;my&nbsp;care&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">finesse&nbsp;of&nbsp;the&nbsp;code</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">My&nbsp;RSS&nbsp;subscribers&nbsp;wait&nbsp;on&nbsp;their&nbsp;toes&nbsp;</span><span style="color: #007700">for&nbsp;</span><span style="color: #0000BB">my&nbsp;next<br />example&nbsp;of&nbsp;code&nbsp;beauty</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">Okay</span><span style="color: #007700">...</span><span style="color: #0000BB">not&nbsp;really</span><span style="color: #007700">.&lt;/</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;<br /><br /></span><span style="color: #0000BB">&#123;</span><span style="color: #007700">/</span><span style="color: #0000BB">exp</span><span style="color: #007700">:</span><span style="color: #0000BB">auto_acronym&#125;<br /><br />This&nbsp;outputs</span><span style="color: #007700">:<br />&lt;</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">My&nbsp;name&nbsp;is&nbsp;Erik&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">I&nbsp;am&nbsp;an&nbsp;addict</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">I&nbsp;stay&nbsp;up&nbsp;late&nbsp;into&nbsp;the&nbsp;night&nbsp;marking&nbsp;<br />up&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">acronym&nbsp;title</span><span style="color: #007700">=</span><span style="color: #DD0000">"Hypertext&nbsp;Markup&nbsp;Language"</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">HTML</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">acronym</span><span style="color: #007700">&gt;&nbsp;<br />and&nbsp;&lt;</span><span style="color: #0000BB">acronym&nbsp;title</span><span style="color: #007700">=</span><span style="color: #DD0000">"Cascading&nbsp;Style&nbsp;Sheets"</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">CSS</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">acronym</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">with&nbsp;magical&nbsp;alignment</span><span style="color: #007700">.<br /></span><span style="color: #0000BB">Whitespace&nbsp;speaks&nbsp;volumes&nbsp;of&nbsp;my&nbsp;care&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">finesse&nbsp;of&nbsp;the&nbsp;code</span><span style="color: #007700">.&nbsp;<br /></span><span style="color: #0000BB">My&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">acronym&nbsp;title</span><span style="color: #007700">=</span><span style="color: #DD0000">"Really&nbsp;Simple&nbsp;Syndication"</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">RSS</span><span style="color: #007700">&lt;/</span><span style="color: #0000BB">acronym</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">subscribers&nbsp;wait&nbsp;on&nbsp;their&nbsp;toes&nbsp;</span><span style="color: #007700">for&nbsp;</span><span style="color: #0000BB">my&nbsp;next<br />example&nbsp;of&nbsp;code&nbsp;beauty</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">Okay</span><span style="color: #007700">...</span><span style="color: #0000BB">not&nbsp;really</span><span style="color: #007700">.&lt;/</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;<br /></span><span style="color: #0000BB">&lt;?php<br />&nbsp;&nbsp;&nbsp;$buffer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ob_get_contents</span><span style="color: #007700">();<br /><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ob_end_clean</span><span style="color: #007700">();&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$buffer</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">&#125;&nbsp;</span>
</span>
</code></div>

<p>Теперь наша контрольная панель будет выглядеть следующим образом:<br />
 
<img src="http://foto.nnov.ru/psh640/0/ea/08/63/46/dd/ba/b0799626651e174b.jpg"  alt='b0799626651e174b.jpg' /></p>

<h3>Поздравления!</h3>

<p>Вот вы и закончили ваш первый плагин для ExpressionEngine.&nbsp; Надеюсь, это откроет перед вами двери, и вы поймете насколько это легко. Выбор и возврат информации – очень простой процесс, и вы можете использовать ваши волшебные формы РНР внутри самого плагина. Я размещаю этот плагин на <a href="http://eeclub.ru/?URL=http%3A%2F%2Fgithub.com%2Ferikreagan">моей странице</a>, где вы можете скачать полный код плагина если захотите. В следующих сериях ExpressionEngine  мы рассмотрим создание простого Расширения для Контрольной Панели. Не пропустите.</p>

<p><i>При перепечатке материала, просьба указывать eeclub.ru в качестве источника перевода.</i>
</p>
      ]]>
      </content>
    </entry>

    <entry>
      <title>Paginate в категориях галереи, картинка категории галереи</title>
      <link rel="alternate" type="text/html" href="http://eeclub.ru/forum/viewthread/1181/" />      
      <id>tag:eeclub.ru,2009:forum/viewthread/.1181</id>
      <published>2009-11-02T23:49:48Z</published>
      <updated>2009-11-02T23:50:15Z</updated>
      <author><name>Станислав</name></author>
      <content type="html">
      <![CDATA[
        <p>Интересное решение с примером можно посмотреть здесь<br />
<a href="http://eeclub.ru/?URL=http%3A%2F%2Fexpressionengine.com%2Fwiki%2FGallery_Module_Alternative_Templates%2F">http://expressionengine.com/wiki/Gallery_Module_Alternative_Templates/</a></p>

<p>Данный прием может пригодиться, когда необходимо вывести последнюю категорию с превьюшкой, например &#8220;Фоторепортаж&#8221; и т.п. Причем превьюшкой является одна из картинок в данной категории галереи.</p>

<p>P.S. Еще одно решение с превьюшкой (миниатюрой) категории можно посмотреть <a href="http://eeclub.ru/?URL=http%3A%2F%2F5pieces.com%2Fblog%2Fexpressionengine-gallery-alternative-template%2F">здесь</a>, пример <a href="http://eeclub.ru/?URL=http%3A%2F%2F5pieces.com%2Fblaze%2F">здесь</a>
</p>
      ]]>
      </content>
    </entry>

    <entry>
      <title>MySQL запросы для EE</title>
      <link rel="alternate" type="text/html" href="http://eeclub.ru/forum/viewthread/35/" />      
      <id>tag:eeclub.ru,2008:forum/viewthread/.35</id>
      <published>2008-01-08T00:03:43Z</published>
      <updated>2008-01-08T16:39:38Z</updated>
      <author><name>Calm</name></author>
      <content type="html">
      <![CDATA[
        <p>most_popular_posts 
</p><div class="codeblock"><code><span style="color: #000000">
<span style="color: #0000BB">SELECT&nbsp;t</span><span style="color: #007700">.</span><span style="color: #0000BB">title</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">t</span><span style="color: #007700">.</span><span style="color: #0000BB">body</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">t</span><span style="color: #007700">.</span><span style="color: #0000BB">topic_id</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">t</span><span style="color: #007700">.</span><span style="color: #0000BB">thread_total</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">t</span><span style="color: #007700">.</span><span style="color: #0000BB">thread_views</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">t</span><span style="color: #007700">.</span><span style="color: #0000BB">author_id</span><span style="color: #007700">,&nbsp;<br /></span><span style="color: #0000BB">t</span><span style="color: #007700">.</span><span style="color: #0000BB">last_post_author_id</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">t</span><span style="color: #007700">.</span><span style="color: #0000BB">forum_id</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">f</span><span style="color: #007700">.</span><span style="color: #0000BB">forum_status</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">f</span><span style="color: #007700">.</span><span style="color: #0000BB">forum_permissions</span><span style="color: #007700">,&nbsp;&nbsp;</span><span style="color: #0000BB">m</span><span style="color: #007700">.</span><span style="color: #0000BB">screen_name</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">m2</span><span style="color: #007700">.</span><span style="color: #0000BB">screen_name&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">last_poster</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">f</span><span style="color: #007700">.</span><span style="color: #0000BB">forum_name&nbsp;&nbsp;<br />FROM&nbsp;exp_forum_topics&nbsp;t</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">exp_forums&nbsp;f</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">exp_members&nbsp;m</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">exp_members&nbsp;m2&nbsp;&nbsp;<br />WHERE&nbsp;t</span><span style="color: #007700">.</span><span style="color: #0000BB">forum_id&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">f</span><span style="color: #007700">.</span><span style="color: #0000BB">forum_id&nbsp;&nbsp;</span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">t</span><span style="color: #007700">.</span><span style="color: #0000BB">author_id&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">m</span><span style="color: #007700">.</span><span style="color: #0000BB">member_id&nbsp;&nbsp;<br /></span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">t</span><span style="color: #007700">.</span><span style="color: #0000BB">last_post_author_id&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">m2</span><span style="color: #007700">.</span><span style="color: #0000BB">member_id&nbsp;<br /></span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">f</span><span style="color: #007700">.</span><span style="color: #0000BB">forum_is_cat&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'n'&nbsp;<br /></span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">t</span><span style="color: #007700">.</span><span style="color: #0000BB">status&nbsp;</span><span style="color: #007700">!=&nbsp;</span><span style="color: #DD0000">'c'&nbsp;<br /></span><span style="color: #007700">AND&nbsp;</span><span style="color: #0000BB">t</span><span style="color: #007700">.</span><span style="color: #0000BB">board_id&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">1&nbsp;<br />ORDER&nbsp;BY&nbsp;thread_total&nbsp;<br />DESC&nbsp;LIMIT&nbsp;30&nbsp;</span>
</span>
</code></div>
      ]]>
      </content>
    </entry>

    <entry>
      <title>FLV Player для ExpressionEngine &#45; плеер для показа видеороликов на сайте</title>
      <link rel="alternate" type="text/html" href="http://eeclub.ru/forum/viewthread/1167/" />      
      <id>tag:eeclub.ru,2009:forum/viewthread/.1167</id>
      <published>2009-10-24T13:05:28Z</published>
      <updated>2010-01-17T20:09:56Z</updated>
      <author><name>Станислав</name></author>
      <content type="html">
      <![CDATA[
        <p>JW FLV Media Player - плеер для показа видеороликов на сайте. Может подгружать видео с Youtube</p>

<p><a href="http://eeclub.ru/?URL=http%3A%2F%2Fwww.longtailvideo.com%2Fplayers%2Fjw-flv-player%2F">http://www.longtailvideo.com/players/jw-flv-player/</a></p>

<p>здесь информация по настройке <a href="http://eeclub.ru/?URL=http%3A%2F%2F5pieces.com%2Faddons%2Fflv-media-player%2F">http://5pieces.com/addons/flv-media-player/</a>
</p>
      ]]>
      </content>
    </entry>

    <entry>
      <title>Как посмотреть содержимое новости без перезагрузки страницы</title>
      <link rel="alternate" type="text/html" href="http://eeclub.ru/forum/viewthread/1160/" />      
      <id>tag:eeclub.ru,2009:forum/viewthread/.1160</id>
      <published>2009-10-21T12:33:40Z</published>
      <updated></updated>
      <author><name>Станислав</name></author>
      <content type="html">
      <![CDATA[
        <p>Рассказывается на данном сайте, на англ.</p>

<p><a href="http://eeclub.ru/?URL=http%3A%2F%2Fjambor-ee.com%2Ftutorials%2Floading-and-animating-an-entry-with-ajax-and-jquery%2F">http://jambor-ee.com/tutorials/loading-and-animating-an-entry-with-ajax-and-jquery/</a>
</p>
      ]]>
      </content>
    </entry>


</feed>
