Filter Pro - стиль вывода

Тема в разделе "OpenCart", создана пользователем gavag, 1 апр 2013.

  1. gavag

    gavag

    Регистрация:
    5 янв 2013
    Сообщения:
    109
    Симпатии:
    10
    Где только не искал, где только не писал. Сам бьюсь уже неделю. В основном Filter Pro удовлетворяет все запросы, однако видоизменяет страницу вывода товара (особенно если стиль ее изменен по отношению к дефолту). Что только не пробовал: кое что получалось, но переставал работать фильтр. Другие фильтры то ли не удовлетворяют нуждам, а некоторые "глючат". Правда есть один который еще не пробовал, но хотелось бы разобраться с Filter Pro (если это возможно).
     
  2. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    285
    Симпатии:
    312
    FilterPro использует JQuery template, хабр. Шаблон находится в самом конце файла catalog\view\theme\default\template\module\filterpro.tpl. А стили применены стандартные(глобальные).
     
  3. gavag

    gavag

    Регистрация:
    5 янв 2013
    Сообщения:
    109
    Симпатии:
    10
    Это я уже понял.

    Это тоже сообразил (конечно не без помощи форумчан).

    Однако простая замена одного другим ничего не решает. Я понял, что за вывод "шаблона" продукта отвечает код:
    Код:
    <script id="productTemplate" type="text/x-jquery-tmpl">
    	<div>
    		{{if thumb}}
    			<div class="image"><a href="${href}"><img src="${thumb}" title="${name}" alt="${name}"/></a></div>
    		{{/if}}
    		<div class="name"><a href="${href}">${name}</a>
    			<div class="extra" style="color: #444;">
    				{{if sku}}
    				<span style="color:#38b0e3"><?php echo $pds_sku; ?></span> ${sku} <br/>
    				{{/if}}
    				{{if model}}
    				<span style="color:#38b0e3"><?php echo $pds_model; ?></span> ${model} <br/>
    				{{/if}}
    				{{if brand}}
    				<span style="color:#38b0e3"><?php echo $pds_brand; ?></span> ${brand} <br/>
    				{{/if}}
    				{{if location}}
    				<span style="color:#38b0e3"><?php echo $pds_location; ?></span> ${location} <br/>
    				{{/if}}
    				{{if upc}}
    				<span style="color:#38b0e3"><?php echo $pds_upc; ?></span> ${upc} <br/>
    				{{/if}}
    				{{if stock}}
    				<span style="color:#38b0e3"><?php echo $pds_stock; ?></span> ${stock} <br/>
    				{{/if}}
    			</div>
    		</div>
    		<div class="description">${description}</div>
    		{{if price}}
    			<div class="price">
    				{{if special }}
    					<span class="price-old">${price}</span> <span class="price-new">${special}</span>
    				{{else}}
    					${price}
    				{{/if}}
    				{{if tax}}
    					<br/>
    					<span class="price-tax"><?php echo $text_tax; ?> ${tax}</span>
    				{{/if}}
    			</div>
    		{{/if}}
    		{{if rating}}
    			<div class="rating"><img src="catalog/view/theme/default/image/stars-${rating}.png" alt="${reviews}" /></div>
    		{{/if}}
    		<div class="cart"><a onclick="addToCart('${product_id}');" class="button"><span><?php echo $button_cart; ?></span></a></div>
    		<div class="wishlist"><a onclick="addToWishList('${product_id}');"><?php echo $button_wishlist; ?></a></div>
    		<div class="compare"><a onclick="addToCompare('${product_id}');"><?php echo $button_compare; ?></a></div>
    	</div>
    </script>
    К примеру меня интересует:
    Код:
    <div class="description">${description}</div>
    Но где (частично в контроллере), а главное как (из чего) формируеться ${description}
    --- добавлено: Apr 1, 2013 5:40 PM ---
    А еще в папке catalog\view\theme\default\template\product\ лежит файл filter.tpl. Зачем он нужен? И без него все работает.
     
  4. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    285
    Симпатии:
    312
    Все формируется в контроллере catalog\controller\module\filterpro.php. в массив $result[]. Последняя строка $this->response->setOutput($json); форматирует массив данных в формат json. У меня строка 'description' => $description, заккоментирована, не помню, сам я делал это или нет...
     
    etopetya нравится это.
  5. gavag

    gavag

    Регистрация:
    5 янв 2013
    Сообщения:
    109
    Симпатии:
    10
    Я так понимаю, что фильтр, самостоятельно формирует эти массивы используя свою собственную модель (которая похожа на дефолт), причем работает то нормально по "list" чем по "grid". Значит получается, что бы получить такой же стиль, нужно "пилить" контроллер и "модель".
     
  6. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    285
    Симпатии:
    312
    Да, я так и делал. Но мне пришлось пилить только контроллер, чтобы вывести дополнительные изображения к товарам. А "list" я вообще убрал.
     
  7. gavag

    gavag

    Регистрация:
    5 янв 2013
    Сообщения:
    109
    Симпатии:
    10
    Ну да, ну да. А нет ли у тебя готового решения (что бы поделиться) с выводом атрибутов?
     
  8. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    285
    Симпатии:
    312
    К сожалению, нет.
     
    gavag нравится это.
  9. gavag

    gavag

    Регистрация:
    5 янв 2013
    Сообщения:
    109
    Симпатии:
    10
    Жаль. Ладно подождем, может кто-что предложит. Ну а потом может и сам что придумаю (попробую).
    А мне для этого (для атрибутов):

    halfhope - понравилось: выбор миниатюр в товаре.
     
  10. alekstf

    alekstf

    Регистрация:
    28 мар 2013
    Сообщения:
    8
    Симпатии:
    0
    Да уж столкнулся тоже с проблемой, купил себе фильтр, а теперь еще пришлось доплатить разработчику, чтоб он допиливал под мой видоизмененный стандартный шаблон.
     
  11. gavag

    gavag

    Регистрация:
    5 янв 2013
    Сообщения:
    109
    Симпатии:
    10
    А что за фильтр и какие доработки (если не секрет)?
     
  12. alekstf

    alekstf

    Регистрация:
    28 мар 2013
    Сообщения:
    8
    Симпатии:
    0
    Да такой же Filter Pro, сам не смог допилить, сортировка не работает стандартная (сортируется норм в первую секунду, подгружается фильтр и сбрасывает на свои настройки), да и кнопки купить и подробнее в категории не работают. Получается сперва грузится category.tpl, спустя секунду filterpro.tpl уже со своими настройками сортировки, дизайна и прочего.
     
  13. gavag

    gavag

    Регистрация:
    5 янв 2013
    Сообщения:
    109
    Симпатии:
    10
    Ну да, именно эта проблема. И как решили? Глянуть можно?
     
  14. alekstf

    alekstf

    Регистрация:
    28 мар 2013
    Сообщения:
    8
    Симпатии:
    0
    Жду готовый результат от разработчика. Прошло 9 дней, пока что ответ не получил. Когда получу результат, могу поделиться.
     
  15. gavag

    gavag

    Регистрация:
    5 янв 2013
    Сообщения:
    109
    Симпатии:
    10
    По Filter Pro, я прочитал всю поддержку. Но на этот вопрос так никто ничего толком и не ответил, хотя такой вопрос задавался. Ну что же ждем. Будем весьма признательны. А нет то сами допилим.
     
  16. Florenco

    Florenco

    Регистрация:
    3 мар 2013
    Сообщения:
    220
    Симпатии:
    101
    Ничего сложного, просто по схеме своего шаблона, делаете аналогичные вставки в шаблон фильтра.
    Например:
    Это: {{if thumb}} = <?php if ($product['thumb']) { ?>
    Это: ${price} = <?php echo $product['price']; ?>

    И так далее... Ну и нестандартные переменные должны быть добавлены в контроллер фильтра, если они нужны.
     
    gavag нравится это.
  17. gavag

    gavag

    Регистрация:
    5 янв 2013
    Сообщения:
    109
    Симпатии:
    10
    Означает ли это, что в клиентской части полностью заменяю (шаблон, контроллер и модель) соответствующими и все получиться? Наверное все же нужно практиковаться. Попробую.
     
  18. Florenco

    Florenco

    Регистрация:
    3 мар 2013
    Сообщения:
    220
    Симпатии:
    101
    Открыть свой tpl и tpl фильтра, сравнивая их различия от самого начала вывода товаров, переносить недостающие строки, менять местами, удалять, короче делать так, чтобы после всего структура была одинаковой, за разницей того, что переменные в фильтре должны быть в том виде, в котором указал выше.
     
    winner7 нравится это.
  19. Florenco

    Florenco

    Регистрация:
    3 мар 2013
    Сообщения:
    220
    Симпатии:
    101
    Пример
    кусок кода:
    Код:
    <div><?php if ($product['thumb']) { ?>
    <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>
    <?php } ?>
    <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
    он же в фильтре:
    Код:
    <div>{{if thumb}}
    <div class="image"><a href="${href}"><img src="${thumb}" title="${name}" alt="${name}"/></a></div>
    {{/if}}
    <div class="name"><a href="${href}">${name}</a></div>
     
    winner7 нравится это.
  20. Серый Игорь Андреевич

    Серый Игорь Андреевич

    Регистрация:
    14 фев 2013
    Сообщения:
    6
    Симпатии:
    0
    привет всем) подскажите пожалуйста как сделать такую вещь
    я программист с++ / php
    но не работал с шаблонами jquery
    никак не могу понять как реализовать такую задачу
    я приведу пример непонятного участка на пхп
    задача - если цена товара 0 (0.00 грн.), то выводить не цену, а некий текст.

    имеем код

    Код:
    div class="price">
    			{{if special }}
    			<span class="price-old">${price}</span> <span class="price-new">${special}</span>
    			{{else}}
    			${price} //тут нужны изменения
    			{{/if}}
    			{{if tax}}
    			<br/>
    			<span class="price-tax"><?php echo $text_tax; ?> ${tax}</span>
    			{{/if}}
    		</div>

    а нужно мне такое:


    div class="price">
    {{if special }}
    <span class="price-old">${price}</span> <span class="price-new">${special}</span>
    {{else}}
    // пишу на понятном мне php
    // вложенный if
    if ( $price != 0) echo $price;
    else echo "some text";

    {{/if}}
    {{if tax}}
    <br/>
    <span class="price-tax"><?php echo $text_tax; ?> ${tax}</span>
    {{/if}}
    </div>


    по сути не могу получить переменную $price чтоб сравнить ее с нулем

    подскажите пожалуйста