Все, что нужно помнить о российском fashion-рынке

Ошибка 404 в модуле Анонсы мероприятий [310767], вспомогательный шаблон News Page.

Неверный адрес (news-grafik-novogo-sezona-shoesstar) или страница удалена. Проверьте SQL выражение для селекта айтема.

Документация по работе модуля Proto

Отладочная информация для модуля 310767 «Анонсы мероприятий»

JSON API: HashArray подробно в документации по API
TEXT API: TotalItemsUniqsPagesLetterBackwardForwardMinMaxFirstLastPrevNext

Основные параметры
  • Holder = 9278 (модуль использует эту подшивку)
  • holder_table = account_news (родная таблица подшивки)
  • module_table = account_news (таблица заданная для модуля)
  • qs-select = 1 (учитывать или нет параметры из QUERY_STRING)
Имена параметров из QUERY_STRING
  • qa_Id = news (параметр для идентификации айтема, например, news=1, где 1 — идентификатор ($URN) айтема. По умолчанию это префикс таблицы, т.е. news.)
  • qa_FirstItem = firstnews (параметр указывает с какого айтема начинается вывод списка на странице, например, firstnews=10, — показывать на странице 11,12 и далее айтем)
  • qa_ItemQuantity = quantnews (параметр для указания кол-ва айтемов на странице, например, quantnews=100, показывать по 100 айтемов на странице)
  • qa_Sort = sortnews (параметр указывает сортировку, например, sortnews=news_chr_name — сортировка по имени)
  • qa_Desc = descnews (параметр указывает прямой или обратный порядок сортировки, например, descnews=1 — включён обратный порядок)
Значения параметров из QUERY_STRING
  • $URN = grafik-novogo-sezona-shoesstar
  • @URN = grafik-novogo-sezona-shoesstar
  • $FirstItem = 0
  • $ItemQuantity = 18
Настройки для вычисления урлов
  • $current_page_qs = news_company (урл страницы)
  • @current_page_qs = news_company (все урлы, если их несколько)
  • $current_page_domain = undef (субдомен текущей страницы)

Используем сортировку по умолчанию из конфига (№0): news_dat_date

Настройки сортировки
  • SortBy = news_dat_date
  • Desc =
