Проблема VirtueMart + TransMenu + sh404SEF

Статус
В этой теме нельзя размещать новые ответы.

inginiar

Создатель
Регистрация
22 Фев 2009
Сообщения
16
Реакции
0
На Денвере связка Joomla 1.5.15 + VirtueMart 1.1.4. После установки sh404SEF все красиво как на картинке, но возникает проблема с модулем отображения меню категорий (mod_product_categories) и причем только с использованием TransMenu. Переход по категориям происходит без проблем а вот в подкатегорию зайти не могу. Гдето запоминается последняя страничка с которой была попытка зайти в подкатегорию и после все переходы осуществляются на эту страничку. Как обидно. И компонент sh404SEF понравился и от TransMenu отойти не могу (неделю потратил на подгонку по дизайну, да и лучшее это из имеющегося). Вот и сижу уже который день как та обезьяна толи умный я толи красивый. Скорее выберу отказ от sh404SEF если ни кто здесь не сможет помочь. Видимо это меню построено на ява скрипте и урлы пунктов формируются таким сложным образом, что sh404SEF не смог перехватить адресацию. Поиск в корне сайта выдал кучу файлов с упоминанием TransMenu, какой ковырять не понятно, да и знаний не хватит понять, что именно ковырять.
Помогите справиться с проблемой.
 
Поиграйся с настройками sh404SEF
Смотри 3 пункт, с .htaccess или без, должно помочь

Вот еще
Код:
Virtuemart Transmenu sh404sef fix
This post is to highlight the fix for Transmenu, due to which the urls are not generated for the sub menu items correctly when inside the sub-categories.
The edit needs to be made in the following file
modules/mod_virtuemart/vm_transmenu/transmenu.php
[CODE]Search for the following text in the file:1	//echo "$row->name $row->link $level<br>";
2	        if ($level){
3	            $pmenu = "tmenu$row->parent";
4	            //echo "$pmenu.addItem(\"$row->name\", \"$row->link\");\n";
5	            $active = 0;
6	            if ( in_array($row->id, $this->parent->open) ) $active = 1;
7	            echo "$pmenu.addItem(\"$row->name\", \"$row->link\", $row->browserNav, $active);\n";
8	        }
in the function ‘genMenuItem’.
After the
view source
print
?1
Код:
If (in_array($row->id, $this->parent->open) ) $active = 1;
line, add the following line1
Код:
$row->link = $sess->url( SECUREURL . $row->link);
That’s it! This should fix the issue and you should be able to happily use the sh404sef plugin with transmenu![/CODE]

 
Спасибо большое. Очень помогло, в плане подсказало направление движения. Хоть ни одна из ссылок не помогла решить проблему, но метод «научного тыка» еще ни кто не отменял. Расскажу, может кому поможет. Наиболее интересной оказалась инструкция как изменить файл transmenu.php, но моей версии VirtueMart оказалось уже есть та строка которую рекомендовалось вставить. И действуя по принципу: А это что за строка? А что будет если ее раскоментировать? Раскоментировав строку 108 удалось добиться появления дубликатов пунктов в подменю, которые уже довольно внятно определялись sh404SEF. А закоментирвав 112 строчку удалось добиться пропадания «неопределяемых» дубликатов. Прилагаю отрывки кода.
До правки:
PHP:
105 	//echo "$row->name $row->link $level<br>";
106		if ($level){
107			$pmenu = "tmenu$row->parent";
108			//echo "$pmenu.addItem(\"$row->name\", \"$row->link\");\n";
109			$active = 0;
110			if ( in_array($row->id, $this->parent->open) ) $active = 1;
111			$row->link = $sess->url( SECUREURL . $row->link);
112			echo "$pmenu.addItem(\"$row->name\", \"$row->link\", $row->browserNav, 113 	$active);\n";
114		}
После внесения изменений:
PHP:
105 	//echo "$row->name $row->link $level<br>";
106		if ($level){
107			$pmenu = "tmenu$row->parent";
108			echo "$pmenu.addItem(\"$row->name\", \"$row->link\");\n";
109			$active = 0;
110			if ( in_array($row->id, $this->parent->open) ) $active = 1;
111			$row->link = $sess->url( SECUREURL . $row->link);
112			//echo "$pmenu.addItem(\"$row->name\", \"$row->link\", $row->browserNav, 113 	$active);\n";
114		}
Все теперь работает за исключением подсветки стилями пункта меню по умолчанию и того пункта на который перешел, но это не критично. Хотя если кто подскажет как и этот баг устранить или хотя бы расскажет, чего я тут вообще наворочал, буду премного благодарен.
Примечание: Если кто решить использовать код, не забудьте удалить номера строк с левой стороны которые я дописал для наглядности.
 
я себе поставил erouter и вам советую... намного лучше работает как чпу.
 
Решил по другому.
в функции genMenuItem в global переменные добавил $mm_action_url

Было
PHP:
global $Itemid, $mosConfig_live_site, $mainframe, $sess;
стало
PHP:
global $Itemid, $mosConfig_live_site, $mainframe, $sess, $mm_action_url;
И после этого подставил в вывод.

Было:
PHP:
echo "$pmenu.addItem(\"$row->name\", \"$row->link\", $row->browserNav, $active);\n";
Стало
PHP:
echo "$pmenu.addItem(\"$row->name\", \"$mm_action_url$row->link\", $row->browserNav, $active);\n";

Но вот только ссылки там еще не "отсефеные" получаются, хотя все работает. И сеф после клика отрабатывает редирект.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху