Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

Яндекс выпустил инструмент Видимость сайта в Алисе AI.

Яндекс выпустил инструмент Видимость сайта в Алисе AI.

С тех пор, как в поисковиках появились нейроответы ИИ, трафик на сайты стал гораздо меньше, так как пользователь стал получать информацию непосредственно на странице поисковика без перехода на сайт. Но при генерации ответа ИИ указывает источники - ссылки на сайты, информация которых была использована для генерации ответа.

Долгое время у всех был немой вопрос: "Как же теперь оценивать эффективность сайта?". Теперь этот на этот вопрос отчасти отвечает новый инструмент аналитики.
Процитируем справку Яндекса по инструменту:
На запросы пользователей в Поиске может отвечать Алиса AI. Ответы появляются в поисковой выдаче, в объектных ответах и на отдельной вкладке Поиска. В них чаще всего упоминаются страницы сайтов, на которые Алиса AI опиралась при подготовке ответа.

С помощью инструмента Видимость сайта в Алисе AI в Яндекс Вебмастере вы можете:
- узнать долю упоминаний сайта среди источников в ответах Алисы AI в Поиске и отследить динамику изменений;
- посмотреть примеры запросов, по которым страницы сайта показываются в ответах Алисы AI;
- посмотреть примеры сайтов той же тематики, которые часто упоминаются в генеративной выдаче.
Данные отображаются за последние 3 месяца и обновляются каждую неделю.

Статистика собирается только по тем запросам, по которым ваш сайт уже находится достаточно высоко в поисковой выдаче. Это позволяет анализировать видимость именно в той нише, где вы заинтересованы в продвижении, и избегать «размытия» по малозначимым для вас запросам.

Кроме того, такой подход обусловлен работой Алисы AI: она строит ответ с опорой на самые релевантные, информативные и качественные страницы, которые обычно занимают высокие позиции в Поиске.

Чтобы увидеть статистику вашего сайта в меню Яндекс.Вебмастера перейдите в раздел "Эффективность" и далее в "Показы сайта в Алисе AI".

В начале февраля 2026г. был вебинар с Михаилом Сливинским - амбассадором Поиска Яндекса, и в рамках вебинара была озвучена просьба сделать такой инструмент. Скорее всего разработка на тот момент уже велась, потому что от просьбы до релиза прошло около 2-х месяцев. В любом случае хорошо, что такая статистика появилась.

Показы сайта в Алисе AI в вашем Яндекс,Вебмастере.

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 690 Ответов
  • 184403 Просмотров
*

tom1501

  • Осваиваюсь на форуме
  • 22
  • 1 / 0
Использую вариант с 15стр от necro2000 http://joomlaforum.ru/index.php/topic,59209.msg699896.html#msg699896

Код
<?php
//Пропишите для своей БД, пропишите наименование магазина, про адрес www.**********.ru тоже не забудьте
$hostname = "**************";
$username = "**************";
$password = "**************";
$dbName = "**************";
$category = "jos_vm_category";
$category_xref = "jos_vm_category_xref";
$userstable = "jos_vm_product";
$pricetable = "jos_vm_product_price";

$product_category_xref =  "jos_vm_product_category_xref";
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName) or die(mysql_error());
mysql_query('set names cp1251');

include '../configuration.php';

$cfg = new JConfig();


echo"<?xml version='1.0' encoding='windows-1251'?>\n";
echo"<!DOCTYPE yml_catalog SYSTEM 'shops.dtd'>\n";
echo"<yml_catalog date=\"";
echo date('Y-m-d H:i');
echo"\">\n";
echo"<shop>\n";
//Здесь название магазина
echo"<name>**************</name>\n";
echo"<company>**************</company>\n";
echo"<url>**************</url>\n";
echo"<currencies>\n";
echo"<currency  id=\"UAH\" rate=\"1\"/>\n";
echo"</currencies>\n";
echo"<categories>\n";
$query_cat = "SELECT * FROM $category_xref";
$res_cat = mysql_query($query_cat) or die(mysql_error());
$rw=1;
while ($row_cat=mysql_fetch_array($res_cat)) {
$cat_parent_id=$row_cat['category_parent_id'];
$cat_child_id=$row_cat['category_child_id'];
$query2 = "SELECT category_name FROM $category WHERE category_publish='Y' and category_id=".$row_cat['category_child_id'];
$res_cat1 = mysql_query($query2) or die(mysql_error());
$name_cat=mysql_fetch_array($res_cat1);
$cat_name=$name_cat['category_name'];
if ($cat_parent_id==0) {
echo"<category id=\"".$cat_child_id."\">".$cat_name."</category>\n";
}
else {
echo"<category id=\"".$cat_child_id."\" parentId=\"".$cat_parent_id."\">".$cat_name."</category>\n";
}
$rw++;
}
echo"</categories>\n";

