Форум русской поддержки Joomla!® CMS
28.06.2017, 16:14:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Mambo 4.5 не включается pathway

 (Прочитано 429 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Vaska
Захожу иногда
**

Репутация: +0/-2
Offline Offline

Сообщений: 14


« : 20.05.2017, 05:57:01 »

Доброго времени суток, всем!

Есть два сайта на Mambo 4.5.
Это та мамба, у которой ещё не было директории includes/, а вместо неё есть директория classes/.
В корне сайта лежит файл pathway.php, который отвечает за вывод хлебных крошек.
На одном сайте вывод крошек работает, а на другом не работал, мне не нужно было.
Сейчас захотел включить.
В шаблон добавил <?php include "pathway.php";?>
Файл подключился и стал выводить HTML-код
Код:
<span class="pathway"> </span>
но информацию не выводит.

Даже не знаю на что смотреть.
В админке всё облазил и не нашел, чтобы эта фишка как-то дополнительно включалась или выключалась.
В файле конфигурации тоже вроде нет параметра, который за это отвечает.
Значит, после того как я в шаблон добавил инклуд файла pathway.php, то должно было сразу заработать. Но не работает.

Есть какие-то мысли?

Вот сам код файла pathway.php (на обоих сайтах содержимое одинаковое)
Код:
<?php

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

function pathwayMakeLink( $id, $name, $link, $parent ) {
$mitem = new stdClass();
$mitem->id = $id;
$mitem->name = $name;
$mitem->link = $link;
$mitem->parent = $parent;
$mitem->type = '';
return $mitem;
}

/**
* Outputs the pathway breadcrumbs
* @param database A database connector object
* @param int The db id field value of the current menu item
*/
function showPathway( $Itemid ) {
global $database, $option, $task;
global $SERVER_SOFTWARE, $QUERY_STRING, $REQUEST_URI;

// get the home page
$database->setQuery( "SELECT id, link"
. "\nFROM #__menu"
. "\nWHERE menutype='mainmenu' AND published='1'"
. "\nORDER BY parent, ordering LIMIT 1"
);
$home_menu = new mosMenu( $database );
$database->loadObject( $home_menu );
echo $database->getErrorMsg();

// the the whole menu array and index the array by the id
$database->setQuery( "SELECT id, name, link, parent, type"
. "\nFROM #__menu"
. "\nWHERE published='1'"
. "\nORDER BY parent, ordering"
);
$mitems = $database->loadObjectList( 'id' );
echo $database->getErrorMsg();

$isWin = (substr(PHP_OS, 0, 3) == 'WIN' && stristr ( $SERVER_SOFTWARE, "microsoft"));
$optionstring = $isWin ? $QUERY_STRING : $REQUEST_URI;

// are we at the home page or not
$homekeys = array_keys( $mitems );
$home = @$mitems[$home_menu->id]->name;
$path = "";

// this is a patch job for the frontpage items! aje
if ($Itemid == $home_menu->id) {
switch ($option) {
case 'content':
$id = intval( mosGetParam( $_REQUEST, 'id', 0 ) );
if ($task=='blogsection'){

$database->setQuery( "SELECT title FROM #__sections WHERE id=$id" );
} else if ($task=='blogcategory') {
$database->setQuery( "SELECT title FROM #__categories WHERE id=$id" );
} else {
$database->setQuery( "SELECT title, catid FROM #__content WHERE id=$id" );
}

$row = null;
$database->loadObject( $row );
echo $database->getErrorMsg();

$id = max( array_keys( $mitems ) ) + 1;

// add the content item
$mitem2 = pathwayMakeLink(
$Itemid,
$row->title,
"",
1
);
$mitems[$id] = $mitem2;
$Itemid = $id;

$home = "<a href=\"".sefRelToAbs("index.php")."\" class=\"pathway\">$home</a>";
break;

}
}

switch( @$mitems[$Itemid]->type ) {
case 'content_section':
$id = intval( mosGetParam( $_REQUEST, 'id', 0 ) );

switch ($task) {
case 'category':
if ($id) {
$database->setQuery( "SELECT title FROM #__categories WHERE id=$id" );
$title = $database->loadResult();
echo $database->getErrorMsg();

$id = max( array_keys( $mitems ) ) + 1;
$mitem = pathwayMakeLink(
$id,
$title,
"index.php?option=$option&amp;task=$task&amp;id=$id&amp;Itemid=$Itemid",
$Itemid
);
$mitems[$id] = $mitem;
$Itemid = $id;
}
break;

case 'view':
if ($id) {
// load the content item name and category
$database->setQuery( "SELECT title, catid FROM #__content WHERE id=$id" );
$row = null;
$database->loadObject( $row );
echo $database->getErrorMsg();

// load and add the category
$database->setQuery( "SELECT c.title AS title, s.id AS sectionid "
."FROM #__categories AS c "
."LEFT JOIN #__sections AS s "
."ON c.section=s.id "
."WHERE c.id=$row->catid" );
$result = $database->loadObjectList();
echo $database->getErrorMsg();
$title = $result[0]->title;
$sectionid = $result[0]->sectionid;

$id = max( array_keys( $mitems ) ) + 1;
$mitem1 = pathwayMakeLink(
$Itemid,
$title,
"index.php?option=$option&amp;task=category&amp;sectionid=$sectionid&amp;id=$row->catid",
$Itemid
);
$mitems[$id] = $mitem1;

// add the final content item
$id++;
$mitem2 = pathwayMakeLink(
$Itemid,
$row->title,
"",
$id-1
);
$mitems[$id] = $mitem2;
$Itemid = $id;

}
break;
}
break;

case 'content_category':
$id = intval( mosGetParam( $_REQUEST, 'id', 0 ) );

switch ($task) {

case 'view':
if ($id) {
// load the content item name and category
$database->setQuery( "SELECT title, catid FROM #__content WHERE id=$id" );
$row = null;
$database->loadObject( $row );
echo $database->getErrorMsg();

$id = max( array_keys( $mitems ) ) + 1;
// add the final content item
$mitem2 = pathwayMakeLink(
$Itemid,
$row->title,
"",
$Itemid
);
$mitems[$id] = $mitem2;
$Itemid = $id;

}
break;
}
break;

case 'content_blog_category':
case 'content_blog_section':
switch ($task) {
case 'view':
$id = intval( mosGetParam( $_REQUEST, 'id', 0 ) );

if ($id) {
// load the content item name and category
$database->setQuery( "SELECT title, catid FROM #__content WHERE id=$id" );
$row = null;
$database->loadObject( $row );
echo $database->getErrorMsg();

$id = max( array_keys( $mitems ) ) + 1;
$mitem2 = pathwayMakeLink(
$Itemid,
$row->title,
"",
$Itemid
);
$mitems[$id] = $mitem2;
$Itemid = $id;

}
break;
}
break;
}

$i = count( $mitems );
$mid = $Itemid;

while ($i--) {
if (!$mid || empty( $mitems[$mid] ) || $mid == 1 || !eregi("option", $optionstring)) {
break;
}
$item =& $mitems[$mid];

// if it is the current page, then display a non hyperlink
if ($item->id == $Itemid || empty( $mid ) || empty($item->link)) {
$newlink = "  $item->name";
} else if (isset($item->type) && $item->type == 'url') {
$correctLink = eregi("http://", $item->link);
if ($correctLink==1) {
$newlink = "<a href=\"$item->link\" target=\"_window\" class=\"pathway\">$item->name</a>";
} else {
$newlink = "http://$link";
}
} else {
$newlink = "  <a href=\"".sefRelToAbs($item->link."&amp;Itemid=".$item->id)."\" class=\"pathway\">$item->name</a>";
}

if (trim($newlink)!="") {
$path = " <img src=\"images/M_images/arrow.png\" border=\"0\" alt=\"arrow\" /> $newlink $path";
} else {
$path = "";
}

$mid = $item->parent;
}

if (eregi( "option", $optionstring ) && trim( $path )) {
$home = "<a href=\"".sefRelToAbs("index.php")."\" class=\"pathway\">$home</a>";
}

echo ("<span class=\"pathway\">$home $path</span>");
}

// code placed in a function to prevent messing up global variables
showPathway( $Itemid );
?>

Записан
chemerzaev
Завсегдатай
*****

Репутация: +83/-3
Offline Offline

Пол: Мужской
Сообщений: 654


Надо мыслить. Меня, например, кормят идеи.


« Ответ #1 : 20.05.2017, 12:04:55 »

А почему вы не перенесете свои сайты на новую версию Joomla ?
Записан
Vaska
Захожу иногда
**

Репутация: +0/-2
Offline Offline

Сообщений: 14


« Ответ #2 : 20.05.2017, 21:14:21 »

А почему вы не перенесете свои сайты на новую версию Joomla ?
Потому, что мне это не нужно.
Записан
passer
Живу я здесь
******

Репутация: +73/-3
Online Online

Пол: Мужской
Сообщений: 937



« Ответ #3 : 20.05.2017, 22:11:39 »

Похоже не работает mosGetParam( $_REQUEST, 'id', 0 )
т.е. в ссылке нет параметра id.
Записан
Vaska
Захожу иногда
**

Репутация: +0/-2
Offline Offline

Сообщений: 14


« Ответ #4 : 20.05.2017, 23:48:46 »

mosGetParam используется во всех файлах мамбо и везде вроде всё работает.
Все меню же работают как надо.
Может что-то ещё?
Записан
Vaska
Захожу иногда
**

Репутация: +0/-2
Offline Offline

Сообщений: 14


« Ответ #5 : 25.05.2017, 03:45:44 »

Выяснилось, что pathway работает, только как-то не полностью.
Если я нахожусь в категории контента, то pathway ничего не выводит, если я иду дальше в подкатегорию контента, то pathway показывает название категории. А должен показывать название подкатегории.
Как это исправить?
Что-то нужно дописывать?
Записан
flyingspook
Профи
********

Репутация: +242/-9
Offline Offline

Сообщений: 3763


« Ответ #6 : 25.05.2017, 09:44:45 »

1 Может меню у вас не создано, или неправильно выводится как вариант.
2 Попробуйте файл с другого сайта подключить.
3 Можно еще с параметрами вывода поиграться если не будет результата по п.1 и п.2
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet