Вопросы по разработке и модификации CS-Cart

Разобрался. Спасибо.

Логика системы мне всё больше нравится.

[quote name=‘pcguru’ timestamp=‘1427902059’ post=‘209888’]

Разобрался. Спасибо.

Логика системы мне всё больше нравится.

[/quote]



Ну слава :)



Вы наверно до этого смотрели “Разработка: Дизайн и шаблоны” :)



А весь смак то в отдельном листе “Разработка: PHP”



А есть ещё отдельный лист: “Разработка: Модули” , где готовые модули.



Но начинать лучше с “Разработка: PHP” , так как “Разработка: Дизайн и шаблоны” это больше для внешнего вида.

Добрый день.

Подскажите как сделать чтобы окно со списком сравнений открывался в всплывающем окне? как на фото http://prntscr.com/6ohf5b

[quote name=‘SRR’ timestamp=‘1427959667’ post=‘209946’]

Добрый день.

Подскажите как сделать чтобы окно со списком сравнений открывался в всплывающем окне? как на фото http://prntscr.com/6ohf5b

[/quote]



То что вы показали это просмотр страницы “Список сравнения” в popup , по какому событию это окно должно появится?

[quote name=‘dbazhenov’ timestamp=‘1427960787’ post=‘209950’]

То что вы показали это просмотр страницы “Список сравнения” в popup , по какому событию это окно должно появится?

[/quote]

при нажатии на кнопку “Список сравнений”

[quote name=‘SRR’ timestamp=‘1427961326’ post=‘209956’]

при нажатии на кнопку “Список сравнений”

[/quote]



Оке :) Обожаю эту игру :) Где у нас кнопка “Список сравнений”


  1. Блок “Мой профиль”
  2. Ссылка в подвале
  3. Блок “Сравнение характеристик”
  4. В любом другом месте, где мы сами разместим кнопку.



    Правильно?

[quote name=‘dbazhenov’ timestamp=‘1427961724’ post=‘209959’]

Оке :) Обожаю эту игру :) Где у нас кнопка “Список сравнений”


  1. Блок “Мой профиль”
  2. Ссылка в подвале
  3. Блок “Сравнение характеристик”
  4. В любом другом месте, где мы сами разместим кнопку.



    Правильно?

    [/quote]

    Да

[quote name=‘SRR’ timestamp=‘1427961801’ post=‘209960’]

Да

[/quote]



Отлично :)



Вам уже давали ссылку на статью “Любую страницу в pop-up окне (по Ajax)”:

http://www.cs-cart.r…tml#pop-up-ajax



По этой статье, нам потребуется ссылка:


<a class="cm-dialog-opener cm-dialog-auto-size" href="{"product_features.compare"|fn_url}" data-ca-target-id="open_id_ajax" data-ca-dialog-title="{__("wishlist")}" >{__("wishlist")}</a>



Мы всего лишь передаём контроллер и всё, как понять какой контроллер, рассказывается в видеокурсе.



Ну а теперь по блокам.

  1. Блок “Мой профиль”



    Находим блок, находим старую ссылку, приводим к новому виду.



    Как найти и заменить модулем нужный блок, я рассказываю вот здесь:

    https://www.youtube…6_PXM_S2xRDVrKa



    Нужное видео можно найти прочитав заголовки.



    Также, про блок “Мой профиль” описано здесь:

    http://www.cs-cart.r…ount/index.html


  2. Ссылка в подвале.



    Ну тут всё просто, находим блок на странице “Дизайн - Макеты” и заменяем ссылку на нужную. Всё.


  3. Блок “Сравнение характеристик”.



    Тут нам тоже поможет видео-курс, там рассказывается как найти блок и изменить, однако, я бы в этом блоке оставил переход на отдельную страницу.


  4. Ссылка в любом месте.



    Просто создавайте SMARTY блок на странице “Дизайн - Макеты” и вставляйте ссылку, как описано в начале поста.