echo"<offers>\n";



$tb_product = $cfg->dbprefix."vm_product";

$tb_manufacturer = $cfg->dbprefix."vm_manufacturer";

$tb_product_mf_xref = $cfg->dbprefix."vm_product_mf_xref";

$tb_category = $cfg->dbprefix."vm_category";

$tb_product_category_xref = $cfg->dbprefix."vm_product_category_xref";

$tb_price = $cfg->dbprefix."vm_product_price";



$query = "

SELECT

$tb_product.product_id,

$tb_product.product_name,

$tb_manufacturer.mf_name,

$tb_manufacturer.manufacturer_id,

$tb_category.category_name,

$tb_category.category_id,

$tb_product_category_xref.category_id,

$tb_price.product_price,

$tb_product.product_sku,

$tb_product.product_in_stock,

$tb_product.product_unit,

$tb_product.product_full_image,

$tb_product.product_s_desc,

$tb_product.product_weight

FROM

($tb_product_category_xref

RIGHT JOIN ($tb_price

RIGHT JOIN (($tb_product_mf_xref

RIGHT JOIN $tb_product

ON $tb_product_mf_xref.product_id = $tb_product.product_id)

LEFT JOIN $tb_manufacturer

ON $tb_product_mf_xref.manufacturer_id = $tb_manufacturer.manufacturer_id)

ON $tb_price.product_id = $tb_product.product_id)

ON $tb_product_category_xref.product_id = $tb_product.product_id)

LEFT JOIN $tb_category

ON $tb_product_category_xref.category_id = $tb_category.category_id

WHERE $tb_product.product_publish='Y' and $tb_product.product_in_stock>0

";



$row = d2a($query);

$product_log = Array();

for($i=0;$i<count($row);$i++) {

if (!in_array($row[$i]['product_id'],$product_log) AND ($row[$i]['product_price'])) {

$product_log[] = $row[$i]['product_id'];




$url="http://**************.com.ua/index.php?page=shop.product_details&amp;option=com_virtuemart&amp;flypage=flypage.tpl&amp;product_id=".$row[$i]['product_id'];



$product_full_image = "http://**************.com.ua/components/com_virtuemart/shop_image/product/".$row[$i]['product_full_image'];

$tags = Array ('{product_name}','{product_desc}');

$repl = Array ($row[$i]['product_name'],$row[$i]['product_s_desc']);

$product_price = substr($row[$i]['product_price'], 0, -3);

$product_cat_id=$row[$i]['category_id'];

echo"\n<offer id=\"".$row[$i]['product_id']."\" available=\"true\" bid=\"$bid\">\n";

echo"<url>".$url."</url>\n";

echo"<price>$product_price</price>\n";

// Валюта в которой указаны Ваши цены

echo"<currencyId>UAH</currencyId>\n";

echo"<categoryId>".$product_cat_id."</categoryId>\n";

echo"<picture>".$product_full_image ."</picture>\n";

// Возможность доставки

echo"<delivery>true</delivery> \n";

echo"<name>".HtmlSpecialChars(strip_tags($row[$i]['product_name']))."</name>\n";

echo"<description>".HtmlSpecialChars(strip_tags(str_replace($tags,$repl,$description_template)))."</description>\n";

echo"</offer>\n";

}

}



echo"</offers>\n";
echo"</shop>\n";
echo"</yml_catalog>\n";
function d2a($query){

    $result = mysql_query($query) or die("Query failed : " . mysql_error());

    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {$res[] = $line;}

    mysql_free_result($result);

    return $res;

}


?>

Проблема - не выводится описание товара

