Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.
Как сделать кнопку "В корзину"?
-
14 октября 2016 г. , редакция: 14 октября 2016 г.
-
Есть стандартный код из сборки диафана:Код
echo '<input type="button" class="button solid" value="'.$this->diafan->_('В корзину', false).'" action="buy">';
и как заставить диафан понимать, что вот это тоже должно класть товар в корзину:Кодecho '<button type="button" class="btn btn-default add-to-cart" action="buy"><i class="fa fa-shopping-cart"></i>В корзину</button>';
Есть идеи, что еще надо доделать? -
-
-
-
14 октября 2016 г.
-
Валерий Викторович, надо оставлять Input или дописывать скрипт в shop_buy.form.js
-
-
Поблагодарили: Валерий Викторович (Sherrlok)
-
-
-
14 октября 2016 г. , редакция: 14 октября 2016 г.
-
не, инпут устарел, не годится, в него не вставить иконки для бутстрапа.
Значит все же верно мыслю, что надо дорабатывать shop.buy_form.js , благодарю Вас. -
-
-
-
14 октября 2016 г.
-
иконки можно выводить через псевдоэлементы after и before
-
-
-
-
14 октября 2016 г. , редакция: 14 октября 2016 г.
-
Интегрирую уже сверстанный (не мной) макет.
В любом случае, из того манула, что нашел внятного, например вот тут, используется конструкция типа:
<i class="fa fa-home"></i> или <span class="icon-pencil"></span>
По ссылке написано:КодДля использования иконок, вы должны разместить их внутри элемента span или i. Затем, нужно присвоить им два класса: fa плюс второй класс, который должен соответствовать названию иконки, например fa-home.
А как иначе? Если дадите ссылку на более толковый мануал, буду премного благодарен.
Примечание: ссылка сюда http://fontawesome.io не подходит, в забугорных языках не силен. -
-
-
-
14 октября 2016 г. , редакция: 19 октября 2016 г.
-
Если макет уже сверстан, то конечно проще скрипт поправить, особенно если все так просто оказалось)
А так, можно добавить:
.add-to-cart:before или .add-to-cart:after (в зависимости от того где иконка - перед текстом или после) {
сюда скопировать нужные стили fa и fa-shopping-cart для псевдоэлементов
ну и поправить позиционирование
}
имхо, так хорошо делать, когда иконок у вас всего 3 штуки используется, чтобы не подключать весь иконочный css на 150 иконок.
Но я еще и файлы шрифта иконок формирую на https://icomoon.io/ чтобы лишнего не было или было, но немного) -
-
-
-
19 октября 2016 г. , редакция: 19 октября 2016 г.
-
Инна, у вас запятая затесалась в ссылку на Icomoon. Кстати, для справки: когда в сборщике шрифта уже сформирован нужный набор, можно зайти в опцию "Preference" и поменять стандартную привязку CSS на CSS-стиль.
Тогда в таблице стилей вместо такого селектора:Код[class^="icon-"], [class*=" icon-"] {
/* use !important to prevent issues with...
Будет такой:Код.icon {
/* use !important to prevent issues with...
Второй вариант по быстродействию эффективнее. А если в настройках вместо предлагаемого класса ".icon" указать, например, .icomoon, то это исключит возможность наложения стилей шрифта на другие возможные элементы с классом icon, которые вполне могут быть. -
-
-
-
19 октября 2016 г. , редакция: 19 октября 2016 г.
-
Павел, спасибо)
Я вручную переименовываю обычно, потому что вспоминаю об этом, когда уже все установила -
-
-
-
19 октября 2016 г. , редакция: 19 октября 2016 г.
-
Добавлю, что в бесплатной версии страница со сгенерированным шрифтом (на которой можно по каждой иконке получить и код и прочую информацию) "живёт" только до конца сессии. Но в скаченном архиве присутствует файл selection.json, который можно в любое время загрузить в сборщик шрифта как проект и все функции будут доступны также, как в платном аккаунте.
Я, кстати, имел ввиду эту запятую (ссылка битая получается).
-
-
-
-
14 октября 2016 г.
-
А так вот здесь наверное надо заменить на button;Код
$("input[action=buy]").click(function() {
$(this).parents('form').find('input[name=action]').val('buy');
$(this).parents('form').submit();
})
может более опытные коллеги поправят -
-
Поблагодарили: Валерий Викторович (Sherrlok)
-
-
-
14 октября 2016 г.
-
Инна, спасибо! Уже нашел, именно там, всего лишь нужно прописать:Код
$("button[action=buy]").click(function() {
только одно слово заменить. Уряяяяяяяяя!!!!! -
-
-
-
19 октября 2016 г. , редакция: 19 октября 2016 г.
-
Лучше так:тогда скрипту будет всё-равно - input у вас во вьюхе или button. Главное оставить class="button" у элемента, выполняющего роль кнопки.Код
$(".button[action=buy]").click(function() {
-
-
Поблагодарили: Валерий Викторович (Sherrlok)
-
-
-
15 октября 2016 г.
-
Забыл написать, что при таком решении не срабатывает аякс, вечером еще поковыряюсь.
-
-
-
-
15 октября 2016 г.
-
Есть предложение (не мое, успели до меня ) сделать в сборке диафана вместо input -> button:
здесь.
Прошу голосовать всех кому это надо. -
-
-
-
19 октября 2016 г.
-
Дополняю. Если бы я не удалил id="show_cart" из файла cart.view.show_block.php (там у меня свой код), то все работало бы стандартно. В самый верхний блок (свой) корзины вернул данный идентификатор, и после нажатия кнопки "Купить" верхняя корзина обновляется как надо.
Подсказали в ТП Диафана.
Интересно, а почему если input, работало без id="show_cart" ??? -
-
-
-
19 октября 2016 г.
-
Так настроены скрипты.ЦитатаИнтересно, а почему если input, работало без id="show_cart" ???
-
-
-
-
19 октября 2016 г.
-
Тогда пожелание очень даже актуально.
Надеюсь, не Вы там минусовали? -
-
-
-
19 октября 2016 г.
-
Не обижайтесь, но в данном предложении не вижу смысла, т.к. достаточно слегка скорректировать скрип и все будет как надо.
Также хотел бы обратить Ваше внимание на то, что совершенно неважно какой тег используется, так как ЛЮБОЙ тег можно заставить и выглядеть, и вести себя как ЛЮБОЙ ДРУГОЙ тег. Просто есть определенные теги, которым по умолчанию присвоены конкретные свойства и поведение. Но ни кто не мешает переопределить эти свойства и поведение.
PS: я вот все ждал, когда же хоть кто-нибудь приведет пример корректировки скрипта, чтобы Ваша задача решилась. И вотТак, что Ваше предложение немного не нужно. Опять же, это мое частное мнение.Цитата
Любимов Павел (webnavigator) 9441 минуту назад, редакция 37 минут назад
Лучше так:
Код
$(".button[action=buy]").click(function() {тогда скрипту будет всё-равно - input у вас во вьюхе или button.
Успехов. -
-
Поблагодарили: Валерий Викторович (Sherrlok)
-
-
-
19 октября 2016 г.
-
Вы сильно поспешили, то было НЕ МОЕ предложение.
Но я сильно ЗА то предложение, хотя по ходу, все свои проблемы решил еще ДО ТОГО, как ПРОГРАММИСТЫ начали заглядывать в эту тему.
ну а предложение то как раз об этом!КодПросто есть определенные теги, которым по умолчанию присвоены конкретные свойства и поведение.
Но лучше не читайте предложение, а то еще впарите минус -
-
-
-
19 октября 2016 г. , редакция: 19 октября 2016 г.
-
Валерий Викторович, там говорится о том, чтобы сделать button вместо input, потому что button - это контейнер. В него иконку положить можно...
Используйте для этих целей плевдоэлементы :before и :after. В случае с иконочными шрифтами вообще никаких проблем нет.
Поправлю сам себя. Псевдоэлементы работают только с элементами, которые могут содержать контент.
Написал по старой памяти, а потом вспомнил, что задачу аналогичную я решал путём оборачивания input`ов в другие элементы и уже к "обёрткам" прикреплял псевдоэлементы.
У тега input контента нет. Соответственно, прикреплять псевдо-элементы не к чему. В этом свете у предложения смысл конечно же есть.
-
-
Поблагодарили: Валерий Викторович (Sherrlok)
-
-
-
19 октября 2016 г.
-
Когда следующий bootstrap-макет сам буду верстать, обязательно воспользуюсь и вашей, и подсказкой Инны. Сейчас нет никакого желания переделывать чужой макет, и искать где выскочит паразитная обратная связь.
-
-
-
-
19 октября 2016 г. , редакция: 19 октября 2016 г.
-
лично меня никак не пугает, это моя основная специальность в строительстве сайтов. В PHP в общем-то тоже ковыряюсь уверенно (ну, переделать чужой код не сильно сложно), наверно на "уровне разметки", как Вы говорите.Код
нужно знать HTML, CSS
-
-
-
-
19 октября 2016 г.
-
Про "слона в колесе" отвечу здесь. Там нет места.
Бегло глянул, да, это как раз сценарий того видео, вспомнить бы как сам клип назывался? Где-то здесь на форуме и была ссылка..
-
-
-
-
20 октября 2016 г.
-
Понял Вас, благодарю!
-
-
-
-
19 октября 2016 г.
-
Все же надеюсь, что Вы не были среди минусаторов, т.к. Вы вряд ли зарабатываете денюжку на переписывании одного единственного термина.
Ставлю Вам "+" за то что не опускаетесь до таких мелких пакостей! -
-
-
-
19 октября 2016 г.
-
Все зависит от желания и финансовых возможностей клиента. Бывает и такое (прям один в один).Цитатавряд ли зарабатываете денюжку на переписывании одного единственного термина
-
-
-
-
19 октября 2016 г.
-
Расмешили!
Вариация другого клипа, если найду ссылку, выложу. -
-
-
-
19 октября 2016 г. , редакция: 19 октября 2016 г.
-
А это первоисточник: Слон в колесе - совещание.
-
-
-
-
19 октября 2016 г.
-
А вот и решение задачи
-
-
-
-
20 октября 2016 г.
-
Павел, вот и сам клип снят по сценарию Алексея Березина: https://www.youtube.com/watch?v=XoEx-Skki0I
-
-
-
-
- Dmitry (weissfl)
- 161
-
14 декабря 2018 г.
-
Меняю input на button для кнопки "в корзину". Правлю в shop.buy_form.js строчку:Код
$(document).on('click', "input[action=buy]", function()
наКод$(document).on('click', ".button--to-card[action=buy]", function()
Товар добавляется, но почему то 2 раза. Может кто нибудь подсказать почему?
Вот сам сайт http://biscwita.spwp.ru/matrasy/ -
-
-
-
14 декабря 2018 г. , редакция: 14 декабря 2018 г.
-
А так, как выше написано не пробовали?
Или так:Код
$("[action=buy]").click(function (e) {
e.preventDefault();
$(this).parents('form').find('input[name=action]').val('buy');
$(this).parents('form').trigger('submit');
}); -
-
Поблагодарили: Dmitry (weissfl)
-
-
-
- Dmitry (weissfl)
- 161
-
14 декабря 2018 г.
-
Так работает. Спасибо!
-
-
-
-
-
14 декабря 2018 г.
-
Не по теме: в корзине кнопки "удалить" нет.
-
-
-
-
14 декабря 2018 г.
-
Александра, нет кнопки, или изображения кнопки? Что код показывает?
У меня такое часто бывало, после обновления. Решал вопрос копированием файла, если не ошибаюсь, remove.png, или другой, (посмотрите на демо-сайте название), в кастомную папку img -
-
-
-
14 декабря 2018 г.
-
Самой кнопки не было у Дмитрия. Сейчас уже есть.
-
-
-
-
- Dmitry (weissfl)
- 161
-
14 декабря 2018 г.
-
Ну сайт в процессе поэтому на тот момент её могло и не быть.
-
-
-
-
-
- Степан (idxdoc)
- 334
-
14 декабря 2018 г.
-
Сколько можно было увидеть, все нормально, скрипт подключается 1 раз, функция вызывается 1 раз, отправка идет 1 раз.
Точно, когда был инпут в корзину падал 1 раз?
Кеш сайта почистил?))) -
-
-
-
- Андрей (R4W)
- 140
-
14 декабря 2018 г.
-
e.prevenddefault запили
потому как элемент button по умолчанию сама по себе даже без type=submit делает сабмит форме.
Итого у тебя 2 сабмита получается, 1 от нажатия на кнопку по умолчанию, другой от $(document).on('click' -
-
-
-
- Степан (idxdoc)
- 334
-
14 декабря 2018 г.
-
Точно))) А раньше вроде стоял по умолчанию сброс, или я путаю
-
-
-
-
- Андрей (R4W)
- 140
-
14 декабря 2018 г.
-
Да сам реально JS дебажил долго пока не врубился что все так просто )))
По моему со старых времен еще элемент button по дефолту отправляет форму, но это не точно )
Для сброса type='reset' -
-
-
-
-
Новости
-
18 июня
-
В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
-
24 апреля
-
В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
-
12 января
-
После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке.
Блоги
-
24.04.2024
-
Выпустили новую сборку DIAFAN.CMS 7.1.4.
Блоги
-
12.01.2024
-
В данном руководстве познакомим вас с панелью управления DIAFAN.CMS