Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

В варианте Давинчи используя settings->image_sizes картинки режутся всех размеров указанных в настройке. Ну так они же и используются, не так ли? в тот или иной момент она загружается, не важно в какой промежуток времени.

Ну так почему бы размеры не брать от туда?

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

 

Вы забыли указать недостатки, а их немало:

1. Придется нарезать на ходу все картинок из настроек. А там могут быть старые размеры, которые уже в шаблоне не используются.  Лишняя нагрузка и лишнее дисковое пространство.

2. Если в шаблоне появится новый размер, то для загруженных ранее картинок ссылка будет битой. Чтобы этого избежать, надо использовать оба способа - первоначальная нарезка всех размеров из списка плюс добавление на ходу, если надо.  А тогда вопрос - зачем первый способ, когда и второй в одиночку справится?

3. Бывают в верстке случаи, когда у товара для первой картинки в шаблоне используется размер, скажем 600х600, а у второй и прочих - не используется. Опять имеем непроизводительный расход ресурсов сервера.

 

Впрочем, Вам никто не мешает переделать по своему способу. Вроде бы оно не слишком сложно...

Изменено пользователем ahmed
Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 81
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

3. Бывают в верстке случаи, когда у товара для первой картинки в шаблоне используется размер, скажем 600х600, а у второй и прочих - не используется. Опять имеем непроизводительный расход ресурсов сервера.

Это самый весомый аргумент

Ссылка на сообщение
Поделиться на другие сайты

{if $product->variants|count > 0} - это проверка на наличие товара. Т.е. если есть хоть один вариант товар считается в наличии?
Можно подробней про эту логику?

Ссылка на сообщение
Поделиться на другие сайты

{if $product->variants|count > 0} - это проверка на наличие товара. Т.е. если есть хоть один вариант товар считается в наличии?

Можно подробней про эту логику?

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

{if $product->variants|count > 0} - это проверка на наличие товара. Т.е. если есть хоть один вариант товар считается в наличии?

Можно подробней про эту логику?

При выборке вариантов товара используется фильтр in_stock - т.е. выводятся только варианты, которые ЕСТЬ в наличии.

Естественно, в шаблоне проверка - если есть хотя бы один вариант - товар есть в наличии.

Ссылка на сообщение
Поделиться на другие сайты

При выборке вариантов товара используется фильтр in_stock - т.е. выводятся только варианты, которые ЕСТЬ в наличии.

Ага, понял - это в ProductView. Спсасибо

 

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

Человеку знающему движок в доль и поперек может и элементарно. Я же поинтересовался про логику такого поведения. После ответа Kosjak76 стало понятно.

 

На css класс variants у формы  в product.tpl что нибудь завязано важное? И вообще практикуется ли в движке привязка скриптов к css классам?

Ссылка на сообщение
Поделиться на другие сайты

Все скрипты привязываются исключительно в шаблоне.

В дефолтном шаблоне на variants привязана аякс-корзина

Ссылка на сообщение
Поделиться на другие сайты

В дефолтном шаблоне на variants привязана аякс-корзина

Она в index.tpl только подключается насколько я нашел

Ссылка на сообщение
Поделиться на другие сайты

И что?

То, что подключается в index.tpl - выводится на ВСЕХ страницах сайта

index.tpl - это обертка, в которую вставляются все остальные шаблоны.

Ссылка на сообщение
Поделиться на другие сайты

И что?

То, что подключается в index.tpl - выводится на ВСЕХ страницах сайта

index.tpl - это обертка, в которую вставляются все остальные шаблоны.

Да не, не так понял меня, я имел ввиду для отключения этого скрипта достаточно отключить его там.

Пишу централизованный обработчик для "продукта" в виде конструктора, соответственно удаляю все куски кода связанные с ним в разных местах.

Ссылка на сообщение
Поделиться на другие сайты

Что такое " централизованный обработчик для "продукта" в виде конструктора"???

Нафига он нужен?

