Олег
С нами с 04 декабря 2018; Место в рейтинге пользователей: #2290Вызов дочернего класса в родительском
Привет. Вопрос наверное больше про ООП в целом. И так, я пишу свой компонент для MODX, который должен через API постороннего сервиса получать цифровой товар. Для реализации этой загрузки я создал дочерний класс productGetter от класса моего компонента(пускай называется класс myComponent). То есть productGetter расширяет главный класс моего компонента. Соответственно productGetter подключает к себе главный классу myComponent через require_once
И теперь мне нужно, чтобы после оплаты в совершенно другом классе вызывался метод из productGetter чтобы получить цифровой товар. Но я не могу просто вызвать класс productGetter, я могу вызвать только класс myComponent через getService() и потом вызывать метод из myComponent, который создал бы объект productGetter, который в свою очередь запустил бы мне нужный метод. И получается это нормально, когда в родительском классе я создаю объект моего дочернего класса? Или есть какие-то более элегантные решения?
И теперь мне нужно, чтобы после оплаты в совершенно другом классе вызывался метод из productGetter чтобы получить цифровой товар. Но я не могу просто вызвать класс productGetter, я могу вызвать только класс myComponent через getService() и потом вызывать метод из myComponent, который создал бы объект productGetter, который в свою очередь запустил бы мне нужный метод. И получается это нормально, когда в родительском классе я создаю объект моего дочернего класса? Или есть какие-то более элегантные решения?
Переопределить работу сниппета и добавить свою логику
Привет. На сайте установлен miniShop2. Товары я получаю через сниппет msProduct. Но мне нужно добавить свою логику в сниппет. Например, я хочу добавить условие, что если товар добавлен в течение 10 последних дней, то появляется плашка «новинка». Напрямую добавить логику в сниппет вроде не могу, так как при обновлении все это перезапишется. Можно попробовать в самом чанке через fenom, но это как-то не кошерно, получается смешивание логики и представления. Может есть какой-то другой способ добавить свои условия в работу сниппета?
З.Ы. Была еще идея сделать сниппет обертку, который вызывает сниппет msProduct и потом с его выводом работать. Но сниппет msProduct не возвращает массив, а только HTML или строку в виде массива
З.Ы. Была еще идея сделать сниппет обертку, который вызывает сниппет msProduct и потом с его выводом работать. Но сниппет msProduct не возвращает массив, а только HTML или строку в виде массива