+18.11
Рейтинг
50.70
Сила

1099511627776

Универсальные RSS Фиды


Здравствуйте, представляю Вашему вниманию плагин «Универсальные RSS Фиды».
Что он делает? Располагается по адресу site/rssfeeds/<тип> предоставляет каждому потребителю РССок тот формат который он просит.
Настройка производится в конфиге:

$config['feedtypes'] = array(
	'yandex' => 'yandex.tpl',
	'ukrnet' => 'ukrnet.tpl'
);

Как видно из примера сейчас доступны 2 типа РСС фидов — Яндекс и Укр.нет и доступны они будут по адресам:
site/rssfeeds/yandex/ и
site/rssfeeds/ukrnet/ соответственно.

Дальнейшас структура фидов 1 в 1 соответствует структуре оригинальных фидов ЛС.:
http://goloskarpat.info/rssfeeds/yandex/tag/Україна
и т.д.

Жду Ваших предложений и пожеланий

P.S. Ответ на вопрос. Почему плагин, если здесь можно найти полно советов по переделке стандартной RSS-ки: Потому что это именно плагин и он никуда не денется после обновления движка и не нарушит возможные зависимости

Целесообразность кеша при нагрузках

Здравствуйте. Только что наблюдал интересное явление и захотелось поделится\спросить.
Суть следующая. На продакшене были установлены параметры «дебага»:

$config['sys']['cache']['use']    = false;
$config['compress']['css']['merge'] = false; 
$config['compress']['js']['merge']  = false; 

нагрузка на сайт судя по Linux top колебалась 0.5-0.8
После того как установил эти параметры в true нагрузка поднялась 3.25 подождал 1час (мало ли кеш наполняется данными). Но нагрузка не упала.
Только что убрал эти значения в false нагрузка упала за 5мин до 0.4

У кого какие соображения по этому поводу. А конкретно по применению кеша и мерджа на продакшене?

Ефективность подсчета формул в SQL-е.

Уважаемые знатоки HighLoad-a
Вопрос у меня следующий
Пишу плагин который будет заниматься пользовательскими рейтингами. с оху офигенными формулами и алгоритмами.
Но суть не в этом. В плагине есть простой метод подсчета посещений\кол-ва коментариев\голосов
И я незнаю как его лучше реализовать через SQL или через отдельные формулы. Пример:
Подсчет количества посещений:
Вариант1:
$count = oTopic->getViewCount();
$count += 1;
$oTopic->setViewCount($count);
$this->Topic_UpdateTopic($oTopic);

Вариант №2:
$this->Topic_UpdateTopicCount($oTopic)

в маппере:
$sql = "UPDATE topic_rating SET count = count+1 where topic_id = ?d"
$this->oDb->query($sql,oTopic->getId())


Так вот, какой код будет лучше с точки зрения ефективонсти?

Новая функция в Entity не работает на другом сайте

Здравствуйте,
Вот такой интересный вопрос.
Переопределяю Entity topic на тестовой машине. добавляю 2 новые функции.
setParam()
getParam()
которые сохраняют и читают соответственно параметр через protected setExtraValue
Так вот
на тестовом стенде все рботает
параметр сохраняется и восстанавливается нормально
На продакшене — параметр сохраняется (т.е. функция setParam — отрабатывает нормально) и я в БД вижу эти данные. но ВОССТАНОВЛЕНИЕ — не работает.
Разницы в вериях ЛС — только разные шаблоны.

У кого было то же самое — отзовитесь

UpdateTopic срабатывает через раз

Здравствуйте вот такая незадача у меня случилась.
Пишу хук который реагирует на topic_edit_after
он должен поменять один параметр (записать данные через переопределенный Entity setExtraValue ) и вызвать UpdateTopic чтоб обновить эти данные. Так вот. Я сделал такую конструкцию:

			if( $this->Topic_UpdateTopic($oTopic) ) {
				print "ok";
			} else {
				print "erorr";
			}

и она срабатывает (т.е. ок появляется 1 раз из 5-ти) причем нет определенной логики.
В sql логе ничегоконкретного не вижу.
Подскажите куда копать?

Как узнать имя хука который вызвал функцию?

