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

aroman80

Пользователь
  • Публикаций

    30
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные aroman80

  1.  

    если хотите вывести только первую и вторую родительские категории то:

    {$category->path[0]->name} и {$category->path[1]->name}
    

      

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

     

    p.s. я очень рад, что вы хорошо разбираетесь в коде, и спасибо за то, даете ценные ответы на вопросы, но я пока только разбираюсь в этом и прошу снисхождения за мои "тупые" вопросы.

  2.  

    В данном случае сортировка будет правильно работать в обоих случаях

    ORDER BY LENGTH(po.value) ASC

    ORDER BY LENGTH(value) ASC

     

    Это примерно, как, находясь в Ленинграде, водителю такси сказать

    1. 3-я улица Строителей, 25  ИЛИ

    2. Ленинград, 3-я улица Строителей, 25.

    Результат будет одинаков.

    А вот если это сказать в Москве, то результат будет другой...

     

    спасибо добрый человек, всё по полочкам разложил, всем бы так отвечать!

  3. я написал что для php5.4 вам не нужно это добавлять. если у вас все работает как вы выше написали. зачем вы себе придумываете?

    прогресс не стоит на месте, когда то нужно же будет переходить на php 7

  4. не буду создавать новую тему, напишу тут...

     

    есть структура

     

    Категория 1

    - Категория 1.1

    - - Категория 1.1.1

    - - Категория 1.1.2

     

    Хочу в <meta name="keywords"  через {$additional_keywords...  добавить названия категорий

     

    пока додумал до такого

     

    {$category->name}  

     

    выводит "Категория 1.1.1" или "Категория 1.1.2"

     

     

     

    {foreach from=$category->path item=cat}
     {$cat->name}
    {/foreach}  

     

    выводит "Категория 1 Категория 1.1 Категория 1.1.1"

     

     

    {foreach $category->path as $cat}
    {if !$cat@last}
     {$cat->name}
    {/if}
    {/foreach}  

    выводит "Категория 1 Категория 1.1"

     

     

     

    вопрос в следующем

    как вывести "Категория 1" и "Категория 1.1" по отдельности?

  5. в /hits и /sales выводятся все свойства и все значения, которые существуют, даже если товары в /hits и /sales не имеют этих свойств

     

    так понятнее?

  6. изучал вопрос и вроде получилось

     

    в карточке товара "product" сортировка тут (api/Features.php самый конец файла)
    public function get_product_options($product_id)
    	{
    		$query = $this->db->placehold("SELECT f.id as feature_id, f.name, po.value, po.product_id FROM __options po LEFT JOIN __features f ON f.id=po.feature_id WHERE po.product_id in(?@) 
    ORDER BY f.position", (array)$product_id);
    		$this->db->query($query);
    		return $this->db->results();
    	}
    
    
    меняем ORDER BY f.position на ORDER BY LENGTH(value) ASC
    и получаем сортировку в карточке товара по длине значения, вот так 0,1,2,3,4,10,100,1000,10000
     
    p.s. вот только не могу понять, сортируем по value или по po.value ?
    в книге MySql по SELECT написано, что сортировка идет по названию столбца, а в базе нет столбца po.value.
    я так понял, что po.value это, типа связанного или сгруппированного столбца...

     

  7. hits и sales работают

    но в фильтре не убираются свойства и их значения для товаров, которые не hits и не sales

     

    предполагаю, что это не $category, а $page

     

    есть решение, как допилить, чтобы фильтр работал, как на /products или /catalog ?

     

    p.s. удаление if(!empty($category)) из view/ProductsView.php дало результат для отображения фильтра на странице Все товары, но hits и sales - это не $category и чего то не хватает для корректной работы

  8. получается в коде http://forum.simplacms.ru/topic/6089-несколько-значений-для-одного-свойства-в-товар/?p=104127

    сортировка идет в фильтре

     

    а в карточке товара "product" сортировка тут (api/Features.php самый конец файла)

     

    public function get_product_options($product_id)
    	{
    		$query = $this->db->placehold("SELECT f.id as feature_id, f.name, po.value, po.product_id FROM __options po LEFT JOIN __features f ON f.id=po.feature_id WHERE po.product_id in(?@) 
    ORDER BY f.position", (array)$product_id);
    		$this->db->query($query);
    		return $this->db->results();
    	}
    

    меняем ORDER BY f.position на ORDER BY LENGTH(value) ASC

    и получаем сортировку по длине значения 0,1,2,3,4,10,100,1000,10000

  9. Идиотский вопрос.

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

    не кипишуйте, уважаемый Noxter! 

    я не так давно изучаю php и mysql, сделайте поблажку новичку.

    я не задавал бы глупых вопросов, если бы было ясно как днём.

  10. у меня вообще по-другому

     

    у меня код такой и работает (Источник: http://forum.simplacms.ru/topic/6089-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B9-%D0%B4%D0%BB%D1%8F-%D0%BE%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE-%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0-%D0%B2-%D1%82%D0%BE%D0%B2%D0%B0%D1%80/)

    $temp_options[$option->feature_id]->feature_id = $option->feature_id;
    $temp_options[$option->feature_id]->name = $option->name;
    $temp_options[$option->feature_id]->values[] = $option->value;   
    

    тут такой

    $temp_options[$option->feature_id]['feature_id'] = $option->feature_id;
    $temp_options[$option->feature_id]['name'] = $option->name;
    $temp_options[$option->feature_id]['values'][] = $option->value;   
    

    кто разбирается, в чём разница?

  11. <a href="{url params=[$f->id=>null, page=>null]}" {if !$smarty.get.$f@key}class="selected"{/if}>Все</a>
    

    если значение свойства равно 0, то выделяется Все и 0, потому что null и 0 получаются равны

    это, кстати, так и на чистой симпле (камень в огород разработчика)

     

    вот так:

    Все 1 2 3 4 5 6 ...

     

    а должно быть так

    Все 1 2 3 4 5 6 ...

     

    надо как-то исправить

     

    p.s. если с чекбоксами, то нормально, там нет "Все", а вот с урлами косяк))

  12. Работает именно так, как запрограммировано.

    Надо не только код бездумно вставлять, а и читать. Было ведь специально сказано:

     

    поэтому и спрашиваю, как внедрить. в функциях php не особо силен, если не жалко, подскажите, пожалуйста

  13. тут половина продает свои доработки, а вторая половина пытается самостоятельно что-то допилить.

    я же не в готовых решениях выложил, у кого-то уже есть функционал и они решают вопросы допиливания.

    мой вариант может кому-то поможет решить свои вопросы

  14. не нашел куда закинуть, пусть будет тут

    Тема: последние отзывы на главной странице для 2.3.8

     

    1. Идем в базу и выполняем запрос:

    ALTER TABLE `s_reviews` ADD KEY `product_id` (`object_id`);
    

    2. Добавление плагина во View.php

        

    2.1 Регистрация плагина, 100 строка, добавляем

    $this->design->smarty->registerPlugin("function", "get_latest_reviews", array($this, 'get_latest_reviews_plugin'));
    

    2.2 Обработчик плагина, 348 строка , добавляем

    public function get_latest_reviews_plugin($params, &$smarty)
    	{
    		if(!isset($params['approved']))
    			$params['approved'] = 1;
    		if(!empty($params['var'])) {
    			$reviews = $this->reviews->get_reviews($params);
    				
    			$products_ids = array();
    			$products = array();
    			
    			foreach($reviews as $review)
    				$products_ids[] = $review->object_id;
    			foreach($this->products->get_products(array('id'=>$products_ids)) as $p)
    				$products[$p->id] = $p;
    			foreach($reviews as &$review)
    			{
    				if(isset($products[$review->object_id]))
    					$review->product = $products[$review->object_id];
    			}
    			$smarty->assign($params['var'], $reviews);
    		}
    	}
    

    3. Код шаблона c оформлением под слайдер на главную страницу (сам слайдер есть в инете, оформление у каждого своё)

    {get_latest_reviews var=latest_reviews limit=3}
    {if $latest_reviews}
    <div class="slider">
    	<ul data-auto="true">
    		{foreach $latest_reviews as $review}
    		<li>
    			<div class="container">
    				<div class="block">
    					<h1>{$review->text}</h1>
    					<h2>{$review->name}</h2>
                                            <div class="raty" data-score="{$review->rate}"></div> 
    					<p><a href="products/{$review->product->url}">{$review->product->name}</a></p>
    				</div>
    			</div>
    		</li>
    		{/foreach}
    	</ul>
    	
    	<div class="slidebar">
    		<a href="#" class="arrow prev">
    			<i class="prev"></i>
    		</a>
    		<a href="#" class="arrow next">
    			<i class="next"></i>
    		</a>
    	</div>
    </div>
    {/if}
    
×
×
  • Создать...