miniShop2 icon indicating copy to clipboard operation
miniShop2 copied to clipboard

Сниппет msProducts передача переменных в параметры tpl и tplWrapper

Open OlegShchavelev opened this issue 4 years ago • 16 comments

Запрос функции

Необходимо в сниппет msProducts cледующей механизм.

##tpl

Реализовать возможность аналогично pdoResources добавление параметром в сниппет.

{'msProducts' | snippet : [
'tpl' => 'row.products'
'title' => "Заголовок"
]}

В чанке row.products вызываем {$title}

Для добавления переменной в чанк (обертку) tplWrapper так же аналогично pdoResources

{'msProducts' | snippet : [
'tplWrapper' => 'wrapper.products'
'additionalPlaceholders' => [
'title' => 'Заголовок'
'class' => 'col-12'
]
]}

В чанке 'wrapper.products вызываем {$additionalPlaceholders.title} и {$additionalPlaceholders.class}

Зачем это нужно?

Для более удобной шаблонизации и унификации шаблонов. Так как данную возможность можно реализовать с помощью fenom, prepareSnippet или "сниппет в сниппете".

OlegShchavelev avatar Mar 28 '20 14:03 OlegShchavelev

Может не стоит усложнять коробочный функционал и пихать туда любую хотелку? Ваше предложение будет использоваться крайне редко и после всех подобных хотелок, компонент обрастет густой шерстью, которую потом не расчесать.

iWatchYouFromAfar avatar Mar 28 '20 14:03 iWatchYouFromAfar

Я исхожу из того что сниппет msProducts согласно документации наследуется возможности пакета pdoTools, в том числе pdoResourses. В сниппете pdoResourses данные возможности есть.

Причины.

  1. Как правила в интернет-магазине используется не менее 5 витрин, а в среднем до 10 в данном случае мы уменьшаем количество чанков и делаем работу с ними более удобными так как все правиться из одного места.
  2. Человек начал с pdoResources сделал себе удобную логику и начинает реализовывать такую же логику в сниппете msProducts и понимает что нет тут надо действовать по-другому.
  3. Если брать темы по шаблонизации на портале modx.pro данная тема интересна аудитории и как правила аудитория активно реагирует на данные вопросы.

На основании вышеизложенного я сформировал issue

OlegShchavelev avatar Mar 28 '20 15:03 OlegShchavelev

Может не стоит усложнять коробочный функционал и пихать туда любую хотелку? Ваше предложение будет использоваться крайне редко и после всех подобных хотелок, компонент обрастет густой шерстью, которую потом не расчесать.

Как раз нужно исправить логику, а не лепить костили, как сейчас.

CrazyBoy49z avatar Mar 28 '20 15:03 CrazyBoy49z

Я исхожу из того что сниппет msProducts согласно документации наследуется возможности пакета pdoTools, в том числе pdoResourses. В сниппете pdoResourses данные возможности есть.

Причины.

  1. Как правила в интернет-магазине используется не менее 5 витрин, а в среднем до 10 в данном случае мы уменьшаем количество чанков и делаем работу с ними более удобными так как все правиться из одного места.
  2. Человек начал с pdoResources сделал себе удобную логику и начинает реализовывать такую же логику в сниппете msProducts и понимает что нет тут надо действовать по-другому.
  3. Если брать темы по шаблонизации на портале modx.pro данная тема интересна аудитории и как правила аудитория активно реагирует на данные вопросы.

На основании вышеизложенного я сформировал issue

Аудитория modx.pro зачастую не может вызвать сниппет без ошибок. Если кто-то и решит дорабатывать изложенный вами функционал, значит нужно ставить этому разработчику задачу по доработке документации, причем такой доработке, чтобы у аудитории modx.pro не возникало по ней вопросов.

iWatchYouFromAfar avatar Mar 28 '20 15:03 iWatchYouFromAfar

Может не стоит усложнять коробочный функционал и пихать туда любую хотелку?

Не бурчи Паш😬 Усложнением называть передачу параметров в чанк это чересчур

GulomovCreative avatar Mar 31 '20 01:03 GulomovCreative

Может не стоит усложнять коробочный функционал и пихать туда любую хотелку?

Не бурчи Паш😬 Усложнением называть передачу параметров в чанк это чересчур

Соглашусь, нужно просто исправить, minishop2 не работает без prepareSnippet(для меня это костиль), хотя в логике pdoResourses есть, и в логике pdoFetch тоже заложено, параметр почему-то теряется. Не искал почему. Но исправить нужно.

CrazyBoy49z avatar Mar 31 '20 17:03 CrazyBoy49z

Я исхожу из того что сниппет msProducts согласно документации наследуется возможности пакета pdoTools, в том числе pdoResourses. В сниппете pdoResourses данные возможности есть. Причины.

  1. Как правила в интернет-магазине используется не менее 5 витрин, а в среднем до 10 в данном случае мы уменьшаем количество чанков и делаем работу с ними более удобными так как все правиться из одного места.
  2. Человек начал с pdoResources сделал себе удобную логику и начинает реализовывать такую же логику в сниппете msProducts и понимает что нет тут надо действовать по-другому.
  3. Если брать темы по шаблонизации на портале modx.pro данная тема интересна аудитории и как правила аудитория активно реагирует на данные вопросы.

