+0.48
Рейтинг
5.81
Сила

Illarion

Хуки JS в LS, краткое руководство для тех, кто запутался

Сегодня обратился за помощью товарищей всем известный разработчик avadim — не может вникнуть в дзен механизма хуков, которые работают на бэкенде (ЖС). Поэтому решил оформить этот ответ в виде краткого поста — может кому нибудь будет полезно.

Вступление


Механизм делегирования кода ЖС в ЛС можно осуществлять такими наиболее часто употребляемыми методами в зависимости от поставленной задачи:

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

Плагин ReGroup / группы пользователей сайта

Плагин ReGroup / группы пользователей сайта
Рад представить вашему вниманию плагин ReGroup.

Возможености плагина
Добавление групп пользователями сайта
На данный момент в группах реализовано.
  1. Стена
  2. Альбомы
  3. Размещение изображений в альбомы
По типу блогов в ls можно делать.
  1. Группы ( Закрытые / Открытые )
  2. Вступление, модерирование, администрирование, ( в закрытую, приглашение ) пользователей в группу.
Добавлено в профиль пользователя.
  1. Группы (создал)
  2. Группы (состоит)
  3. Группы (модерирует)
  4. Группы (администрирует)


Плагин уже полноценно работает и потестировать можно на сайте. Единственная просьба, не увлекайтесь с загрузкой изображений, пока проблема с хостингом..;)

Хочется узнать, какие вы бы хотели видеть дополнения и функции в этом плагине а так же сообщайте о ошибках которые найдёте.

Плагин будет платный и цена будет установлена после, как выложу его в общий каталог.

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

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

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

Валидация данных в LiveStreet 0.6

В транковую версию LS на github.com добавлен новый функционал — валидация данных и полей сущностей. Этот функционал призван заменить функцию func_check(). За основу был взят функционал валидации Yii.

На данный момент доступны следующие типы валидации:
  • Boolean — проверка значения на булевый тип
  • Date — проверка значения на формат даты и времени
  • Email — проверка корректности емайл
  • Inline — валидация произвольным методом сущности или другого объекта
  • Number — проверка на числа
  • Required — проверка на пустое или конкретное значение
  • String — проверка строк на длину
  • Type — проверка на тип значения
  • Url — проверка на корректность URL


Как использовать

В сущности необходимо составить список правил валидации.
class PluginTest_ModuleMain_EntityTest extends Entity {

	protected $aValidateRules=array(
		array('login, name','string','max'=>7,'min'=>'3'),
		array('title','my','on'=>'register'),
	);

	public function ValidateMy($sValue,$aParams) {
		if ($sValue!='Мега заголовок') {
                    return 'Ошибочный заголовок';
                }
		return true;
	}
}


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

Модификация стандартного chekbox, функционал выделения и отключение всех chekbox

Недавно столкнулся с такой проблемой, в списке сообщений livestreet.ru/talk/ после нажатия на галочку, выделяются все «chekbox с определенным css классом» но нажимая второй раз эти галочки не снимаются, а по опыту использования на одном из проектов удобнее что бы было выделение и снятие галочки у chekbox.

Решается эта проблема заменой в js/main.js кода

	this.checkAll = function(cssclass, checkbox, invert) {
		$('.'+cssclass).each(function(index, item){
			if (invert) {
				$(item).attr('checked', !$(item).attr("checked"));
			} else {
				$(item).attr('checked', $(checkbox).attr("checked"));
			}
		});
	}
на немного модифицированный код

	this.checkAll = function(cssclass, checkbox, invert) {
		$('.'+cssclass).each(function(index, item){
			if (!$(checkbox).is(":checked")) {
				$(item).removeAttr("checked");
			} else {
				$(item).attr("checked","checked");
			}
		});
	}


PS Возможно кому то ещё пригодится такая модификация.

Хак для роутинга

При создании собственного модуля встала задача, чтобы в URLе не присутствовало название экшена, а сразу шел параметр. В сообществе нашел пару постов которые помогли разобраться, но конечного решения так и не было. Хочу поделиться тем, что у меня получилось. Рассмотрим все на примере экшена profile. Переделываем URL страницы пользователя с
site.ru/profile/vasya/
На
site.ru/vasya/

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

Плагин "Faq" Часто задаваемые вопросы

Плагин «Faq» Часто задаваемые вопросы

Изначально планировалось что плагин будет небольшим, а из функционала только сервис Faq, то есть то где пользователь добавлял вопрос а администрация отвечала на него и либо выводила на страницу общего просмотра, если вопрос стоящий, либо скрывала его от всех. Таким образом появлялся бы раздел [host]/faq с часто задаваемыми и важными вопросами по проекту.

Описание функционала.
Но после того как началась работа над плагином ко мне стали приходить всё новые идеи для этого плагин, и на данный момент уже из функционала имеется…
Читать дальше →

Настройка VPS сервера для дальнейшей работы с LiveStreet

Здравствуйте! Необходимо было перейти на выделенный сервер, где будет работать сайт на livestreet, ибо обычный хостинг не справлялся с нагрузкой. Настраивал сервер впервые, много нового узнал :)

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

Бесплатный плагин "Слайдер"

По мотивам топика собрал свой первый плагин. Плагин выводит последние топики из определенного блога в блок со слайдером.

Для слайдов берутся превьюшки создаваемые плагином "Preview Topic", в качестве слайдера использован Nivo Slider.

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

В конфиге плагина есть возможность указать:

1. Позицию слайдера (слайдер может быть расположен над топиками либо в блоке).
2. Тип слайдера (брать картинки из топиков или использовать плагин «Preview Topic»).
3. Из какого блога брать топики и в каком количестве.
4. Также присутствуют настройки вывода блока.

Внимание!

Для корректной работы плагина необходимо настроить размеры слайдера в файле
slider/templates/skin/default/css/style.css.

Для этого следует:

1. Если в конфиге выбрано «брать изображения из топиков» — в строках 4,5 и 11,12 прописать необходимые размеры изображения. Первые изображения в топиках выбранного блога должны быть таких же резмеров.

2. Если в конфиге выбрано «использовать превьюшки созданные плагином „Preview Topic“» — в строках 4,5 и 11,12 прописать размеры изображения выбранные в конфиге плагина «Preview Topic». Кроме этого эти же размеры необходимо указать в файлах ...slider/templates/skin/default/block.slider.tpl в строке 14 и ...slider/templates/skin/default/content_begin.tpl в строке 12.

Огромное спасибо за помощь пользователям netlanc и Maksimenko !
Читать дальше →