Перейти к содержимому


Кнопки


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 245

#1 krever

krever

    Пользователь

  • Пользователи
  • PipPip
  • 13 сообщений

Отправлено 17 Февраль 2011 - 16:04

Здрасте...
Можно ли по примеру шблона Сияние, сделать кнопку "В корзину" при просмотре каталога в режиме таблицы?

#2 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 18 Февраль 2011 - 15:40

Да, там код очень похожий. Код сетки товаров для шаблона сияние был взят из шаблона мокко, поэтому конечно же можно. Я так понимаю Вы говорите о списках товаров из этой темы?
http://forum.storela...ndpost__p__1184

#3 krever

krever

    Пользователь

  • Пользователи
  • PipPip
  • 13 сообщений

Отправлено 18 Февраль 2011 - 23:42

Да-да-да... Про это.
Если не трудно подскажите...

#4 krever

krever

    Пользователь

  • Пользователи
  • PipPip
  • 13 сообщений

Отправлено 19 Февраль 2011 - 06:08

Например как мне сделать:
Если товара нет в наличии, как мне переназначить кнопку "Положить в корзину" на "форму связи с администрацией"? (на странице товара)

#5 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 21 Февраль 2011 - 17:47

Просмотр сообщенияkrever (19 Февраль 2011 - 06:08) писал:

Например как мне сделать:
Если товара нет в наличии, как мне переназначить кнопку "Положить в корзину" на "форму связи с администрацией"? (на странице товара)
По коду как я понял всё одинаково, полный код страницы не требуется. Другой вопрос - логика наличия товара и уведомления клиента о наличии в будущем. Вообще говоря - будет у нас в скором времени отдельный модуль для этой цели, а на данный момент можно использовать следующую логику:
Форма сообщения принимает текст сообщения не только POST запросом, но и через GET, что позволяет использовать следующий формат ссылок для текстов:
<a href="{FEEDBACK_URL}?form[feedback_message]=Уведомить о наличии">уведомить о наличии</a>

Поскольку формат переменной "form[feedback_message]=Уведомить о наличии" - это не верно, хоть и браузеры нормально обрабатывают подобный код, стоит использовать urlencoder который позволяет из вышеуказанного текста:
Уведомить о наличии
Получить правильный, разрешённый в url-адресах:
%D0%A3%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%B8%D1%82%D1%8C%20%D0%BE%20%D0%BD%D0%B0%D0%BB%D0%B8%D1%87%D0%B8%D0%B8
В итоге ссылка на форму обратной связи с текстом получается вида:
<a href="{FEEDBACK_URL}?form[feedback_message]=%D0%A3%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%B8%D1%82%D1%8C%20%D0%BE%20%D0%BD%D0%B0%D0%BB%D0%B8%D1%87%D0%B8%D0%B8">уведомить о наличии</a>

или вот так:
<a href="/feedback/?form[feedback_message]=%D0%A3%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%B8%D1%82%D1%8C%20%D0%BE%20%D0%BD%D0%B0%D0%BB%D0%B8%D1%87%D0%B8%D0%B8">уведомить о наличии</a>
Кому как удобнее.

Итак к задаче:

Просмотр сообщенияkrever (19 Февраль 2011 - 06:08) писал:

Если товара нет в наличии, как мне переназначить кнопку "Положить в корзину" на "форму связи с администрацией"? (на странице товара)
В разделе "Сайт" > "Редактор тем" есть javascript файл "main.js", откройте его и найдите встроенным поиском браузера (CTRL+F) код:
// Есть ли товар есть в наличии
if(modificationRestValue>0) {
  goodsAvailableTrue.show();
  goodsAvailableFalse.hide();
// Если товара нет в наличии
} else {
  goodsAvailableTrue.hide();
  goodsAvailableFalse.show();
}
замените его следующим кодом:
// Есть ли товар есть в наличии
if(modificationRestValue>0) {
  goodsAvailableTrue.show();
  goodsAvailableFalse.hide();
  $('.goodsDataFormSubmitButton input:submit').val('Положить в корзину');
// Если товара нет в наличии
} else {
  goodsAvailableTrue.hide();
  goodsAvailableFalse.show();
  $('.goodsDataFormSubmitButton input:submit').val('Уведомить меня');
}