Все переменные %VARS1, которые можно использовать в sql-select, sql-where, data-mask, sql-groupby, sql-having, sql-limit
{ 'offset' : 0, 'row_count' : 18, 'remote_ip' : '34.231.247.139', 'lang' : undef, 'url_hex' : 'e5ebce5c32657c26c4e54af34616fe23', 'urn' : 'grafik-novogo-sezona-shoesstar', 'urns' : 'grafik-novogo-sezona-shoesstar', 'uri' : '/news_company/grafik-novogo-sezona-shoesstar.html?debug_info_show=310767&debug_info_log=310767', 'referer' : undef, 'method' : 'GET', 'page' : 15083, 'branch' : undef, 'account' : 980, 'domain' : 'zapomnibrand.ru', 'holder' : 9278, 'member' : undef, 'user' : 585627531, 'users' : 585627531, 'uri_string' : 'https://zapomnibrand.ru/news_company/grafik-novogo-sezona-shoesstar.html?debug_info_show=310767&debug_info_log=310767', 'uri_path_query' : '/news_company/grafik-novogo-sezona-shoesstar.html?debug_info_show=310767&debug_info_log=310767', 'uri_path' : '/news_company/grafik-novogo-sezona-shoesstar.html', 'query_string' : 'debug_info_show=310767&debug_info_log=310767', 'request_uri' : '/news_company/grafik-novogo-sezona-shoesstar.html?debug_info_show=310767&debug_info_log=310767', 'http_referer' : undef, 'http_host' : 'zapomnibrand.ru', 'http_scheme' : 'https://', 'browser_string' : undef, 'browser_version' : '2.0', 'engine_string' : undef, 'engine_version' : undef, 'os_string' : undef, 'device_string' : undef, 'robot_string' : 'CCBot', 'user_agent' : 'CCBot/2.0 (https://commoncrawl.org/faq/)', 'delayed' : undef, 'final_render' : undef, 'breadcrumbs' : sub { "DUMMY" }, 'sitesearch' : sub { "DUMMY" }, 'module_parent' : 306301, 'module' : 310767, 'status' : undef, 'Date' : '2019-09-15 23:52:16', 'p' : 'news_company', 'debug_info_log' : 310767, 'debug_info_show' : 310767, 'mime' : 'html', 'news' : 'grafik-novogo-sezona-shoesstar' }
Все алиасы (alias) и их выражения (select_expr) найденные в селекте
{ "news_uid_id" : "COALESCE(a.news_ref_link, a.news_uid_id)", "news_cnt_account" : "a.news_cnt_account", "news_hld_holder" : "a.news_hld_holder", "news_mbr_member" : "a.news_mbr_member", "news_chr_link" : "a.news_chr_link", "news_chr_name" : "news_chr_name", "news_txt_text" : "news_txt_text", "news_chr_href" : "news_chr_href", "news_img_image" : "news_img_image", "news_dat_date" : "news_dat_date", "news_rom_views" : "news_rom_views", "Hidden" : "( CASE WHEN news_chr_author <> '' THEN '' ELSE 'hide' END\t)", "news_chr_author" : "news_chr_author", "DateDate" : "DATE_FORMAT(a.news_dat_date,'%d.%m.%Y')", "DateTime" : "DATE_FORMAT(a.news_dat_date,'%H:%i')", "Type" : "CAST(news_enm_type AS CHAR)", "list_dat_date" : "news_dat_date", "list_dat_date1" : "news_dat_date1", "Day" : "DATE_FORMAT(news_dat_date,'%d')", "DayLast" : "DATE_FORMAT(news_dat_date1,'%d')", "Month" : "DATE_FORMAT(news_dat_date,'%m')", "Year" : "DATE_FORMAT(news_dat_date,'%Y')", "news_int_day" : "DATE_FORMAT(news_dat_date,'%d')", "news_int_month" : "DATE_FORMAT(news_dat_date,'%m')", "news_int_year" : "DATE_FORMAT(news_dat_date,'%Y')", "MonthText" : "(CASE DATE_FORMAT(news_dat_date,'%m')\tWHEN 1 THEN 'января'\tWHEN 2 THEN 'февраля'\tWHEN 3 THEN 'марта'\tWHEN 4 THEN 'апреля'\tWHEN 5 THEN 'мая'\tWHEN 6 THEN 'июня'\tWHEN 7 THEN 'июля'\tWHEN 8 THEN 'августа'\tWHEN 9 THEN 'сентября'\tWHEN 10 THEN 'октября'\tWHEN 11 THEN 'ноября'\tWHEN 12 THEN 'декабря'\tEND)", "news_smp_create" : "news_smp_create", "news_smp_update" : "news_smp_update" }
Алгоритм вычислеия УРЛов

Цепочку модулей до конечной страницы айтема (ф-ия SeekModule) не ищем.

Параметры из QUERY_STRING для пагинации
{}

Айтем ищем по его URN (news_chr_link=grafik-novogo-sezona-shoesstar).

Запрос для выборки одного айтема
SELECT COALESCE(a.news_ref_link, a.news_uid_id) AS news_uid_id, a.news_cnt_account, a.news_hld_holder, a.news_mbr_member, a.news_chr_link, news_chr_name, news_txt_text, news_chr_href, news_img_image, news_dat_date, news_rom_views, ( CASE WHEN news_chr_author <> '' THEN '' ELSE 'hide' END ) AS Hidden, news_chr_author, DATE_FORMAT(a.news_dat_date,'%d.%m.%Y') AS DateDate, DATE_FORMAT(a.news_dat_date,'%H:%i') AS DateTime, # DATE_FORMAT(a.news_dat_date1,'%d.%m.%Y') AS Date1Date, # DATE_FORMAT(a.news_dat_date1,'%H:%i') AS Date1Time, CAST(news_enm_type AS CHAR) AS Type, news_dat_date AS list_dat_date, news_dat_date1 AS list_dat_date1, DATE_FORMAT(news_dat_date,'%d') AS Day, DATE_FORMAT(news_dat_date1,'%d') AS DayLast, DATE_FORMAT(news_dat_date,'%m') AS Month, DATE_FORMAT(news_dat_date,'%Y') AS Year, DATE_FORMAT(news_dat_date,'%d') AS news_int_day, DATE_FORMAT(news_dat_date,'%m') AS news_int_month, DATE_FORMAT(news_dat_date,'%Y') AS news_int_year, (CASE DATE_FORMAT(news_dat_date,'%m') WHEN 1 THEN 'января' WHEN 2 THEN 'февраля' WHEN 3 THEN 'марта' WHEN 4 THEN 'апреля' WHEN 5 THEN 'мая' WHEN 6 THEN 'июня' WHEN 7 THEN 'июля' WHEN 8 THEN 'августа' WHEN 9 THEN 'сентября' WHEN 10 THEN 'октября' WHEN 11 THEN 'ноября' WHEN 12 THEN 'декабря' END) AS MonthText, news_smp_create, news_smp_update FROM account_news a WHERE a.news_cnt_account=980 AND a.news_hld_holder IN(9278) AND a.news_mbr_member = 0 AND news_dat_date >= NOW() AND news_enm_spec = "NO" AND a.news_chr_link LIKE ? ORDER BY news_dat_date LIMIT 1 (где знак '?' заменяется на значение 'grafik-novogo-sezona-shoesstar')