Код
<offer id="56" available="true" bid="">
<url>http://********.com.ua/index.php?page=shop.product_details&amp;option=com_virtuemart&amp;flypage=flypage.tpl&amp;product_id=56</url>
<price>33.53</price>
<currencyId>UAH</currencyId>
<categoryId>34</categoryId>
<picture>http://******.com.ua/components/com_virtuemart/shop_image/product/sylvania_grolux.jpg</picture>
<delivery>true</delivery>
<name>Sylvania Grolux F15W/T8/G13</name>
<description></description>
</offer>

На сайте есть полное описание + краткое описание. В чем может быть проблема?
*

alexfox

  • Новичок
  • 6
  • 3 / 0
Установил скрипт - всё работает, но есть проблемка:
В базе VirtueMart содержится две цены на товар (ОПТ и Розница, по умолчанию выставлена - Розница), но в файл Яндекса выводится ОПТовый ценник...естественно, нужна цена розницы, т.е. та, которая выводится в интернет-магазине.
Подскажите как это исправить не переделывая весь скрпит?
*

likklir

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Установил скрипт - всё работает, но есть проблемка:
В базе VirtueMart содержится две цены на товар (ОПТ и Розница, по умолчанию выставлена - Розница), но в файл Яндекса выводится ОПТовый ценник...естественно, нужна цена розницы, т.е. та, которая выводится в интернет-магазине.
Подскажите как это исправить не переделывая весь скрпит?

в строку " WHERE $tb_product.product_publish='Y' " добавь " and $tb_price.shopper_group_id='2' " цифра два это номер твоей цены, посмотри его в таблице "jos_vm_product_price" в столбике "shopper_group_id" напротив нужных цен.

Если у тебя всего 2 цены то скорее всего это будет цифра "2"

как сделать вариант с указанием наличия товара на складе?

на 15 стр. есть вариант, когда экспортируются только опубликованные категории и товары в наличии. А как сделать, чтобы экспортировались все товары, но при этом указывалось наличие - есть на складе или под заказ?

Чтобы выводило весь товар удали строчку " WHERE $tb_product.product_publish='Y' ", если у тебя  " WHERE $tb_product.product_publish='Y' and еще что то", то удали только " $tb_product.product_publish='Y' and "
« Последнее редактирование: 25.11.2010, 20:29:54 от likklir »
*

sutkind

  • Новичок
  • 7
  • 0 / 0
Как выгрузить через скрипт в yml не все категории, а только нужные мне?
А то у нас на сайте есть комиссионный отдел, а Яндекс категорически против б/у товаров.
*

likklir

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Как выгрузить через скрипт в yml не все категории, а только нужные мне?
А то у нас на сайте есть комиссионный отдел, а Яндекс категорически против б/у товаров.

Могу предложить тебе в  старых товарых в кратком описание ввести б/у, а в коде добавь проверку в строку " WHERE $tb_product.product_publish='Y' " добавь " and $product.product_s_desc=NULL".
Должно сработать. Только поле "краткое описание" у не б/у должно быть пустым. Тут уже сам смотри каких товаров больше б/у или новых. Если новых меньше то можешь у них поставить в кратком описание "new" и тогда надо будет добавить " and $product.product_s_desc="new" ". Вообщем пробуй.
*

sutkind

  • Новичок
  • 7
  • 0 / 0
Интересный ход! Спасибо. Может какие-то еще есть варианты? Может в описании КАТЕГОРИИ что-нибудь поставить? И сделать в проверку на отсутствие (наличие) такого описания? Какие поля за это отвечают?
*

likklir

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Интересный ход! Спасибо. Может какие-то еще есть варианты? Может в описании КАТЕГОРИИ что-нибудь поставить? И сделать в проверку на отсутствие (наличие) такого описания? Какие поля за это отвечают?

Забыл про категории =). можете фильтровать и по ним например " and $tb_product_category_xref.category_id<>?" вместо ? вписать номер ненужной категории. Так не надо будет вносить изменения в товар, но если таких категорий будет много то запрос в БД прибавит в весе.
« Последнее редактирование: 28.11.2010, 19:15:32 от likklir »
*

sutkind

  • Новичок
  • 7
  • 0 / 0
