+1.95
Рейтинг
4.03
Сила

Mr. Pancake Man

LiveStreet 1.0 Раскрытие директории

в параметре order и order_way
GET /blogs/?order[]=blog_title&order_way=desc 
GET /blogs/?order=blog_title&order_way[]=desc 


выводит:
Warning: Illegal offset type in /var/www/localhost.ru/data/www/localhost.ru/classes/actions/ActionBlogs.class.php on line 112

Warning: htmlspecialchars() expects parameter 1 to be string, array given in /var/www/localhost.ru/data/www/localhost.ru/classes/actions/ActionBlogs.class.php on line 123


фикс:
github.com/HiMiC/livestreet/commit/e22aaae9b9c52fbe65ba8274ce4c4a92161c65d5

-----------------------------

при передаче второго параметра в виде массива
GET /engine/lib/external/kcaptcha/index.php?n[]=0.09490613568159461&PHPSESSID=1b66bc0836fd464122a4c319d7788c56


выводит:
Warning: preg_match() expects parameter 2 to be string, array given in /var/www/localhost.ru/data/www/localhost.ru/engine/lib/external/kcaptcha/index.php on line 36

....


фикс: github.com/HiMiC/livestreet/commit/ad48721b13034feeaa6bb06b5328aaf3b1c36c7a

-----------------------------

в параметре order и order_way
GET /people/?order[]=user_skill&order_way=desc


выводит:
Warning: Illegal offset type in /var/www/localhost_ru/data/www/localhost.ru/classes/actions/ActionPeople.class.php on line 258

Warning: htmlspecialchars() expects parameter 1 to be string, array given in /var/www/localhost_ru/data/www/localhost.ru/classes/actions/ActionPeople.class.php on line 274


фикс: github.com/HiMiC/livestreet/commit/097c712618790fda4f0e5d03be6e25cae20e6cde

-----------------------------

POST /ajax/infobox/info/blog/ HTTP/1.1
Content-Length: 60
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=1b66bc0836fd464122a4c319d7788c56
Host: localhost.ru
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Opera/9.80 (Windows NT 6.1; WOW64; U; ru) Presto/2.10.289 Version/12.00
Accept: */*

iBlogId[]=6&security_ls_key=9ed1708e04301ba2818833df02dda3c3


выводит:
<br />
<b>Warning</b>:  Illegal offset type in isset or empty in <b>/home/www/localhost.ru/data/www/localhost.ru/classes/modules/blog/Blog.class.php</b> on line <b>241</b><br />
{"sMsgTitle":null,"sMsg":"\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430, \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u0437\u0436\u0435","bStateError":true}


фикс: пока нету

-----------------------------

Плагин openid
POST /login/openid/enter/ HTTP/1.1
Content-Length: 58
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=1b66bc0836fd464122a4c319d7788c56
Host: localhost.ru
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Opera/9.80 (Windows NT 6.1; WOW64; U; ru) Presto/2.10.289 Version/12.00
Accept: */*

open_login[]=openid.yandex.ru&return=&submit_open_login=go


выводит:
Warning: preg_match() expects parameter 2 to be string, array given in /var/www/localhost_ru/data/www/localhost.ru/plugins/openid/classes/lib/external/php-openid-2.1.3/Auth/Yadis/HTTPFetcher.php on line 102

Warning: strpos() expects parameter 1 to be string, array given in /var/www/localhost_ru/data/www/localhost.ru/plugins/openid/classes/lib/external/php-openid-2.1.3/Auth/Yadis/Misc.php on line 56


фикс: пока нету
-----------------------------

ort проверь фиксы

Занимательный ЛС: парсер

Был неприятно удивлен ковырянием на дне парсера ЛС некоторыми особенностями обработки текста.

что же произошло?..

Full Cache. Простое Frontend кеширование без Nginx

