Только в естественном случае можно хоть как-то отследить категорию товара. В остальных случаях по URL этого не сделать, а поскольку товар удален, то и в базе его уже нет и информации о категории тоже нет. Поэтому обратиться в базу тоже не получится.
Если только не хранить где-нибудь отдельную таблицу товарных передвижений (типа истории), связывающую для простоты product id, category id, category url, product url, но для этого такую таблицу надо создать, привязать к движку и автоматизировать её ведение.
В погоне за глобальным иногда забывается исправление мелких и средних багов, которых порой накапливается немало. В лучшем случае правятся только критические, потому что "народ уже бунтует". Фразы типа "качественные изменения" всегда необходимо тщательно расшифровывать, начиная с вопрошающей стороны.
Если упростить функционал, то в принципе зря тупил. Отказаться от JS крутилки картинок и подключить к миниатюрам или каким-нибудь эскизам 350х0 под основным фото напрямую swipebox, то и проблем нет, но тогда фото среднего размера 0x700 уже не посмотреть, кроме как главное (печалька). Однако теперь в swipebox можно задействовать вывод желанных title даже в режиме слайд-шоу для десктопного просмотра (ура).
Хочется сохранить функционал в виде работающих квадратиков миниатюр 96х96 с просмотром среднего размера 0х700 в зоне увеличенного изображения, а 350х0 оставить для других задач.
Возможно придется задействовать другой JS скрипт для миниатюр и основного фото в карточке продукта или существующий переписать. В текущей версии alt и title будут такие, как у картинки выводимой при первой загрузке страницы продукта в качестве основного фото будь она какая угодно по порядку в массиве изображений. Впрочем, не исключаю, что не до конца разобрался с тем, что есть, но желание ковырять код на сегодня пропало.
Могу, но со временем совсем беда, т.к. своих несколько и два в неспешной разработке и ещё один в миграции с 309 версии. В режиме разовых консультаций мне было бы проще, чем подключаться на полный цикл. Конечно для начала хотелось бы оценить проект внешне. Мыло dm собака krasnоgorsk точка ru. Еще есть Телеграм постоянно онлайн.
На Фейсбук чего-то меняли в полях и какое-то время назад действительно поломалось. Они просто затерли URL в этом поле, поменяли название поля и просили ввести все заново, но в такой нелепой формулировке, что сразу не догадаться.
Есть 100500 причин, по которым сайт работает "медленно". Полная диагностика включает не только анализ состояния движка, кода шаблонов, состава плагинов, оптимизации графики, настроек кеширования контента и т.п., но и полную проверку веб-сервера, состояние баз данных, оценку производительности, разные нагрузочные тесты и многое другое. Есс-но оптимизация отдаваемого контента - очень важная часть работы. Над этим надо работать постоянно. Вроде бы уже все ок, но всегда где-то что-то можно сделать лучше и из этих мелочей складывается общая картина. Выбор хостинга крайне важен в данном вопросе. Между 6 и 7 версией на тестах нет никаких отличий в плане производительности. Основная засада, если отойти от вопроса проблем с сервером, как правило в плагинах, их количестве, качестве и способе применения, графике и безумной перегрузке шаблонов всякими скриптами по поводу и без и избыточными css. Оптимально исполненные страницы и браузером быстрее рендерятся вобщем-то. Браузеру ведь тоже не всё равно что ему прилетает от сервера. Иной контент его и в ступор вогнать может. Ну да это всё лирика. :)
На мой взгляд, оптимальная отдача контента, должна выглядеть примерно так.
Если не ошибаюсь, то при наличии у одного товара ряда артикулов с разными ценами на витрину выводится цена того артикула, который отмечен в настройках товара в пункте "Цены и наличие" переключателем. Если отметить артикул с наименьшей ценой, то эта стоимость и будет выведена в шаблоне list-thumbs.html например.
А вам нужно, чтобы всегда выбиралась наименьшая стоимость из всех артикулов независимо от основного артикула?
На примере list-thumbs.html заменяем $p.price на $p.min_price, но при этом $p.compare_price будет от артикула по-умолчанию, если это вас устроит.
В зависимости от шаблонов таких замен может быть несколько и в разных местах. В некоторых шаблонах выводится сразу вилка цен от и до, но это тоже легко правится отключением вывода max_price, если надо заменить вилку на минимальную стоимость.
Искомый код у вас на сайте есть. Начинается он с <aside class="currency-toggle"> ... код ... </aside>. Но по ощущениям сидит он не в футере, а в main.html (главный шаблон контента Магазина - Main storefront layout and navigation) где-то после строки {$content}. То, что вы его видите в футере не значит, что он там. Поищите ещё. Он не так глубоко спрятан. Почти на поверхности.
Вкладки - это видимо элемент дизайна какой-то. Общие рекомендации таковы. При создании страницы, которую надо скрыть, прописываете ей дополнительный параметр menu=hide, а в коде шаблона, где формируется вывод страниц должно быть примерно так.
Если, как вы говорите, у вас выбор валюты в подвале сайта, то в шаблоне footer.html надо поискать примерно следующий код. В нем должны упоминаться слова currency.
И для проверки заключить этот код в такие скобки {* код *} или вообще убрать, если совсем не нужен.
Если совсем похожего кода нет, но слово currency в шаблоне встречается, то просто скопируйте код шаблона и вам подскажут, что именно в нём надо убрать.
Ну да. Можно и так. Условие по url'ам. Просто увидел в примере попытки !$a@last и подумал про него. У меня, например, приложение Сайт есть, но в массиве wa-apps его нет, т.к. меню настроено вручную на два элемента, когда / = магазин, а /blog/ = новости.
Понял. Короче смотри. На самом деле это задается в двух местах. Сайт - Дизайн - Настройки - Название поселения и ещё Сайт - Настройки - wa-apps меню - Настроить. Так вот это wa-apps меню является массивом с возможно несколькими элементами, причем, что самое интересное, во второй настройке название может не совпадать с первой настройкой. Из этого массива наверное и надо тянуть нужный элемент.
Код ниже выдернет из массива меню первый элемент и выведет его где надо.
Про блог и категории не уловил суть. Вроде речь о приложении Сайт и страницах его шла. Что с блогом не так? У блога свой head.html по идее есть. Туда всякое для него можно размещать. А в записях блога отдельно корректно настраиваются теги OG.
Я, прочитав вашу тему, заморочился для себя тоже такое сделать. У меня на сайте обычно страницы не используются, т.к. юзаю страницы магазина, где это работает из коробки, но ради морального удовлетворения запилил себе таки одну страницу. Всё вроде красивенько получилось.
В index.html head должен быть подключен так {include file="`$wa_active_theme_path`/head.html" inline}.
Еще совсем забыл среди ночи. Для $page доступны следующие вещи.
$page.title - заголовок $page.description - тут все понятно
$page.keywords - тоже без комментариев
$page.og_description - если делать отдельный description для соц.сетей
$page.og_image - картинка
$page.og_title - заголовок для социалок
$page.og_type - тип контента
$page.og_video - видос
$page.test - дополнительный параметр с названием test
Все эти вещи обрамляем красиво тегами в head.html Сайта
Для примера строка title с проверкой на отдельный og_title
Есть ещё небольшой лайфхак. Заходишь в редактор страницы и в дополнительных параметрах пишешь следующее: descr=твой текст ttl=твой тайтл
Затем в шаблоне head.html Сайта вытаскиваешь это через
<metaproperty="og:title"content="{$page.ttl}" /> <metaproperty="og:description"content="{$page.descr}" /> <meta property="og:url" content="{$wa->domainUrl()}{$wa->currentUrl()}" /> и далее любые поля по смыслу
Или, если не критично использовать те же значения, что и в основных мета, то см. совет выше. Только не забудь проверку на {if $page.ttl} ну и т.д., чтобы теги с пустым content не выводить.
Там стоит установка "Использовать те же заголовки для соцсетей". Даже, если поменяем заголовки на произвольные. Разметка от этого разве появится на странице, созданной в приложении Сайт? Шаблон Дефолт 3.0.
Я бы в head.html приложения Сайт вставил вот такие строки
<meta property="og:title" content="{$wa->title()|escape}">
<meta property="og:description" content="{$wa->meta('description')|escape}" />
ну и т.д. по смыслу
Ясно. Короче говоря от нечего делать изучил код этого repair'a в 7-ке, сравнил со старой версией, перенес и обкатал на 6.3.0 метод emptyPath от 7-ки. Все прекрасно зачистилось. Вручную сравнил результаты по логу очистки. Прогнал несколько тестов на очистку специально созданных папок-ловушек. Все получилось. Спасибо за наводку! :)))
На 7-й версии работает (проверил на тестовом магазине). А на 6.3.0.44568 выдает ошибку #500 и как следствие структуру не исправляет. Некоторые экшены в module=repair всё же работают, но далеко не все. Те, которые не работают, приводят к ошибке 500.
Подобная конструкция может быть размещена в нескольких точках для блокировки возможности заказа (да и вообще для чего угодно) и не даст вывести нужный код после 20-00, до 10-00 и по субботам и воскресеньям.
При наличии прямых рук, светлой головы и полного доступа к шаблонам часы и дни работы можно даже вынести в настройки темы в файл theme.xml и включать по требованию эту систему.
По-моему лишние страны удаляются через запрос к базе данных напрямую в таблице wa_country. У меня такой же вопрос давным-давно возникал и я даже искать эти способы не стал, когда понял, что через админку страны не удалить. Зашел в базу и убрал всё лишнее. С тех пор так и работает.
При беглом осмотре выяснилось, что если не в облаке сидите, то можно подправить в /wa-apps/shop/widgets/sales/lib/shopSales.widget.php в функции getGraphData переменную $start_date и настанет счастье.
Есс-но это не то, что переписать целиком виджет с новыми настройками, но уже хоть что-то.
Первое с чем надо определиться в данной ситуации - это с тем как будете определять в какой категории был товар, которого уже нет?
В данной ситуации, на мой взгляд, решение зависит от типа URL страниц, который в вашем случае применяется.
В Магазине предлагаются три типа (не считая тех, что можно создать самостоятельно в routing.php):
Какой из них ваш?
Только в естественном случае можно хоть как-то отследить категорию товара. В остальных случаях по URL этого не сделать, а поскольку товар удален, то и в базе его уже нет и информации о категории тоже нет. Поэтому обратиться в базу тоже не получится.
Если только не хранить где-нибудь отдельную таблицу товарных передвижений (типа истории), связывающую для простоты product id, category id, category url, product url, но для этого такую таблицу надо создать, привязать к движку и автоматизировать её ведение.
в ответ на Редирект 404 товара на вышестояющую категорию
Я думал у меня одного такой глюк случился. Внимание на это обратил, но забил, т.к. картинки загрузились и то хорошо. :)
в ответ на Не сохраняются изменения в изображении из сообщений Хаба
Предлагаете уйти от MySQL в сторону, допустим, PostgreSQL или только хотя бы избавиться от MyISAM?
По поводу плагинов поддерживаю. Перед попаданием в магазин плагин надо очень тщательно "мучать" всеми способами, чтобы потом не было паники и ужаса.
в ответ на Перспективы роста
В погоне за глобальным иногда забывается исправление мелких и средних багов, которых порой накапливается немало. В лучшем случае правятся только критические, потому что "народ уже бунтует". Фразы типа "качественные изменения" всегда необходимо тщательно расшифровывать, начиная с вопрошающей стороны.
в ответ на Перспективы роста
Если упростить функционал, то в принципе зря тупил. Отказаться от JS крутилки картинок и подключить к миниатюрам или каким-нибудь эскизам 350х0 под основным фото напрямую swipebox, то и проблем нет, но тогда фото среднего размера 0x700 уже не посмотреть, кроме как главное (печалька). Однако теперь в swipebox можно задействовать вывод желанных title даже в режиме слайд-шоу для десктопного просмотра (ура).
Хочется сохранить функционал в виде работающих квадратиков миниатюр 96х96 с просмотром среднего размера 0х700 в зоне увеличенного изображения, а 350х0 оставить для других задач.
Возможно придется задействовать другой JS скрипт для миниатюр и основного фото в карточке продукта или существующий переписать. В текущей версии alt и title будут такие, как у картинки выводимой при первой загрузке страницы продукта в качестве основного фото будь она какая угодно по порядку в массиве изображений. Впрочем, не исключаю, что не до конца разобрался с тем, что есть, но желание ковырять код на сегодня пропало.
в ответ на Затупил с product-gallery в шаблоне product.html. Нужно правильно вывести description из массива $product.images.
Могу, но со временем совсем беда, т.к. своих несколько и два в неспешной разработке и ещё один в миграции с 309 версии. В режиме разовых консультаций мне было бы проще, чем подключаться на полный цикл. Конечно для начала хотелось бы оценить проект внешне. Мыло dm собака krasnоgorsk точка ru. Еще есть Телеграм постоянно онлайн.
в ответ на Почему на 7 сайт работает медленнее чем на 6 ?
На Фейсбук чего-то меняли в полях и какое-то время назад действительно поломалось. Они просто затерли URL в этом поле, поменяли название поля и просили ввести все заново, но в такой нелепой формулировке, что сразу не догадаться.
в ответ на Сломалась авторизация Facebook
А каким образом у вас делается бекап? Это архив всего-всего дерева каталогов и файлов + архив с дампом БД или как-то иначе создан?
в ответ на после обновления перестал работать сайт
Есть 100500 причин, по которым сайт работает "медленно". Полная диагностика включает не только анализ состояния движка, кода шаблонов, состава плагинов, оптимизации графики, настроек кеширования контента и т.п., но и полную проверку веб-сервера, состояние баз данных, оценку производительности, разные нагрузочные тесты и многое другое. Есс-но оптимизация отдаваемого контента - очень важная часть работы. Над этим надо работать постоянно. Вроде бы уже все ок, но всегда где-то что-то можно сделать лучше и из этих мелочей складывается общая картина. Выбор хостинга крайне важен в данном вопросе. Между 6 и 7 версией на тестах нет никаких отличий в плане производительности. Основная засада, если отойти от вопроса проблем с сервером, как правило в плагинах, их количестве, качестве и способе применения, графике и безумной перегрузке шаблонов всякими скриптами по поводу и без и избыточными css. Оптимально исполненные страницы и браузером быстрее рендерятся вобщем-то. Браузеру ведь тоже не всё равно что ему прилетает от сервера. Иной контент его и в ступор вогнать может. Ну да это всё лирика. :)
На мой взгляд, оптимальная отдача контента, должна выглядеть примерно так.
в ответ на Почему на 7 сайт работает медленнее чем на 6 ?
Если не ошибаюсь, то при наличии у одного товара ряда артикулов с разными ценами на витрину выводится цена того артикула, который отмечен в настройках товара в пункте "Цены и наличие" переключателем. Если отметить артикул с наименьшей ценой, то эта стоимость и будет выведена в шаблоне list-thumbs.html например.
А вам нужно, чтобы всегда выбиралась наименьшая стоимость из всех артикулов независимо от основного артикула?
На примере list-thumbs.html заменяем $p.price на $p.min_price, но при этом $p.compare_price будет от артикула по-умолчанию, если это вас устроит.
В зависимости от шаблонов таких замен может быть несколько и в разных местах. В некоторых шаблонах выводится сразу вилка цен от и до, но это тоже легко правится отключением вывода max_price, если надо заменить вилку на минимальную стоимость.
в ответ на Способ настройки отображаемой цены на витрине магазина
Искомый код у вас на сайте есть. Начинается он с <aside class="currency-toggle"> ... код ... </aside>.
Но по ощущениям сидит он не в футере, а в main.html (главный шаблон контента Магазина - Main storefront layout and navigation) где-то после строки {$content}. То, что вы его видите в футере не значит, что он там. Поищите ещё. Он не так глубоко спрятан. Почти на поверхности.
в ответ на Как отключить выбор валют в подвале сайта?(2)
Вкладки - это видимо элемент дизайна какой-то. Общие рекомендации таковы. При создании страницы, которую надо скрыть, прописываете ей дополнительный параметр menu=hide, а в коде шаблона, где формируется вывод страниц должно быть примерно так.
в ответ на Скрыть определенную вкладку в панели навигации
Если, как вы говорите, у вас выбор валюты в подвале сайта, то в шаблоне footer.html надо поискать примерно следующий код. В нем должны упоминаться слова currency.
И для проверки заключить этот код в такие скобки {* код *} или вообще убрать, если совсем не нужен.
Если совсем похожего кода нет, но слово currency в шаблоне встречается, то просто скопируйте код шаблона и вам подскажут, что именно в нём надо убрать.
в ответ на Как отключить выбор валют в подвале сайта?(2)
Ну да. Можно и так. Условие по url'ам. Просто увидел в примере попытки !$a@last и подумал про него. У меня, например, приложение Сайт есть, но в массиве wa-apps его нет, т.к. меню настроено вручную на два элемента, когда / = магазин, а /blog/ = новости.
в ответ на Как реализовать на сайте разметку Open Graph
Понял. Короче смотри. На самом деле это задается в двух местах.
Сайт - Дизайн - Настройки - Название поселения и ещё Сайт - Настройки - wa-apps меню - Настроить. Так вот это wa-apps меню является массивом с возможно несколькими элементами, причем, что самое интересное, во второй настройке название может не совпадать с первой настройкой. Из этого массива наверное и надо тянуть нужный элемент.
Код ниже выдернет из массива меню первый элемент и выведет его где надо.
Соответственно $a@last - последний, а !$a@last - все, кроме последнего.
в ответ на Как реализовать на сайте разметку Open Graph
Про блог и категории не уловил суть. Вроде речь о приложении Сайт и страницах его шла. Что с блогом не так? У блога свой head.html по идее есть. Туда всякое для него можно размещать. А в записях блога отдельно корректно настраиваются теги OG.
в ответ на Как реализовать на сайте разметку Open Graph
Потому что {if} {else} {/if} требует закрывающей части. Нельзя открыть {if} и оставить просто так. Поэтому и падало.
Небольшой пример с контентом, чтобы просто навести на мысль.
Для страниц, где тип контента указан, будет выводиться то, что указано. В остальных случаях website.
в ответ на Как реализовать на сайте разметку Open Graph
Я, прочитав вашу тему, заморочился для себя тоже такое сделать. У меня на сайте обычно страницы не используются, т.к. юзаю страницы магазина, где это работает из коробки, но ради морального удовлетворения запилил себе таки одну страницу. Всё вроде красивенько получилось.
В index.html head должен быть подключен так {include file="`$wa_active_theme_path`/head.html" inline}.
в ответ на Как реализовать на сайте разметку Open Graph
Еще совсем забыл среди ночи.
Для $page доступны следующие вещи.
Все эти вещи обрамляем красиво тегами в head.html Сайта
Для примера строка title с проверкой на отдельный og_title
Для видео будет так
в ответ на Как реализовать на сайте разметку Open Graph
Есть ещё небольшой лайфхак. Заходишь в редактор страницы и в дополнительных параметрах пишешь следующее:
descr=твой текст
ttl=твой тайтл
Затем в шаблоне head.html Сайта вытаскиваешь это через
Или, если не критично использовать те же значения, что и в основных мета, то см. совет выше.
Только не забудь проверку на {if $page.ttl} ну и т.д., чтобы теги с пустым content не выводить.
в ответ на Как реализовать на сайте разметку Open Graph
Там стоит установка "Использовать те же заголовки для соцсетей". Даже, если поменяем заголовки на произвольные. Разметка от этого разве появится на странице, созданной в приложении Сайт? Шаблон Дефолт 3.0.
Я бы в head.html приложения Сайт вставил вот такие строки
Уже хоть что-то будет вместо ничего.
в ответ на Как реализовать на сайте разметку Open Graph
Ясно. Короче говоря от нечего делать изучил код этого repair'a в 7-ке, сравнил со старой версией, перенес и обкатал на 6.3.0 метод emptyPath от 7-ки. Все прекрасно зачистилось. Вручную сравнил результаты по логу очистки. Прогнал несколько тестов на очистку специально созданных папок-ловушек. Все получилось. Спасибо за наводку! :)))
в ответ на Удаление товаров оставляет пустой каталог для оригиналов изображений
На 7-й версии работает (проверил на тестовом магазине). А на 6.3.0.44568 выдает ошибку #500 и как следствие структуру не исправляет. Некоторые экшены в module=repair всё же работают, но далеко не все. Те, которые не работают, приводят к ошибке 500.
в ответ на Удаление товаров оставляет пустой каталог для оригиналов изображений
Совсем-совсем старую можно посмотреть вот так "ваш домен/published/wbsadmin/html/scripts/wbsadmin.php"
в ответ на как узнать версию
Есть простое решение совсем на коленке.
Допустим, если мы хотим блокировать кнопку Купить или процесс оформления заказа. Определяем точку блокировки и накидываем на неё условие такого типа.
Подобная конструкция может быть размещена в нескольких точках для блокировки возможности заказа (да и вообще для чего угодно) и не даст вывести нужный код после 20-00, до 10-00 и по субботам и воскресеньям.
При наличии прямых рук, светлой головы и полного доступа к шаблонам часы и дни работы можно даже вынести в настройки темы в файл theme.xml и включать по требованию эту систему.
в ответ на Поставить временные интервалы на заказы
Админу бы по ластам настучать для начала не помешало бы, если он есть конечно.
в ответ на Ускорение работы сайта
Вот тут есть краткая инструкция о том как это сделать https://www.webasyst.ru/store/plugin/shop/opt/help...
Ну и поддержка плагина тоже есть https://itfrogs.ru/feedback/#shop/plugins/opt
в ответ на Несколько типов цен у товара
По-моему лишние страны удаляются через запрос к базе данных напрямую в таблице wa_country. У меня такой же вопрос давным-давно возникал и я даже искать эти способы не стал, когда понял, что через админку страны не удалить. Зашел в базу и убрал всё лишнее. С тех пор так и работает.
в ответ на Как оставить только страны таможенного союза?
При беглом осмотре выяснилось, что если не в облаке сидите, то можно подправить в /wa-apps/shop/widgets/sales/lib/shopSales.widget.php в функции getGraphData переменную $start_date и настанет счастье.
Есс-но это не то, что переписать целиком виджет с новыми настройками, но уже хоть что-то.
в ответ на Продажи за месяц
Да вроде бы теперь всё видно. Кеш браузера очистите на всякий случай.
в ответ на Кнопка "в корзину" или "купить" не отображается у товаров на сайте