На основании вышеизложенного я сформировал issue

Аудитория modx.pro зачастую не может вызвать сниппет без ошибок. Если кто-то и решит дорабатывать изложенный вами функционал, значит нужно ставить этому разработчику задачу по доработке документации, причем такой доработке, чтобы у аудитории modx.pro не возникало по ней вопросов.

А теперь посмотри внимательно документацию и поймешь что ничего не нужно писать, просто не работает из коробки https://docs.modx.pro/komponentyi/pdotools/obshhie-parametryi

CrazyBoy49z avatar Mar 31 '20 17:03 CrazyBoy49z

Я исхожу из того что сниппет msProducts согласно документации наследуется возможности пакета pdoTools, в том числе pdoResourses. В сниппете pdoResourses данные возможности есть. Причины.

  1. Как правила в интернет-магазине используется не менее 5 витрин, а в среднем до 10 в данном случае мы уменьшаем количество чанков и делаем работу с ними более удобными так как все правиться из одного места.
  2. Человек начал с pdoResources сделал себе удобную логику и начинает реализовывать такую же логику в сниппете msProducts и понимает что нет тут надо действовать по-другому.
  3. Если брать темы по шаблонизации на портале modx.pro данная тема интересна аудитории и как правила аудитория активно реагирует на данные вопросы.

На основании вышеизложенного я сформировал issue

Аудитория modx.pro зачастую не может вызвать сниппет без ошибок. Если кто-то и решит дорабатывать изложенный вами функционал, значит нужно ставить этому разработчику задачу по доработке документации, причем такой доработке, чтобы у аудитории modx.pro не возникало по ней вопросов.

А теперь посмотри внимательно документацию и поймешь что ничего не нужно писать, просто не работает из коробки https://docs.modx.pro/komponentyi/pdotools/obshhie-parametryi

Тогда надо грамотно формировать issue. Это не запрос новой функции, а необходимость выяснить, почему не работают общие параметры pdoTools в сниппетах minishop2.

iWatchYouFromAfar avatar Mar 31 '20 20:03 iWatchYouFromAfar

Я исхожу из того что сниппет msProducts согласно документации наследуется возможности пакета pdoTools, в том числе pdoResourses. В сниппете pdoResourses данные возможности есть. Причины.

  1. Как правила в интернет-магазине используется не менее 5 витрин, а в среднем до 10 в данном случае мы уменьшаем количество чанков и делаем работу с ними более удобными так как все правиться из одного места.
  2. Человек начал с pdoResources сделал себе удобную логику и начинает реализовывать такую же логику в сниппете msProducts и понимает что нет тут надо действовать по-другому.
  3. Если брать темы по шаблонизации на портале modx.pro данная тема интересна аудитории и как правила аудитория активно реагирует на данные вопросы.

На основании вышеизложенного я сформировал issue

Аудитория modx.pro зачастую не может вызвать сниппет без ошибок. Если кто-то и решит дорабатывать изложенный вами функционал, значит нужно ставить этому разработчику задачу по доработке документации, причем такой доработке, чтобы у аудитории modx.pro не возникало по ней вопросов.

А теперь посмотри внимательно документацию и поймешь что ничего не нужно писать, просто не работает из коробки https://docs.modx.pro/komponentyi/pdotools/obshhie-parametryi

Тогда надо грамотно формировать issue. Это не запрос новой функции, а необходимость выяснить, почему не работают общие параметры pdoTools в сниппетах minishop2.

Ну наверное потому, что минишоп только использует pdoTools а не является его частью, и в том виде, что сниппеты мс должны иметь весь функцинал снипетов пт фразы в документации нет нигде, автор выдал желаемое за действительное. Если так охота передавать параметра в тплвраппер и тпл можно пользоваться инлайн нотацией. Нет ничего сложного в том чтобы переписать msProducts со всеми свистоперделками pdoResources, но зачем...

VoiD2008 avatar Apr 28 '20 16:04 VoiD2008

Ну наверное потому, что минишоп только использует pdoTools а не является его частью, и в том виде, что сниппеты мс должны иметь весь функцинал снипетов пт фразы в документации нет нигде, автор выдал желаемое за действительное. Если так охота передавать параметра в тплвраппер и тпл можно пользоваться инлайн нотацией. Нет ничего сложного в том чтобы переписать msProducts со всеми свистоперделками pdoResources, но зачем...

Как раз в доке по ms это сказано, потому и меня раньше в заблуждение ввело

CrazyBoy49z avatar Apr 29 '20 14:04 CrazyBoy49z