Забыл про категории =). можете фильтровать и по ним например " and $tb_product_category_xref.category_id<>?" вместо ? вписать номер ненужной категории. Так не надо будет вносить изменения в товар, но если таких категорий будет много то запрос в БД прибавит в весе.
Делал так. не выдает в YML файл указанную категорию, но товары из этой категории все равно присутствуют в YML файле. не могу победить это.
Можно как-то с вами по icq или по почте пообщаться?
icq 774480
*

likklir

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Соберу все вместе и попробую расписать подробнее.
Приведу вариант когда надо чтобы в Яндекс маркете не опубликовывалась категория 15 и ее подкатегории 16,17,18.

1. В код формирования списка категорий добавляем условие, при котором не будут учитываться категория 15 и ее подкатегории:
Код
echo"<categories>\n";
$query_cat = "SELECT * FROM $category_xref WHERE $category_xref.category_parent_id<>15 AND $category_xref.category_child_id<>15";
$res_cat = mysql_query($query_cat) or die(mysql_error());
$rw=1;

2. В код формирования товара добавляем условие, при котором не будут учитываться категории 15,16,17,18:
Код
LEFT JOIN $tb_category
ON $tb_product_category_xref.category_id = $tb_category.category_id
WHERE $tb_product.product_publish='Y' AND $tb_category.category_id not in('15','16','17','18')
";

Пока не нашел способ упростить проверку на втором шаге. когда подкатегорий больше 3 то не очень приятный код получается.
*

sutkind

  • Новичок
  • 7
  • 0 / 0
Соберу все вместе и попробую расписать подробнее.
Приведу вариант когда надо чтобы в Яндекс маркете не опубликовывалась категория 15 и ее подкатегории 16,17,18.

1. В код формирования списка категорий добавляем условие, при котором не будут учитываться категория 15 и ее подкатегории:
Код
echo"<categories>\n";
$query_cat = "SELECT * FROM $category_xref WHERE $category_xref.category_parent_id<>15 AND $category_xref.category_child_id<>15";
$res_cat = mysql_query($query_cat) or die(mysql_error());
$rw=1;

2. В код формирования товара добавляем условие, при котором не будут учитываться категории 15,16,17,18:
Код
LEFT JOIN $tb_category
ON $tb_product_category_xref.category_id = $tb_category.category_id
WHERE $tb_product.product_publish='Y' AND $tb_category.category_id not in('15','16','17','18')
";

Пока не нашел способ упростить проверку на втором шаге. когда подкатегорий больше 3 то не очень приятный код получается.

Огромное тебе спасибо, земляк!
*

a_pesikov

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
А есть модификация что бы ссылки выдавались такие же как sh404SEF выдает. А то Яндекс цены не вяжет со страницами в своем поиске :( ТАк как на сайте проиндексировано ЧПУ а в XML без!
*

likklir

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
А есть модификация что бы ссылки выдавались такие же как sh404SEF выдает. А то Яндекс цены не вяжет со страницами в своем поиске :( ТАк как на сайте проиндексировано ЧПУ а в XML без!

Врятли такая модификация выложена. Тут надо переписывать код формирования url. Если есть желание посмотрите как sh404SEF формирует url и выдерните от туда нужный код.
*

biaggi32

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Подскажите пожалуйста, как добавить полное описание товара товара в <description>, или заменить краткое описание на полное описание?
*

biaggi32

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Подскажите пожалуйста, как добавить полное описание товара товара в <description>, или заменить краткое описание на полное описание?
Уже сам сделал, вопрос снят... А вот по поводу ЧПУ в XML, то это было бы очень хорошо. Если кто знает как сделать ЧПУ в прайс-листе, поделитесь...

Господа помогите пожалуйста - что делать? при валидации вот такая ошибка

http://www.starshina67.ru/market.php
Определена кодировка: utf-8 (строка 0, столбец 0)
Дата из файла: 2010-12-03 17:37 (строка 3, столбец 113)
Ошибка: Не указано название категории (строка 131, столбец 46)
Фатальная ошибка: Фид отклонен
*

likklir

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Господа помогите пожалуйста - что делать? при валидации вот такая ошибка

http://www.starshina67.ru/market.php
Определена кодировка: utf-8 (строка 0, столбец 0)
Дата из файла: 2010-12-03 17:37 (строка 3, столбец 113)
Ошибка: Не указано название категории (строка 131, столбец 46)
Фатальная ошибка: Фид отклонен

После того как сформировались твои 32211 категорий =). Выпадает ошибка:
Код
<offers>
<br />
<b>Fatal error</b>:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 43 bytes) in <b>/home/u227113/starshina67.ru/www/market.php</b> on line <b>182</b><br />