Здравствуйте, вопрос в следующем
Есть у меня модуль хука, который регистрирует одну функцию на разные хуки
к примеру так:
foreach($positions as $position){
$this->AddHook('template_'.$position, 'displayPosition',__CLASS__);
}
Теперь вопрос. Как из функции displayPosition узнать какой хук ее вызвал?

ГолосКарпат 2.0: Переезд из Joomla K2 на LiveStreet

Итак свершилось. Интернет-газета ГолосКарпат, который поледние 2 года базировался на Joomla 1.5 (1.7 и др.) мы таки перенесли на LiveStreet.
Основными причинами переноса послужила прожорливость Некоторых модулей Джумлы типа Gavik-а и других.
Слишком ломанная поддержка openid/fb/vk — входов (Перепробовали все от loginza и до uLogin с ручным ковырянием в нем).
Сначала были мысли о том чтобы переехать на WordPress но увидев хабра-подобную систему рейтинга (на основе которой мы планируем сделать ППА (Программу Поощрения Авторов) мы решили остановиться на LiveStreet
Итак для статистики:
  • около 21тис. топиков
  • около 4тис. комментов
  • около 200 пользователей
Для переноса пользователей\топиков\коментариев поглядывая на livestreet.ru/blog/addons/11200.html был написан свой конвертер из Joomla K2 контент + JComments-коментарии + пользователи (К стати это первый из написанных мной плагинов поэтому говнокода там полно). Основной упор был сделан на то, что простаивать сайт должен минимально + должна происходить склейка (301 Redirect) чтобы позиции в гугле потерялись ПО МИНИМУМУ. К счастью нам повезло в том, что структура ссылок Джумлы и LS отличалась.
Как следствие при ссылке на старый адрес включался обработчик ActionError, чем мы и воспользовались. Был написан небольшой роутер который находил в ссылке ИД старого топика и склеивал по 301 редиректу топики параллельно создавая их если они отсутствовали.

Таким образом сегодня в полку «Сайтов на LiveStreet» прибыл еще один сайт.

В данный момент нашими приоритетными заданиями есть:
  1. Борьба с jevix т.к. он до сих пор не может нормально отобразить видео с вконтакта (хотя vk.com мы добавили в jevix.php)
  2. создание системы рейтингов которая бы учитывала не только оценки за топики\коментарии\пользователей но и каким-то образом использовала количество посещений пользователей для этого
  3. допиливание Шаблона, чтобы он максимально отвечал «корпоративным стандартам»

На этом разрешите откланяться и пользуясь случаем попросить совета в решении 1-го и 2-го пунктов ибо ОЧЕНЬ НАДО

Хакерская консоль вылазит в json ответе

Здравствуйте, вопрос в следующем
Пишу небольшую ajax функцию которая посылает json отверт. Но клиенту (javascript-у) приходит json ответ «разбавленный» в конце Хакерской консолью.

Сама хакерская консоль включена, но никаких dump-ов в обработчике нету. Более того такое поведение заметил ТОЛЬКО в одной функции другие же функции которые также возвращают json — работают нормально.
Логика везде одна

	protected function EventBlogcatUpdate(){
		$this->Viewer_SetResponseAjax('json');
		$this->Security_ValidateSendForm();
		...................................
		$this->Viewer_AssignAjax('updated',true);


В какую сторону уважемые знатоки посоветуют копать?

Возможно баг при удалении блогов\топиков

Здравствуйте. Возможно баг.
Удалял блог. Топики удалились, но комментарии от них остались и в итоге в bloc.stream_comment.tpl посыпались ошибки. Пришлось удалять из базы вручную коммент.

P.S. Да я знаю о
* Если тип таблиц в БД InnoDB, то удалятся всё связи по топику(комменты, голосования, избранное)

У меня точно innodb но коментарии не удалились

P.P.S.
Смотрю по связям через phpMyAdmin:
там связь только comment_pid => comment_id
и user_id => user_id

Можно ли отделить разные види топиков?

Здравствуйте, вопрос в следующем.
Можно ли легко (т.е. без написания плагинов, а чисто стандартными средствами) отделить списком разные виды топиков: топик\фотосет\опрос и сделать для них отдельные пункты в меню?