+28.89
462 читателя, 107 топиков

Боевой курс новичка или "всем новеньким - сюда", часть 2

все, там место кончилось.
Продолжение FAQ для новичков, первую часть можно прочесть здесь.

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

Боевой курс новичка или "всем новеньким - сюда"

Это краткое FAQ.

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

Еще один вопрос по 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. Не получилось. Утыкается в проверку типа связи, где и вызывает исключение.

Работает только главная страница LiveStreet

Здравствуйте!
Буквально сегодня настроил VPS сервер и решил установить livestreet. Установка прошла отлично.
Главная страница работает, а вот куда ни переходи — 404 ошибка. В чем дело? Может какая библиотека не установлена?

Решение нашел. Товарищ netlanc указал мне путь, в чем проблема. Это оказался .htaccess файл, которого кстати у меня вообще не было.

Итак, что необходимо:
1. Через SSH зашел в папку /etc/apache2/mods-enabled
cd /etc/apache2/mods-enabled

2. Cоздаём символьную ссылку:
ln -s ../mods-available/rewrite.load ./rewrite.load

3. Переходим в /var/www/мойсайт/
4. Создал файл ./htaccess с следующим содержанием:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|ico|swf)$
RewriteCond %{REQUEST_FILENAME} !{SERVER_NAME}\/uploads.$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php


5. Переходим в /etc/apache2/sites-available и редактируем default:
поменять в <Directory /> и <Directory /var/www/> AllowOverride All вместо None.

Все работает :)

Наследование одного екшена разными плагинами

Здесь я высказался о проблеме. Сегодня я расскажу как её решить, а точнее какие изменения внести в ядро 042 из последней транковой версии.
Проблема эта однажды коснется почти каждого т.к. она весьма серьезная и с ней столкнутся — раз плюнуть, поэтому пост заносим в избранное.

Коротко напомню суть проблемы — если два разных плагина наследуют один общий екшен (например ActionSettings), и оба плагина выводят что-то в шаблон, то один из плагинов (который был активирован первым) завершится ошибкой не нахождения шаблона.

Fatal error: Uncaught exception 'Exception' with message 'Can not find the template: actions/ActionSettings/abc.tpl' in лалала


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

Проверка на принадлежность страницы нескольким урлам

Подскажите пожалуйста, как сделать следующее: есть условие

{if $oTopic and $oTopic->getUrl() == 'http://site.ru/blog/auto/1.html'}

которое проверяет является ли открытая страница топиком и имеет ли этот топик адрес site.ru/blog/auto/1.html.

А что нужно прописать, чтобы учитывались все адреса типа site.ru/blog/auto/*?

Т.е. надо устроить проверку является ли открытая страница топиком и имеет ли этот топик один из адресов site.ru/blog/auto/1.html, site.ru/blog/auto/2.html, site.ru/blog/auto/3.html...

Помогите докрутить слайдер

Вставляю слайдер в шаблон. Сам слайдер вкрутил, осталось сделать автоматический пост в него топиков. Т.е. необходимо сделать файл похожий на topic_list.tpl, только прописать необходимую выборку топиков и нужные поля.

С полями проблем нету — убираю, то что не нужно, оставляю необходимое. А вот как осуществить выбор топиков? Т.е. в слайдер необходимо забирать пять последних топиков из блога с id — 1, как прописать такой фильтр?

И еще, может есть мысли по изображениям? Можно, конечно, поставить плагин превьюшек и с его помощью выводить картинки, но может можно как-то дергать из топика первое изображение и вставлять его? Если да, то как?

Ошибка вида

Несколько неожиданно сегодня на сайте стал получать ошибку вида
Fatal error: Smarty error: unable to write to $compile_dir '/var/www/user/data/www/site.ru/templates/compiled/whitelite'. Be sure $compile_dir is writable by the web server user. in /var/www/user/data/www/site.ru/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092

Прошу помощи в решении.

Отступ в 40px в профиле блога в шаблоне "New" (решено)

В шаблоне «New» на страницах коллективных блогов есть одна особенность: если развернуть и свернуть описание блога появляется отступ в 40px. Отступ этот прописан не в файле стилей, а где-то в другом месте. Вопрос: где?

В самом шаблоне не нашел (плохо искал?). Подозрение есть, что прописано сие где-то в самом скрипте, реализующем сворачивание/разворачивание описания блога, но своими силами найти не удалось. Прошу помощи.

Вывод блока в топиках и на страницах блога

Необходимо выводить один рекламный блок на всех страницах определенного блога и во всех топиках принадлежащих данному блогу.
Для другого блога и его топиков — другой рекламный блок и т.д.
Если реклама для блога и топиков не задана, то выводится общая.

Основной код написал, а вот как написать необходимое условие не знаю… Помогите, а?

Вот то, что у меня есть сейчас:

<!-- Banners -->
<div id="banners">	

	{if условие-1}
		<a href="/banner-1"><img src="/banner-1"></a>
	{else}	
		{if условие-2}
			<a href="/banner-2"><img src="/banner-3"></a>
		{else}
		........{if условие-n}
				<a href="/banner-n"><img src="/banner-n"></a>
			{else}
				<a href="/banner-(n+1)"><img src="/banner-(n+1)"></a>
			{/if}
		{/if}
	{/if}

</div>
<!-- /Banners -->


Условие-1..n = топик принадлежит блогу 1..n или мы на странице блога 1..n