Ну наверное потому, что минишоп только использует pdoTools а не является его частью, и в том виде, что сниппеты мс должны иметь весь функцинал снипетов пт фразы в документации нет нигде, автор выдал желаемое за действительное. Если так охота передавать параметра в тплвраппер и тпл можно пользоваться инлайн нотацией. Нет ничего сложного в том чтобы переписать msProducts со всеми свистоперделками pdoResources, но зачем...

Как раз в доке по ms это сказано, потому и меня раньше в заблуждение ввело

Насколько я помню, в том же Тикетс так же не во всех сниппетах работают общие параметры pdoTools.

iWatchYouFromAfar avatar Apr 29 '20 14:04 iWatchYouFromAfar

Ну наверное потому, что минишоп только использует pdoTools а не является его частью, и в том виде, что сниппеты мс должны иметь весь функцинал снипетов пт фразы в документации нет нигде, автор выдал желаемое за действительное. Если так охота передавать параметра в тплвраппер и тпл можно пользоваться инлайн нотацией. Нет ничего сложного в том чтобы переписать msProducts со всеми свистоперделками pdoResources, но зачем...

Как раз в доке по ms это сказано, потому и меня раньше в заблуждение ввело

Насколько я помню, в том же Тикетс так же не во всех сниппетах работают общие параметры pdoTools.

Тогда нужно или доку исправить, или функционал поправить

CrazyBoy49z avatar Apr 29 '20 14:04 CrazyBoy49z

Особенности Сниппет msProducts, как и все сниппеты miniShop2, использует pdoTools для работы. Поэтому

все основные его параметры

совпадают с pdoResources, но есть и особенности.

Все основные его параметры, а не абсолютно все его параметры совпадают со всеми параметрами pdoResources

VoiD2008 avatar Apr 29 '20 22:04 VoiD2008

Ми говорим про одни и те же общие параметры, или про разные вещи

CrazyBoy49z avatar Apr 30 '20 08:04 CrazyBoy49z

Тут бурное обсуждение. Как автор issue хочу сверить часы и поделиться с вами своим мнением. Для удобства я буду комментировать конкретные фразы.

Все основные его параметры, а не абсолютно все его параметры совпадают со всеми параметрами pdoResources

Без сомнения у сниппетов есть параметры, которые общие (основные), а есть индивидуальные. Как правила индивидуальные параметры связаны с иной организацией данных. К примеру сниппета msProducts, есть дополнительные таблицы с полями price,old_price и т.д связи с этим и есть это деление.

Данный параметр связан исключительно с шаблонизацией и не имеет ни какого отношения к организации данных (БД), а это означает что может быть во всех сниппетах семейcтва (на мой скромный взгляд) . В нашем случае, мы обсуждаем msProducts и организацию данных.

Ну наверное потому, что минишоп только использует pdoTools а не является его частью, и в том виде, что сниппеты мс должны иметь весь функцинал снипетов пт фразы в документации нет нигде, автор выдал желаемое за действительное. Если так охота передавать параметра в тплвраппер и тпл можно пользоваться инлайн нотацией. Нет ничего сложного в том чтобы переписать msProducts со всеми свистоперделками pdoResources, но зачем...

Действительно можно использовать @INLINE это одно из решений данной задачи. Это и есть принцип шаблонизации. Хочу отметить что данный принцип распространяется на все сниппеты (Возможно использовать INLINE). То что я написал такой же принцип, но он же есть не везде хотя решает одну и ту же задачу минимизирует количество чанков. К примеру много кода и @INLINE не удобен. Странно как-то, если у тебя showcase(витрина) на pdoResources у тебя есть подход, если у тебя витрина на msProducts тебе нужно действовать по-другому.

Так же вариантов действий множество можно обернуть в сниппет или решить проблему с помощью Fenom можно с помощью prepareSnippet, а можно еще свой сниппет на основе msProducts написать.

Тогда надо грамотно формировать issue. Это не запрос новой функции, а необходимость выяснить, почему не работают общие параметры pdoTools в сниппетах minishop2.

Я сформировал issue, потому что для msProducts это новый параметр. Вопрос, что его можно считать общим и он может быть полезным это вопрос обсуждения. И как я понимаю это очень простое решение.

Просто копируем в msProduct нужный участок кода и добавляем переменную с массивом и возможность появилась.

Так же хочу отметить, что если это есть pdoResources варианта два либо разработчики приняли PR или написали сами потому, считали целесообразным. Это и легло для написания issue.

OlegShchavelev avatar May 02 '20 20:05 OlegShchavelev

Я сформировал issue, потому что для msProducts это новый параметр. Вопрос, что его можно считать общим и он может быть полезным это вопрос обсуждения. И как я понимаю это очень простое решение.

Я прошу прощения @iWatchYouFromAfar за последний комментарий. Я не увидел ссылку от @CrazyBoy49z действительно это баг в данном контексте и не правильно выбрал тип issue. Я не видел данную ссылку. Но мне кажется что мы делимся документацией и ее читаем - это круто.

OlegShchavelev avatar May 03 '20 15:05 OlegShchavelev