Заморочки объектно - ориентированного программирования на javaScript, Т.е. создается класс Product у него есть методы управления слайдером изображений продукта, добавлением в корзину, расчетом стоимости (скидки, акции, выбор количества) и т.д. Т.е. весь необходимый для работы с продуктом javaScript собирается в виде методов класса.

 

Для чего? Да не люблю использовать библиотеки, там где в них нет надобности. Тем более грузить JQ, JQUI для того, что бы отправить аяксом несколько полей данных, да заставить работать фенсибокс и пару слайдеров - немного расточительно не правда ли?

Ссылка на сообщение
Поделиться на другие сайты

А городить непонятный огород - проще?

Мне такого не понять...



Если не любите использовать библиотеки - пишите на ванильном, но нафига какие-то обьекты - вот этого я точно никогда не пойму))

Ссылка на сообщение
Поделиться на другие сайты

Если не любите использовать библиотеки - пишите на ванильном, но нафига какие-то обьекты - вот этого я точно никогда не пойму))

Так на нем и пишу, просто в ООП стиле. Удобно, есть объект, он может делать то то и то то, у него есть это и это. Чем разбросанные отдельные функции.

 

Но это конечно дело вкуса и холивары тут можно разводить бесконечные :))

Изменено пользователем pepelxD
Ссылка на сообщение
Поделиться на другие сайты

А если отправить аякс из списка - тоже городить новый обьект?

А на главной 3 разных списка - там 3 обьекта?

Ссылка на сообщение
Поделиться на другие сайты

А если отправить аякс из списка - тоже городить новый обьект?

А на главной 3 разных списка - там 3 обьекта?

Имеются ввиду списки товаров? Если да то для каждого товара создается объект:

 

var list = document.querySelectop('селектор списка');

for(var i = 0; i < list.children.length; i++) {
    list.children[i] = new Product();
}

А уже там есть необходимый функционал

Изменено пользователем pepelxD
Ссылка на сообщение
Поделиться на другие сайты

Сначала цикл в ПХП, потом цикл в Смарти, давайте добавим еще в джаваскрипте - класс...

как по мне так Смарти не использовал бы изначально  вообще.... Но это мое мнение...

Ссылка на сообщение
Поделиться на другие сайты

Сначала цикл в ПХП, потом цикл в Смарти, давайте добавим еще в джаваскрипте - класс...

Но с другой стороны причем тут генерация страницы на сервере и ее обработка в браузере?

При таком подходе JS отработает даже быстрее, так как убрали фенсибокс,  убрали ajax-cart, убрали еще несколько объемных файлов. Получили меньшее количество запросов. А если еще добавили атрибут defer то еще  немного увеличили скорость загрузки.... Или я не прав?

Изменено пользователем pepelxD
Ссылка на сообщение
Поделиться на другие сайты

А почему данные из формы передаются GET запросом, а не POST. Ведь даже их предназначение: первый - получить, второй - отправить. Или в этом есть какой сакральный смысл?

Ссылка на сообщение
Поделиться на другие сайты

Возможно, я не силен в джаваскрипте :)

 

Тут просто до Симплы фронтенд-разработчик добралсся :)

Видимо сделал свой АПИ (судя по первым вопросам), сейчас фигачит фронтенд.

 

Круто, глянуть бы его АПИ

Ссылка на сообщение
Поделиться на другие сайты

Круто, глянуть бы его АПИ

Выложу, как будет готово. А АПИ простой, обращаюсь к файлу он отдает мне данные о продукте из базы, т.е. стандартный $product который доступен в view и текущего юзера из сессии. Там выше есть код пхп файла. http://forum.simplacms.ru/topic/12577-консультация-по-движку/?p=97588

 

Очень плохо, что при необходимости модифицировать  классы апи симплы и view их необходимо  модифицировать в движке и симпла не предоставляет возможности в теме наследоваться от этих классов и переопределять нужные методы классов. В планах подумать над этим.....

Изменено пользователем pepelxD
Ссылка на сообщение
Поделиться на другие сайты

В функции 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;
 
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...