2009-12-24 22:18:13 +02:00
|
|
|
|
<?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
|
|
|
|
|
*
|
|
|
|
|
---------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Абстракция плагина, от которой наследуются все плагины
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Файл плагина должен находиться в каталоге /plugins/plgname/ и иметь название PluginPlgname.class.php
|
2009-12-24 22:18:13 +02:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @package engine
|
|
|
|
|
* @since 1.0
|
2009-12-24 22:18:13 +02:00
|
|
|
|
*/
|
2012-04-07 09:41:52 +03:00
|
|
|
|
abstract class Plugin extends LsObject {
|
2010-01-15 19:44:59 +02:00
|
|
|
|
/**
|
|
|
|
|
* Путь к шаблонам с учетом наличия соответствующего skin`a
|
|
|
|
|
*
|
|
|
|
|
* @var array
|
|
|
|
|
*/
|
|
|
|
|
static protected $aTemplatePath=array();
|
2010-01-31 17:20:16 +02:00
|
|
|
|
/**
|
|
|
|
|
* Web-адрес директорий шаблонов с учетом наличия соответствующего skin`a
|
|
|
|
|
*
|
|
|
|
|
* @var array
|
|
|
|
|
*/
|
2012-04-17 20:58:32 +03:00
|
|
|
|
static protected $aTemplateWebPath=array();
|
2010-01-15 19:44:59 +02:00
|
|
|
|
/**
|
|
|
|
|
* Массив делегатов плагина
|
|
|
|
|
*
|
|
|
|
|
* @var array
|
|
|
|
|
*/
|
2010-01-12 21:02:29 +02:00
|
|
|
|
protected $aDelegates=array();
|
2010-05-28 18:20:55 +03:00
|
|
|
|
/**
|
|
|
|
|
* Массив наследуемых классов плагина
|
|
|
|
|
*
|
|
|
|
|
* @var array
|
|
|
|
|
*/
|
|
|
|
|
protected $aInherits=array();
|
2009-12-24 22:18:13 +02:00
|
|
|
|
|
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Метод инициализации плагина
|
2009-12-24 22:18:13 +02:00
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
public function Init() {
|
|
|
|
|
}
|
2010-01-12 21:02:29 +02:00
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Передает информацию о делегатах в модуль ModulePlugin
|
2010-01-12 21:02:29 +02:00
|
|
|
|
* Вызывается Engine перед инициализацией плагина
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @see Engine::LoadPlugins
|
2010-01-12 21:02:29 +02:00
|
|
|
|
*/
|
|
|
|
|
final function Delegate() {
|
2010-05-30 22:00:58 +03:00
|
|
|
|
$aDelegates=$this->GetDelegates();
|
|
|
|
|
foreach ($aDelegates as $sObjectName=>$aParams) {
|
|
|
|
|
foreach ($aParams as $sFrom=>$sTo) {
|
|
|
|
|
$this->Plugin_Delegate($sObjectName,$sFrom,$sTo,get_class($this));
|
2010-03-12 00:57:30 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
2012-04-17 20:58:32 +03:00
|
|
|
|
|
2010-05-30 22:00:58 +03:00
|
|
|
|
$aInherits=$this->GetInherits();
|
|
|
|
|
foreach ($aInherits as $sObjectName=>$aParams) {
|
2012-04-17 20:58:32 +03:00
|
|
|
|
foreach ($aParams as $sFrom=>$sTo) {
|
2010-05-30 22:00:58 +03:00
|
|
|
|
$this->Plugin_Inherit($sFrom,$sTo,get_class($this));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Возвращает массив наследников
|
2010-05-30 22:00:58 +03:00
|
|
|
|
*
|
|
|
|
|
* @return array
|
|
|
|
|
*/
|
|
|
|
|
final function GetInherits() {
|
|
|
|
|
$aReturn=array();
|
|
|
|
|
if(is_array($this->aInherits) and count($this->aInherits)) {
|
2012-04-17 20:58:32 +03:00
|
|
|
|
foreach ($this->aInherits as $sObjectName=>$aParams) {
|
2010-01-12 21:02:29 +02:00
|
|
|
|
if(is_array($aParams) and count($aParams)) {
|
|
|
|
|
foreach ($aParams as $sFrom=>$sTo) {
|
2010-04-25 15:07:11 +03:00
|
|
|
|
if (is_int($sFrom)) {
|
|
|
|
|
$sFrom=$sTo;
|
|
|
|
|
$sTo=null;
|
|
|
|
|
}
|
2012-04-17 20:58:32 +03:00
|
|
|
|
list($sFrom,$sTo)=$this->MakeDelegateParams($sObjectName,$sFrom,$sTo);
|
2010-05-30 22:00:58 +03:00
|
|
|
|
$aReturn[$sObjectName][$sFrom]=$sTo;
|
2010-01-12 21:02:29 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2010-05-30 22:00:58 +03:00
|
|
|
|
return $aReturn;
|
|
|
|
|
}
|
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Возвращает массив делегатов
|
2010-05-30 22:00:58 +03:00
|
|
|
|
*
|
|
|
|
|
* @return array
|
|
|
|
|
*/
|
|
|
|
|
final function GetDelegates() {
|
|
|
|
|
$aReturn=array();
|
|
|
|
|
if(is_array($this->aDelegates) and count($this->aDelegates)) {
|
2012-04-17 20:58:32 +03:00
|
|
|
|
foreach ($this->aDelegates as $sObjectName=>$aParams) {
|
2010-05-28 18:20:55 +03:00
|
|
|
|
if(is_array($aParams) and count($aParams)) {
|
|
|
|
|
foreach ($aParams as $sFrom=>$sTo) {
|
|
|
|
|
if (is_int($sFrom)) {
|
|
|
|
|
$sFrom=$sTo;
|
|
|
|
|
$sTo=null;
|
|
|
|
|
}
|
2012-04-17 20:58:32 +03:00
|
|
|
|
list($sFrom,$sTo)=$this->MakeDelegateParams($sObjectName,$sFrom,$sTo);
|
2010-05-30 22:00:58 +03:00
|
|
|
|
$aReturn[$sObjectName][$sFrom]=$sTo;
|
2010-05-28 18:20:55 +03:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2010-05-30 22:00:58 +03:00
|
|
|
|
return $aReturn;
|
2010-01-12 21:02:29 +02:00
|
|
|
|
}
|
2012-04-17 20:58:32 +03:00
|
|
|
|
/**
|
|
|
|
|
* Преобразовывает краткую форму имен делегатов в полную
|
|
|
|
|
*
|
|
|
|
|
* @param $sObjectName Название типа объекта делегата
|
|
|
|
|
* @see ModulePlugin::aDelegates
|
|
|
|
|
* @param $sFrom Что делегируем
|
|
|
|
|
* @param $sTo Что делегирует
|
|
|
|
|
* @return array
|
|
|
|
|
*/
|
2010-05-30 22:00:58 +03:00
|
|
|
|
public function MakeDelegateParams($sObjectName,$sFrom,$sTo) {
|
2010-04-25 15:07:11 +03:00
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Если не указан делегат TO, считаем, что делегатом является
|
2010-04-25 15:07:11 +03:00
|
|
|
|
* одноименный объект текущего плагина
|
|
|
|
|
*/
|
|
|
|
|
if ($sObjectName=='template') {
|
|
|
|
|
if(!$sTo) {
|
2010-08-21 10:07:51 +03:00
|
|
|
|
$sTo = self::GetTemplatePath(get_class($this)).$sFrom;
|
2010-04-25 15:07:11 +03:00
|
|
|
|
} else {
|
|
|
|
|
$sTo=preg_replace("/^_/",$this->GetTemplatePath(get_class($this)),$sTo);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
2010-06-01 19:20:30 +03:00
|
|
|
|
if(!$sTo) {
|
|
|
|
|
$sTo = get_class($this).'_'.$sFrom;
|
|
|
|
|
} else {
|
|
|
|
|
$sTo=preg_replace("/^_/",get_class($this).'_',$sTo);
|
|
|
|
|
}
|
2010-04-25 15:07:11 +03:00
|
|
|
|
}
|
2010-05-30 22:00:58 +03:00
|
|
|
|
return array($sFrom,$sTo);
|
2010-01-12 21:02:29 +02:00
|
|
|
|
}
|
2009-12-24 22:18:13 +02:00
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Метод активации плагина
|
2009-12-24 22:18:13 +02:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @return bool
|
2009-12-24 22:18:13 +02:00
|
|
|
|
*/
|
|
|
|
|
public function Activate() {
|
2009-12-30 00:15:25 +02:00
|
|
|
|
return true;
|
2009-12-24 22:18:13 +02:00
|
|
|
|
}
|
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Метод деактивации плагина
|
2009-12-24 22:18:13 +02:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @return bool
|
2009-12-24 22:18:13 +02:00
|
|
|
|
*/
|
2009-12-30 00:15:25 +02:00
|
|
|
|
public function Deactivate() {
|
|
|
|
|
return true;
|
2009-12-24 22:18:13 +02:00
|
|
|
|
}
|
2009-12-31 00:27:54 +02:00
|
|
|
|
/**
|
|
|
|
|
* Транслирует на базу данных запросы из указанного файла
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @see ModuleDatabase::ExportSQL
|
|
|
|
|
*
|
|
|
|
|
* @param string $sFilePath Полный путь до файла с SQL
|
2009-12-31 00:27:54 +02:00
|
|
|
|
* @return array
|
|
|
|
|
*/
|
|
|
|
|
protected function ExportSQL($sFilePath) {
|
2012-04-17 20:58:32 +03:00
|
|
|
|
return $this->Database_ExportSQL($sFilePath);
|
2009-12-31 00:27:54 +02:00
|
|
|
|
}
|
2011-04-25 17:07:40 +03:00
|
|
|
|
/**
|
|
|
|
|
* Выполняет SQL
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @see ModuleDatabase::ExportSQLQuery
|
2011-04-25 17:07:40 +03:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @param string $sSql Строка SQL запроса
|
2011-04-25 17:07:40 +03:00
|
|
|
|
* @return array
|
|
|
|
|
*/
|
|
|
|
|
protected function ExportSQLQuery($sSql) {
|
|
|
|
|
return $this->Database_ExportSQLQuery($sSql);
|
|
|
|
|
}
|
2010-05-04 14:24:15 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверяет наличие таблицы в БД
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @see ModuleDatabase::isTableExists
|
2010-05-04 14:24:15 +03:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @param string $sTableName Название таблицы, необходимо перед именем таблицы добавлять "prefix_", это позволит учитывать произвольный префикс таблиц у пользователя
|
|
|
|
|
* <pre>
|
|
|
|
|
* prefix_topic
|
|
|
|
|
* </pre>
|
2011-04-26 21:30:52 +03:00
|
|
|
|
* @return bool
|
2010-05-04 14:24:15 +03:00
|
|
|
|
*/
|
|
|
|
|
protected function isTableExists($sTableName) {
|
2011-02-27 16:46:01 +02:00
|
|
|
|
return $this->Database_isTableExists($sTableName);
|
2010-05-04 14:24:15 +03:00
|
|
|
|
}
|
2011-04-26 19:43:26 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверяет наличие поля в таблице
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @see ModuleDatabase::isFieldExists
|
2011-04-26 19:43:26 +03:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @param string $sTableName Название таблицы, необходимо перед именем таблицы добавлять "prefix_", это позволит учитывать произвольный префикс таблиц у пользователя
|
|
|
|
|
* @param string $sFieldName Название поля в таблице
|
2011-04-26 21:30:52 +03:00
|
|
|
|
* @return bool
|
2011-04-26 19:43:26 +03:00
|
|
|
|
*/
|
|
|
|
|
protected function isFieldExists($sTableName,$sFieldName) {
|
|
|
|
|
return $this->Database_isFieldExists($sTableName,$sFieldName);
|
|
|
|
|
}
|
2012-04-17 20:58:32 +03:00
|
|
|
|
|
2011-04-26 21:30:52 +03:00
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Добавляет новый тип в поле enum(перечисление)
|
|
|
|
|
* @see ModuleDatabase::addEnumType
|
2011-04-26 21:30:52 +03:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @param string $sTableName Название таблицы, необходимо перед именем таблицы добавлять "prefix_", это позволит учитывать произвольный префикс таблиц у пользователя
|
|
|
|
|
* @param string $sFieldName Название поля в таблице
|
|
|
|
|
* @param string $sType Название типа
|
2011-04-26 21:30:52 +03:00
|
|
|
|
*/
|
|
|
|
|
protected function addEnumType($sTableName,$sFieldName,$sType) {
|
|
|
|
|
$this->Database_addEnumType($sTableName,$sFieldName,$sType);
|
|
|
|
|
}
|
2010-06-05 21:11:53 +03:00
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Возвращает версию плагина
|
2010-06-05 21:11:53 +03:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @return string|null
|
2010-06-05 21:11:53 +03:00
|
|
|
|
*/
|
|
|
|
|
public function GetVersion() {
|
2012-04-17 20:58:32 +03:00
|
|
|
|
preg_match('/^Plugin([\w]+)$/i',get_class($this),$aMatches);
|
2013-08-06 12:14:48 +03:00
|
|
|
|
$sPluginXML = Config::Get('path.root.application').'/plugins/'.func_underscore($aMatches[1]).'/'.ModulePlugin::PLUGIN_XML_FILE;
|
2010-06-05 21:11:53 +03:00
|
|
|
|
if($oXml = @simplexml_load_file($sPluginXML)) {
|
|
|
|
|
return (string)$oXml->version;
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
2012-04-17 20:58:32 +03:00
|
|
|
|
/**
|
|
|
|
|
* Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля
|
|
|
|
|
* @see Engine::_CallModule
|
|
|
|
|
*
|
|
|
|
|
* @param string $sName Имя метода
|
|
|
|
|
* @param array $aArgs Аргументы
|
|
|
|
|
* @return mixed
|
|
|
|
|
*/
|
2009-12-24 22:18:13 +02:00
|
|
|
|
public function __call($sName,$aArgs) {
|
|
|
|
|
return Engine::getInstance()->_CallModule($sName,$aArgs);
|
|
|
|
|
}
|
2010-04-29 22:45:54 +03:00
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Возвращает полный серверный путь до плагина
|
2010-04-29 22:45:54 +03:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @param string $sName
|
|
|
|
|
* @return string
|
2010-04-29 22:45:54 +03:00
|
|
|
|
*/
|
|
|
|
|
static public function GetPath($sName) {
|
|
|
|
|
$sName = preg_match('/^Plugin([\w]+)(_[\w]+)?$/Ui',$sName,$aMatches)
|
2013-05-12 05:35:07 +03:00
|
|
|
|
? func_underscore($aMatches[1])
|
|
|
|
|
: func_underscore($sName);
|
2012-04-17 20:58:32 +03:00
|
|
|
|
|
2013-08-06 12:14:48 +03:00
|
|
|
|
return Config::Get('path.root.application').'/plugins/'.$sName.'/';
|
2010-04-29 22:45:54 +03:00
|
|
|
|
}
|
2012-06-18 19:50:39 +03:00
|
|
|
|
/**
|
|
|
|
|
* Возвращает полный web-адрес до плагина
|
|
|
|
|
*
|
|
|
|
|
* @param string $sName
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
static public function GetWebPath($sName) {
|
|
|
|
|
$sName = preg_match('/^Plugin([\w]+)(_[\w]+)?$/Ui',$sName,$aMatches)
|
2013-05-12 05:35:07 +03:00
|
|
|
|
? func_underscore($aMatches[1])
|
|
|
|
|
: func_underscore($sName);
|
2012-06-18 19:50:39 +03:00
|
|
|
|
|
2013-08-06 12:14:48 +03:00
|
|
|
|
return Config::Get('path.root.web').'/application/plugins/'.$sName.'/';
|
2012-06-18 19:50:39 +03:00
|
|
|
|
}
|
2010-01-15 19:44:59 +02:00
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Возвращает правильный серверный путь к директории шаблонов с учетом текущего шаблона
|
|
|
|
|
* Если пользователь использует шаблон которого нет в плагине, то возвращает путь до шабона плагина 'default'
|
2010-01-15 19:44:59 +02:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @param string $sName Название плагина или его класс
|
|
|
|
|
* @return string|null
|
2010-01-15 19:44:59 +02:00
|
|
|
|
*/
|
2012-04-17 20:58:32 +03:00
|
|
|
|
static public function GetTemplatePath($sName) {
|
2010-05-01 16:59:03 +03:00
|
|
|
|
$sName = preg_match('/^Plugin([\w]+)(_[\w]+)?$/Ui',$sName,$aMatches)
|
2013-05-12 05:35:07 +03:00
|
|
|
|
? func_underscore($aMatches[1])
|
|
|
|
|
: func_underscore($sName);
|
2012-04-17 20:58:32 +03:00
|
|
|
|
if(!isset(self::$aTemplatePath[$sName])) {
|
2013-08-06 12:14:48 +03:00
|
|
|
|
$aPaths=glob(Config::Get('path.root.application').'/plugins/'.$sName.'/templates/skin/*',GLOB_ONLYDIR);
|
2010-04-17 18:12:10 +03:00
|
|
|
|
$sTemplateName=($aPaths and in_array(Config::Get('view.skin'),array_map('basename',$aPaths)))
|
2010-01-15 19:44:59 +02:00
|
|
|
|
? Config::Get('view.skin')
|
|
|
|
|
: 'default';
|
2012-04-17 20:58:32 +03:00
|
|
|
|
|
2013-08-06 12:14:48 +03:00
|
|
|
|
$sDir=Config::Get('path.root.application')."/plugins/{$sName}/templates/skin/{$sTemplateName}/";
|
2010-01-15 19:44:59 +02:00
|
|
|
|
self::$aTemplatePath[$sName] = is_dir($sDir) ? $sDir : null;
|
|
|
|
|
}
|
|
|
|
|
return self::$aTemplatePath[$sName];
|
2012-04-17 20:58:32 +03:00
|
|
|
|
}
|
2010-01-31 17:20:16 +02:00
|
|
|
|
/**
|
|
|
|
|
* Возвращает правильный web-адрес директории шаблонов
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Если пользователь использует шаблон которого нет в плагине, то возвращает путь до шабона плагина 'default'
|
2010-01-31 17:20:16 +02:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @param string $sName Название плагина или его класс
|
2010-01-31 17:20:16 +02:00
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
static public function GetTemplateWebPath($sName) {
|
2010-05-01 16:59:03 +03:00
|
|
|
|
$sName = preg_match('/^Plugin([\w]+)(_[\w]+)?$/Ui',$sName,$aMatches)
|
2013-05-12 05:35:07 +03:00
|
|
|
|
? func_underscore($aMatches[1])
|
|
|
|
|
: func_underscore($sName);
|
2012-04-17 20:58:32 +03:00
|
|
|
|
if(!isset(self::$aTemplateWebPath[$sName])) {
|
2013-08-06 12:14:48 +03:00
|
|
|
|
$aPaths=glob(Config::Get('path.root.application').'/plugins/'.$sName.'/templates/skin/*',GLOB_ONLYDIR);
|
2010-04-17 18:12:10 +03:00
|
|
|
|
$sTemplateName=($aPaths and in_array(Config::Get('view.skin'),array_map('basename',$aPaths)))
|
2010-01-31 17:20:16 +02:00
|
|
|
|
? Config::Get('view.skin')
|
|
|
|
|
: 'default';
|
2012-04-17 20:58:32 +03:00
|
|
|
|
|
2013-08-06 12:14:48 +03:00
|
|
|
|
self::$aTemplateWebPath[$sName]=Config::Get('path.root.web')."/application/plugins/{$sName}/templates/skin/{$sTemplateName}/";
|
2010-01-31 17:20:16 +02:00
|
|
|
|
}
|
|
|
|
|
return self::$aTemplateWebPath[$sName];
|
|
|
|
|
}
|
2010-01-16 17:40:55 +02:00
|
|
|
|
/**
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* Устанавливает значение серверного пути до шаблонов плагина
|
2010-01-16 17:40:55 +02:00
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @param string $sName Имя плагина
|
|
|
|
|
* @param string $sTemplatePath Серверный путь до шаблона
|
2010-01-16 17:40:55 +02:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
static public function SetTemplatePath($sName,$sTemplatePath) {
|
|
|
|
|
if(!is_dir($sTemplatePath)) return false;
|
|
|
|
|
self::$aTemplatePath[$sName]=$sTemplatePath;
|
2012-04-17 20:58:32 +03:00
|
|
|
|
return true;
|
2010-01-16 17:40:55 +02:00
|
|
|
|
}
|
2010-01-31 17:20:16 +02:00
|
|
|
|
/**
|
|
|
|
|
* Устанавливает значение web-пути до шаблонов плагина
|
|
|
|
|
*
|
2012-04-17 20:58:32 +03:00
|
|
|
|
* @param string $sName Имя плагина
|
|
|
|
|
* @param string $sTemplatePath Серверный путь до шаблона
|
2010-01-31 17:20:16 +02:00
|
|
|
|
*/
|
|
|
|
|
static public function SetTemplateWebPath($sName,$sTemplatePath) {
|
|
|
|
|
self::$aTemplateWebPath[$sName]=$sTemplatePath;
|
2012-04-17 20:58:32 +03:00
|
|
|
|
}
|
2009-12-24 22:18:13 +02:00
|
|
|
|
}
|
|
|
|
|
?>
|