jonny008
-
Публикаций
143 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные jonny008
-
-
Добрый день! Подскажите как автоматически скрыть категории в которых нет товаров или товары не активные.
-
Более общим образом:
$p->annotation = preg_replace("/&[#a-z0-9]+;/", " ", $p->annotation);
Спасибо Kors, сработало.
-
Пока отфильтровал так:
$p->annotation = preg_replace("/ /", " ", $p->annotation); $p->annotation = preg_replace("/–/", " ", $p->annotation); $p->annotation = preg_replace("/®/", " ", $p->annotation);
но, наверное это просто костыль
-
Здравствуйте.
Подскажите пожалуйста, каким образом автоматически отфильтровать спец символы – ® и т.д
из <description>".htmlspecialchars(strip_tags($p->annotation))."</description>
Спецсимволы присутствуют в описании к товару, но Яндекс-Маркет их не разрешает использовать.
На друпале как то так фильтруют.
($id == 'description' ? str_replace(' ', ' ', $v) : $v)
-
-
А играет роль apache или nginx? потому что в теме #8 я указал что не работает http://forum.simplacms.ru/topic/10479-https-в-админ-панели/?p=86992
nginx не работает с htaccess, у него отдельные конфиги.
-
удалить строку из htaccess
-
Сработал 1 раз и "умер"
-
Само отсутствие можно использовать как признак.
Тогда и вопрос надо ставить адекватно, например:
1. в админке на странице товаров делать сортировку товаров по наличию изображений - сначала все товары без изображений, потом - имеющие хотя бы одно изображение ИЛИ
2. в админке на странице товаров делать сортировку товаров по количеству изображений.
Дополнительно надо указывать порядок - по возрастанию или убыванию числа изображений или оба варианта...
Сделать такое можно, но не совсем просто и не в одну строчку. Особенно учитываю то, что в админке у товаров стандартно не предусмотрена возможность менять сортировку...
Это даже нужно не в админке, а в категории на сайте. Без разницы сколько изображений у товара. Если есть фото то вначале списка, если нет, то в конец. Думаю нужен запрос в Products.php
-
Никак нельзя такое.
Можно делать сортировку ТОВАРОВ по какому-либо ПРИЗНАКУ или свойству...
Может быть, Вам надо ФИЛЬТРАЦИЮ товаров, чтобы выбрать те, у которых нет изображений. Если так, то надо дорабатывать админку. И не в одну строчку...
А само отсутствие это не признак?
-
Должно добавлять все. Так как в коде все строки перебираются форечем. Файл 1c_exhange.php не правился?
// Добавляем изображение товара if(isset($xml_product->Картинка)) { foreach($xml_product->Картинка as $img) { $image = basename($img); if(!empty($image) && is_file($dir.$image) && is_writable($simpla->config->original_images_dir)) { rename($dir.$image, $simpla->config->original_images_dir.$image); $simpla->products->add_image($product_id, $image); } } }
Спасибо!
-
Добавляет все 3,
Только на стадии апдейта товара вот такой код:
/ Обновляем изображение товара if(isset($xml_product->Картинка)) { foreach($xml_product->Картинка as $img) { $image = basename($img); if(!empty($image) && is_file($dir.$image) && is_writable($simpla->config->original_images_dir)) { $simpla->db->query('SELECT id FROM __images WHERE product_id=? ORDER BY position LIMIT 1', $product_id); $img_id = $simpla->db->result('id'); if(!empty($img_id)) $simpla->products->delete_image($img_id); rename($dir.$image, $simpla->config->original_images_dir.$image); $simpla->products->add_image($product_id, $image); } } }
Святая простота.
Перед тем как писать, затратили бы пару минут и проверили.
Должно-то оно должно, но реально обрабатывается только ОДНА первая картинка.
Ошибка в скрипте есть, как это ни странно. Исправлять надо... -
Добрый день!
В выгрузке XML имеется 3 поля
<Картинка>import_files/cf/cf79611b-988d-11e5-be92-8c89a5174022_0.JPEG</Картинка> <Картинка>import_files/cf/cf79611b-988d-11e5-be92-8c89a5174022_1.JPEG</Картинка> <Картинка>import_files/cf/cf79611b-988d-11e5-be92-8c89a5174022_2.JPEG</Картинка>
Simpla обрабатывает только одну картинку.
Пробовал через explode. Не получается.
Подскажите пожалуйста.
-
Тема закрыта. Заработал этот вариант: (добавлять в 2х местах)
// Обновляем бренд if(isset($xml_product->Производитель)) { $brand_name = strval($xml_product->Производитель); // Найдем его по имени $simpla->db->query('SELECT id FROM __brands WHERE name=?', $brand_name); if(!$brand_id = $simpla->db->result('id')) // Создадим, если не найден $brand_id = $simpla->brands->add_brand(array('name'=>$brand_name, 'meta_title'=>$brand_name, 'meta_keywords'=>$brand_name, 'meta_description'=>$brand_name, 'url'=>translit($brand_name))); if(!empty($brand_id)) $simpla->products->update_product($product_id, array('brand_id'=>$brand_id)); }
-
Всё равно не хочет работать.
-
Видимо, здесь:
foreach($xml_product->Производитель as $brand)
А вообще поле производителя при обмене с 1С стандартно выгружается и обрабатывается (в списке свойств)...
Переделал на вот это:
// Обновляем бренд if(isset($xml_product->Производитель)) { $brand_name = strval($xml_product->Производитель); // Найдем его по имени $simpla->db->query('SELECT id FROM __brands WHERE name=?', $brand_name); if(!$brand_id = $simpla->db->result('id')) // Создадим, если не найден $brand_id = $simpla->brands->add_brand(array('name'=>$brand_name, 'meta_title'=>$brand_name, 'meta_keywords'=>$brand_name, 'meta_description'=>$brand_name, 'url'=>translit($brand_name))); if(!empty($brand_id)) $simpla->products->update_product($product_id, array('brand_id'=>$brand_id)); }
-
Видимо, здесь:
foreach($xml_product->Производитель as $brand)
А вообще поле производителя при обмене с 1С стандартно выгружается и обрабатывается (в списке свойств)...
Не совсем стандартная 1С. Не подскажешь как исправить?
-
Добрый день! Подскажите пожалуйста, где ошибка.
В Конфигурацию 1С добавил в выгрузку поле <Производитель> :
Файл import.xml :
<Товар> <Ид>bb6d4ab2-988d-11e5-be92-8c89a5174022</Ид> <Наименование>Iphone 5S 16Gb</Наименование> <Производитель>Apple</Производитель> <БазоваяЕдиница Код="796 " НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт</БазоваяЕдиница>
В 1c_exchange.php в местах где товар добавляется и обновляется добавил вот такой код:
// Обновляем бренд if(isset($xml_product->Производитель)) { foreach($xml_product->Производитель as $brand) { // Найдем его по имени $simpla->db->query('SELECT id FROM __brands WHERE name=?', $brand_name); if(!$brand_id = $simpla->db->result('id')) // Создадим, если не найден $brand_id = $simpla->brands->add_brand(array('name'=>$brand_name, 'meta_title'=>$brand_name, 'meta_keywords'=>$brand_name, 'meta_description'=>$brand_name, 'url'=>translit($brand_name))); if(!empty($brand_id)) $simpla->products->update_product($product_id, array('brand_id'=>$brand_id)); } }
-
Если вопрос про код из #52, вероятно, ошибка в фрагменте
if($('.variants').find('input[name=variant]:checked').size()>0) variant = $('.variants input[name=variant]:checked').val(); if($('.variants').find('select[name=variant]').size()>0) variant = $('.variants').find('select').val();
В нем сходу видны несколько недостатков:
1. в одних местах используется $('.variants').find('select[name=variant]'), в других variant = $('.variants').find('select'), в надо бы единообразно.
2. вместо двух последовательных if логичнее было бы использовать if ... elseif
3. не отрабатывается ситуация, когда переменная variant не будет определена (скорее всего, это и есть Ваш случай).
И главное, надо проверять указанные элементы на предмет соответствия верстке Вашего шаблона, при этом еще много чего выплыть может...
И само решение несколько корявое, ищет вариант на странице ГЛОБАЛЬНО. Например, это гарантированно не будет работать на странице списка товаров...
Большое спасибо за подсказку. Всё получилось.
-
Выводится ошибка в консоли:
Uncaught ReferenceError: variant is not defined
Как исправить? Не подскажите?
Пробовал добавлять var, но тогда заказ оформляется без товара.
-
Еще нужно в шаблоне сделать инициализацию плагина
<script> $(function(){ $('.menu_vert').liMenuVert({ delayShow:300, //Задержка перед появлением выпадающего меню (ms) delayHide:300 //Задержка перед исчезанием выпадающего меню (ms) }); }); </script>
-
Всегда показывает в отладке
+ 0
-
function count_users($filter = array()) { $group_id_filter = ''; $keyword_filter = ''; $enabled_filter = ''; if(isset($filter['group_id'])) $group_id_filter = $this->db->placehold('AND u.group_id in(?@)', (array)$filter['group_id']); if(isset($filter['enabled'])) $enabled_filter = $this->db->placehold('AND u.enabled=?', intval($filter['enabled'])); if(isset($filter['keyword'])) { $keywords = explode(' ', $filter['keyword']); foreach($keywords as $keyword) $keyword_filter .= $this->db->placehold('AND u.name LIKE "%'.$this->db->escape(trim($keyword)).'%" OR u.email LIKE "%'.$this->db->escape(trim($keyword)).'%"'); } // Выбираем пользователей $query = $this->db->placehold("SELECT count(*) as count FROM __users u LEFT JOIN __groups g ON u.group_id=g.id WHERE 1 $group_id_filter $enabled_filter $keyword_filter ORDER BY u.name"); $this->db->query($query); return $this->db->result('count'); }
вызывать $new_users_counter = $this->users->count_users( array('enabled'=>0) );
Большое спасибо! Всё работает.
-
Добрый день! Подскажите пожалуйста, пытаюсь вывести оповещение в админке "Неактивных" пользователей, по аналогии с новыми заказами (красный круг с количеством)
В simpla/IndexAdmin.php
$new_users_counter = $this->users->count_users(array('enabled'=>0)); $this->design->assign("new_users_counter", $new_users_counter);
В simpla/design/html/index.tpl
{if $new_users_counter}<div class='counter'><span>{$new_users_counter}</span>
Но показывает общее количество пользователей.
В чем может быть проблема?
Скрыть пустые категории
в Общие вопросы по функционалу и дизайну
Опубликовано · Изменено пользователем jonny008
Скрыть от глаз.
Я так понимаю нужно дополнить условие