Здравствуйте.

Даниил как добавить настройку в “Настройки -> Внешний вид” с помощью модуля?

Добрался до переменной $content в файле \design\backend\templates\common\tabsbox.tpl дальше все хуков там не видно.

В чем смысл: есть такая настройка “Количество столбцов в списке товаров” которая в шаблоне меняет класс блока. Хочу добавить настройку для разных разрешений экранов.



Либо (запасной вариант) сделать в модуле настройки для столбцов и через хук сделать override в шаблон \templates\blocks\list_templates\grid_list.tpl, кстати хук там не в нужном месте, можно ли его переместить?

Спасибо.

[quote name=‘dbazhenov’ timestamp=‘1427962702’ post=‘209969’] Отлично :) Вам уже давали ссылку на статью “Любую страницу в pop-up окне (по Ajax)”: http://www.cs-cart.r…tml#pop-up-ajax По этой статье, нам потребуется ссылка: [url="{"]{__("wishlist")}[/url] Мы всего лишь передаём контроллер и всё, как понять какой контроллер, рассказывается в видеокурсе. Ну а теперь по блокам. 1. Блок “Мой профиль” Находим блок, находим старую ссылку, приводим к новому виду. Как найти и заменить модулем нужный блок, я рассказываю вот здесь: https://www.youtube…6_PXM_S2xRDVrKa Нужное видео можно найти прочитав заголовки. Также, про блок “Мой профиль” описано здесь: http://www.cs-cart.r…ount/index.html 2. Ссылка в подвале. Ну тут всё просто, находим блок на странице “Дизайн - Макеты” и заменяем ссылку на нужную. Всё. 3. Блок “Сравнение характеристик”. Тут нам тоже поможет видео-курс, там рассказывается как найти блок и изменить, однако, я бы в этом блоке оставил переход на отдельную страницу. 4. Ссылка в любом месте. Просто создавайте SMARTY блок на странице “Дизайн - Макеты” и вставляйте ссылку, как описано в начале поста. [/quote]



Спасибо огромное что нашли время и по пунктам показали как это реализовать!!!

Все гениальное просто, круть)))

[quote name=‘a_tsvetkov’ timestamp=‘1428009847’ post=‘210110’]

Здравствуйте.

Даниил как добавить настройку в “Настройки -> Внешний вид” с помощью модуля?

Добрался до переменной $content в файле \design\backend\templates\common\tabsbox.tpl дальше все хуков там не видно.

В чем смысл: есть такая настройка “Количество столбцов в списке товаров” которая в шаблоне меняет класс блока. Хочу добавить настройку для разных разрешений экранов.



Либо (запасной вариант) сделать в модуле настройки для столбцов и через хук сделать override в шаблон \templates\blocks\list_templates\grid_list.tpl, кстати хук там не в нужном месте, можно ли его переместить?

Спасибо.

