
snagovskiy
-
Content Count
48 -
Joined
-
Last visited
Posts posted by snagovskiy
-
-
Как вариант переделать немного скрипт поиска, убрать событие onselect и переделать вывод результатов в виде ссылок на товары.
Завтра если будет время распишу (00.40 на часах).
Noxter найди время пожалуйста
-
Пробуйте вместо
serviceUrl:'ajax/search_products.php',
minChars:1,
noCache: false,
вставить
serviceUrl:'ajax/search_products.php',
minChars:1,
triggerSelectOnValidInput: false,
noCache: false,
Попробовал, спасибо за совет, но не работает
-
У меня получилось решить вопрос так: в index.tpl
после
onSelect:
function(suggestion){
$(".input_search").closest('form').submit();
},
добавил
transformResult: function(result, query) {
var data = JSON.parse(result);
$(".input_search").autocomplete('setOptions', {triggerSelectOnValidInput: data.suggestions.length == 1});
return data;
},
P.S. Придумал не сам, нашел это в OKAY CMS.
У меня это не заработало, тестил на своем шаблоне и на дефолтном,...
Смотрите, проблема проявляется только если скрипт увидит полное соответствие запроса с названием товара и произведет автозамену...
Например есть товар Apple iPhone 6 16Gb Silver и Apple iPhone 6s 16Gb Silver
если я пишу в поиске apple iphone 6 16gb, точного соответствия не будет, автозамена не сработает и при нажатии на строку поиска обновления страницы не произойдет.
А если я напишу apple iphone 6 16gb silver, то произойдет автозамена, текст в поисковой строке изменится на Apple iPhone 6 16Gb Silver (приобретет регистр) и проявится собственно проблема - при нажатии на поисковую строку будет перезагружаться страница.
-
Как вариант переделать немного скрипт поиска, убрать событие onselect и переделать вывод результатов в виде ссылок на товары.
Завтра если будет время распишу (00.40 на часах).
Оке спасибо Noxter
-
Да такая проблема есть, только что проверил.
А как ее исправить то, есть идеи?
-
Действительно айфоны которые я добавлял, испарились, но остались четверки
вот линк http://demo.simplacms.ru/products?keyword=Apple+iPhone+4S+16Gb
Да и вообще, я добавил на демо сайт что бы показать что эта проблема не конкретно моего сайта или шаблона, а общая проблема движка.
Попробуйте на любом своем сайте на симпле, добавьте два товара iphone 6 16gb и iphone 6s 16gb, что бы увидеть эту проблему.
-
Уважаемые господа,
Подскажите пожалуйста как можно решить данную проблему
Есть два товара
iphone 6 16gb http://demo.simplacms.ru/products/iphone-6-16gb
и
iphone 6s 16gb http://demo.simplacms.ru/products/iphone-6s-16gb
Пишу в строке поиска: iphone 6 16gb
и попадаю на страницу результатов поиска http://demo.simplacms.ru/products?keyword=iphone+6+16gb
а дальше если я нажимаю снова на строку поиска происходит обновление страницы и в поиск я больше ничего написать не могу...
-
берешь с этой версии /simpla/GroupAdmin.php и меняешь в том где не открывает
а так
Спасибо, заменил содержимое GroupAdmin.php на
<?PHP require_once('api/Simpla.php'); class GroupAdmin extends Simpla { public function fetch() { $group = new stdClass; if($this->request->method('post')) { $group->id = $this->request->post('id', 'integer'); $group->name = $this->request->post('name'); $group->discount = $this->request->post('discount'); if(empty($group->id)) { $group->id = $this->users->add_group($group); $this->design->assign('message_success', 'added'); } else { $group->id = $this->users->update_group($group->id, $group); $this->design->assign('message_success', 'updated'); } $group = $this->users->get_group(intval($group->id)); } else { $id = $this->request->get('id', 'integer'); if(!empty($id)) $group = $this->users->get_group(intval($id)); } if(!empty($group)) { $this->design->assign('group', $group); } return $this->design->fetch('group.tpl'); } }
и все заработало
-
Всем большое спасибо. Наконец-то разобрался, что там у Яшки меняется )))
Актуальный Парсер на данный момент:
Актуальный парсер работает до сих пор....
Но парсит лишнее... В Цвет вставляет html код
Смотрите скриншот https://prnt.sc/hdkp1n
Господа подскажите пожалуйста как исправить это дело
-
давно уже с 2,3 версии уже
Неправда, у меня есть сайт на 2.3.6 все прекрасно работает там
-
Уважаемые господа, подскажите пожалуйста как исправить эту ошибку?
http://demo.simplacms.ru/simpla/index.php?module=GroupAdmin
Сайт demo.simplacms.ru пока не может обработать этот запрос.
HTTP ERROR 500 -
Вышеописанные способы у меня не работают.Вот мой рабочий вариант для simpla 2.3.6В api/Products.php
public function get_products($filter = array()) { // По умолчанию $page = 1; $category_id_filter = ''; $brand_id_filter = ''; $product_id_filter = ''; $features_filter = ''; $keyword_filter = ''; $visible_filter = ''; $is_featured_filter = ''; $yandex_filter = ''; $discounted_filter = ''; $in_stock_filter = ''; $group_by = ''; $order = 'p.position DESC'; if(isset($filter['limit'])) $limit = max(1, intval($filter['limit'])); if(isset($filter['page'])) $page = max(1, intval($filter['page'])); if(isset($limit) && isset($page)) $sql_limit = $this->db->placehold(' LIMIT ?, ? ', ($page-1)*$limit, $limit); if(!empty($filter['id'])) $product_id_filter = $this->db->placehold('AND p.id in(?@)', (array)$filter['id']); if(!empty($filter['category_id'])) { $category_id_filter = $this->db->placehold('INNER JOIN __products_categories pc ON pc.product_id = p.id AND pc.category_id in(?@)', (array)$filter['category_id']); $group_by = "GROUP BY p.id"; } if(!empty($filter['brand_id'])) $brand_id_filter = $this->db->placehold('AND p.brand_id in(?@)', (array)$filter['brand_id']); if(isset($filter['featured'])) $is_featured_filter = $this->db->placehold('AND p.featured=?', intval($filter['featured'])); if(isset($filter['yandex'])) $yandex_filter = $this->db->placehold('AND p.to_yandex=?', intval($filter['yandex'])); if(isset($filter['discounted'])) $discounted_filter = $this->db->placehold('AND (SELECT 1 FROM __variants pv WHERE pv.product_id=p.id AND pv.compare_price>0 LIMIT 1) = ?', intval($filter['discounted'])); if(isset($filter['in_stock'])) $in_stock_filter = $this->db->placehold('AND (SELECT count(*)>0 FROM __variants pv WHERE pv.product_id=p.id AND pv.price>0 AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1) = ?', intval($filter['in_stock'])); if(isset($filter['visible'])) $visible_filter = $this->db->placehold('AND p.visible=?', intval($filter['visible'])); if(!empty($filter['sort'])) switch ($filter['sort']) { case 'position': $order = 'p.position DESC'; break; case 'name': $order = 'p.name'; break; case 'created': $order = 'p.created DESC'; break; case 'price': //$order = 'pv.price IS NULL, pv.price=0, pv.price'; $order = '(SELECT -pv.price FROM __variants pv WHERE (pv.stock IS NULL OR pv.stock>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1) DESC'; break; } if(!empty($filter['keyword'])) { $keywords = explode(' ', $filter['keyword']); foreach($keywords as $keyword) { $kw = $this->db->escape(trim($keyword)); $keyword_filter .= $this->db->placehold("AND (p.name LIKE '%$kw%' OR p.meta_keywords LIKE '%$kw%' OR p.id in (SELECT product_id FROM __variants WHERE sku LIKE '%$kw%'))"); } } if(!empty($filter['features']) && !empty($filter['features'])) foreach($filter['features'] as $feature=>$value) $features_filter .= $this->db->placehold('AND p.id in (SELECT product_id FROM __options WHERE feature_id=? AND value=? ) ', $feature, $value); if(!empty($filter['min_price']) && !empty($filter['max_price'])) $prices = $this->db->placehold('AND p.id in(SELECT v.product_id FROM __variants v WHERE v.price >= ? AND v.price <= ? AND v.product_id = p.id)', intval($filter['min_price']), intval($filter['max_price'])); $query = "SELECT p.id, p.url, p.brand_id, p.name, p.featured, p.rating, p.votes, p.annotation, p.body, p.position, p.created as created, p.visible, p.to_yandex, p.featured, p.meta_title, p.meta_keywords, p.meta_description, p.garanty, b.name as brand, b.url as brand_url FROM __products p $category_id_filter LEFT JOIN __brands b ON p.brand_id = b.id WHERE 1 $product_id_filter $brand_id_filter $features_filter $keyword_filter $is_featured_filter $yandex_filter $discounted_filter $in_stock_filter $visible_filter $prices $group_by ORDER BY $order $sql_limit"; $this->db->query($query); return $this->db->results(); } /** * Функция возвращает количество товаров * Возможные значения фильтра: * category_id - id категории или их массив * brand_id - id бренда или их массив * keyword - ключевое слово для поиска * features - фильтр по свойствам товара, массив (id свойства => значение свойства) */ public function count_products($filter = array()) { $category_id_filter = ''; $brand_id_filter = ''; $product_id_filter = ''; $keyword_filter = ''; $visible_filter = ''; $is_featured_filter = ''; $yandex_filter = ''; $in_stock_filter = ''; $discounted_filter = ''; $features_filter = ''; if(!empty($filter['category_id'])) $category_id_filter = $this->db->placehold('INNER JOIN __products_categories pc ON pc.product_id = p.id AND pc.category_id in(?@)', (array)$filter['category_id']); if(!empty($filter['brand_id'])) $brand_id_filter = $this->db->placehold('AND p.brand_id in(?@)', (array)$filter['brand_id']); if(!empty($filter['id'])) $product_id_filter = $this->db->placehold('AND p.id in(?@)', (array)$filter['id']); if(isset($filter['keyword'])) { $keywords = explode(' ', $filter['keyword']); foreach($keywords as $keyword) $keyword_filter .= $this->db->placehold('AND (p.name LIKE "%'.$this->db->escape(trim($keyword)).'%" OR p.meta_keywords LIKE "%'.$this->db->escape(trim($keyword)).'%") '); } if(isset($filter['featured'])) $is_featured_filter = $this->db->placehold('AND p.featured=?', intval($filter['featured'])); if(isset($filter['yandex'])) $yandex_filter = $this->db->placehold('AND p.to_yandex=?', intval($filter['yandex'])); if(isset($filter['in_stock'])) $in_stock_filter = $this->db->placehold('AND (SELECT count(*)>0 FROM __variants pv WHERE pv.product_id=p.id AND pv.price>0 AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1) = ?', intval($filter['in_stock'])); if(isset($filter['discounted'])) $discounted_filter = $this->db->placehold('AND (SELECT 1 FROM __variants pv WHERE pv.product_id=p.id AND pv.compare_price>0 LIMIT 1) = ?', intval($filter['discounted'])); if(isset($filter['visible'])) $visible_filter = $this->db->placehold('AND p.visible=?', intval($filter['visible'])); if(!empty($filter['features']) && !empty($filter['features'])) foreach($filter['features'] as $feature=>$value) $features_filter .= $this->db->placehold('AND p.id in (SELECT product_id FROM __options WHERE feature_id=? AND value=? ) ', $feature, $value); if(!empty($filter['min_price']) && !empty($filter['max_price'])) $prices = $this->db->placehold('AND p.id in(SELECT v.product_id FROM __variants v WHERE v.price >= ? AND v.price <= ? AND v.product_id = p.id)', intval($filter['min_price']), intval($filter['max_price'])); $query = "SELECT count(distinct p.id) as count FROM __products AS p $category_id_filter WHERE 1 $brand_id_filter $product_id_filter $keyword_filter $is_featured_filter $yandex_filter $in_stock_filter $discounted_filter $visible_filter $prices $features_filter "; $this->db->query($query); return $this->db->result('count'); }
-
Не наблюдается такое явление)
Наблюдается и очень смущает, хочу купить шаблон но очень смущает, сможете это дерганье исправить?
Могу записать видос если сами не видите его.
-
yr4ik спасибо!разрешены буквы цифры _ и -
разрешены все символы кроме /
-
Это должно работать спасибо))))
Я вчера так и не дождался, сам догадался как сделать, только я поставил по аналогии с другим редиректом
RewriteCond %{QUERY_STRING} ^id=([^/]+)RewriteRule ^shop_item.html$ /products/%1/? [L,R=301]в чем разница между ([\w\d-]+) и ([^/]+) -
RewriteCond %{QUERY_STRING} ^id=tesla-three-kit$
RewriteRule ^shop_item\.html$ /products/tesla-three-kit/? [L,R=301]
Вот это работает, но только для одного урла, господа подскажите пожалуйста как по маске это отредиректить....
-
RewriteRule ^shop_item.html?id=([\w\d-]+)$ /products/$1 [L,R=301]
Спасибо, но тоже не работает...
-
Уважаемые господа!
Подскажите пожалуйста, как сделать редирект вот таких урлов:
/shop_item.html?id=tesla-three-kit
на
/products/tesla-three-kit
Пишу в htaccess:
RewriteRule ^products/?$ shop_item.html?id=$1 [L,R=301]
не работает =(
-
{if $category} {$filter_brand = $category->path|reset} {api module=brands method=get_brands visible=1 category_id=$filter_brand->children var=category_brands} {foreach $category_brands as $b} {$b->name} {/foreach} {/if}
yr4ik спасибо! -
Это нужно в фильтре? Или просто где то выводите?
Без фильтра, просто вывод брендов в категории
-
ahmedУ товаров бренда Найк (хотя бы частично) в админке указать дополнительную категорию Адидас.
У товаров бренда Адидас (хотя бы частично) в админке указать дополнительную категорию Найк.
спасибо, это помогло, но теперь в подкатегории Адидас появились товары Найк, а в подкатегории Найк - Адидас =)
Этого быть не должно, может быть есть еще какие то варианты решения вопроса?
-
Есть категория и у нее две подкатегории:
Кроссовки
- Адидас
- Найк
и соответственно есть два бренда Адидас и Найк.
В категории Кроссовки оба бренда отображаются.
В подкатегории Адидас отображается только бренд Адидас, а в подкатегории Найк соответственно только Найк.
Вопрос: как сделать так, что бы в подкатегории Адидас отображался еще и бренд Найк, а в подкатегории Найк - бренд Адидас?
Т.е. что бы в подкатегории выводились бренды не данной подкатегории, а родительской категории...
-
ahmed спасибо! Это сработало!Пробуйте в другом порядке
{if $smarty.request.page == 'all'}
...
{elseif $current_page_num == 1}
...
{elseif $current_page_num > 1}
...
{else}
...
{/if}
{if $smarty.request.page == 'all'} <title>{$meta_title|escape}, все страницы</title> <meta name="description" content="{$meta_description|escape}, все страницы" /> {elseif $current_page_num == 1} <title>{$meta_title|escape}</title> <meta name="description" content="{$meta_description|escape}" /> {elseif $current_page_num > 1} <title>{$meta_title|escape}, страница {$current_page_num}</title> <meta name="description" content="{$meta_description|escape}, страница {$current_page_num}" /> {else} <title>{$meta_title|escape}</title> <meta name="description" content="{$meta_description|escape}" /> {/if}
-
Попробуйте $smarty.get.page вместо $page
Тоже самое... Не работает https://www.stopnikotin.ru/shop.html?divider=1314875691&page=all
Проблема в работе поиска
in Общие вопросы по функционалу и дизайну
Posted
Noxter спасибо, но это то же не зарабатало у меня, отдает 404 ошибку при выборе товара из поиска.....