И в самом конце файла перед 2мя закрывающими скобочками и точкой с запятой:
});
вставьте следующую функцию:
  // Если товара нет в наличии перекидываем покупателя на страницу обратной связи
  $('.goodsDataFormSubmitButton input:submit').click(function(){
	if($(this).val() == 'Уведомить меня') {
	  document.location = "/feedback/?form[feedback_message]=Могли бы Вы уведомить меня о наличии товара " + $('h1:first').text();
	  return false;
	}
  });

У меня конец файла main.js в итоге получился таким:
$("#deliveryConvenientDate").datepicker({
	dayNames		: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
	dayNamesMin	  : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
	closeText		: 'Готово',
	currentText	  : 'Сегодня' ,
	duration		: '',
	monthNames	  : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Окрябрь','Ноябрь','Декабрь'],
	monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
	yearRange		: "-6:+6",
	dateFormat	  : 'dd.mm.yy',
	minDate		 : new Date(),
	firstDay		: 1
  });
	
  // Если товара нет в наличии перекидываем покупателя на страницу обратной связи
  $('.goodsDataFormSubmitButton input:submit').click(function(){
	if($(this).val() == 'Уведомить меня') {
	  document.location = "/feedback/?form[feedback_message]=Могли бы Вы уведомить меня о наличии товара " + $('h1:first').text();
	  return false;
	}
  });
});
Собственно переключатель после этих манипуляций уже будет работать. Осталось только изменить кнопку "В корзину" при первой загрузке страницы товара. Для этого в редакторе тем в шаблоне "Товар" находим (CTRL+F) код кнопки:
<input type="submit" value="Положить в корзину" style="width:200px;" />

и заменяем его на следующий:
<input type="submit" value="{% IF GOODS_MOD_REST_VALUE>0 %}Положить в корзину{% ELSE %}Уведомить меня{% ENDIF %}" style="width:200px;" />

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


#6 krever

krever

    Пользователь

  • Пользователи
  • PipPip
  • 13 сообщений

Отправлено 23 Февраль 2011 - 19:57

Круть!!!
Прям то что надо!!! В шаблоне "Мокко" работает как часы!)

Я конечно же Вам надоел уже, но если не затруднит напишите как заставить ту же самую логику работать в "Сиянии"... А то че то мозгов не хватает сделать по подобию...

И еще вопрос:
В "Мокко" кнопки В корзину и т.д. сделаны немного не так, как в "Сиянии"... Объясните в чем отличие, и как сделать такие же в "Сиянии"?

Я так понимаю что логика написанная выше не работает в шаблоне "Сияние" как раз из-за этих отличий.

Заранее спасибо!

#7 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 25 Февраль 2011 - 17:53

Для сияния этот код будет работать так:

В разделе "Сайт" > "Редактор тем" есть javascript файл "main.js", откройте его аналогично предыдущему посту и найдите встроенным поиском браузера (CTRL+F) код:
// Есть ли товар есть в наличии
if(modificationRestValue>0) {
  goodsAvailableTrue.show();
  goodsAvailableFalse.hide();
// Если товара нет в наличии
} else {
  goodsAvailableTrue.hide();
  goodsAvailableFalse.show();
}
замените его следующим кодом:
// Есть ли товар есть в наличии
if(modificationRestValue>0) {
  goodsAvailableTrue.show();
  goodsAvailableFalse.hide();
  $('.goodsDataFormSubmitButton .more-link.submit').html('В корзину');
// Если товара нет в наличии
} else {
  goodsAvailableTrue.hide();
  goodsAvailableFalse.show();
  $('.goodsDataFormSubmitButton .more-link.submit').html('Уведомить меня');
}

В случае с этим шаблоном вставлять дополнительный код в main.js не нужно, надо изменить немного код шаблона "Товар".
Найдите в нём код:
<a class="more-link"  onclick="$('.goodsDataForm').submit(); return false;" title="Положить &laquo;{GOODS_NAME}&raquo; в корзину" href="#">В корзину</a><br /><br />
и замените его на:
<a class="more-link submit"  onclick="if($(this).text() == 'Уведомить меня') { document.location = '/feedback/?form[feedback_message]=Могли бы Вы уведомить меня о наличии товара &laquo;{GOODS_NAME}&raquo;?' } else { $('.goodsDataForm').submit(); } return false;" href="#">{% IF GOODS_MOD_REST_VALUE>0 %}В корзину{% ELSE %}Уведомить меня{% ENDIF %}</a><br /><br />

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

#8 krever

krever

    Пользователь

  • Пользователи
  • PipPip
  • 13 сообщений

