Непонятная ошибка

С постоянной периодичностью фатальный посланник шлет на мыло мне такую ошибку:
Action: «galleryajax» (PluginLsgallery_ActionAjax)
Event: «getimage»
Error number:
1
Error message:
Call to a member function GetValue() on a non-object
File:
/..../site.ru/templates/compiled/social/0893609fb7607130a002d4538986dae296f04a76.file.editor.tpl.php
Line:
31

Светлые головы помогите пожалуйста понять куда копать. Явно на сайте никаких ошибок не выдает, но мессенджер ведь шлет — значит ошибка есть. Вполне возможно что кто хорошо разбирается в движке и плагинах сможет помочь решить проблему.

PS. Пробовал с гита ставить версию 5.1 галереи, но тогда перестают грузиться фото «Системная ошибка, повторите позднее», вернул версию 4.0 Но и тут геморой:(

21 комментарий

avatar
советую выложить как раз файл который находится по указанному пути, а именно editor.tpl

либо весть, либо окружение строки 31
avatar
<?php /* Smarty version Smarty-3.1.8, created on 2013-11-12 07:50:10
         compiled from "/......./templates/skin/social/editor.tpl" */ ?>
<?php /*%%SmartyHeaderCode:4977673125281a5728a7768-32142180%%*/if(!defined('SMARTY_DIR')) exit('no direct access allowed');
$_valid = $_smarty_tpl->decodeProperties(array (
  'file_dependency' => 
  array (
    '0893609fb7607130a002d4538986dae296f04a76' => 
    array (
      0 => '/....../templates/skin/social/editor.tpl',
      1 => 1376813949,
      2 => 'file',
    ),
  ),
  'nocache_hash' => '4977673125281a5728a7768-32142180',
  'function' => 
  array (
  ),
  'variables' => 
  array (
    'oConfig' => 0,
    'sSettingsTinymce' => 0,
    'sImgToLoad' => 0,
    'sSettingsMarkitup' => 0,
  ),
  'has_nocache_code' => false,
  'version' => 'Smarty-3.1.8',
  'unifunc' => 'content_5281a5728e55c4_86313120',
),false); /*/%%SmartyHeaderCode%%*/?>
<?php if ($_valid && !is_callable('content_5281a5728e55c4_86313120')) {function content_5281a5728e55c4_86313120($_smarty_tpl) {?><?php if (!is_callable('smarty_function_cfg')) include '/....../engine/modules/viewer/plugs/function.cfg.php';
if (!is_callable('smarty_function_lang_load')) include '/......./engine/modules/viewer/plugs/function.lang_load.php';
?><?php if ($_smarty_tpl->tpl_vars['oConfig']->value->GetValue('view.tinymce')){?>

	<?php if (!$_smarty_tpl->tpl_vars['sSettingsTinymce']->value){?>

		<?php $_smarty_tpl->tpl_vars["sSettingsTinymce"] = new Smarty_variable("ls.settings.getTinymce()", null, 0);?>

	<?php }?>



	<script src="<?php echo smarty_function_cfg(array('name'=>'path.root.engine_lib'),$_smarty_tpl);?>
/external/tinymce-jq/tiny_mce.js"></script>

	<script type="text/javascript">

		jQuery(function($){

			tinyMCE.init(<?php echo $_smarty_tpl->tpl_vars['sSettingsTinymce']->value;?>
);

		});

	</script>

<?php }else{ ?>

	<?php if (!$_smarty_tpl->tpl_vars['sImgToLoad']->value){?>

		<?php $_smarty_tpl->tpl_vars["sImgToLoad"] = new Smarty_variable("topic_text", null, 0);?>

	<?php }?>

	<?php echo $_smarty_tpl->getSubTemplate ('window_load_img.tpl', $_smarty_tpl->cache_id, $_smarty_tpl->compile_id, null, null, array('sToLoad'=>$_smarty_tpl->tpl_vars['sImgToLoad']->value), 0);?>




	<?php if (!$_smarty_tpl->tpl_vars['sSettingsTinymce']->value){?>

		<?php $_smarty_tpl->tpl_vars["sSettingsMarkitup"] = new Smarty_variable("ls.settings.getMarkitup()", null, 0);?>

	<?php }?>

	<script type="text/javascript">

		jQuery(function($){

			ls.lang.load(<?php echo smarty_function_lang_load(array('name'=>"panel_b,panel_i,panel_u,panel_s,panel_url,panel_url_promt,panel_code,panel_video,panel_image,panel_cut,panel_quote,panel_list,panel_list_ul,panel_list_ol,panel_title,panel_clear_tags,panel_video_promt,panel_list_li,panel_image_promt,panel_user,panel_user_promt"),$_smarty_tpl);?>
);

			// Подключаем редактор

			$('.markitup-editor').markItUp(<?php echo $_smarty_tpl->tpl_vars['sSettingsMarkitup']->value;?>
);

		});

	</script>

<?php }?><?php }} ?>
avatar
31-я строка выглядит так

?><?php if ($_smarty_tpl->tpl_vars['oConfig']->value->GetValue('view.tinymce')){?>
avatar
забыл уточнить… не компилированный файл :)))

