Phoca VirtueMart Category dTree Module представляет собой модуль, который выводит категории магазина VirtueMart в виде дерева. Существует проблема с французским языком, а конкретнее, с апострофами. Многие пользователи вместо апострофа ставят одинарную кавычку, что приводит к тому, что меню просто не отображается.
Итак, если у вас возникли подобные проблемы, проверьте с консоли браузера, есть ли у вас такие ошибки


Если есть, то читайте дальше, если нет - тогда нужно искать проблемы в другом месте, эта заметка вам не поможет))
Решить довольно просто.
Открываете файл /modules/mod_phoca_vm_catdtree/mod_phoca_vm_catdtree.php и находите строки
if ($level == 0) {
$o[$c->virtuemart_category_id] = $treeId.'.add(0, -1,\''.$c->category_name.'\', \''.$url.'\');'."\n";
} else {
$o[$c->virtuemart_category_id] = $treeId.'.add('. $c->virtuemart_category_id.','.$parentCat->virtuemart_category_id .',\''.$c->category_name.'\', \''.$url.'\');'."\n";
}
Проблема с именем категории. Нужно использовать либо htmlentities(), либо addslashes()
вариант 1
if ($level == 0) {
$o[$c->virtuemart_category_id] = $treeId.'.add(0, -1,\''.htmlentities($c->category_name, ENT_QUOTES, 'UTF-8').'\', \''.$url.'\');'."\n";
} else {
$o[$c->virtuemart_category_id] = $treeId.'.add('. $c->virtuemart_category_id.','.$parentCat->virtuemart_category_id .',\''.htmlentities($c->category_name, ENT_QUOTES, 'UTF-8').'\', \''.$url.'\');'."\n";
}
вариант 2
if ($level == 0) {
$o[$c->virtuemart_category_id] = $treeId.'.add(0, -1,\''.addslashes($c->category_name).'\', \''.$url.'\');'."\n";
} else {
$o[$c->virtuemart_category_id] = $treeId.'.add('. (int)$c->virtuemart_category_id.','.(int)$parentCat->virtuemart_category_id .',\''.addslashes($c->category_name).'\', \''.$url.'\');'."\n";
}
Кстати, этот баг уже исправлен в версии модуля 1.0.3. Но я модуль не обновлял на клиентском сайте, просто сделал исправления в коде