Отправлено 25 Февраль 2011 - 21:36

Спасибо большое!!! Этого будет пока достаточно... будем ждать доп. модуль!)

#9 velena168

velena168

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 15 Апрель 2011 - 17:21

Спасибо, очень здорово получилось в шаблоне Сияние кнопка Уведомить меня. А как бы еще сделать так же в списке товаров? у меня в списке кнопки
Купить и Подробнее

#10 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 19 Апрель 2011 - 20:09

В этом случае сделать это достаточно просто, достаточно лишь сделать кнопку в списке товаров, javascript в этом случае использовать не придётся.

Вставлять будем вот такой код:
<p>
  <a class="readmore" title="уведомить о наличии" href="{FEEDBACK_URL}?form[feedback_message]=%D0%A3%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%B8%D1%82%D1%8C%20%D0%BE%20%D0%BD%D0%B0%D0%BB%D0%B8%D1%87%D0%B8%D0%B8%20{goods.NAME | urlencode}">уведомить</a>
</p>

В разделе "Сайт" > "Редактор тем" в шаблонах "товары", "просмотр акции", "поиск" и "html" (в этом шаблоне заменил массив "goods." на "index_page_new_goods.", "index_page_favorites_goods.", "index_page_goods." соответственно).
Изменял вот этот код списка товаров:
	  <!-- Список товаров. Список -->
	  {% FOR goods %}
		<div class="listing">
		  <div class="imagem"><a href="{goods.URL}"><img {% IF goods.IMAGE_EMPTY %}src="{ASSETS_IMAGES_PATH}no-photo-medium.png" width="220"{% ELSE %}src="{goods.IMAGE_SMALL}"{% ENDIF %} alt="{goods.NAME}" /></a></div>
	
		  <div class="contm">
			<h3><a href="{goods.URL}">{goods.NAME}</a></h3>
			<p>
			  {goods.DESCRIPTION_SHORT}
			</p>
			<p>
			  Цена сейчас: <a href="{goods.URL_MIN_PRICE_NOW}">{goods.MIN_PRICE_NOW | money_format}</a><br />
			  {% IF goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT>goods.MIN_PRICE_NOW %}
				Цена без учёта скидки: <a href="{goods.URL_MIN_PRICE_NOW_WITHOUT_DISCOUNT}" class="lineThrough">{goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT | money_format}</a>
			  {% ELSEIF goods.MIN_PRICE_OLD>goods.MIN_PRICE_NOW %}
				Старая цена: <a href="{goods.URL_MIN_PRICE_OLD}" class="lineThrough">{goods.MIN_PRICE_OLD | money_format}</a>
			  {% ENDIF %}
			</p>
			<p>
			  <a class="readmore" title="{goods.NAME}" href="{goods.URL}">Подробнее</a>
			</p>
		  </div>
		  <div class="clr"></div>
		</div>
	  {% ENDFOR goods %}
	  <!-- /Список товаров. Список -->

Я например вставил кнопку уведомления перед кнопкой подробнее, которая выдаётся в коде выше вот таким вот не хитрым образом:
<p>
  <a class="readmore" title="{goods.NAME}" href="{goods.URL}">Подробнее</a>
</p>

В итоге получилось так:
<p>
  <a class="readmore" title="уведомить о наличии" href="{FEEDBACK_URL}?form[feedback_message]=%D0%A3%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%B8%D1%82%D1%8C%20%D0%BE%20%D0%BD%D0%B0%D0%BB%D0%B8%D1%87%D0%B8%D0%B8%20{goods.NAME | urlencode}">уведомить</a>
</p>
<p>
  <a class="readmore" title="{goods.NAME}" href="{goods.URL}">Подробнее</a>
</p>

Результирующий код глазами покупателя:
test-googs.png

#11 pasha00

pasha00

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 143 сообщений

Отправлено 21 Апрель 2011 - 16:24

Просмотр сообщенияsupport (19 Апрель 2011 - 20:09) писал:

Результирующий код глазами покупателя:
Прикрепленный файл test-googs.png
Такой красоты не получается, потому что в Мокко не определен класс readmore.
Могли бы вы здесь указать, как прописать этот класс, и где скачать картинку кнопки.

#12 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 21 Апрель 2011 - 17:46

Вам нужно в файле main.css прописать класс

