Перейти к содержанию

belkin-labs

Пользователи
  • Постов

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

  • Посещение

  • Победитель дней

    1

belkin-labs стал победителем дня 21 апреля 2023

belkin-labs имел наиболее популярный контент!

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения belkin-labs

Рекрут

Рекрут (2/14)

  • Лайкер
  • Энергичный
  • Первый пост
  • Инициатор бесед

Последние значки

1

Репутация

  1. Здравствуйте! В аддоне есть следующая функция (это реализация хука): function fn_ab__seo_filters_ab__as_other_objects(&$objects) { $seo_pages_fixed = Registry::ifGet('addons.ab__seo_filters.add_to_sitemap', 'none'); $seo_filters = ABSF::_get_names_for_sitemap($seo_pages_fixed); if($seo_pages_fixed == 'none') { return false; } if(fn_allowed_for('ULTIMATE') && !Registry::get('runtime.simple_ultimate') && fn_get_runtime_company_id() == 0) { return false; } switch($seo_pages_fixed) { case 'fixed': $cond = db_quote('AND n.fixed=?s', ABSFConfigs::PAGE_STATE_FIXED); break; case 'unfixed': $cond = db_quote('AND n.fixed=?s', ABSFConfigs::PAGE_STATE_UNFIXED); break; default: $cond = db_quote('AND n.fixed != ?s', ABSFConfigs::PAGE_STATE_HIDDEN); } if(fn_allowed_for('ULTIMATE')) { $cond .= fn_get_company_condition('c.company_id'); } $seo_filters = db_get_hash_array('SELECT DISTINCT n.sf_id,n.category_id,n.features_hash,n.fixed FROM ?:ab__sf_names n INNER JOIN ?:ab__sf_name_descriptions nd ON (n.sf_id=nd.sf_id) INNER JOIN ?:categories c ON (c.category_id=n.category_id) WHERE 1 AND c.status=\'A\' ?p ?p ORDER BY n.category_id asc', 'sf_id', $cond, fn_get_company_condition('n.company_id')); if(!empty($seo_filters)) { $seo_filters = fn_ab__sf_filter_seo_pages_without_prods($seo_filters); $objects['ab__seo_filter'] = $seo_filters; } } У меня крайне серьезное подозрение, что вот этот вызов не нужен: $seo_filters = ABSF::_get_names_for_sitemap($seo_pages_fixed); После этого вызова переменная $seo_filters нигде не используется. Ей только присваивается новое значение. И класс ABSF тоже нигде не используется. -------------------------------- Этот вопрос для меня крайне важен, ибо вот эта строчка отжирает 10 секунд времени, а у моего клиента 78 витрин и каждая секунда при обновлении карты сайта на счету. Спасибо
  2. Хочу предложить вам очень простой и отлично зарекомендовавший себя алгоритм по прохождению таблицы порциями. В нем не нужно подсчитывать количество записей в таблице: $step = 1; // для того, чтобы можно было начинать не сначала $count = 500; // размер порции в записях $limit = ($step-1)*$count; // Начальный лимит $i = $step; // $i можно использовать в качестве отсылки к конкретному номеру шага. while (1) { $codes = db_get_array("SELECT product_code FROM ?:products ORDER BY product_code LIMIT $limit,$count"); do_smth_with_codes($codes); if (count($codes) < $count) { break; // Заканчиваем цикл } $i++; // Это информационная переменная $limit+=$count; // Вот то, что меняется в цикле }
  3. @belkin-labs Ну мой клиент остался недоволен тем, что я сделал и мне пришлось выяснить, откуда берется эта переменная $show_amount_label Никакой настройки для нее нет! Задумана она для того, чтобы не показывать промпт "В наличии" там, где для него нет места, а именно в скроллах, в категориях и в некоторых других местах. Для этого переменной дается значение false в кодах шаблона. На шаблоне карточки товара default_template по идее этот промпт должен быть в ключен. Но он выключается в шаблоне /design/themes/abt__unitheme2/templates/views/products/view.tpl, что неправильно. И я думаю, это уже исправлено в новых версиях темы.
  4. Никто не знает, как и где это включается/отключается. Но в шаблоне есть системная переменная $show_amount_label По названию совершенно очевидно, что она должна либо включать промпт, либо выключать его (кстати, возможно поэтому я и писал про лейбл). Если есть переменная - значит скорее всего есть настройка. Я к сожалению не могу искать (пока) откуда эта переменная появляется и где она приобретает значение. У меня в моменте нет времени. Да и вообще нет. Этот поиск может затянуться на часы. Я думаю вы сами это знаете. Программировать cs-cart то еще удовольствие для фрилансера. Клиент мне эти поиски точно не оплатит. Так или иначе я поставил указанный if в шаблоне и все, вроде бы работает как надо. И слава Богу. Хреново будет, если после обновления темы мне придется опять этот if вставлять. Но будем надеяться на лучшее!!! А что еще остается?
  5. @belkin-labs А если вы не можете это повторить, то возможно этот баг уже исправлен. У меня нет последней версии темы. Обновит клиент - я посмотрю. Если исправили, то и отлично!
  6. Лейблом я называю не тег, а предложение "В наличии" Возможно правильный термин Промпт. Не знаю, причем здесь стикер. Ключевым является то, что я написал в поправке, а именно, Мы отключаем показ промпта "В наличии:" и он везде отключается, а в этом конкретном месте он не отключается. Вот вам скрин, который мне прислал клиент, когда задачу ставил.
  7. @belkin-labs Поправка! Должен быть выключен режим показа лейбла "В наличии:" то есть на тех товарах, у которых наличие есть, надо чтобы показывалось не В Наличии 2 шт, а просто 2 шт. Это и есть значение переменной $show_amount_label То есть баг заключается только в том, что мы отключаем показ лейбла "В наличии:" и он везде отключается, а в этом конкретном месте он не отключается.
  8. 1. Нужно любому товару поставить наличие 0 2. В секции "Наличие", в поле "Действие при отсутствии товара в наличии" выбрать Предзаказ 3. Должен быть включен режим показа лейбла В наличии: 10 штук (не знаю, где это включается) 3. Зайти в карточку этого товара на фронте. 4. Увидеть под ценой зеленую надпись "В наличии: Предзаказ" Но вообще там в шаблоне везде, где встречается <span class="ty-qty-in-stock ty-control-group__item">{__("availability")}:</span> Этот спан стоит в указанном if. И только в одном месте этого if нет. Вот поэтому и приходит на ум, что везде поставили, а тут просто забыли.
  9. Описание проблемы: Заголовок лейбла "Доступность" не реагирует на параметр шаблона show_amount_label Это же выражается в эффекте типа "В наличии: предзаказ" Код: product_data.tpl ------------------------------------------- <div class="product-list-field"> <span class="ty-qty-in-stock ty-control-group__item">{__("availability")}:</span> <span id="qty_in_stock_{$obj_prefix}{$obj_id}" class="ty-qty-in-stock ty-control-group__item"> ------------------------------------------------ Исправленный код: ------------------------------------------ <div class="product-list-field"> {if $show_amount_label} <span class="ty-qty-in-stock ty-control-group__item">{__("availability")}:</span> {/if} ---------------------------------------- Видимо забыли if поставить.
  10. Привет, коллеги! У меня есть клиент, который часто обновляется и вот каждый раз мне приходится заходить в шаблон и править баг. Буду рад, если вы его исправите и мне не придется в этот шаблон так часто лазить. Файл: /design/themes/abt__unitheme2/templates/blocks/list_templates/grid_list.tpl Код: {if $show_features || $show_descr} {if empty($block.properties) && $settings.abt__ut2.product_list.$tmpl.show_content_on_hover[$settings.abt__device] == "YesNo::NO"|enum && !$native_scroller} Суть бага: Условие empty($block.properties) не выполняется, ибо в массиве присутствует пустой элемент с ключом abt__ut2_demo_block_id Исправленный код: {if $show_features || $show_descr} {if empty($block.properties.abt__ut2_demo_block_id) && $settings.abt__ut2.product_list.$tmpl.show_content_on_hover[$settings.abt__device] == "YesNo::NO"|enum && !$native_scroller} <div class="ut2-gl__bottom">
×
×
  • Создать...