ahmed Опубликовано 16 мая, 2017 Жалоба Поделиться Опубликовано 16 мая, 2017 (изменено) В варианте Давинчи используя settings->image_sizes картинки режутся всех размеров указанных в настройке. Ну так они же и используются, не так ли? в тот или иной момент она загружается, не важно в какой промежуток времени.Ну так почему бы размеры не брать от туда?Преимущества на мой взгляд в том, что добавляя картинку к товару используемые размеры нарезались и лежат себе ждут своего часа. Вы забыли указать недостатки, а их немало:1. Придется нарезать на ходу все картинок из настроек. А там могут быть старые размеры, которые уже в шаблоне не используются. Лишняя нагрузка и лишнее дисковое пространство.2. Если в шаблоне появится новый размер, то для загруженных ранее картинок ссылка будет битой. Чтобы этого избежать, надо использовать оба способа - первоначальная нарезка всех размеров из списка плюс добавление на ходу, если надо. А тогда вопрос - зачем первый способ, когда и второй в одиночку справится?3. Бывают в верстке случаи, когда у товара для первой картинки в шаблоне используется размер, скажем 600х600, а у второй и прочих - не используется. Опять имеем непроизводительный расход ресурсов сервера. Впрочем, Вам никто не мешает переделать по своему способу. Вроде бы оно не слишком сложно... Изменено 16 мая, 2017 пользователем ahmed Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 16 мая, 2017 Автор Жалоба Поделиться Опубликовано 16 мая, 2017 3. Бывают в верстке случаи, когда у товара для первой картинки в шаблоне используется размер, скажем 600х600, а у второй и прочих - не используется. Опять имеем непроизводительный расход ресурсов сервера.Это самый весомый аргумент Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 18 мая, 2017 Автор Жалоба Поделиться Опубликовано 18 мая, 2017 {if $product->variants|count > 0} - это проверка на наличие товара. Т.е. если есть хоть один вариант товар считается в наличии?Можно подробней про эту логику? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 18 мая, 2017 Жалоба Поделиться Опубликовано 18 мая, 2017 {if $product->variants|count > 0} - это проверка на наличие товара. Т.е. если есть хоть один вариант товар считается в наличии?Можно подробней про эту логику?Подробнее больше некуда, и так все прозрачно понятно. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 18 мая, 2017 Жалоба Поделиться Опубликовано 18 мая, 2017 {if $product->variants|count > 0} - это проверка на наличие товара. Т.е. если есть хоть один вариант товар считается в наличии?Можно подробней про эту логику?При выборке вариантов товара используется фильтр in_stock - т.е. выводятся только варианты, которые ЕСТЬ в наличии.Естественно, в шаблоне проверка - если есть хотя бы один вариант - товар есть в наличии. Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 18 мая, 2017 Автор Жалоба Поделиться Опубликовано 18 мая, 2017 При выборке вариантов товара используется фильтр in_stock - т.е. выводятся только варианты, которые ЕСТЬ в наличии.Ага, понял - это в ProductView. Спсасибо Подробнее больше некуда, и так все прозрачно понятно.Человеку знающему движок в доль и поперек может и элементарно. Я же поинтересовался про логику такого поведения. После ответа Kosjak76 стало понятно. На css класс variants у формы в product.tpl что нибудь завязано важное? И вообще практикуется ли в движке привязка скриптов к css классам? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 18 мая, 2017 Жалоба Поделиться Опубликовано 18 мая, 2017 Все скрипты привязываются исключительно в шаблоне.В дефолтном шаблоне на variants привязана аякс-корзина Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 18 мая, 2017 Автор Жалоба Поделиться Опубликовано 18 мая, 2017 В дефолтном шаблоне на variants привязана аякс-корзинаОна в index.tpl только подключается насколько я нашел Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 18 мая, 2017 Жалоба Поделиться Опубликовано 18 мая, 2017 И что?То, что подключается в index.tpl - выводится на ВСЕХ страницах сайтаindex.tpl - это обертка, в которую вставляются все остальные шаблоны. Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 18 мая, 2017 Автор Жалоба Поделиться Опубликовано 18 мая, 2017 И что?То, что подключается в index.tpl - выводится на ВСЕХ страницах сайтаindex.tpl - это обертка, в которую вставляются все остальные шаблоны.Да не, не так понял меня, я имел ввиду для отключения этого скрипта достаточно отключить его там.Пишу централизованный обработчик для "продукта" в виде конструктора, соответственно удаляю все куски кода связанные с ним в разных местах. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 18 мая, 2017 Жалоба Поделиться Опубликовано 18 мая, 2017 Что такое " централизованный обработчик для "продукта" в виде конструктора"???Нафига он нужен? Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 18 мая, 2017 Автор Жалоба Поделиться Опубликовано 18 мая, 2017 Что такое " централизованный обработчик для "продукта" в виде конструктора"???Нафига он нужен?Заморочки объектно - ориентированного программирования на javaScript, Т.е. создается класс Product у него есть методы управления слайдером изображений продукта, добавлением в корзину, расчетом стоимости (скидки, акции, выбор количества) и т.д. Т.е. весь необходимый для работы с продуктом javaScript собирается в виде методов класса. Для чего? Да не люблю использовать библиотеки, там где в них нет надобности. Тем более грузить JQ, JQUI для того, что бы отправить аяксом несколько полей данных, да заставить работать фенсибокс и пару слайдеров - немного расточительно не правда ли? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 18 мая, 2017 Жалоба Поделиться Опубликовано 18 мая, 2017 А городить непонятный огород - проще?Мне такого не понять...Если не любите использовать библиотеки - пишите на ванильном, но нафига какие-то обьекты - вот этого я точно никогда не пойму)) Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 18 мая, 2017 Автор Жалоба Поделиться Опубликовано 18 мая, 2017 (изменено) Если не любите использовать библиотеки - пишите на ванильном, но нафига какие-то обьекты - вот этого я точно никогда не пойму))Так на нем и пишу, просто в ООП стиле. Удобно, есть объект, он может делать то то и то то, у него есть это и это. Чем разбросанные отдельные функции. Но это конечно дело вкуса и холивары тут можно разводить бесконечные ) Изменено 18 мая, 2017 пользователем pepelxD Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 18 мая, 2017 Жалоба Поделиться Опубликовано 18 мая, 2017 А если отправить аякс из списка - тоже городить новый обьект?А на главной 3 разных списка - там 3 обьекта? Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 18 мая, 2017 Автор Жалоба Поделиться Опубликовано 18 мая, 2017 (изменено) А если отправить аякс из списка - тоже городить новый обьект?А на главной 3 разных списка - там 3 обьекта?Имеются ввиду списки товаров? Если да то для каждого товара создается объект: var list = document.querySelectop('селектор списка'); for(var i = 0; i < list.children.length; i++) { list.children[i] = new Product(); } А уже там есть необходимый функционал Изменено 18 мая, 2017 пользователем pepelxD Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 18 мая, 2017 Жалоба Поделиться Опубликовано 18 мая, 2017 Сначала цикл в ПХП, потом цикл в Смарти, давайте добавим еще в джаваскрипте - класс... Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 18 мая, 2017 Автор Жалоба Поделиться Опубликовано 18 мая, 2017 Сначала цикл в ПХП, потом цикл в Смарти, давайте добавим еще в джаваскрипте - класс...как по мне так Смарти не использовал бы изначально вообще.... Но это мое мнение... Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 18 мая, 2017 Автор Жалоба Поделиться Опубликовано 18 мая, 2017 (изменено) Сначала цикл в ПХП, потом цикл в Смарти, давайте добавим еще в джаваскрипте - класс...Но с другой стороны причем тут генерация страницы на сервере и ее обработка в браузере?При таком подходе JS отработает даже быстрее, так как убрали фенсибокс, убрали ajax-cart, убрали еще несколько объемных файлов. Получили меньшее количество запросов. А если еще добавили атрибут defer то еще немного увеличили скорость загрузки.... Или я не прав? Изменено 18 мая, 2017 пользователем pepelxD Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 18 мая, 2017 Жалоба Поделиться Опубликовано 18 мая, 2017 Возможно, я не силен в джаваскрипте Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 18 мая, 2017 Автор Жалоба Поделиться Опубликовано 18 мая, 2017 А почему данные из формы передаются GET запросом, а не POST. Ведь даже их предназначение: первый - получить, второй - отправить. Или в этом есть какой сакральный смысл? Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 19 мая, 2017 Жалоба Поделиться Опубликовано 19 мая, 2017 Возможно, я не силен в джаваскрипте Тут просто до Симплы фронтенд-разработчик добралсся Видимо сделал свой АПИ (судя по первым вопросам), сейчас фигачит фронтенд. Круто, глянуть бы его АПИ Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 19 мая, 2017 Автор Жалоба Поделиться Опубликовано 19 мая, 2017 (изменено) Круто, глянуть бы его АПИВыложу, как будет готово. А АПИ простой, обращаюсь к файлу он отдает мне данные о продукте из базы, т.е. стандартный $product который доступен в view и текущего юзера из сессии. Там выше есть код пхп файла. http://forum.simplacms.ru/topic/12577-консультация-по-движку/?p=97588 Очень плохо, что при необходимости модифицировать классы апи симплы и view их необходимо модифицировать в движке и симпла не предоставляет возможности в теме наследоваться от этих классов и переопределять нужные методы классов. В планах подумать над этим..... Изменено 19 мая, 2017 пользователем pepelxD Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 22 мая, 2017 Автор Жалоба Поделиться Опубликовано 22 мая, 2017 В функции get_cart класс Cart есть строки расчета скидки: ............. $cart->total_price += $item->variant->price*$item->amount; // вот здесь уже получили общую цену с учетом количества $cart->total_products += $item->amount; } } // Пользовательская скидка $cart->discount = 0; if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id']))) $cart->discount = $user->discount; $cart->total_price *= (100-$cart->discount)/100; // а здесь применяем скидку ............ Не кажется ли вам что здесь ошибочка, так как на мой взгляд скидка должна применяться к каждому товару, а не к общей суммет.е. должно быть примерно так: $cart->total_price += $item->variant->price(умножили на скидку) *$item->amount; Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 22 мая, 2017 Жалоба Поделиться Опубликовано 22 мая, 2017 А смысл?Применять к каждому или к общей сумме? Какая разница? Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.