Jump to content

-=NICROSS=-

Пользователь
  • Content Count

    108
  • Joined

  • Last visited

Posts posted by -=NICROSS=-

  1. Господа знатоки, подскажите, пожалуйста.

     

    Добавил дополнительное поле на странице бренда в админке:

    1. Запрос в базу
    2. simpla/BrandAdmin.php

    3. simpla/design/html/brand.tpl

     

    После этого поле появилось. Данные вводишь в админке, поле пустое, но в базу записывается.

     

    Где и что пропустил, из за чего и не отображается содержимое поля, подскажите, пожалуйста?

  2.  

    Как вы будете использовать код - зависит от того, ЧТО НУЖНО ПОЛУЧИТЬ

    Если вам нужен КЛАСС 

    {if $v->id = $product->variant->id}class="active"{/if}

    Например так

    Находится должно внутри цикла по вариантам товара

     

    			{foreach $product->variants as $v}
    			<tr class="variant var-2{if $v->id = $product->variant->id} active{/if}">
    				<td>
    					<input class="mquantity" name="mquantity[{$v->id}]" value="" type="text" style="width:20px" data-price="{$v->price}" data-price0="{$v->price}" data-color_prc="{$v->color_prc}" data-color_prcс="{$v->rate}"> 
    				</td>
    				<td>
    					{if $v->name}<label style="margin-right: 10px;" class="variant_name" for="product_{$v->id}">{$v->name}</label>{/if}
    				</td>
    				<td>
    					{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
    					<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
    				</td>
    			</tr>
    			{/foreach}
    

     

    Спасибо тебе большое! 

    Разобрался. Выдавало синтаксическую ошибку из за отсутствия второго "=" в условии

    {if $v->id == $product->variant->id} active{/if}

  3.  

    Как вы будете использовать код - зависит от того, ЧТО НУЖНО ПОЛУЧИТЬ

    Если вам нужен КЛАСС 

    {if $v->id = $product->variant->id}class="active"{/if}

    Например так

    Находится должно внутри цикла по вариантам товара

     

    			{foreach $product->variants as $v}
    			<tr class="variant var-2{if $v->id = $product->variant->id} active{/if}">
    				<td>
    					<input class="mquantity" name="mquantity[{$v->id}]" value="" type="text" style="width:20px" data-price="{$v->price}" data-price0="{$v->price}" data-color_prc="{$v->color_prc}" data-color_prcс="{$v->rate}"> 
    				</td>
    				<td>
    					{if $v->name}<label style="margin-right: 10px;" class="variant_name" for="product_{$v->id}">{$v->name}</label>{/if}
    				</td>
    				<td>
    					{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
    					<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
    				</td>
    			</tr>
    			{/foreach}
    

     

    Страница недоступна в этом случае.

     

    error 500

     

    Можете сейчас посмотреть, ошибку 500 он дал, когда условие опубликованное разместил

  4. Не знаю, это зависит от кода вашего сайта)))

    {if $product->variants|count > 0}
        <!-- Выбор варианта товара -->
    	<form class="variants" action="/cart">
    		<input type="hidden" name="color_id" id="color_id" value="">
    			<table>
    			{foreach $product->variants as $v}
    			<tr class="variant var-2">
    				<td>
    					<input class="mquantity" name="mquantity[{$v->id}]" value="" type="text" style="width:20px" data-price="{$v->price}" data-price0="{$v->price}" data-color_prc="{$v->color_prc}" data-color_prcс="{$v->rate}"> 
    				</td>
    				<td>
    					{if $v->name}<label style="margin-right: 10px;" class="variant_name" for="product_{$v->id}">{$v->name}</label>{/if}
    				</td>
    				<td>
    					{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
    					<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
    				</td>
    			</tr>
    			{/foreach}
    			</table>		
    		<input type="submit" class="button mquantitybutton" value="в корзину" data-result-text="добавлено"/>
    	</form>
    	<!-- Выбор варианта товара (The End) -->		
    {else}
    	Нет в наличии
    {/if}
    

    Вывод вариантов на странице товара такой

  5. Доброе время суток.
     
    Подскажите, пожалуйста, как правильно сделать:
     
    На сайте реализовал множественный выбор вариантов, то есть возле каждого можно указывать количество и одним нажатием добавить все в корзину.
     
    post-2382-0-32666800-1525516908_thumb.jpg 


    Сейчас начал изучать яндекс маркет и оказалось, что при переходе из маркета, должен быть выбран (выделен жирным или подсвечен) именно тот вариант, по которому перешли, то есть адрес страницы имеет вид:   
     

    http://demo.simplacms.ru/products/nokia-x3-02?variant=15  
    

     
    Как задать условие, чтобы активному варианту добавлялся новый класс (выделить его)?

  6. Product .ProductsView . ProductsAdmin  в бд таблица

     

    Увы, но ни в  в ProductsView, ни в ProductsAdmin нет упоминаний о связанных товара.

     

    Предполагаю так:

    1. simpla/ProductAdmin.php

    2. simpla/design/html/product.tpl

    3. view/ProductView.php

    4. мой_дизайн/html/product.tpl

    5. Новое поле в базу.

     

    Добавьте, пожалуйста, что пропустил

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

     

    Подскажите, пожалуйста, порядок действий. В каких файлах правки делать?

  8. Если на название товара переделать , то скорее всего и ваш обработчик /ajax/oneclick.php нужно будет переделать

    Чтобы вывести один вариант (по умолчанию) в Симпле уже в шаблоне есть {$product->variant} вместо {$product->variants} 

     

    У меня получается так:

     

    Убрать условие для input: 

    if($('.variants').find('input[name=variant]:checked').size()>0) variant = $('.variants input[name=variant]:checked').val();
     

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

     

     

  9. Добрый день.

     

    Есть скрипт "Купить в 1 клик" и часть скрипта

     

    if($('.variants').find('input[name=variant]:checked').size()>0) variant = $('.variants input[name=variant]:checked').val();
                            
    if( !$('.onename').val() || !$('.onephone').val() ) { 
             alert("Заполните все поля!");
             return false;
    }
    
    $.ajax({
            type: "post",
            url: "/ajax/oneclick.php",
            data: {amount: 1, variant: variant, name: $('.onename').val() , phone: $('.onephone').val() },
            dataType: 'json'
    });
    

    данный вариант подходил для вариантов товара в input.

     

    У меня реализованы варианты с возможностью добавления в корзину нескольких одновременно

    Код варианта:

    {foreach $product->variants as $v}
      <tr class="variant var-2">
        {if $v->name}
          <td><label class="variant_name" for="product_{$v->id}">{$v->name}</label></td>
        {/if}
          <td>
            {if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
              <span class="price">{$v->price|convert} <span class="rubznak">a</span>/<span class="currency">{$product->variant->unit}</span></span>
          </td>
          <td>
            <span class="down"><img src="design/{$settings->theme|escape}/images/minus.png"/></span>
            <input class="mquantity vat_2_pro" name="mquantity[{$v->id}]" value="0" type="text"  data-price="{$v->price|convert}"> 
            <span class="up"><img src="design/{$settings->theme|escape}/images/plus.png"/></span>				
          </td>
      </tr>
    {/foreach}
    

     

    Как переписать условие, чтобы он не искал выбранный input, а передавал первый вариант или еще лучше просто наименование товара, не обращая внимания на наличие вариантов.

     

     
  10. Во-первых, писать сюда цену - риск оказаться нарушителем правил (п. 4.20).

    Во-вторых, судя по ответам, кроме Вас, это никому не интересно.

    А флуда на форуме и без нас хватает...

     

     

     

    Именно про это сказано ранее в п.2.

     

    Считай, что отмазался! 

     

    Если бы хотел, ты бы написал конструктив, а не "Да, да, я об этом и говорил".

    Если я задал вопрос, значит мне интересно. Я и не рассчитывал, что кому-то тоже нужен будет данный функционал и он поможет.

     

    Я готов оплатить доработку, но адекватным людям и адекватную цену, а не тем, что сначала цену набивает и ждет, пока ему предложат за деньги сделать! 

     

    Вопрос актуален! Кто готов подправить/новый написать? 

     

    вы должны писать куки для домена а не просто так непонятно куда и для какой страницы. соотвественно переходя куда-то такой куки уже нет потому что она пишется непонятно как.

    https://ruseller.com/lessons.php?id=593

     

    Мишаня, спасибо за наводку. Но, к сожалению, моих знаний в php не достаточно

  11. Дано несколько пунктов конструктива.

    Например, 1 означает, что Ваша оценка "Вроде должен в куки записываться, но не срабатывает", скорее всего, неверная. Попробуйте написать понятный конструктив со всеми подробностями, как Вы определили, что в куки не записывается. Подозреваю, что этот тезис не проверяли точно, а взяли с потолка.

     

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

     

    И почему я не удивлен! Ценник объявляй!

  12. 1. У меня прекрасно записывается в куки. Если у Вас не так, то видимо, у Вас свои индивидуальные причины.

    2. В куки записывает довольно небрежно. В зависимости от пути может записывать НЕСКОЛЬКО одинаковых кук, что нерационально.

    3. Записанные ранее куки нигде не используются.

    4. При загрузке  второй и последующих страниц проводится геоопределение заново.

    5. Есть и другие ошибки.

     

    Похоже, скрипт какой-то устаревший...

    Треба ремонтир...

     

    Уважаемый loxter, а конструктив какой-то можно?

     

    Если, конечно, не сложно!

  13. посмотрите эту тему, может поможет решить другим способом.

    он работает.

     

    Спасибо за ссылочку, но тут более простая реализация.

     

    Мне нужно именно с выбором города. 

     

    Товарищи знатоки, помогите, пожалуйста.

  14. Добрый вечер.

     

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

     

    Код рабочий, может кому пригодится.

     

    НО есть один нюанс. При обновлении страницы, происходит новое определение, то есть значение в куки не записывается. 

     

    Может кто-нибудь поможет разобраться? Вроде должен в куки записываться, но не срабатывает.

     

     

    1. HTML (Размещать в том месте шаблона, где нужно выводить город )

    <div class="gor">
     	<img src="design/{$settings->theme|escape}/images/metka.png"/>
     	<p>Ваш город:  </p>
        <p id="select-city-go">Выбор города</p>
    </div> 
    <div id="modal1_form">
    <span id="modal1_close">X</span>
    <div id="spisok-gorodov">
    <table>
    <tr><td>Архангельск</td><td>Омск</td></tr>
    <tr><td>Астрахань</td><td>Орел</td></tr>
    <tr><td>Барнаул</td><td>Оренбург</td></tr>
    <tr><td>Владивосток</td><td>Пенза</td></tr>
    <tr><td>Волгоград</td><td>Пермь</td></tr>
    <tr><td>Воронеж</td><td>Ростов-на-Дону</td></tr>
    <tr><td>Екатеринбург</td><td>Рязань</td></tr>
    <tr><td>Ижевск</td><td>Самара</td></tr>
    <tr><td>Иркутск</td><td>Санкт-Петербург</td></tr>
    <tr><td>Казань</td><td>Саратов</td></tr>
    <tr><td>Кемерово</td><td>Тольятти</td></tr>
    <tr><td>Красноярск</td><td>Томск</td></tr>
    <tr><td>Краснодар</td><td>Тула</td></tr>
    <tr><td>Липецк</td><td>Тюмень</td></tr>
    <tr><td>Москва</td><td>Уфа</td></tr>
    <tr><td>Набережные Челны</td><td>Хабаровск</td></tr>
    <tr><td>Нижний Новгород</td><td>Челябинск</td></tr>
    <tr><td>Новокузнецк</td><td>Ялта</td></tr>
    <tr><td>Новосибирск</td><td>Ярославль</td></tr>
    </table>
     <a class="button_geo" href=javascript:document.location.reload()>ВЫБРАТЬ</a>
    
    </div>
    <div id="insol-map-modal1"></div>
    </div>
    <div id="overlay"></div>
    

    2. Подключаем яндекс карту (в index.tpl внутрь тега <head></head>

    <script src="//api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
    

     

    3.  JS (Можно подключить отдельным файлом, можно в index.tpl)

    <script>
    
    jQuery('#select-city-go').click(function() {
    	jQuery('#overlay').fadeIn(400,
    		 	function(){
    				jQuery('#modal1_form') 
    					.css('display', 'block')
    					.animate({opacity: 1, top: '50%'}, 200);
    		});
    		
    	jQuery('#select-city-go').click( function(event){
    		event.preventDefault();
    		jQuery('#overlay').fadeIn(400,
    		 	function(){
    				jQuery('#modal1_form') 
    					.css('display', 'block')
    					.animate({opacity: 1, top: '50%'}, 200);
    		});
    	});
    
    	jQuery('#modal1_close, #overlay').click( function(){
    		jQuery('#modal1_form')
    			.animate({opacity: 0, top: '45%'}, 200,
    				function(){
    					jQuery(this).css('display', 'none');
    					jQuery('#overlay').fadeOut(400);
    				}
    			);
    	});
    });
    
      function setCookie(name, value) {
        document.cookie = name + "=" + value;
      }
      function getCookie(name) {
        var r = document.cookie.match("(^|?" + name + "=([^;]*)(;|$)");
        if (r) return r[2];
        else return "";
      }
      function deleteCookie(name) {
        var date = new Date();
        date.setTime(date.getTime() - 1);
        document.cookie = name += "=; expires=" + date.toGMTString();
      }
    
    jQuery("#spisok-gorodov td").click(function(){ alert(jQuery(this).text()); });
    
    ymaps.ready(function () {
        geolocation = ymaps.geolocation;
        var myMapMod = new ymaps.Map('insol-map-modal1', {
                center: [47.22, 39.71],
                zoom: 12,
                controls: []
            });
    
    	    geolocation.get({
            provider: 'yandex',
            mapStateAutoApply: true
        }).then(function (result) {
            result.geoObjects.options.set('preset', 'islands#blueIcon');
            myMapMod.geoObjects.add(result.geoObjects);
            var firstGeoObject = result.geoObjects.get(0);
            coords = firstGeoObject.geometry.getCoordinates();
            myMapMod.setZoom(12);
    		city_name=firstGeoObject.properties.get('name');
    		jQuery('#select-city-go').html(city_name);
            setCookie("city_name", city_name);
        });
    
    jQuery("#spisok-gorodov td").click(function(){
    		city_click=jQuery(this).text();
    		jQuery('#select-city-go').html(city_click);
            setCookie("city_name", city_click);
        	ymaps.geocode(city_click, { results: 1  }).then(function (res) {
                var firstGeoObject = res.geoObjects.get(0),
                coords = firstGeoObject.geometry.getCoordinates(),
                bounds = firstGeoObject.properties.get('boundedBy');
                myMapMod.geoObjects.add(firstGeoObject);
                myMapMod.setBounds(bounds, { checkZoomRange: true });
            });
    });
        
            mySearchControl = new ymaps.control.SearchControl({
                options: {
                    noPlacemark: true,
                    position: { left: 0, top: 0 }
                }
            });
        // Результаты поиска будем помещать в коллекцию.
            mySearchResults = new ymaps.GeoObjectCollection(null, {
                hintContentLayout: ymaps.templateLayoutFactory.createClass('$[properties.name]')
            });
        myMapMod.controls.add(mySearchControl);
        myMapMod.geoObjects.add(mySearchResults);
    
        // Выбранный результат помещаем в коллекцию.
        mySearchControl.events.add('resultselect', function (e) {
            var index = e.get('index');
            var results = mySearchControl.getResultsArray(); coords = results[index].geometry.getCoordinates();
            myMapMod.setZoom(12);
            city_name=results[index].properties.get('name');
            jQuery('#select-city-go').html(city_name);
            setCookie("city_name", city_name);
            mySearchControl.getResult(index).then(function (res) {
               mySearchResults.add(res);
            });
            }).add('submit', function () {
                mySearchResults.removeAll();
            });
    });
    </script>
    	
    

    4. Стили (Минимальный набор)

    <style>
    #modal1_form {
        width: 720px; 
        height: 360px;
        border-radius: 5px;
        background: #fff;
        position: fixed;
        top: 45%;
        left: 50%;
        margin-top: -170px;
        margin-left: -350px;
        display: none;
        opacity: 0;
        z-index: 9999999;
        padding: 20px 10px;
    }
    
    #modal1_form #modal1_close {
        width: 21px;
        height: 21px;
        position: absolute;
    	top: 10px;
    	right: 10px;
    	cursor: pointer;
    	display: block;
    }
    
    #overlay {
    	z-index: 3;
    	position: fixed;
    	width: 100%; 
    	height: 100%;
    	top: 0; 
    	left: 0;
    	cursor: pointer;
    	display: none;
    }
    #insol-map-modal1{width:315px; height:315px;float:right;margin:10px;}
    #spisok-gorodov {
        width: 345px;
        height: 304px;
        margin: 0px 0px 0px 10px;
        float: left;
    }
    #spisok-gorodov table{width:100%;}
    #spisok-gorodov td{text-decoration:underline;cursor:pointer;}
    p#select-city-go {
        border-bottom: 1px dashed #3a444a;
    	cursor: pointer; 
    }
    p#select-city-go:hover {
        color: #4caf50;
        border-bottom: 1px dashed #4caf50;
    }
    .gor {
        display: flex;
        justify-content: flex-end;
    	margin-bottom: 3px; 
    	color: #246935; 
    }
    .gor img {
        margin-right: 10px;
    }
    </style>
    
  15.  

    Так работает в указанном месте. Но при этом портит стандартный фильтр в правой части страницы товаров админки - при выборе любой категории показываются для дальнейшей фильтрации ВСЕ бренды, из которых многие ссылки дают страницу БЕЗ товаров.

     

    Пробуйте способ такой:

    в simpla/design/html/products.tpl  заменить

     

                    {if $brands|count>0}
                    <option value="move_to_brand">Указать бренд</option>
                    {/if}
    
    

    на

     

                    {if $all_brands|count>0}
                    <option value="move_to_brand">Указать бренд</option>
                    {/if}
    
    

     

    Спасибо большое! Помогло!

  16. Доброе время суток.

     

    Может кто-то сталкивался.

     

    В админке выбираю категорию и вижу товары данной категории.

    При попытке "Указать бренд" всем товарам данной категории, у некоторых категорий нет вообще данного пункта. 

    Никаких допилов и т д не было. Чистая cимпла 2.3.7

  17.  

    ну подумать совсем не судьба? замените в cart_informer.tpl ВЕЗДЕ cart->total_products на cart->all_products

    тоесть тут ТОЖЕ

    {$cart->total_products|plural:'товар':'товаров':'товара'}
    

     

    Спасибо большое за помощь!

     

    Я занимаюсь дизайном, версткой. Буду вопросы, обращайтесь, помогу!

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

    Перед тем как спросить, я попробовал и у меня не получилось. Была допущена ошибка! Вы поправили!

×
×
  • Create New...