Выдано 110047 лицензий

Как переопределить стандартный метод модели?

Как переопределить стандартный метод модели?
#
xelaxela13
Я наследую модель, переопределяю метод, свой класс ложу в папку с /modules/myfolder/myclass.php

подключаю в bootstrap через require_once

почему не работает?

как нужно сделать?

ПрофильЦитировать выделенное07.08.2017 20:29:15 • Сообщений: 268
Re: Как переопределить стандартный метод модели?
#
HostCMS
Модератор
что именно не работает то?

ПрофильЦитировать выделенное07.08.2017 21:25:46 • Сообщений: 15545
Re: Как переопределить стандартный метод модели?
#
xelaxela13
Везде где вызывает метод, срабатывает стандартный метод системы, а не мой.
А мне нужно что бы система подхватывала мой метод.
Может есть возможность в Хук вставить переопределение и вызвать Хук, например beforeExecute.

ПрофильЦитировать выделенное08.08.2017 10:24:00 • Сообщений: 268
Re: Как переопределить стандартный метод модели?
#
HostCMS
Модератор
xelaxela13,
вы наследуете наш класс, создаете своего потомка, но почему вы считаете, что после этого должен вызываться ваш метод? Система использует свои объекты и о ваших новых совершенно ничего не знает.

ПрофильЦитировать выделенное08.08.2017 11:04:11 • Сообщений: 15545
Re: Как переопределить стандартный метод модели?
#
xelaxela13
Ну, да, все верно, я не правильно выразился...
А вообще существует возможность что бы система подхватывала переопределенный метод?

ПрофильЦитировать выделенное08.08.2017 11:19:47 • Сообщений: 268
Re: Как переопределить стандартный метод модели?
#
HostCMS
Модератор
xelaxela13,
он не переопределен, вы просто создаете свой класс-наследник, о котором система ничего не знает, почитайте про наследование в PHP.

ПрофильЦитировать выделенное08.08.2017 12:45:42 • Сообщений: 15545
Re: Как переопределить стандартный метод модели?
#
xelaxela13
HostCMS писал(а):
почитайте про наследование в PHP

Почитал )
У  меня не получается.... Вот что я хочу сделать:
В шаблоне вызвать
Core_Pagemy::instance()
      ->prependCss('/bootstrap/css/bootstrap.min.css')
        ->showCss();

вместо
Core_Page

я создаю класс и ложу его core/pagemy.php рядом с core/page.php
<?php
defined('HOSTCMS') || exit('HostCMS: access denied.');

class Core_Pagemy extends Core_Page
{
    /**
     * Add templates
     * @param Template_Model $oTemplate Template
     * @return Core_Pagemin
     */

    public function addTemplates(Template_Model $oTemplate)
    {
        var_dump('Hello');

        return $this;
    }

почему я не попадаю в этот метод, если в шаблоне вызываю Core_Pagemy ???

Дело в вызове instance() ???

ПрофильЦитировать выделенное13.08.2017 16:03:13 • Сообщений: 268
Re: Как переопределить стандартный метод модели?
#
HostCMS
Модератор
В какой метод не попадаете? Как вызываете?

ПрофильЦитировать выделенное13.08.2017 17:58:00 • Сообщений: 15545
Re: Как переопределить стандартный метод модели?
#
xelaxela13
HostCMS писал(а):
В какой метод не попадаете? Как вызываете?

при вызове в шаблоне
Core_Page::instance()
      ->prependCss('/bootstrap/css/bootstrap.min.css')
        ->showCss();

каким то магическим образом в конец добавляются стили с шаблонов
<link rel="stylesheet" type="text/css" href="/templates/template13/style.css?1502623867" />
<link rel="stylesheet" type="text/css" href="/templates/template19/style.css?1502623867" />
<link rel="stylesheet" type="text/css" href="/templates/template16/style.css?1502623867" />

по кол-ву шаблонов
где-то же вызывается метод  
public function addTemplates(Template_Model $oTemplate)
в котором и добавляются стили и скрепты

ПрофильЦитировать выделенное13.08.2017 21:32:15 • Сообщений: 268
Re: Как переопределить стандартный метод модели?
#
HostCMS
Модератор
xelaxela13,
вы не ответили на вопрос "В какой метод не попадаете? Как вызываете?". Приведенный вами код к упоминаемому вами Core_Pagemy не имеет ни малейшего отношения.

ПрофильЦитировать выделенное14.08.2017 09:24:12 • Сообщений: 15545
Авторизация