1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-08 09:24:25 +03:00
ifhub.club/engine/modules/viewer/plugs/insert.block.php
Alexey Kachayev 68b47ceb71 Fix
2010-01-19 18:36:25 +00:00

72 lines
2.5 KiB
PHP

<?php
/*-------------------------------------------------------
*
* LiveStreet Engine Social Networking
* Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
* Official site: www.livestreet.ru
* Contact e-mail: rus.engine@gmail.com
*
* GNU General Public License, version 2:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*/
/**
* Плагин для смарти
* Подключает обработчик блоков шаблона
*
* @param array $aParams
* @param Smarty $oSmarty
* @return string
*/
function smarty_insert_block($aParams,&$oSmarty) {
/**
* Устанавливаем шаблон
*/
$sBlock=ucfirst(basename($aParams['block']));
/**
* Проверяем наличие шаблона. Определяем значения параметров работы в зависимости от того,
* принадлежит ли блок одному из плагинов, или является пользовательским классом движка
*/
if(isset($aParams['params']) and isset($aParams['params']['plugin'])) {
require_once(Config::Get('path.root.server').'/engine/classes/ActionPlugin.class.php');
$sBlockTemplate = Plugin::GetTemplatePath($aParams['params']['plugin']).'/block.'.$aParams['block'].'.tpl';
$sBlockClass = Config::Get('path.root.server').'/plugins/'.$aParams['params']['plugin'].'/blocks/Block'.$sBlock.'.class.php';
$sCmd='$oBlock=new Plugin'.ucfirst($aParams['params']['plugin']).'_Block'.$sBlock.'($aParamsBlock);';
} else {
$sBlockTemplate = 'block.'.$aParams['block'].'.tpl';
$sBlockClass = Config::Get('path.root.server').'/classes/blocks/Block'.$sBlock.'.class.php';
$sCmd='$oBlock=new Block'.$sBlock.'($aParamsBlock);';
}
if (!isset($aParams['block']) or !$oSmarty->template_exists($sBlockTemplate)) {
$oSmarty->trigger_error("Not found template for block: ".$sBlockTemplate);
return ;
}
/**
* параметры
*/
$aParamsBlock=array();
if (isset($aParams['params'])) {
$aParamsBlock=$aParams['params'];
}
/**
* Подключаем необходимый обработчик
*/
require_once($sBlockClass);
eval($sCmd);
/**
* Запускаем обработчик
*/
$oBlock->Exec();
/**
* Возвращаем результат в виде обработанного шаблона блока
*/
return $oSmarty->fetch($sBlockTemplate);
}
?>