Примерный перевод: Позволенная емкость памяти 33554432 байтов исчерпана.

Про то где менять настройки выделения памяти писали выше.
*

sutkind

  • Новичок
  • 7
  • 0 / 0


Примерный перевод: Позволенная емкость памяти 33554432 байтов исчерпана.

Про то где менять настройки выделения памяти писали выше.


в настройках php у хостера
*

Maxd

  • Новичок
  • 7
  • 1 / 0
Господа помогите пожалуйста - что делать? при валидации вот такая ошибка

http://www.starshina67.ru/market.php
Определена кодировка: utf-8 (строка 0, столбец 0)
Дата из файла: 2010-12-03 17:37 (строка 3, столбец 113)
Ошибка: Не указано название категории (строка 131, столбец 46)
Фатальная ошибка: Фид отклонен
ошибка таже... если использовать код выложенный на 15 странице (с модификацией – не отображает товары которых нет в наличии и категории которые скрытые на сайте) то скрытые категории на сайте в yml отображаются как
Код
<category id="28"></category>
<category id="29" parentId="28"></category>
<category id="30" parentId="28"></category>

также описание у товаров отсуствует
Код
<name>Шампунь Head and Shoulders «Гладкие и шелковистые 2в1» 200мл."</name>
<description></description>
</offer>

как бороться не знаю не селен в написание... мот кто вылечит беду?

(описание не работало из за отсутствия строчки $description_template = '{product_desc}'; )

вернул пока что скрытые категории обратно в Yml
заменил строчку
$query2 = "SELECT category_name FROM $category WHERE category_publish='Y' and category_id=".$row_cat['category_child_id'];
на строчку
$query2 = "SELECT category_name FROM $category WHERE category_id=".$row_cat['category_child_id'];
при этом товары которых нет в наличии в yml не отображаются...
« Последнее редактирование: 05.12.2010, 04:15:51 от Maxd »
*

likklir

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Maxd, попробую вам помочь.

Попробуйте вот так:
1.  Оставляем вашу проверку в покое
Код
$query2 = "SELECT category_name FROM $category WHERE category_publish='Y' and category_id=".$row_cat['category_child_id'];

2. Добавляем проверку на наличие имени у категории
Код
	$cat_name=$name_cat['category_name'];
if ($cat_name<>NULL) {
if ($cat_parent_id==0) {
echo"<category id=\"".$cat_child_id."\">".$cat_name."</category>\n";
}
else {
echo"<category id=\"".$cat_child_id."\" parentId=\"".$cat_parent_id."\">".$cat_name."</category>\n";
}}
$rw++;

3. Добавляем в проверку для вывода товара условие на проверку опубликована ли категория товара
Код
ON $tb_product_category_xref.category_id = $tb_category.category_id
WHERE $tb_product.product_publish='Y' and $tb_category.category_publish<>'Y'
";

Напомню, что код изменен под ваши условия:
  • не показывать в YML неопубликованные категории и товары из этих категорий
  • не показывать неопубликованные товары

По поводу описания посмотрите если у вас код
Код
echo"<description>". $product_s_desc."</description>\n";

Попробуйте заменить его на
Код
echo"<description>". $product_desc."</description>\n";
« Последнее редактирование: 06.12.2010, 01:10:02 от likklir »
*

a_pesikov

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Врятли такая модификация выложена. Тут надо переписывать код формирования url. Если есть желание посмотрите как sh404SEF формирует url и выдерните от туда нужный код.

