Из-за чего не работает кнопка я выяснил - если включен таймер акций, в обычной версии всё работает, в мобильной - не работает кнопка купить. Например http://vazon.pp.ua/lechuza-classico-ls-21-belyy.html Если отключить показ таймера, кнопки работают. Например http://vazon.pp.ua/aplikator-kompo-dlja-zeljonih-rastenij-compo.html Значит проблема в таймере, и скорее всего в файле Vqmod. Никаких ошибок нет, и при нажатии ничего не происходит, помогите выяснить в чём дело... PHP: <?xml version="1.0" encoding="UTF-8"?><modification><id>Special_price_end_date</id><version>2.3</version><vqmver required="true">2.4.0</vqmver><author>kagan</author><file name="catalog/view/theme/*/template/common/header.tpl"> <operation error="skip"> <search position="before" index="false"><![CDATA[</head>]]></search> <add> <![CDATA[ <link href="catalog/view/theme/univer/stylesheet/timer.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="catalog/view/javascript/timer/jquery.countdown.js"></script> ]]> </add> </operation></file><file name="catalog/controller/product/product.php"> <operation error="skip"> <search position="after" index="false"><![CDATA[if ((float)$product_info['special']) {]]></search> <add><![CDATA[ $special_info['date_start'] = $product_info['date_start']; $special_info['date_end'] = $product_info['date_end']; if ($special_info) { $this->data['special_date_start'] = $special_info['date_start']; $this->data['special_date_end'] = $special_info['date_end']; } else { $this->date['special_date_start'] = false; $this->date['special_date_end'] = false; } if ($product_info['timer'] == 1){ $this->data['timer'] = $product_info['timer']; } else { $this->data['timer'] = false; } ]]></add> </operation></file><file name="catalog/model/catalog/product.php"> <operation error="skip"> <search position="replace" index="false"><![CDATA[pd.name AS name, p.image, m.name AS manufacturer,]]></search> <add><![CDATA[ pd.name AS name, p.image, m.name AS manufacturer, (SELECT date_start FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND (ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "') ORDER BY ps.date_start ASC LIMIT 1) AS date_start, (SELECT date_end FROM " . DB_PREFIX . "product_special ps2 WHERE ps2.product_id = p.product_id AND ps2.customer_group_id = '" . (int)$customer_group_id . "' AND (ps2.date_end = '0000-00-00' OR ps2.date_end > '" . $this->NOW . "') ORDER BY ps2.date_end ASC LIMIT 1) AS date_end, (SELECT timer FROM " . DB_PREFIX . "product_special ps3 WHERE ps3.product_id = p.product_id AND ps3.customer_group_id = '" . (int)$customer_group_id . "' AND (ps3.date_end = '0000-00-00' OR ps3.date_end > '" . $this->NOW . "') ORDER BY ps3.date_end ASC LIMIT 1) AS timer, ]]></add> </operation> <operation error="skip"> <search position="after" index="false"><![CDATA[$query->row['date_modified'],]]></search> <add><![CDATA[ 'date_start' => $query->row['date_start'], 'date_end' => $query->row['date_end'], 'timer' => $query->row['timer'], ]]></add> </operation></file><file name="catalog/view/theme/*/template/product/product.tpl"> <operation error="skip"> <search position="before" index="false"><![CDATA[<div class="description">]]></search> <add><![CDATA[<?phpif ($special AND $timer != false) { if ($special_date_end){ $newdate = explode( '-', $special_date_end ); if($newdate[0] == 0000){$newdate[0]=date("Y");} if($newdate[1] == 00){$newdate[1]=date("m");} if($newdate[2] == 00){$newdate[2]=date("d");} } //Чтобы не было сбоя даты if($newdate[2]!=date("d")){ $newdate[2]=$newdate[2]-1; }echo "<div class=\"date-timer\"> <span class=\"h1_timer\">Лучшее ценовое предложение!</span><br> <span class=\"h1_timer\">Суперцена!</span><br> <div class=\"timer-price\"> <div style='float:left;'> <div class=\"date-end\">До конца акции осталось:</div> <script language=\"JavaScript\" SRC=\"catalog/view/javascript/timer/php/countdown.php?countto={$newdate[0]}-{$newdate[1]}-{$newdate[2]} 23:59:59&do=t&data=Акция закончилась\"></script> </div> </div> <div class=\"box-prices\"> <div class=\"price-old-1\">$price</div><div class=\"price-old-zacher\"></div><br> <div class=\"price-new-1\"> Цена: <span style='color:#FF3636; text-decoration:underline;'>$special</span></div> </div> <div class=\"cart\" style=\"text-align:center;border-top: 1px solid #E7E7E7;padding-top:10px;\"> <div> $text_qty <input type=\"text\" name=\"quantity\" size=\"2\" value=\" $minimum \" /> <input type=\"hidden\" name=\"product_id\" size=\"2\" value=\" $product_id \" /> <input type=\"button\" value=\" $button_cart \" id=\"button-cart\" class=\"button\" /> <span> $text_or </span> <span class=\"links\"><a onclick=\"addToWishList(' $product_id ');\"> $button_wishlist</a><br /> <a onclick=\"addToCompare('$product_id');\">$button_compare</a></span> </div> <div class=\"minimum\">$text_minimum </div> </div></div>";} ?> ]]></add> </operation> <operation error="skip"> <search position="replace" index="false"><![CDATA[<div class="price">]]></search> <add><![CDATA[ <?php if (!$special OR $timer == false) { echo "<div class=\"price\">";} else {?><div class="special-display price"> <?php }?> ]]></add> </operation> <operation error="skip"> <search position="replace" index="false"><![CDATA[<div class="cart">]]></search> <add><![CDATA[ <?php if (!$special OR $timer == false) { echo "<div class=\"cart\">";} else {?><div class="special-display cart"> <?php }?> ]]></add> </operation></file><file name="catalog/controller/product/category.php"> <operation error="skip"> <search position="after" index="false"><![CDATA[sprintf($this->language->get('text_reviews'), (int)$result['reviews']),]]></search> <add><![CDATA[ 'date_start' => $result['date_start'], 'date_end' => $result['date_end'], 'timer' => $result['timer'], ]]></add> </operation></file><file name="catalog/view/theme/*/template/product/category.tpl"> <operation error="skip"> <search position="after" index="false"><![CDATA[<span class="price-new"><?php echo $product['special']; ?></span>]]></search> <add><![CDATA[<?phpif($product['timer'] == true) {?> <div id="CountdownProduct<?=$product['product_id'];?>" class="mobile"></div> <br><?php if ($product['date_end']){ $newdate = explode( '-', $product['date_end']); if($newdate[0] == 0000){$newdate[0]=date("Y");} if($newdate[1] == 00){$newdate[1]=date("m");} if($newdate[2] == 00){$newdate[2]=date("d")+1;}?> <script type="text/javascript"> $(function () { $('#CountdownProduct<?=$product['product_id'];?>').countdown( {until: new Date(<?=$newdate[0];?>, <?=$newdate[1];?>-1, <?=$newdate[2];?>), timezone: <?=date("O");?>, expiryText: '<div class="over">Акция окончена!</div>', compact: false}); }); </script><?php }}?> ]]></add> </operation></file><file name="catalog/controller/product/special.php"> <operation error="skip"> <search position="after" index="false"><![CDATA[sprintf($this->language->get('text_reviews'), (int)$result['reviews']),]]></search> <add><![CDATA[ 'date_start' => $result['date_start'], 'date_end' => $result['date_end'], ]]></add> </operation></file><file name="catalog/view/theme/*/template/product/special.tpl"> <operation error="skip"> <search position="after" index="false"><![CDATA[<span class="price-new"><?php echo $product['special']; ?></span>]]></search> <add><![CDATA[<div id="CountdownProduct<?=$product['product_id'];?>" class="mobile"></div><br><?phpif ($product['date_end']){ $newdate = explode( '-', $product['date_end']); if($newdate[0] == 0000){$newdate[0]=date("Y");} if($newdate[1] == 00){$newdate[1]=date("m");} if($newdate[2] == 00){$newdate[2]=date("d")+1;}?><script type="text/javascript"> $(function () { $('#CountdownProduct<?=$product['product_id'];?>').countdown( {until: new Date(<?=$newdate[0];?>, <?=$newdate[1];?>-1, <?=$newdate[2];?>), timezone: <?=date("O");?>, expiryText: '<div class="over">Акция окончена!</div>', compact: false}); });</script><?php } ?> ]]></add> </operation></file><file name="aopal_admin/model/catalog/product.php"> <operation error="skip"> <search position="replace" index="false"><![CDATA[date_start = '" . $this->db->escape($product_special['date_start']) . "',]]></search> <add><![CDATA[date_start = '" . $this->db->escape($product_special['date_start']) . "', timer = '" . $this->db->escape($product_special['timer']) . "', ]]></add> </operation></file><file name="aopal_admin/view/template/catalog/product_form.tpl"> <operation error="skip"> <search position="before" index="false"><![CDATA[<td class="left"><a onclick="$(\'#special-row' + special_row]]></search> <add> <![CDATA[ html += '<td class="center"><select name="product_special[' + special_row + '][timer]"> <option value=1 selected>Вкл.</option> <option value=0 >Откл.</option></select></td>'; ]]> </add> </operation> <operation error="skip"> <search position="replace" index="false"><![CDATA[<td colspan="5">]]></search> <add> <![CDATA[<td colspan="6">]]> </add> </operation> <operation error="skip"> <search position="after" index="false"><![CDATA[value="<?php echo $product_special['date_end']; ?>" class="date" /></td>]]></search> <add> <![CDATA[ <!-- Timer --> <td class="center"> <select name="product_special[<?php echo $special_row; ?>][timer]"> <option value=1 <?php if($product_special['timer'] == 1){ echo "selected"; } ?>>Вкл.</option> <option value=0 <?php if($product_special['timer'] == 0){ echo "selected"; } ?>>Откл.</option> </select> </td> <!-- Timer --> ]]> </add> </operation> <operation error="skip"> <search position="after" index="false"><![CDATA[<td class="left"><?php echo $entry_date_end; ?></td><!-- Timer -->]]></search> <add> <![CDATA[ <!-- Timer --> <td class="center">Таймер</td> <!-- Timer --> ]]> </add> </operation> </file></modification>
У тебя класс .date-timer скрыт на мобилках, поставь блок и подверстай) Код: @media (max-width: 600px) timer.css:195 .date-timer { display: none;//поставь block }
спасибо, но не прокатило. Сделал всё как написано выше, таймер появился, а вместе с ним вторая рабочая кнопка "купить", продвижение есть, но пока изменения убрал, т.к. проект рабочий, может есть идеи как править код для нормального отображения?
Весь секрет в том, что у вас таймер добавляет на страницу вторую кнопку с id button-cart. Пока на странице есть две кнопки с одинаковым id, работать будет только одна (и видна ли вторая - значения не имеет). Можете, например. сделать, чтоб таймер был виден всегда, а обычная кнопка Купить вообще не выводилась на страницу, если есть таймер (не выводилась ещё на стороне php).