a.readmore {
  font: bold 12px/30px Tahoma, Geneva, sans-serif;
  color: #666;
  text-decoration: none;
  background: url({ASSETS_IMAGES_PATH}read_more2.png) no-repeat left top;
  height: 30px;
  width: 135px;
  padding-left: 15px;
  display: block;}
  a.readmore:hover{color: #fff; background: url({ASSETS_IMAGES_PATH}read_more2.png) no-repeat left bottom;
}

Далее скачиваете изображение, переименовываете его в read_more2.png, и загружаете его себе в тему.

#13 prieffi

prieffi

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 08 Сентябрь 2011 - 15:44

А как менять цвета кнопок "в корзину" и "подробнее" в шаблоне сияние?

#14 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 08 Сентябрь 2011 - 16:26

Вам нужно изменить цвет изображений read_more и ему подобных в графическом редакторе. Данные изображения находятся в редакторе тем.

#15 Flor@@@

Flor@@@

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 822 сообщений
  • Городмосква

Отправлено 20 Ноябрь 2011 - 14:50

подскажите, плиз, как сделать кнопку, перезвоните мне.

#16 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 21 Ноябрь 2011 - 20:27

данная кнопка должна вести куда-то? или какое-то другое действие должно происходить?
и где примерно Вы хотите, чтобы она располагалась?

#17 Flor@@@

Flor@@@

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 822 сообщений
  • Городмосква

Отправлено 24 Ноябрь 2011 - 02:39

Просмотр сообщенияVaccina (21 Ноябрь 2011 - 20:27) писал:

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

Как -то так.

#18 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 24 Ноябрь 2011 - 20:22

По данному вопросу есть ответ, просмотрите, будут сложности пишите  :)

http://forum.storela..._1601#entry1601

#19 Snedi

Snedi

    Пользователь

  • Пользователи
  • PipPip
  • 35 сообщений

Отправлено 11 Февраль 2012 - 20:23

вы извените мня я надоел уже.. Но кнопка сравнения не отоброжается в настройках/основное включина... кнопки прикреплены пробывал в кодах менять все
a.readmore {
  font: bold 12px/30px Tahoma, Geneva, sans-serif;
  color: #666;
  text-decoration: none;
  background: url({ASSETS_IMAGES_PATH}read_more2.png) no-repeat left top;
  height: 30px;
  width: 135px;
  padding-left: 15px;
  display: block;}
  a.readmore:hover{color: #fff; background: url({ASSETS_IMAGES_PATH}read_more2.png) no-repeat left bottom;
}
но она не отоброжается!
Ди и как можно добавить есче кнопку подробно над сравнением и как засунуть туда описание товара...

#20 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 13 Февраль 2012 - 20:43

По поводу отсутствии кнопки, если она у Вас включена в настройках и не отображается, то попробуйте проверить код со стандартным. Редактор тем - Товар:
<td class="goodsDataFormSubmitButton">
					<a class="more-link"  onclick="$('.goodsDataForm').submit(); return false;" title="Положить &laquo;{GOODS_NAME}&raquo; в корзину" href="#">В корзину</a><br /><br />
	
					<!-- Если в тарифном плане подключен модуль сравнения товаров -->
					{% IF TARIFF_FEATURE_GOODS_COMPARE %}
					  <!-- Если не выключен модуль сравнения товаров, то покажем кнопку сравнения товаров -->
					  {% IFNOT SETTINGS_COMPARE_DISABLE %}
						<a class="goodsDataCompareButton add" {% IF GOODS_MOD_IS_HAS_IN_COMPARE_LIST %}style="display:none;"{% ENDIF %} rel="{COMPARE_ADD_URL}?return_to={CURRENT_URL | urlencode}" title="Добавить &laquo;{GOODS_NAME}&raquo; к списку сравнения с другими товарами" href="#" >Добавить к сравнению</a>
						<a class="goodsDataCompareButton delete" {% IFNOT GOODS_MOD_IS_HAS_IN_COMPARE_LIST %}style="display:none;"{% ENDIF %} rel="{COMPARE_DELETE_URL}?return_to={CURRENT_URL | urlencode}" title="Убрать &laquo;{GOODS_NAME}&raquo; из списка сравнения с другими товарами" href="#" >Убрать из сравнения</a>
					  {% ENDIF %}
					{% ENDIF %}
				  </td>

Цитата

Ди и как можно добавить есче кнопку подробно над сравнением и как засунуть туда описание товара...
немного не понятно, объясните пожалуйста поподробней.
И Вы нам не надоели, всегда рады Вам помочь  :)




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных