Переопределить $sHtmlTitleSeparation

Привет! Можно ли вообще переопределять переменные из модулей в папке engine?

7 комментариев

avatar
Конечно.
Сделайте наследование класса ModuleViewer в вашем плагине.

class PluginYourplugin_ModuleViewer extends PluginYourplugin_Inherit_ModuleViewer {
	
	public function Init($bLocal=false) {
            $this->sHtmlTitleSeparation = ' | ';
	    return parent::Init($bLocal);
	}
}
avatar
достаточно просто объявить переменную с новым значением:
class PluginYourplugin_ModuleViewer extends PluginYourplugin_Inherit_ModuleViewer {
    
    protected $sHtmlTitleSeparation=' - ';

}
avatar
да, забыл, что так тоже можно
avatar
Спасибо!
avatar
А можно ли в классе экшена переопределить?
avatar
А куда это добавлять?
В init?

<?php
if (!class_exists('Plugin')) {
die('Hacking attempt!');
}

class PluginCommon extends Plugin {
public function Init() {
class PluginCommon_ModuleViewer extends PluginCommon_Inherit_ModuleViewer {
protected $sHtmlTitleSeparation=' — ';
}
}
}
?>

Так или иначе ошибка
Fatal error: Class declarations may not be nested in /var/www/u0004858/public_html/musicspeech.ru/plugins/common/PluginCommon.class.php on line 14
avatar
М.б. надо кому будет. Нужно было переопределить заголовок только на страницах плагина. (с сепоратором аналогично) Сделал так:

1) Главный файл плагина PluginName.class.php

protected $aInherits=array(
        'module'  =>array(
            'ModuleViewer'=>'_ModuleViewer'
        )
);


2) Создаем /plugins/name/classes/modules/viewer/Viewer.class.php

class PluginName_ModuleViewer extends PluginName_Inherit_ModuleViewer {
   
	public function AddHtmlTitleName($sText) {
		$this->sHtmlTitle=$sText;
	}

}


И уже в экшене /plugins/name/classes/actions/ActionName.class.php устанавливаем его

class PluginName_ActionName extends ActionPlugin {

    public function Init() {
        $this->SetDefaultEvent('index');
    }

    protected function RegisterEvent() {
        $this->AddEvent('index','EventName');
    }

    protected function EventName() {

            $this->Viewer_AddHtmlTitleName($this->Lang_Get('plugin.name.title')); // сюда
            $this->SetTemplateAction('index');    

    }

}
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.