0.00
Рейтинг
0.19
Сила

Свой блок 4.2 на примере блока популярных записей

Это лишь пример того, что нужно сделать, чтобы добавить свой блок в 4.2

config.php
$config['block']['rule_tops'] = array(
	'action'  => array('index','top'),
	'blocks'  => array( 'topper' => array('avas'=>array('priority'=>1000))),
);


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

История про нагрузку и как я с ней боролся.

Случилось так, что на одном из проектов full time стал переваливать за 1,5 сек и при этом сжирался весь проц. При этом все остальные показали были в норме: база — 0,002 сек, кеш — 0,01 сек.

Пришлось прикручивать профайлер и смотреть, в чем дело.

Виноват оказался Smarty, который из 1,5 секунд работал 1,2 (шаблон, на проекте, используется стандартный с легкими изменениями).

Копаясь дальше нашел самый сложный шаблон comments_tree.tpl, который выполняет в цикле инклюд шаблона comment.tpl.

Проблема решилась отказом от инклюда и переносом содержимого из comment.tpl в comments_tree.tpl.

full time на топиках с 400+ комментариев не превышает 0,4 сек.

Надеюсь кому-то поможет.

Изменение системы рейтинга для блогов

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

upd

Как оказалось хак для работы такой системы уже есть! Продублировал из этого поста.
Читать дальше →

Оповещение безопасности

11 дней назад на контактный емейл пришло письмо:

from	Почтовик LiveStreet <noreply@livestreet.ru>
to	
date	Sun, Dec 19, 2010 at 2:48 PM
subject	Оповещение безопасности
mailed-by	livestreet.ru
	
hide details Dec 19 (11 days ago)
	
Здравствуйте!

Уведомляем вас о закрытии в LiveStreet 0.4.2 уязвимости, с помощью которой потенциально можно было получить права администратора сайта.
Для исправления этой уязвимости вы можете скачать обновленный архив LiveStreet 0.4.2 - http://livestreetcms.com/download/get/
Либо внести изменения вручную:
1. Откройте файл /classes/actions/ActionProfile.class.php
2. Найдите строчку №522: protected function SubmitAddFriend($oUser,$sUserText,$oFriend=null) {
3. Сразу после нее вставьте строчку (только если её у вас еще там нет) : $sUserText=$this->Text_Parser($sUserText);
В итоге должно получиться следующее:
protected function SubmitAddFriend($oUser,$sUserText,$oFriend=null) {
$sUserText=$this->Text_Parser($sUserText);
$oFriendNew=Engine::GetEntity('User_Friend');


Мы настоятельно рекомендуем вам выполнить эти действия.
Спасибо за понимание.

С уважением, команда LiveStreet CMS 


Это письмо было действительно разослано администрацией сайта? Почему я не могу найти подтверждающей информации об этом тут на сайте?

Интеграция с WIKI

Доступен плагин для интеграции функционала ВИКИ себе на сайт — «DokuWiki integration».
В качестве движка WIKI используется DokuWIKI, этот двиг достаточно прост и не требует базу данных для своей работы. В комплекте идет плагин и сам дистрибутив DokuWIKI, доработанный для интеграции. В конфиге плагина необходимо прописать каталог, в котором будет находиться ВИКИ и рейтинг, начиная с которого пользователи смогут редактировать странички.

Ошибка при авторизации

При авторизации одного конкретного пользователя выпадает ошибка

SQL Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay at /home/n/newinfom/public_html/classes/modules/topic/mapper/Topic.mapper.class.php line 460
Array ( [code] => 1104 [message] => The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay [query] => SELECT t_fast.*, tc.*, u.user_login as user_login, IF(tv.topic_id IS NULL,0,1) as user_is_vote, tv.vote_delta as user_vote_delta, IF(tqv.topic_id IS NULL,0,1) as user_question_is_vote, bu.is_moderator as user_is_blog_moderator, bu.is_administrator as user_is_blog_administrator, IF(tr.comment_count_last IS NULL,t_fast.topic_count_comment,t_fast.topic_count_comment-tr.comment_count_last) as count_comment_new, IF(ft.topic_id IS NULL,0,1) as topic_is_favourite FROM ( SELECT t.*, b.blog_title as blog_title, b.blog_type as blog_type, b.blog_url as blog_url, b.user_owner_id as blog_owner_id FROM prefix_topic as t, prefix_blog as b WHERE 1=1 AND t.topic_publish = 1 AND ( t.topic_rating >= 2 or topic_publish_index=1 ) AND b.blog_type in ('personal','open') AND t.blog_id=b.blog_id ORDER by t.topic_date_add desc LIMIT 0, 10 ) as t_fast JOIN prefix_user AS u ON t_fast.user_id=u.user_id LEFT JOIN ( SELECT topic_id, vote_delta FROM prefix_topic_vote WHERE user_voter_id = 7 ) AS tv ON t_fast.topic_id=tv.topic_id LEFT JOIN ( SELECT topic_id FROM prefix_favourite_topic WHERE user_id = 7 ) AS ft ON t_fast.topic_id=ft.topic_id LEFT JOIN ( SELECT topic_id, comment_count_last FROM prefix_topic_read WHERE user_id = 7 ) AS tr ON t_fast.topic_id=tr.topic_id LEFT JOIN ( SELECT topic_id FROM prefix_topic_question_vote WHERE user_voter_id = 7 ) AS tqv ON t_fast.topic_id=tqv.topic_id LEFT JOIN ( SELECT is_moderator, is_administrator, blog_id FROM prefix_blog_user WHERE user_id = 7 ) AS bu ON t_fast.blog_id=bu.blog_id JOIN prefix_topic_content AS tc ON t_fast.topic_id=tc.topic_id order by t_fast.topic_date_add desc; [context] => /home/n/newinfom/public_html/classes/modules/topic/mapper/Topic.mapper.class.php line 460 )

Никто с подобным не сталкивался?

Безболезненная интеграция uppod

Почти с самого мая 2009 (0.3) мы медленно и нехотя изменяем функционал милого локального сайтика mycrap.ru

Сейчас я расскажу о самом простом способе вставки видео в посты, которого здесь не находил. Изначально была сделана своя форма загрузки для видео на базе стандартного /include/ajax/uploadImg.php, которая загружала файл и выдавала в окно поста код uppod-плеера строчек в 5, при этом пользователи могли хулиганить изменяя размер плеера и подсовывая свои листы стилей.

Проще всего (не правильнее, а именно проще всего) поправить системный файл /classes/modules/sys_text/Text.class.php.


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

Блок на статичную страницу

Пока сам еще в глубь не копал, поиск помог, но пока мало. Продолжаю ковыряться.
И вопрос.
Есть статичный старница /about в нее вложены еще кучка траниц. Как вывести этот список вложеных в блок справа?