При инициализации системы запускается класс PageParser, который по ходу выполнения сценария подключает другие базовые классы системы, передавая им полномочия на выполнение тех или иных операций. Это части ядра PHP-платформы Wad-er. Их можно расширить или перезаписать используемые в них методы (функции).
В большинстве случаев необходимость поменять функционал базовых классов возникает редко, однако эта возможность делает PHP-платформу Wad-er очень гибкой и легко расширяемой платформой.
Внимание. Прежде чем заменять базовые классы и вводить свой код в основной функционал платформы хорошо подумайте, не повлечет ли это необратимые последствия.
Для расширения функциональности классов ядра можно переопределять методы системных классов путем наследования. Расширение системных классов происходит в соответствии с базовыми методиками ООП программирования:
class subClass extends baseClass { //... }
Если необходимо использовать родительский конструктор, необходимо вызвать его в конструкторе дочернего класса:
class subClass extends baseClass { public function __construct() { parent::__construct(); } }
Пример расширения системного класса wAjaxMindCard (отображение карты сайта):
include_once(SYS_BASE_PATH.'main/classes/wajaxmindcard.class.php'); class wsitemap extends wAjaxMindCard { public function makeTitle($d, $rs) { global $parser; ($rs->fields[2]) ? $d = "fields[0]."'))\" ti-tle=\"\">".$d."" : $d = "makeUrl($rs->fields[0])."\" title=\"\">".$d.""; return $d; } } $w = new wsitemap(); $w->q->select('objid'); $w->q->select('name', '', array('lang' => true)); $w->q->select('isfolder'); $w->q->select('parent'); $w->q->select("'' AS notes"); $w->q->select('flt1'); $w->q->from('sys_objects'); $w->q->where("objid<>'0'"); $w->q->where('bool2=1'); $w->q->where('bool3=1'); //$w->q->where('flt2=1'); $w->q->where("objtype='sys_elements_pages'"); $w->q->where("parent=:parent:"); $w->q->orderby('flt1'); $w->q->orderby('name', true); $w->title = $parser->config['site_name']; $w->show();