Странное поведение include

Добрый день. У меня сайт на livestreet вдруг начал выводить странные сообщения типа:
"'Компании', 'blog_menu_company' => 'Корпоративные', 'company_edit' => 'редактировать компанию', 'company_add_topic' => 'написать в блог', 'company_delete' => 'удалить компанию', /* Меню компаний*/ 'company_menu_profile' => 'Профиль', 'company_menu_vacancies' => 'Вакансии', 'company_menu_feedbacks' => 'Отзывы', 'company_menu_blog' => 'Блог', 'company_menu_users' => 'Пользователи', 'company_menu_create' => 'Создать компанию', 'company_feedback_acl' => 'Ваш рейтинг слишком мал для написания отзывов', 'company_feedback_add_text_error' => 'Текст отзыва должен быть от 2 до 5000 символов и "
и так далее.
Начал копаться. Дошел до модуля engine\modules\lang\Lang.class.php, наше там строки:
			foreach ($aPluginList as $sPluginName) {
				echo "<h1>после 222222</h1>"; //###отладка
				$aFiles=glob($sDir.$sPluginName.'/templates/language/'.$sLangName.'.php');
				echo "<h1>после 333333</h1>"; //###отладка
				if($aFiles and count($aFiles)) {
						foreach ($aFiles as $sFile) {
							if (file_exists($sFile)) {
								//echo "<h1>До AddMessages $sFile</h1>"; //###отладка
								$this->AddMessages(include($sFile));
								//echo "<h1>После AddMessages $sFile</h1>"; //###отладка
							}
					}
				}
			}

в общем сообщение выводит строка $this->AddMessages(include($sFile));
выводит тогда, когда в подключаемом файле идет return и массив типа:

return array(
	/**
	 * Компании
	 */
	'companies' => 'Компании',
	'blog_menu_company' => 'Корпоративные',
	'company_edit' => 'редактировать компанию',
	'company_add_topic' => 'написать в блог',
	'company_delete' => 'удалить компанию',
....

Что только я не пробовал и @ и
ini_set('display_errors',0);
error_reporting(0);
что то ничего не помогает. Кто сталкивался с этйо проблемой, подскажите плз, как решать?

Вернуть массив из хука в шаблон (РЕШЕНО)

Добрый день. Имеется хук, возвращающий в качестве результата массив.

class PluginLive_HookLive extends Hook
{
    public function RegisterHook()
    {
        $this->AddHook('template_header_banner_begin', 'GoGoGo');
    }

    public function GoGoGo()
    {
        return array('foo'=>'bar');
    }
}
 


Вызываю в шаблоне:
{hook run='header_banner_begin' assign='aResult'}


Ожидаю, что в $aResult окажется «ассоциативный» массив, т.е. {$aResult.foo} вернет «bar». Но в результате возвращается массив вида array(0=>'A', 1=>'r', 1=>'r', 1=>'a', 1=>'y', 1=>'(' и так далее.

Помогите, пожалуйста, как корректно передать массив из хука в шаблон?

UPD: По-быстрому сделал костыльный вариант для одноуровневого массива. Буду рад предложениям как это сделать «академически верно» :)

class PluginLive_HookLive extends Hook
{
    public function RegisterHook()
    {
        $this->AddHook('template_header_banner_begin', 'Countdown');
    }

    public function Countdown()
    {
        r = array('foo'=>'bar', 'foo2'=>'bar2');
        ksort($r);
        return implode(',',$r);
    }
}


В шаблоне:
    {assign var="aLive" value=","|explode:$aLive}
    {assign var="sVar1" value=$aLive[0]}
    {assign var="sVar2" value=$aLive[1]}

Решено: Теги: сортировка по полю из таблицы 'topic'

По-умолчанию, в LS сортировка при выборке по тегу выполняется по полю topic_id таблицы topic_tag.
Хочу сделать сортировку по одному из полей таблицы topic (у меня там дополнительное поле).

Подскажите, пожалуйста, какой из способов будет оптимальным:

1. Выполнить сортировку полученного массива $data в методе GetTopicsByTag модуля Topic
2. Изменить (переопределить или наследовать) сортировку в методе GetTopicsAdditionalData модуля Topic?


Подскажите, пожалуйста, как правильно составить SQL запрос для метода
public function GetTopicsByTag($sTag,$aExcludeBlog,&$iCount,$iCurrPage,$iPerPage)

Маппера топиков.

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