Цель. Снизить нагрузку при большом потоке незарегистрированных пользователей.
Причины нагрузки.
1) Даже при включении бэкенд кеша любого вида(memcache, file, xcache) движок все же ест память, так как структуру данных он выстраивает в любом случае. При большом количестве плагинов растет количество классов и экземпляров этих классов, которые загружаются в память. В данном случае использование бэкенд кеша увеличивает скорость работы за счет кеширования результатов запросов в базу данных. Но размер потребляемой памяти остается тот же. Например, у меня страница топика ела 19 Мб, а список — 30мБ. При этом частично помогает, например, использование ссылок на объекты с помощью & при переборе, а не их копий. Но все же это крошки.
2) Даже при полном кеше БД все же выполняются несколько запросов, таких как получение данных о сессии или update таблицы просмотров. Под нагрузкой и при использовании InnoDb базы «update запрос» может очень сильно тормозить.
Ресурсы и методы
Собственно смысл прост. Он состоит в том, чтобы один раз генерировать страницу, а потом отдавать ее сразу.
Проверять на существование и отдавать кеш надо будет перед запуском движка, что разгрузит потребляемую память.

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

Доступ к сайту только для администрации

По нужде сделал что-то вроде «Ведутся технические работы». Доступ к сайту будет закрыт всем кроме администрации.

1. открываем /plugins/aceadminpanel/classes/actions/ActionAdminSiteSettings.class.php
находим
'adm_set_general_close' => array(
                        'type' => 'checkbox',
                        'config' => 'general.close',
                    ),

после, добавляем:
'adm_set_general_reconstruction' => array(
                        'type' => 'checkbox',
                        'config' => 'general.reconstruction',
                    ),


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

Seo настройки сайтов на LS

Что-то так мало инфы на сайте по этому поводу, я решил по-немногу собирать все в этом топике.

Тайтлы


Как я вижу нормальную работу с тайтлами:

1. Главная имеет тайтлы с ключами
2. На внутренних в тайтле выводим название статьи + рубрика + название сайта(не обязательно). Причем, если название сайта и выводить, то только краткое и оно не должно повторять тайтл главной. Или же вообще выводить исключительно в тайтле название статьи(топика) + возможность указывать тайтлы отдельно.

Как сейчас по дефолту — название сайта = тайтлу и это название лепится везде на всех страницах.
Читать дальше →

Показываем, что пост новый



Продолжая тему извращений над возможностями шаблонизатора, хочу предложить вам легкий способ указать на то, что пост новый. То есть, если посту меньше суток, то выводится определенная надпись, например — «Новый пост!». Идея древняя как мир, но раз для других CMS делали такие фичи, то, возможно и здесь кому-то она пригодится.

Все делается элементарно — в файлах topic_link.tpl, topic_photoset.tpl, topic_question.tpl, topic_topic.tpl вашего шаблона после даты добавления поста вставляем следующий код:
{if (time() - strtotime($oTopic->getDateAdd()))<86400}<span style="color:green;">New Post!</span>{/if}


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

Sphinx через Unix-сокеты

Мини-заметка:

/config/modules/search/config.php
<?php
$config['entity_prefix']  = '';
$config['sphinx']['host'] = 'unix:///tmp/sphinx.socket';
return $config;
?>


/usr/local/etc/sphinx.conf
searchd
{
        listen              = /tmp/sphinx.socket
        log                 = /usr/local/etc/sphinx/searchd.log
        query_log           = /usr/local/etc/sphinx/query.log
        read_timeout        = 5
        max_children        = 20
        pid_file            = /var/run/sphinx.pid
}

Очередной вопрос про перенос css и js файлов на другой поддомен.

Прошу сразу сильно не пинать и не минусовать, пожалуйста.
Есть:
blogs.example.ru — сам сайт.

Задача:
Сделать так, чтобы css файлы загружались с домена например css-blogs.example.ru
Сдедать так, чтобы js файлы загружались с домена js-blogs.example.ru (Или пофиг, можно даже с тогоже css-blogs.example.ru)

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

Выделяем цветом комментарии топикстартера

Приветствую всех пользователей LiveStreet!

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

Как это сделать изложено под катом...

Кеширование или как много хорошего в этом слове


Думаю не для многих разработчиков есть секретом что в ЛС встроен механизм кеширования информации, полученной от БД. Но мои частые наблюдения сообщают о другом — я не могу вспомнить сторонние плагины, которые использовали бы кеширование в своей работе. Да что лукавить — я сам его обходил стороной часто. Поэтому этот топик призван пролить луч света на использование кеширования в ЛС в своих плагинах, т.к. это довольно просто.

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