[/quote]


  1. Настройку делайте в настройках модуля:

    https://www.youtube.com/watch?v=sNqZ40vCoFs&index=9&list=PL4okpC0OV7TTkHtIu8gPcgqdYXl1z8qj9



    Так как общие настройки системы - это дремучий лес. Настройки модуля доступны в любом месте.


  2. Если нет нужного хука, то делайте override или свой блок, все общие настройки заменяйте на свои из модуля.

    https://www.youtube.com/watch?v=VuThiQlYOaY&index=14&list=PL4okpC0OV7TQmBjqBe6_PXM_S2xRDVrKa





    [color=#282828][font=arial, verdana, tahoma, sans-serif]В чем смысл: есть такая настройка "Количество столбцов в списке товаров" которая в шаблоне меняет класс блока. Хочу добавить настройку для разных разрешений экранов.[/font][/color]



    [color=#282828][font=arial, verdana, tahoma, sans-serif]Количество столбцов динамическое, оно изменяется исходя из разрешения экрана. [/font][/color]

    [color=#282828][font=arial, verdana, tahoma, sans-serif]Колонки задаются с помощью специальных классов:[/font][/color]

    .ty-column2

    .ty-column3

    .ty-column4

    .ty-column5

    .ty-column6

    .ty-column7



    Эти классы динамические (адаптивные) . Не изменяйте их ширину, они знают сами какой ширины должны быть в зависимости от разрешения.

Здравствуйте Даниил!

Продолжая делать модификации кнопок для “products_multicolumns.tpl” столкнулся с проблемой понимания формирования кнопок.

Я так понял, что все ниточки приводят к файлу “templates\buttons\button.tpl”. Именно в этом файле происходит формирование кнопок.

Только вот в этот файл передается куча параметров и не все из них понятны. Например, подключается кнопка то smarty переменной, то include, в чем разница? Что такое but_role, but_meta и т.п.?

Есть ли по кнопкам какая либо документация (в плане разработки) как добавить класс, иконку, поменять текст и т.п… Все-таки кнопки это наиболее часто модифицируемая часть.

Спасибо.

[quote name=‘a_tsvetkov’ timestamp=‘1428256715’ post=‘210342’]

Здравствуйте Даниил!

Продолжая делать модификации кнопок для “products_multicolumns.tpl” столкнулся с проблемой понимания формирования кнопок.

Я так понял, что все ниточки приводят к файлу “templates\buttons\button.tpl”. Именно в этом файле происходит формирование кнопок.

Только вот в этот файл передается куча параметров и не все из них понятны. Например, подключается кнопка то smarty переменной, то include, в чем разница? Что такое but_role, but_meta и т.п.?

Есть ли по кнопкам какая либо документация (в плане разработки) как добавить класс, иконку, поменять текст и т.п… Все-таки кнопки это наиболее часто модифицируемая часть.

Спасибо.

[/quote]



Откройте файл:

/design/themes/responsive/templates/buttons/button.tpl



и всё будет понятно :)

[list]

[]but_role - тип кнопки, в зависимости от него разные варианты, условие увидите в файле.

[
]but_meta - класс (классы) которые будут добавлены к кнопке

[]but_extra - любые параметры и атрибуты которые можно добавить тегу

[
]but_name - контроллер по которому будет отправляться форма, если кнопка отправляет форму

[]but_href - URL если кнопка это ссылка.

[
]but_onclick - скрипт для onclick

[]but_target - ну например можно вставить “_blank” , чтобы открывать в новом окне.

[
]but_rel - это значения для аргумента rel

[]but_external_click_id - если нужно, чтобы клик по кнопке кликал другую кнопку, сюда передать ID внешней кнопки, также нужно передать кнопке but_meta=“cm-external-click”

[
]but_target_form - название формы, которую будет отправлять кнопка

[]but_target_id - используется для Ajax кнопок или открытия скрытых блоков.

[
]but_icon - класс иконки, будет добавлен кнопке.

[*]but_text - тексты внутри кнопки (ссылки)

[/list]

Параметры не обязательные и на ваше усмотрение, в зависимости от того, что должна делать кнопка



Все кнопки по умолчанию имеют класс ty-btn, чтобы кнопка изменила внешний вид, можно добавить один из следующих классов:

ty-btn__big

ty-btn__text

ty-btn__primary

ty-btn__secondary

ty-btn__tertiary

ty-btn-go



Добавлять через but_meta

1 лайк

[quote][color=#282828][font=arial, verdana, tahoma, sans-serif]и всё будет понятно[/font][/color][/quote]

Спасибо Даниил!

Попробую разобраться. Для меня основная проблема это цепочки шаблонов, непривычно и очень их много.



Кстати $test .= “какой то текст” (добавление в конец переменной) работает в smarty?



И еще возник фактор очередности срабатывания хуков, когда мой файл add_to_cart.override.tpl перезаписывает блок и все дополнительные кнопки “купить в один клик и т.п.” пропадают.

[quote name=‘a_tsvetkov’ timestamp=‘1428313692’ post=‘210379’]

Спасибо Даниил!

Попробую разобраться. Для меня основная проблема это цепочки шаблонов, непривычно и очень их много.



Кстати $test .= “какой то текст” (добавление в конец переменной) работает в smarty?



И еще возник фактор очередности срабатывания хуков, когда мой файл add_to_cart.override.tpl перезаписывает блок и все дополнительные кнопки “купить в один клик и т.п.” пропадают.

[/quote]



По поводу работает ли в SMARTY , просто попробуйте :)



Всё цепочки работают относительно папки templates , цепочки это просто подключение другого шаблона и передача ему каких то параметров.



По поводу очерёдности хуков, то работает исходя и приоритета в файле addon.xml .



Никто не запрещает вам добавлять в свой override хуки к которым подцепляются другие модули :)

[quote][color=#282828][font=arial, verdana, tahoma, sans-serif]Всё цепочки работают относительно папки templates , цепочки это просто подключение другого шаблона и передача ему каких то параметров[/font][/color][/quote]

Есть некоторые моменты, например: в файле templates\blocks\list_templates\grid_list.tpl блок кнопок подключается через переменную <br /> {if $show_add_to_cart}<br /> {assign var="add_to_cart" value="add_to_cart_`$obj_id`"}<br /> {$smarty.capture.$add_to_cart nofilter}<br /> {/if}<br /> , которая находится в файле \templates\common\product_data.tpl, а дальше уже подключает шаблон кнопок. Вот это в основном доставляет сложности.


[quote][color=#282828][font=arial, verdana, tahoma, sans-serif]Никто не запрещает вам добавлять в свой override хуки к которым подцепляются другие модули[/font][/color][/quote]

Даже не предполагал. А если он цепляется к тому же хуку что и мой, то это уже приоритет?



Еще раз огромное Спасибо.

[quote name='a_tsvetkov' timestamp='1428313692' post='210379']

Попробую разобраться. Для меня основная проблема это цепочки шаблонов, непривычно и очень их много.

[/quote]



Не знаю, писал ли Даниил где-нибудь про дебаггер, но в нем можно проследить откуда и какие шаблоны подключались для каждой страницы



В config.php


<br /> //Uncomment to enable the developer tools: debugger, PHP and SQL loggers, etc.<br /> //define(&#39;DEBUG_MODE&#39;, true);<br />

[quote name=‘a_tsvetkov’ timestamp=‘1428315817’ post=‘210398’]

которая находится в файле \templates\common\product_data.tpl, а дальше уже подключает шаблон кнопок. Вот это в основном доставляет сложности.

[/quote]



product_data.tpl лишь создаёт заготовки ($smarty.capture.name) , это своего рода переменные, только содержат они готовые html шаблоны, которые потом можно выводить.



Они не часто используются и основное их применения вы уже нашли.



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



[color=#282828][font=arial, verdana, tahoma, sans-serif]Даже не предполагал. А если он цепляется к тому же хуку что и мой, то это уже приоритет?[/font][/color]



[font=“arial, verdana, tahoma, sans-serif”][color="#282828"]если это хуки одного типа то приоритет. [/color][/font]



[color=#282828][font=arial, verdana, tahoma, sans-serif]Попробуйте, самый лучший и быстрый способ это эксперимент, попробуйте разные способы, это очень быстро. [/font][/color]

[quote][color=#282828][font=arial, verdana, tahoma, sans-serif]в нем можно проследить откуда и какие шаблоны подключались для каждой страницы[/font][/color][/quote]



Надо попробовать.

[quote][color=#282828][font=arial, verdana, tahoma, sans-serif]Тоесть создаются заготовки и потом они размещаются в нужных местах, это облегчает разработку[/font][/color][/quote]

Они, как я понял, доступны на всех страницах? Основные кнопки для товаров формируются, видимо, именно там. Логики много, попробую разобраться.