Тема: Как переопределить функцию
Здравствуйте!
Как можно переопределить в своем модуле функцию находящеюся в modules\catalog\model\orm ?
Форум ReadyScript Вопросы по разработке модулей и API системы Как переопределить функцию
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте!
Как можно переопределить в своем модуле функцию находящеюся в modules\catalog\model\orm ?
Здравствуйте!
Как можно переопределить в своем модуле функцию находящеюся в modules\catalog\model\orm ?
Тут об этом подробно написано:
http://readyscript.ru/text-blog/Kak-pra … adyScript/
Всё верно. Если нужен более конкретный пример, то напишите, какой именно Вас интересует момент.
Более конкретно этот \modules\catalog\model\orm\dir.inc.php функцию getUrl.
Сделайте КОПИЮ файла с расширением .my.inc.php вместо .inc.php и спокойно правьте файл. Система подхватит именно Ваш файл.
\modules\catalog\model\orm\dir.my.inc.php
Спасибо, с эти понял. А как переопределить функцию в своем модуле, не создавая подмены классов?
Переопределения самих функций в других классах нет, но у нас появятся behavior расширения классов, и тогда можно будет дописывать из своего модуля функции классам. Пока этого нет. У нас сейчас возможно расширять систему и с помощью хуков в системе. Ну или можно вызывать статическую публичную функцию из шаблона при помощи нашего static_call плагина к smarty, в ней уже реализовать Ваши действия и вернуть значения. Туда можно и передать Ваш класс выполнив с ним манипуляции. Вот ссылка.
Ну и вот несколько ссылок для разработки:
http://readyscript.ru/text-blog/Kak-soz … adyScript/
http://readyscript.ru/text-blog/block-c … adyscript/
http://readyscript.ru/text-blog/razraba … nyy-modul/
http://readyscript.ru/text-blog/Kak-pra … adyScript/
Также вот документация для разработчиков.
Если нужны более конкретны примеры спрашивайте.
Подумал, что нужно привести пример использования static_call для вашего случая в шаблоне. Я думаю пригодится.
Допустим у Вас есть модуль с именем custom и есть класс Api для выполнения функций Ваших. Соответственно в папке /modules/custom/model/api.inc.php
В этом классе предположим будет функция myDirUrl, которая возвращает нужные Вам данные. Мы их присвоим в шаблоне переменной $moyaperemennaya
В саму функцию myDirUrl мы передадим переменную содержащуй объект категории ($dir например)
Тогда вызов метода будет выглядеть так:
{* Вызов static_call *}
{static_call var=moyaperemennaya callback['\Custom\Model\Api','myDirUrl'] params=[$dir]}
{* Вывод значения присвоенного функцией *}
{$moyaperemennaya}
Ну а в самом классе Api:
<?php
namespace Custom\Model;
class Api{
/**
* Наша функция
*
* @param \Catalog\Model\Orm\Dir $dir - объект категории из шаблона
*/
public static function myDirUrl($dir){
//Наши действия
//
//
return $moeznachenie; //Вернём результат обратно в шаблон
}
}
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум ReadyScript Вопросы по разработке модулей и API системы Как переопределить функцию