нужно вот что
avatar
site.ru/templates/social/editor.tpl
avatar
Вот некомпилированный editor.tpl

{if $oConfig->GetValue('view.tinymce')}
	{if !$sSettingsTinymce}
		{assign var="sSettingsTinymce" value="ls.settings.getTinymce()"}
	{/if}

	<script src="{cfg name='path.root.engine_lib'}/external/tinymce-jq/tiny_mce.js"></script>
	<script type="text/javascript">
		jQuery(function($){
			tinyMCE.init({$sSettingsTinymce});
		});
	</script>
{else}
	{if !$sImgToLoad}
		{assign var="sImgToLoad" value="topic_text"}
	{/if}
	{include file='window_load_img.tpl' sToLoad=$sImgToLoad}

	{if !$sSettingsTinymce}
		{assign var="sSettingsMarkitup" value="ls.settings.getMarkitup()"}
	{/if}
	<script type="text/javascript">
		jQuery(function($){
			ls.lang.load({lang_load name="panel_b,panel_i,panel_u,panel_s,panel_url,panel_url_promt,panel_code,panel_video,panel_image,panel_cut,panel_quote,panel_list,panel_list_ul,panel_list_ol,panel_title,panel_clear_tags,panel_video_promt,panel_list_li,panel_image_promt,panel_user,panel_user_promt"});
			// Подключаем редактор
			$('.markitup-editor').markItUp({$sSettingsMarkitup});
		});
	</script>
{/if}
avatar
если для аякса некоторого действия берется локальная копия вьюера, то в ней нет переменной oConfig, которая в главном вьюере всегда определена, вот и ошибка что нет такого объекта.

лечится добавление переменной oConfig ссылающуюся на инстанцию конфига в локальную копию вьюера.
avatar
Можно более простым языком Сергей? В какой файл и каким образом прописать переменную oConfig…
avatar
в PluginLsgallery_ActionAjax в эвент getimage нужно прописать что-то типа:

$this->Viewer_Assign('oConfig', Config::getInstance());


подробнее не скажу — нету у меня галереи.
avatar
Можно все сделать гораздо проще — взять строку:
{if $oConfig->GetValue('view.tinymce')}
И заменить ее на строку:
{if Config::Get('view.tinymce')}
С тех пор, как в движок был внедрен Smarty 3, я несколько раз предлагал отказаться в шаблонах от конструкции $oConfig->GetValue(), т.к. третий Смарти нормально работает со статическими классами. И переменных меньше нужно в шаблоны таскать, и память хоть немного, но экономится. Но в ЛС принято придерживаться устаревших версий и конструкций.
avatar
Спасибо Вадим, попробую сделать как Вы написали, потом отпишусь будет ли слать ошибку.
avatar
не прилетала больше ошибка?
avatar
Пока все нормально, надо подождать сколько то. Тогда тоже не шлет бывало день, два — на третий присылает:) Я сообщу о любом результате.
avatar
Приятно видеть такие топики :)
  • emmy
  • +1
avatar
Насчет galleryajax пока не присылал, но тут прислал аж 232 письма причем практически одновременно…

Action: "error" (PluginFatalmessenger_ActionError) 
Event: "500" 
Error number:
1
Error message:
Class 'CE' not found
File:
/......./plugins/adminusers/classes/modules/adminusers/Adminusers.class.php
Line:
42


У меня похоже какая то серьезная проблема с сервером… что делать ума не приложу…
avatar
В топике по ссылке выше «серьезная проблема» была решена… с галереей тоже порядок, а вот с плагином admin users бяда… постоянно шлет эту хрень
Action: "error" (PluginFatalmessenger_ActionError) 
Event: "500" 
Error number:
1
Error message:
Class 'CE' not found
File:
/...../plugins/adminusers/classes/modules/adminusers/Adminusers.class.php
Line:
42

Кто нибудь знает что за класс CE ему нужен?
avatar
avatar
В том то и дело, что установлен и включен этот плагин версия 1.0.3. При просмотре его настроек в админке он выдает:
Список плагинов, которые хранят конфиги в БД (0)
Хранящихся конфигов плагинов в БД нету.

Тем не менее установлен adminusers который не работает без CE…
avatar
Так напишите в личку автору adminusers, он точно знает, что там в 42 строчке творится.
avatar
Подожду еще пару дней, потом решу что делать… или к автору или снесу оба плагина:)
avatar
Блин забыл после каталога переавторизоваться:) когда же ort сделает все на один аккаунт…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.