Ошибки после чистой установки

Notice: Undefined index: bNoSidebar in /www/travelst/www/htdocs/ls/templates/compiled/new/%%F7^F7F^F7F34188%%header.tpl.php on line 138
>
Notice: Undefined index: noShowSystemMessage in /www/travelst/www/htdocs/ls/templates/compiled/new/%%F7^F7F^F7F34188%%header.tpl.php on line 140

canariainfo.ru

upd: решение: отключил ошибки в index.php: ini_set('display_errors', 0);

Множество 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;
}
  • 0
  • 11 августа 2010, 15:21
  • quall
  • 2

Приглашение дружить

Не совсем баг, скорее недочёт. Версия 0.4.2, когда получаешь приглашение дружить, принимаешь его, то потом в письме всё равно остаются опции «Принять — Отклонить».
  • +1
  • 28 июля 2010, 17:13
  • iznk
  • 2

Неправильная замена &

При вставке символа
&
он заменяется на такую штуку
&amp;amp;

Конкретно это происходит при вставке flash слайд-шоу с яндекс.фоток когда я беру от туда код плеера и засовываю его в редактор.

FlashParamParser не работает

Код плеэра
<object type='application/x-shockwave-flash' data='http://www.jampo.com.ua/plugins/bitgravity_player_v6_0_25.swf' width='640' height='370'><param name="wmode" value="opaque"></param><param name="wmode" value="opaque"></param><param name='bgcolor' value='#000000'></param><param name='allowfullscreen' value='true'></param><param name='allowscriptacces' value='always'></param><param name='flashvars' value='LogoImage=http://www.jampo.com.ua/img/common/jampo_video.png&LogoPosition=bottomright&LogoLink=http://video.jampo.com.ua/&Thumbnail=http://gt2.video.jampo.com.ua/a7f151391bbd9112d710496b6418a1a5.flv_preview.png&File=http://gt2.video.jampo.com.ua/a7f151391bbd9112d710496b6418a1a5.flv_hi.flv&FileQuality2=http://gt2.video.jampo.com.ua/a7f151391bbd9112d710496b6418a1a5.flv&FileLabel=Normal&FileQuality2Label=Low&FileBitrate=1117&FileQuality2Bitrate=128&DefaultLevel=1&Mode=ondemand&ScrubMode=advanced&AutoPlay=false&VideoFit=automatic&BufferTime=1.5&DefaultRatio=1.777778&ColorBase=#FFFFFF&ColorControl=#666666&ColorHighlight=#7FBF3C&ColorFeature=#7FBF3C'></param></object>


обрезает все короткие param вместо того чтоб зделать их полными Версия ЛС 0.3.1 и 0.4.1 (без разницы)


( Читать дальше )

Столкнулся с интересным багом LS 0.4

На сайте sitomania.ru если в блоге перейти на любую страницу кроме главной то пропадают все блоки.

Пример:


UPD: Решение найдено! Подсказал Banditt0.

Фикс:

Необходимо внести следующие изменения в config/config.php:
/**
* Настройки вывода блоков
*/
$config['block']['rule_index_blog'] = array(
'path' => array(
'___path.root.web___/blog$',
'___path.root.web___/blog/*$',
'___path.root.web___/blog/*/*$',
'___path.root.web___/index/*$',
'___path.root.web___/blog/*/*\.html$',
'___path.root.web___/blog/*\.html$',
'___path.root.web___/top$',
'___path.root.web___/top/*$',
'___path.root.web___/top/*/*$',
'___path.root.web___/my/*$',
'___path.root.web___/my/*/*$',
),
  • +3
  • 01 июня 2010, 00:17
  • ozerov
  • 9

Цикличность установки (Шаг 2)

При попытке установить LiveStreet на домашний сервер, столкнулся с проблемой — установка зацикливалась на «Шаге 2». Нажимаешь «далее» и ничего. Та же страничка.

Расследование выяснило, что в файле install/index.php функция ValidateDBConnection() возвращала «false» и никакая ошибка не выводилась.

Фикс

Строка 1060:
if(!version_compare(mysql_get_server_info(), '5.0.0', '>')) {
	$this->aMessages[] = array('type'=>'error', $this->Lang('valid_mysql_server'));
	return false;
}

Допущена ошибка, пропущено "'text'=>".

Необходимо: array('type'=>'error', 'text'=>$this->Lang('valid_mysql_server'));

Статистика пользователей

В связи с тестированием сервиса ВКонтакте в базе появляются лищние пользователи…
Захожу в базу данных, убиваю соответствующие записи руками… Все отлично…
А теперь смотрю статистику пользователей… весело смотрится количество заблудившихся -3 человека…
Уважаемые учатники, подскажите, как с этим бороться?..

Бага или фича с аватарами?

Заметил, что в базу сохраняется адрес аватара полный, то есть с названием сайта. На девелоперской машине использую одно название, в инет другой домен, при переносе, аватары теряются. Так и должно быть?
  • +2
  • 25 апреля 2010, 22:34
  • ravur
  • 12

Делегирование в плагинах

Решил не засорять топик с руководством по созданию плагинов, напишу тут, что нашел в процессе тестирования.

Итак, по порядку, что уже было:
1) (fixed) ошибка с определением названия экшена при делегировании: создал тикет
2) предложение об автоподстановке префиксов делегатов ( livestreet.ru/blog/dev_documentation/3710.html#comment59803, пункт 2 )
3) (fixed) отсутствие поддержки делегирования на основе данных из xml-файла (по-видимому, функция просто ещё в разработке)