Желание есть, знаний нет :( Совсем по мелочи что-то правлю но это для меня больно серьезно
*

SolopoV

  • Давно я тут
  • 577
  • 16 / 0
  • зеленею...
Не нашел как выгрузить в файл "product_type_name" - то есть элемент <typePrefix>xxx</typePrefix>. Если кто выгружал, подскажите пожалуйста как делали?
*

text

  • Захожу иногда
  • 93
  • 0 / 0
Подскажите, пожалуйста, как исправить эту ошибку парсинга.

Детали валидации YML файла

--------------------------------------------------------------------------------
http://www.XXX.ru/market.php
Определена кодировка: windows-1251 (строка 0, столбец 0)
Дата из файла: 2010-12-08 21:16 (строка 3, столбец 113)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: No character data is allowed by content model (строка 71, столбец 13)

т.е это эти строки
строка 70     $tb_product.product_id,
строка 71    
строка 72     $tb_product.product_name,
Т.е. Яндекс дальше 3 этапа не пропустил.

На сайте http://www.XXX.ru/market.php (во время тестирования, с включенной опцией вывода ошибок) выводились все категории, а потом стояло сообщение на английском  что-то вроде "проверьте правильность запроса к БД"... - Query failed : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM

   (jos_vm_product_category_xref

RIGHT JOIN (jos_vm_product_price
' at line 22

А когда был запрещен вывод ошибок появлялось такое сообщение на английском по адресу http://www.XXX.ru/market.php:
XML-страница не может быть отображена
Следующие Tags не закрыты: yml_catalog, shop, offers. Ошибка при обработке ресурса 'http://www.ххх.ru

 


 
Код

<?php
//БД,  наименование магазина, адрес www.XXX.ru
$hostname = "localhost";
$username = "XXX";
$password = "XXX";
$dbName = "XXX";
$category = "jos_vm_category";
$category_xref = "jos_vm_category_xref";
$userstable = "jos_vm_product";
$pricetable = "jos_vm_product_price";

$product_category_xref =  "jos_vm_product_category_xref";
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName) or die(mysql_error());
//mysql_query('set names utf8');


echo"<?xml version='1.0' encoding='windows-1251'?>\n";
echo"<!DOCTYPE yml_catalog SYSTEM 'shops.dtd'>\n";
echo"<yml_catalog date=\"";
echo date('Y-m-d H:i');
echo"\">\n";
echo"<shop>\n";
//Здесь название магазина
echo"<name>XXX</name>\n";
echo"<company>XXX</company>\n";
echo"<url>http://www.XXX.ru</url>\n";
echo"<currencies>\n";
echo"<currency  id=\"RUR\" rate=\"1\"/>\n";
echo"</currencies>\n";
echo"<categories>\n";
$query_cat = "SELECT * FROM $category_xref";
$res_cat = mysql_query($query_cat) or die(mysql_error());
$rw=1;
while ($row_cat=mysql_fetch_array($res_cat)) {
$cat_parent_id=$row_cat['category_parent_id'];
$cat_child_id=$row_cat['category_child_id'];
$query2 = "SELECT category_name FROM $category WHERE category_id=".$row_cat['category_child_id'];
$res_cat1 = mysql_query($query2) or die(mysql_error());
$name_cat=mysql_fetch_array($res_cat1);
$cat_name=$name_cat['category_name'];
if ($cat_parent_id==0) {
echo"<category id=\"".$cat_child_id."\">".$cat_name."</category>\n";
}
else {         
echo"<category id=\"".$cat_child_id."\" parentId=\"".$cat_parent_id."\">".$cat_name."</category>\n";
}
$rw++;
}
echo"</categories>\n";

echo"<offers>\n";



$tb_product             = "jos_vm_product";

$tb_category            = "jos_vm_category";

$tb_product_category_xref   = "jos_vm_product_category_xref";

$tb_price               = "jos_vm_product_price";



$query = "

SELECT

   $tb_product.product_id,

   $tb_product.product_name,

   $tb_category.category_name,

   $tb_category.category_id,

   $tb_product_category_xref.category_id,

   $tb_price.product_price,

   $tb_product.product_unit,

   $tb_product.product_full_image,

   $tb_product.product_s_desc,

   
FROM

   ($tb_product_category_xref

RIGHT JOIN ($tb_price

RIGHT JOIN ($tb_product

ON $tb_price.product_id = $tb_product.product_id)

ON $tb_product_category_xref.product_id = $tb_product.product_id)

LEFT JOIN $tb_category

ON $tb_product_category_xref.category_id = $tb_category.category_id

WHERE $tb_product.product_publish='Y'

";



$row = d2a($query);

$product_log = Array();

for($i=0;$i<count($row);$i++) {

   if (!in_array($row[$i]['product_id'],$product_log) AND ($row[$i]['product_price'])) {

      $product_log[] = $row[$i]['product_id'];

      $url="http://www.XXX.ru/component/product_id,".$row[$i]['product_id'];
      $url=htmlspecialchars($url);
      
      
      $product_full_image = "http://XXX.ru/components/com_virtuemart/shop_image/product/".$row[$i]['product_full_image'];

      $tags = Array ('{product_name}','{product_desc}');

      $repl = Array ($row[$i]['product_name'],$row[$i]['product_s_desc']);

      $product_price = substr($row[$i]['product_price'], 0, -3);

      $product_cat_id=$row[$i]['category_id'];

      echo"\n<offer id=\"".$row[$i]['product_id']."\" available=\"true\" bid=\"$bid\">\n";

      echo"<url>".$url."</url>\n";

      echo"<price>$product_price</price>\n";

      // Валюта в которой указаны Ваши цены

      echo"<currencyId>RUR</currencyId>\n";

      echo"<categoryId>".$product_cat_id."</categoryId>\n";

      echo"<picture>".$product_full_image ."</picture>\n";

      // Возможность доставки

      //echo"<delivery>true</delivery> \n";

      echo"<name>".HtmlSpecialChars(strip_tags($row[$i]['product_name']))."\"</name>\n";

      echo"<description>".HtmlSpecialChars(strip_tags(str_replace($tags,$repl,$description_template)))."</description>\n";

      echo"</offer>\n";

   }

}



echo"</offers>\n";
echo"</shop>\n";
echo"</yml_catalog>\n";
function d2a($query){

    $result = mysql_query($query) or die("Query failed : " . mysql_error());

    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {$res[] = $line;}

    mysql_free_result($result);

    return $res;

}


?>
« Последнее редактирование: 09.12.2010, 21:59:27 от text »
*

likklir

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Не нашел как выгрузить в файл "product_type_name" - то есть элемент <typePrefix>xxx</typePrefix>. Если кто выгружал, подскажите пожалуйста как делали?

Если я правильно понял из описания в яндексе (typePrefix - это Группа товаров/категория), то все просто:

1. Вставляем код для запоминания типа продукции:

      $product_cat_id=$row[$i]['category_id'];
      $product_cat_name=$row[$i]['category_name'];
      $product_desc=$row[$i]['product_desc'];

2. Вставляем вывод типа продукции.

      echo"<delivery>true</delivery> \n";
      echo"<typePrefix>".$product_cat_name."</typePrefix>\n";
      echo"<name>".strip_tags($row[$i]['product_name'])."</name>\n";

Пробуйте  ^-^
*

SolopoV

  • Давно я тут
  • 577
  • 16 / 0
  • зеленею...
Если я правильно понял из описания в яндексе (typePrefix - это Группа товаров/категория), то все просто:

1. Вставляем код для запоминания типа продукции:

      $product_cat_id=$row[$i]['category_id'];
      $product_cat_name=$row[$i]['category_name'];
      $product_desc=$row[$i]['product_desc'];

2. Вставляем вывод типа продукции.

      echo"<delivery>true</delivery> \n";
      echo"<typePrefix>".$product_cat_name."</typePrefix>\n";
      echo"<name>".strip_tags($row[$i]['product_name'])."</name>\n";

Пробуйте  ^-^

Ага, понял, спасибо. Только вот у меня немного не так, я хотел тип товара выгрузить (мальчик\девочка). Но все равно спасибо. Уверен, Ваш совет пригодится.
*

likklir

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Если скажите в каком поле магазина у вас идет описание мальчик/девочка, то я вам попробую помочь =)
*

text

  • Захожу иногда
  • 93
  • 0 / 0
J 1.0.12
Посоветуйте, пожалуйста, как правильно сформулировать запрос данного вида:

Код:
-------------------------------------
SELECT
   $tb_product.product_id,
   $tb_product.product_name,
   $tb_category.category_name,
   $tb_category.category_id,
   $tb_product_category_xref.category_id,
   $tb_price.product_price,
   $tb_product.product_unit,
   $tb_product.product_full_image,
   $tb_product.product_s_desc,
FROM
   ($tb_product_category_xref
RIGHT JOIN ($tb_price
RIGHT JOIN ($tb_product
ON $tb_price.product_id = $tb_product.product_id)
ON $tb_product_category_xref.product_id = $tb_product.product_id)
LEFT JOIN $tb_category
ON $tb_product_category_xref.category_id = $tb_category.category_id
WHERE $tb_product.product_publish='Y'
";
« Последнее редактирование: 09.12.2010, 22:41:46 от text »
*

likklir

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Код
$query = "
SELECT
$tb_product.product_id,
$tb_product.product_name,
$tb_category.category_name,
$tb_category.category_id,
$tb_product_category_xref.category_id,
$tb_price.product_price,
$tb_product.product_unit,
$tb_product.product_full_image,
$tb_product.product_s_desc,

FROM
($tb_product_category_xref RIGHT JOIN ($tb_price
RIGHT JOIN $tb_product ON $tb_price.product_id = $tb_product.product_id)
ON $tb_product_category_xref.product_id = $tb_product.product_id)
LEFT JOIN $tb_category
ON $tb_product_category_xref.category_id = $tb_category.category_id
WHERE $tb_product.product_publish='Y'
";

Вот попробуй. Сначала не понял, что ты спросил  ^-^. Потом понял и изменил код.
« Последнее редактирование: 10.12.2010, 18:15:11 от likklir »
*

text

  • Захожу иногда
  • 93
  • 0 / 0
Код
$query = "
SELECT
$tb_product.product_id,
$tb_product.product_name,
$tb_category.category_name,
$tb_category.category_id,
$tb_product_category_xref.category_id,
$tb_price.product_price,
$tb_product.product_unit,
$tb_product.product_full_image,
$tb_product.product_s_desc,

FROM
($tb_product_category_xref RIGHT JOIN ($tb_price
RIGHT JOIN $tb_product ON $tb_price.product_id = $tb_product.product_id)
ON $tb_product_category_xref.product_id = $tb_product.product_id)
LEFT JOIN $tb_category
ON $tb_product_category_xref.category_id = $tb_category.category_id
WHERE $tb_product.product_publish='Y'
";

Вот попробуй. Сначала не понял, что ты спросил  ^-^. Потом понял и изменил код.
likklir, спасибо.
По-твоему не прошло.
Сделал так:
$query = "SELECT * FROM $userstable";
*

likklir

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
likklir, спасибо.
По-твоему не прошло.
Сделал так:
$query = "SELECT * FROM $userstable";
Значит я так и не понял, что ты хотел изменить в коде =). Если есть возможность кинь в личку свой код. Очень хочется посмотреть результат.
*

text

  • Захожу иногда
  • 93
  • 0 / 0
Значит я так и не понял, что ты хотел изменить в коде =). Если есть возможность кинь в личку свой код. Очень хочется посмотреть результат.
likklir,
смотри личку.
« Последнее редактирование: 16.12.2010, 12:20:06 от text »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

1C УТ 8.x &lt;-&gt; VirtueMart по протоколу CommerceML

Автор Centoff

Ответов: 1315
Просмотров: 230381
Последний ответ 27.10.2020, 15:32:10
от Leo1986
Импорт из CSV товаров с типами и свойствами из

Автор Gruz

Ответов: 499
Просмотров: 158449
Последний ответ 23.02.2017, 15:15:42
от orchanin
Как импортировать файл XML в Joomla VirtueMart?

Автор Кот Смюлан

Ответов: 2
Просмотров: 6476
Последний ответ 14.07.2016, 18:40:24
от Berzerker
импорт товаров в YML Яндекс маркет

Автор zmeyx

Ответов: 5
Просмотров: 12739
Последний ответ 14.07.2016, 18:34:28
от Berzerker
Скрипт экспорта товаров в Яндекс маркет (yml)

Автор gaalferov

Ответов: 12
Просмотров: 13121
Последний ответ 08.06.2016, 14:02:27
от DimaXP