+3.05
Рейтинг
10.93
Сила

Сергей

Еще один вопрос по ORM

Всем привет!

Есть три таблицы:



Связь Entry описана:

    protected $aRelations = array(
        'resources' => array(self::RELATION_TYPE_MANY_TO_MANY,'ModuleResource_EntityResource', 'resource_id', 'db.table.resource_to_entry', 'entry_id')
    );


При запросе типа…
$colEntries = $this->Entry_GetEntryItemsByFilter(array(
                                                       'status'=>'published',
                                                       '#with' => array(),
                                                       '#order'=>array('date_begin' => 'asc'),
                                                       '#page' => array($page,$perpage)
                                                     ));


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

$oEntry->getResources(array('resource_type'=>'IMAGE_THUMB_ENTRY_TYPE1','deleted'=>0)


Все работает, но не устраивает поток запросов к БД :(

Вопрос знатокам:

Есть ли способ загрузки всей коллекции ресурсов (к каждой записи entry) на этапе вызова Entry_GetEntryItemsByFilter?

Пробовал через #with. Не получилось. Утыкается в проверку типа связи, где и вызывает исключение.

Sisyphus - защита HTML формы

Sisyphus
Привет Сообщество!

Вчера днем, многие хабраюзеры могли прочитать о jQuery плагине Sisyphus.

Этот плагин подключается к HTML форме и на лету сохраняет данные в LocalStorage. Если до момента отправки формы рухнет браузер, случайно закроется вкладка или вырубят электричество — данные будут сохранены. При следующем открытии страницы с формой она будет заполнена сохраненными данными.



Плагин Sisyphus для LiveStreet подключает Sisyphus.js к форме создания топика (всех типов).
Для проектов написанных с использованием js-фрэймворка Mootools, jQuery будет загружен автоматически.
Плагин протестирован в 0.4.2 и 0.5.1 версиях LiveStreet.
Плагин не тестировался с WYSIWYG-редакторами. (есть мнение, что не заработает)


Плагин Facebook 0.5

Facebook Plugin
Привет Сообщество!

Рад представить вашему вниманию, обновленную версию плагина Facebook.

Плагин поддерживает версии LiveStreet 0.4.2 и 0.5.1
Поддерживаются шаблоны написанные с использованием как mootools, так и jquery.

UPD 23.12.2011: С 13 декабря, JavaScript SDK стал поддерживать OAuth 2.0 для авторизации. Это привело к появлению ошибки при попытке авторизоваться и получить список страниц пользователя на втором шаге мастера настройки. Ошибка исправлена в версии 0.5.1. Спасибо Giorgi за сообщение о неработоспособности.

Подробнее

Плагин Facebook

Назначение:

LiveStreet => Facebook
  1. Публикация анонсов топиков на стену страницы (page) в Facebook
  2. OpenGraph тэги: поддерживаются картинки и видео
  3. Виджет Like Box
  4. Виджет Recommendations

Страничка плагина на livestreetcms.com
Кроме того, скачать можно с GitHub

Демо:


«Разбор полетов» приветствуется. :)

Подключение плагинов под Windows [rev. 688]

Файл: Engine.class.php, функция InitPlugins

275: if($aPluginList = @file(Config::Get('path.root.server').'/classes/plugins/plugins.dat')) {
276: foreach ($aPluginList as $sPluginName) {


При обработке файла /classes/plugins/plugins.dat сформированного в Windows редакторе, в переменной $sPluginName остаются два символа с кодами 13 и 10.

Предлагаемое решение проблемы: обработка $sPluginName функцией trim.

275: if($aPluginList = @file(Config::Get('path.root.server').'/classes/plugins/plugins.dat')) {
276: foreach ($aPluginList as $sPluginName) {
+277: $sPluginName=trim($sPluginName);


Аналогичные проблемы найдены в:
Engine.class.php, функция InitPluginHooks
Lang.class.php, функиця LoadLangFiles
loader.php, строка 136