И теперь ещё кое-какие мысли (пока все в файле /engine/classes/ActionPlugin.class.php).

— Сейчас, при делегировании экшена (например {plugin_dir}/classes/actions/ActionSettings.class.php) происходит автоматическое делегирование соответствующей директории темплейтов, что не очень хорошо, т.к. это совершенно необязательно по логике и придется тупо копировать всю папку actions/ActionSettings в плагин.
Сейчас там проверяется только наличие в плагине папки с соответствующим шаблоном:
$sTemplateName=in_array(Config::Get('view.skin'),array_map('basename',glob(Config::Get('path.root.server').'/plugins/'.$aMatches[1].'/templates/skin/*',GLOB_ONLYDIR)))
				? Config::Get('view.skin')
				: 'default';

хорошо бы проверять наличие папки с соответствующим экшеном:
$fGetTpl = create_function('$sPath','preg_match("/skin\/([\w]+)\/actions/i",$sPath,$aMatches); return $aMatches[1];');
$sTemplateName=in_array(Config::Get('view.skin'),array_map($fGetTpl,glob(Config::Get('path.root.server').'/plugins/'.$aMatches[1].'/templates/skin/*/actions/Action'.ucfirst($aMatches[2]),GLOB_ONLYDIR)))
				? Config::Get('view.skin')
				: 'default';


— В методе SetTemplateAction() код
$this->getTemplatePathPlugin().'/actions/Action'.ucfirst($aMatches[2]).'/'.$sTemplate.'.tpl'
в случае без делегирования вернет /actions/ActionSettings/profile.tpl, а надо actions/ActionSettings/profile.tpl, поэтому первый слэш переносим отсюда в getTemplatePathPlugin():
$sDir=Config::Get('path.root.server')."/plugins/{$aMatches[1]}/templates/skin/{$sTemplateName}/";


— Дублирование кода в GetTemplate() лучше заменить на
if (is_null($this->sActionTemplate)) {
    $this->SetTemplateAction($this->sCurrentEvent);
}


— В дополнение к первому:
Чаще всего нужно изменить не все шаблоны экшена, а только некоторые, зачем же копировать не измененные? Сделаем проверку, есть ли они в делегирующей папке, и, если нет, вернем стандартные:
protected function SetTemplateAction($sTemplate) {
if($sActionTemplate=preg_match('/^Plugin([\w]+)_Action([\w]+)$/i',$this->GetActionClass(),$aMatches)) {
      $sTplFile = 'actions/Action'.ucfirst($aMatches[2]).'/'.$sTemplate.'.tpl';
      $sActionTemplate = is_file($this->getTemplatePathPlugin().$sTplFile)
        ? $this->getTemplatePathPlugin().$sTplFile
        : $sTplFile;
    }
    $this->sActionTemplate = $sActionTemplate;
	}


Вот такие вот мысли.
Что скажете?

PS — также с нетерпением ждем описания функционала кастомных модулей.
  • +3
  • 12 марта 2010, 00:12
  • Ajaxy
  • 11