+398.83
Рейтинг
965.74
Сила

Максим

Предложение по улучшению роутера

На данный момент, для роутера нет никакой разницы между livestreet.ru/blog/ и livestreet.ru/blog. И это по моему скромному имху не правильно т.к. по двум разным урлам находятся совершенно одинаковые страницы.

Решение я для себя выбрал следующее:
/engine/classes/Router.class.php->GetRequestUri()
после
$sReq=preg_replace("/\/+/",'/',$_SERVER['REQUEST_URI']);

добавить
if(empty($_GET) && !strpos($sReq, '.') && substr($sReq, strlen($sReq) - 1 ,1) != '/'){
            header('Location: ' . $sReq . '/',TRUE,301);
            die;
}

В этом случае, все запросы к «директории», которые не заканчиваются на "/", будут перенаправляться с кодом 301 (Moved Permanently) на урл который заканчивается "/".

Ну и да, это очень любят поисковики.

З.Ы. Совершенно за, если кто-то скажет как это сделать лучше :)

UPD. Po6oT В комментариях, подсказал решение гораздо лучше моего.

Борьба с 502 bad gateway или как установить xcache на 0.4.2

Итак после долгих мытарств и по мотивам livestreet.ru/blog/questions/5335.html решил написать как установить xcache на LS 0.4.2. Мне установка xcache реально помогла в решении проблемы ошибки 502 и в целом для более стабильной работы сайтов. Итак поехали:
Первым делом убираем memcache и eaccelerator. Я не стал ничего удалять из системы, просто закомментировал в php.ini строки относящиеся к eaccelerator, аналогично в /etc/php5/conf.d/memcache.ini также все закомментировал. Наверное это неправильно, кто знает как совсем удалить отпишитесь в каментах.

Теперь собственно установка xcache:

apt-get install php5-xcache


Установили, теперь настраиваем:
nano /etc/php5/apache2/conf.d/xcache.ini


Редактируем секцию админки:
Читать дальше →

Плагин "Изменения высоты текстового поля" для 0.4.2


Плагин позволяет «на лету» изменять высоту текстового поля а также легко изменить первоначальный его размер при создании топика и коментария при использовании стандартного редактора.
Плагин доступен в каталоге.
В конфиге можно задать как и начальную высоту текстового поля, так и шаг изменения отдельно для коментария и топика.
Читать дальше →

Множество warnings/errors на старте

Стартанул тестовый проект, подключил свой еррор-хендлер, который помогает избавляться от любых ошибок на стадии разработки. И был крайне неприятно удивлен увиденным: сохраненная страница. Это был первый запуск. На втором запуске ошибок было чуть меньше, т.к. кэш-файлы уже были созданы.
В принципе, я еще могу понять ворнинги, связанные с файловой системой (хотя можно и их избежать), но ошибки вроде статического вызова методов, которые не явлются статическими, несовместимые объявления методов, отсутствующие константы — это перебор.
Предлагаю пофиксить.

На всякий случай код моего еррор-хендлера.


function myErrorHandler($errno, $errstr, $errfile, $errline) {
	$replace = array(
		'%errno%' => $errno,
		'%errstr%' => $errstr,
		'%errline%' => $errline,
		'%errfile%' => $errfile,
	);

	$break = false;

	switch ($errno) {
		case E_ERROR:
		case E_USER_ERROR:
			$replace['%errtype%'] = 'fatal error';
			$break = true;
			break;

		case E_WARNING:
		case E_USER_WARNING:
			$replace['%errtype%'] = 'warning';
			break;

		case E_NOTICE:
		case E_USER_NOTICE:
			$replace['%errtype%'] = 'notice';
			break;

		default:
			$replace['%errtype%'] = 'unknown error';
			break;
	}

	$message = '<span style="text-transform: uppercase; font-weight: bold">%errtype%</span>: [%errno%] %errstr%<br /><span style="text-transform: capitalize; ">%errtype%</span> on line %errline% in file %errfile%<br />';

	$message = strtr($message, $replace);
	$tooltip = strip_tags(str_replace('>', '> ', $message));
	$template = '<span style="background: #f00; color: #fff; font-size: 12px; line-height:14px" title="%s">%s</span>';

	echo sprintf($template, $tooltip, $message);

	/* Don't execute PHP internal error handler */
	return true;
}

Модель ORM

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

Синтаксис отношений $aRelations.


Существует 4 типа отношений:

belongs_to — связь 1 к 1, или многие к 1. в таблице обязательно наличие foreign key вида relationalias_id. Примеры:
$aRelations = array('belongs_to' =>
  array(
    'User' => 'autor',
    'Blog',
    'PluginBill_ModuleEvent' => 'event'
  )
);
// поля таблицы prefix_topic
topic_id | topic_title | ... | autor_id | blog_id | event_id
// доступные функции:
$oTopic()->getAutor(); $oTopic()->setAutor();
$oTopic()->getBlog(); $oTopic()->setBlog();
$oTopic->Save();

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

Модуль Image в 0.4.2

Многие знают, что модуль Image отвечает за загрузку всей графики на сайт. Есть предложение для Максима, сделать его отдельным плагином, чтобы была возможность отключать, а так же осуществить поддержку загрузки gif анимации (аватары, фото и т.д.) и вывести под эту анимацию в конфиг плагина true/false.

Я полагаю многим сайтам эта опция будет полезна, а тем кому не нужна — отключат ее в конфиге.

Что с редактором tinymce?

Включил в админке галку «использовать tinymce» — ничего кроме ввода текста не работает. Нажимаю на кнопку вставки html кода — всплывает окно, в шапке окна {#advanced_dlg.code_title} и пустое белое окно, т.е. курсор в него не поставить. Такая же хрень при нажатии кнопок загрузки картинки и видео. Проверил в Opera 10.60 и FF 3.6.6 — не работает. Кто нибудь знает как его настроить? И зачем такой редактор в дефолтной сборке LS если он не фурычит?

При накладывании watermark картинки на фотографию этот самый watermask уменьшается вместе с картинкой

Привет.

Назрела проблема — я использую наложение картинки при аплоаде изображения. Обратила внимание, что наложение ватермарка происходит _перед_ тем, как её, картинку ресайзить для топика, а не после, как вообще-то логично было бы.

Как побороть, подскажите, о гуру?

Спасибо.

Баг при загрузке картинки

0.4.1, но ошибка была и в 0.4
Иногда при загрузке картинок со сторонних ссылок случается следующий баг: одну картинку добавил, нажимаю на кнопку добавления следующей и во всплывающем окне (для ввода урл добавляемой картинки) отображается не то, что надо, а содержимое одной из соседних вкладок браузера. «на месте» лечу это сохранением поста в черновики и редактированием заново — проблема на некоторое время пропадает
Повторяется это у многих пользователей.