Запрос вернул ноль строк. Не нашли айтем по его URN. Другими словами это ошибка 404.



Краткая справка

Модуль выполняет два варианта запросов к БД:

  • 1) ВАРИАНТ 1. выборка списка всех айтемов из таблицы account_news, ограниченных пагинацией (здесь firstnews=0, quantnews=18).
  • 2) ВАРИАНТ 2. выборка одного айтема из таблицы account_news, если задан его URN идентификатор (англ. Uniform Resource Name), здесь это значение параметра news в QUERY_STRING.
    • Путь по сайту (breadcrumbs) вычисляем, если Page CONTAINER не является главным шаблоном модуля (это не модуль типа Menu) и шаблон не работает с корзиной (отсутствуют в HTML-коде шаблона плейсхолдеры ##BuyerBasketUpdate##, ##BuyerUpdate##).
    • Ошибка 404 возникает если айтем не найден по его $URN. Исключение: $URN=% — ошибки не будет.
Плейсхолдеры, которые можно использовать в шаблоне
{ "Account" : "980", "Holder" : "9278", "Member" : null, "Function" : "news", "UserID" : 585627531, "Users" : "Функция", "Letter" : "Функция", "Pages" : "Функция", "Backward" : "Функция", "Forward" : "Функция", "PagePos" : "Функция", "PageQuantity" : "Функция", "Pos" : "Функция", "Min" : "Функция", "Max" : "Функция", "Last" : "Функция", "First" : "Функция", "Prev" : "Функция", "Next" : "Функция", "Total" : "Функция", "Items" : "Функция", "Uniqs" : "Функция", "Hash" : "Функция", "Array" : "Функция", "Listing" : "Функция", "Union" : "/news_company/union.html", "Data_uid_id" : "news_uid_id", "Data_hld_holder" : "news_hld_holder", "Data_mbr_member" : "news_mbr_member", "Data_chr_link" : "news_chr_link", "Data_ref_link" : null, "Data_lng_language" : null, "Data_chr_name" : "news_chr_name", "Data_chr_title" : null, "Data_txt_descr" : null, "Data_txt_keywords" : null, "QA" : "news", "QA_Page" : "p", "QA_ItemQuantity" : "quantnews", "QA_FirstItem" : "firstnews", "QA_Sort" : "sortnews", "QA_Desc" : "descnews", "Return" : null, "ItemQuantity" : "18", "FirstItem" : "0", "QSPage" : "news_company", "BaseHref" : null, "main-Module" : "310767", "page-Module" : "Функция", "parent-Module" : 306301, "SQL" : "SELECT\r\n\tCOALESCE(a.news_ref_link, a.news_uid_id) AS news_uid_id,\r\n\ta.news_cnt_account,\r\n\ta.news_hld_holder,\r\n\ta.news_mbr_member,\r\n\ta.news_chr_link,\r\n\r\n\tnews_chr_name,\r\n\tnews_txt_text,\r\n\tnews_chr_href,\r\n\tnews_img_image,\r\n\tnews_dat_date,\r\n\tnews_rom_views,\r\n\r\n\t(\r\n\t CASE\r\n\t WHEN news_chr_author <> ''\r\n\t THEN ''\r\n\t ELSE 'hide'\r\n\t END\r\n\t) AS Hidden,\r\n\tnews_chr_author,\r\n\r\n\t\r\n\tDATE_FORMAT(a.news_dat_date,'%d.%m.%Y') AS DateDate,\r\n\tDATE_FORMAT(a.news_dat_date,'%H:%i') AS DateTime,\r\n\t\r\n#\tDATE_FORMAT(a.news_dat_date1,'%d.%m.%Y') AS Date1Date,\r\n#\tDATE_FORMAT(a.news_dat_date1,'%H:%i') AS Date1Time,\r\n\tCAST(news_enm_type AS CHAR) AS Type,\r\n\t\r\n\tnews_dat_date AS list_dat_date,\r\n\tnews_dat_date1 AS list_dat_date1,\r\n\tDATE_FORMAT(news_dat_date,'%d') AS Day,\r\n\tDATE_FORMAT(news_dat_date1,'%d') AS DayLast,\r\n\tDATE_FORMAT(news_dat_date,'%m') AS Month,\r\n\tDATE_FORMAT(news_dat_date,'%Y') AS Year,\r\n\t\r\n\tDATE_FORMAT(news_dat_date,'%d') AS news_int_day,\r\n\tDATE_FORMAT(news_dat_date,'%m') AS news_int_month,\r\n\tDATE_FORMAT(news_dat_date,'%Y') AS news_int_year,\r\n\r\n\t(CASE DATE_FORMAT(news_dat_date,'%m')\r\n\t\tWHEN 1 THEN 'января'\r\n\t\tWHEN 2 THEN 'февраля'\r\n\t\tWHEN 3 THEN 'марта'\r\n\t\tWHEN 4 THEN 'апреля'\r\n\t\tWHEN 5 THEN 'мая'\r\n\t\tWHEN 6 THEN 'июня'\r\n\t\tWHEN 7 THEN 'июля'\r\n\t\tWHEN 8 THEN 'августа'\r\n\t\tWHEN 9 THEN 'сентября'\r\n\t\tWHEN 10 THEN 'октября'\r\n\t\tWHEN 11 THEN 'ноября'\r\n\t\tWHEN 12 THEN 'декабря'\r\n\tEND) AS MonthText,\r\n\t\r\n\t news_smp_create,\r\n\t news_smp_update\nFROM account_news a\n\tWHERE a.news_cnt_account=980\r\nAND a.news_hld_holder IN(9278)\r\nAND a.news_mbr_member = 0\n\tAND news_dat_date >= NOW() AND news_enm_spec = \"NO\"\n\t AND a.news_chr_link LIKE ? \n\t\n\t\n\tORDER BY news_dat_date \n\tLIMIT 1 /*URN item*/", "Timing" : "Функция", "AuthLogin" : "Функция", "CONF_News_enm_spec" : "", "CONF_News_enm_flag" : "", "CONF_News_chr_href" : "", "CONF_News_txt_keywords" : "", "CONF_SortBy" : "news_dat_date", "CONF_News_img_image" : "", "CONF_News_chr_city" : "", "CONF_PageQuantity" : "", "CONF_SqlUpdateSet" : "", "CONF_News_chr_author" : "", "CONF_DefaultItem" : "", "CONF_ItemQuantity" : "18", "CONF_News_hgt_image" : "", "CONF_Qs_Page" : "", "CONF_News_enm_type" : "", "CONF_News_smp_update" : "", "CONF_News_usr_user" : "", "CONF_SqlFrom" : "FROM account_news a", "CONF_SqlHaving" : "", "CONF_News_hgt_image2" : "", "CONF_News_txt_descr" : "", "CONF_ShortText" : "300", "CONF_News_img_image2" : "", "CONF_SqlSelect" : "SELECT\r\n\tCOALESCE(a.news_ref_link, a.news_uid_id) AS news_uid_id,\r\n\ta.news_cnt_account,\r\n\ta.news_hld_holder,\r\n\ta.news_mbr_member,\r\n\ta.news_chr_link,\r\n\r\n\tnews_chr_name,\r\n\tnews_txt_text,\r\n\tnews_chr_href,\r\n\tnews_img_image,\r\n\tnews_dat_date,\r\n\tnews_rom_views,\r\n\r\n\t(\r\n\t CASE\r\n\t WHEN news_chr_author <> ''\r\n\t THEN ''\r\n\t ELSE 'hide'\r\n\t END\r\n\t) AS Hidden,\r\n\tnews_chr_author,\r\n\r\n\t\r\n\tDATE_FORMAT(a.news_dat_date,'%d.%m.%Y') AS DateDate,\r\n\tDATE_FORMAT(a.news_dat_date,'%H:%i') AS DateTime,\r\n\t\r\n#\tDATE_FORMAT(a.news_dat_date1,'%d.%m.%Y') AS Date1Date,\r\n#\tDATE_FORMAT(a.news_dat_date1,'%H:%i') AS Date1Time,\r\n\tCAST(news_enm_type AS CHAR) AS Type,\r\n\t\r\n\tnews_dat_date AS list_dat_date,\r\n\tnews_dat_date1 AS list_dat_date1,\r\n\tDATE_FORMAT(news_dat_date,'%d') AS Day,\r\n\tDATE_FORMAT(news_dat_date1,'%d') AS DayLast,\r\n\tDATE_FORMAT(news_dat_date,'%m') AS Month,\r\n\tDATE_FORMAT(news_dat_date,'%Y') AS Year,\r\n\t\r\n\tDATE_FORMAT(news_dat_date,'%d') AS news_int_day,\r\n\tDATE_FORMAT(news_dat_date,'%m') AS news_int_month,\r\n\tDATE_FORMAT(news_dat_date,'%Y') AS news_int_year,\r\n\r\n\t(CASE DATE_FORMAT(news_dat_date,'%m')\r\n\t\tWHEN 1 THEN 'января'\r\n\t\tWHEN 2 THEN 'февраля'\r\n\t\tWHEN 3 THEN 'марта'\r\n\t\tWHEN 4 THEN 'апреля'\r\n\t\tWHEN 5 THEN 'мая'\r\n\t\tWHEN 6 THEN 'июня'\r\n\t\tWHEN 7 THEN 'июля'\r\n\t\tWHEN 8 THEN 'августа'\r\n\t\tWHEN 9 THEN 'сентября'\r\n\t\tWHEN 10 THEN 'октября'\r\n\t\tWHEN 11 THEN 'ноября'\r\n\t\tWHEN 12 THEN 'декабря'\r\n\tEND) AS MonthText,\r\n\t\r\n\t news_smp_create,\r\n\t news_smp_update", "CONF_News_ind_index" : "", "CONF_SqlWhereQsMatch" : "", "CONF_News_set_property" : "", "CONF_QsSelect" : "1", "CONF_SqlUpdateTable" : "", "CONF_Link3" : "", "CONF_Link1" : "", "CONF_News_uid_id" : "", "CONF_SortBy2" : "", "CONF_News_smp_create" : "", "CONF_FunctionTable" : "account_news", "CONF_SqlGroupby" : "", "CONF_News_rom_views" : "", "CONF_News_chr_name" : "", "CONF_News_tmb_160x120image" : "", "CONF_News_dat_date1" : "", "CONF_News_wth_image2" : "", "CONF_QsId" : "news", "CONF_SortBy3" : "", "CONF_SqlLimit" : "LIMIT 18 OFFSET 0", "CONF_ForeignAccount" : "", "CONF_News_wth_image" : "", "CONF_ShowEmpty" : "1", "CONF_SqlWhere" : "WHERE a.news_cnt_account=980\r\nAND a.news_hld_holder IN(9278)\r\nAND a.news_mbr_member = 0", "CONF_CustomParent" : "", "CONF_SqlUpdateWhere" : "", "CONF_ColumnCount" : 0, "CONF_News_dat_date" : "", "CONF_News_txt_text" : "", "CONF_News_chr_place" : "", "CONF_Link2" : "", "CONF_DataMask" : "news_dat_date >= NOW() AND news_enm_spec = \"NO\"", "CONF_News_chr_title" : "", "CONF_ColumnFormat" : "1", "CONF_News_chr_link" : "", "CONF_SqlUpdateLimit" : "", "CONF_News_chk_attribute2" : "", "CONF_News_chk_attribute" : "", "News_Href" : "Функция", "([A-Z][a-z]+)Update" : "Функция", "([a-z]+_[a-z]+)Update" : "Функция" }

ВАРИАНТ 1. Показываем страницу айтема. Параметр URN (имя news в QUERY_STRING) определён (значение равно grafik-novogo-sezona-shoesstar). Соотвтественно айтем выбран.

Выбираем модуль из списка доступных шаблонов ('News Page', 'Анонсы мероприятий') с ролью module_role=CONTAINER:

Условие выполнено (MATCH) для шаблона: «News Page»

SELECT 'grafik-novogo-sezona-shoesstar' is not null

Нашли шаблон (Page CONTAINER) для страницы айтема — 310769 «News Page».