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

maxo127

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
В меню несколтко пунктов (секции); для некоторых уже написаны материали, для остальных - нет. Нужно чтоб "пустые" пункты, пока не будут материалы, вообще ссылками не являлись, и еще лучше были серого цвета (совсем убрать нежелательно).

Где это можно подправить?
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
вешайте внешнеи ссылки на пункт в виде javascript:void(0);
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
а разве нельзя просто #empty, или #void ?
Тогда в CSS можно написать .menu a[href="#empty"] {color: #fff; }
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
а разве нельзя просто #empty, или #void ?
Тогда в CSS можно написать .menu a[href="#empty"] {color: #fff; }
с таким же успехом можно просто /# ставить..так удобно конечно что стили поменять можно
исправился)
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
нет, просто # низя - тогда при клике будет кидать в начало страницы, а если указать несуществующий анкор то ничего не произойдет.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
нет, просто # низя - тогда при клике будет кидать в начало страницы, а если указать несуществующий анкор то ничего не произойдет.
неа почему же, он должен просто остаться на той же странице..только тупо еще шарп в конце добавить..щас проверю где нибудь на полигоне)
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
неа почему же, он должен просто остаться на той же странице..только тупо еще шарп в конце добавить..щас проверю где нибудь на полигоне)
так и есть,хотя с точки зрения правильности конечно не следует указывать.а то мало ли где может висеть пустой якорь на скрипте)
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

maxo127

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
а разве нельзя просто #empty, или #void ?
Тогда в CSS можно написать .menu a[href="#empty"] {color: #fff; }

а куда #empty, или #void? Пункт требует, чтоб сукцию указали.

Дело в том, что желательно, чтоб пункты былы привязаны к секциям (и секции, и категории уже созданы), просто не кликались пока пустые.
Также как у линков на секции есть же параметр "Показывать пустые категории", ну чтоб аналогично было "Перейти на пустую секцию" (вот выдумал, а? :) )

Вообще такое было бы полезно и для списка категорий, чтоб сразу видно было сто она пуста, вместо того чтоб показать количество статьй в категории.
« Последнее редактирование: 30.08.2010, 18:41:06 от maxo127 »
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
а куда #empty, или #void? Пункт требует, чтоб сукцию указали.

Дело в том, что желательно, чтоб пункты былы привязаны к секциям (и секции, и категории уже созданы), просто не кликались пока пустые.
Также как у линков на секции есть же параметр "Показывать пустые категории", ну чтоб аналогично было "Перейти на пустую секцию" (вот выдумал, а? :) )

Вообще такое было бы полезно и для списка категорий, чтоб сразу видно было сто она пуста, вместо того чтоб показать количество статьй в категории.
что такое секции?))
да пока можно поставить эти ссылки (их нужно создавать в пункте "Внешние ссылки") а потом опять поменять тип на категорию или что вы там хотите. или что вы хотите?
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

maxo127

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
ну материалы (статьи) же группируются в категориях, а те в свою очередь - секциях, и к ним потом привязываются пункты меню, не так ли?

вот эта структура уже сделана, и меню тоже. просто некоторые секции пусты - категории есть, а артпклов нету.
там есть люди - редекторы сайта - постоянно добавляют в определенные категории статьи (могут и удалить). а доступ к админпанели они не имеют (и не надо, страшно даже подумать).

Вот это и надо - чтоб ксли у категории какой-то секции появилась статья, чтоб соответствующий пункт меню (привязанный к этой секции) стал линком. И наоборот - если удалена последная статья из секции, чтоб пункт "погас" (а не исчез из модуля меню).
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Как добавить неактивный пункт меню?
« Ответ #10 : 30.08.2010, 19:47:34 »
нужно переделать немного helper модуля mod_mainmenu, в районе функции _getItemData.
Алгоритм такой: если пункт меню ссылается  на секцию, то делаем sql-запрос с поиском статьи в этой секции и если результат нулевой - убираем ссылку.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

maxo127

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: Как добавить неактивный пункт меню?
« Ответ #11 : 30.08.2010, 20:52:14 »
нужно переделать немного helper модуля mod_mainmenu, в районе функции _getItemData.
Алгоритм такой: если пункт меню ссылается  на секцию, то делаем sql-запрос с поиском статьи в этой секции и если результат нулевой - убираем ссылку.

Воо это уже дело.
Хоть и чует сердце - замахнулся не по кишке :( , но всеравно спасибо большое  *DRINK*.
*

maxo127

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Re: Как добавить неактивный пункт меню?
« Ответ #12 : 01.09.2010, 03:22:56 »
Вот фрагмент из helper
Код
function _getItemData(&$params, $item)
{
$data = null;

// Menu Link is a special type that is a link to another item
if ($item->type == 'menulink')
{
$menu = &JSite::getMenu();
if ($newItem = $menu->getItem($item->query['Itemid'])) {
    $tmp = clone($newItem);
$tmp->name = '<span><![CDATA['.$item->name.']]></span>';
$tmp->mid = $item->id;
$tmp->parent = $item->parent;
} else {
return false;
}
} else {
$tmp = clone($item);
$tmp->name = '<span><![CDATA['.$item->name.']]></span>';
}

$iParams = new JParameter($tmp->params);
if ($params->get('menu_images') && $iParams->get('menu_image') && $iParams->get('menu_image')!= -1) {
$image = '<img src="'.JURI::base(true).'/images/stories/'.$iParams->get('menu_image').'" alt="'.$item->alias.'" />';
if($tmp->ionly){
$tmp->name = null;
}
} else {
$image = null;
}
switch ($tmp->type)
{
case 'separator' :
return '<span class="separator">'.$image.$tmp->name.'</span>';
break;

case 'url' :
if ((strpos($tmp->link, 'index.php?') === 0) && (strpos($tmp->link, 'Itemid=') === false)) {
$tmp->url = $tmp->link.'&amp;Itemid='.$tmp->id;
} else {
$tmp->url = $tmp->link;
}
break;

default :
$router = JSite::getRouter();
$tmp->url = $router->getMode() == JROUTER_MODE_SEF ? 'index.php?Itemid='.$tmp->id : $tmp->link.'&Itemid='.$tmp->id;
break;
}
Как я понимаю, default : в конце отвечает за присвоение ссылки. если не трудно может напишете где само это присвоение, и где нужно вставить запрос проверки?

ну что мне нужно:
1. Где определяется, что при наведении миши ссылка должна менять цвет,
2. Где определяется, что при клике нужно переходить, и
3. Где определяется, куда переходить.

Если конечно это можно сказать просто по тексту кода, а не экспериментируя.



Будет ли корректно, если после

$router = JSite::getRouter();

вставить проверку, и если пусто, пропустить

$tmp->url = $router->getMode() == JROUTER_MODE_SEF ? 'index.php?Itemid='.$tmp->id : $tmp->link.'&Itemid='.$tmp->id;

и перейти на break?
« Последнее редактирование: 01.09.2010, 03:38:11 от maxo127 »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Как добавить неактивный пункт меню?
« Ответ #13 : 01.09.2010, 04:01:26 »
я тут набросал... default в switch'е должен быть такой:
Код: php
			default :
$router = JSite::getRouter();
// если компонент контента и "вид" - категория...
if (($tmp->query['option'] == 'com_content') and ($tmp->query['view'] == 'category')) {
// тут делаем запрос к бд с выборкой категории $tmp->query['id'] или мож есть другой способ...

if (результат нулевой) {
// ссылка не нужна (будет просто <a>...</a>
$tmp->url = null;
// ссылка стандартная
} else {
$tmp->url = $router->getMode() == JROUTER_MODE_SEF ? 'index.php?Itemid='.$tmp->id : $tmp->link.'&Itemid='.$tmp->id;
}
} else {
$tmp->url = $router->getMode() == JROUTER_MODE_SEF ? 'index.php?Itemid='.$tmp->id : $tmp->link.'&Itemid='.$tmp->id;
}
break;
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пункт меню

Автор s120367

Ответов: 0
Просмотров: 272
Последний ответ 03.06.2018, 13:02:55
от s120367
Большое меню Joomla

Автор Amakeeva

Ответов: 1
Просмотров: 436
Последний ответ 22.01.2018, 13:17:45
от effrit
Как можно отображать имя пользователя в название меню?

Автор selimoff

Ответов: 27
Просмотров: 3633
Последний ответ 02.01.2018, 15:24:44
от logan-19
как сделать пункт меню не кликабельным?

Автор qweqweqwe

Ответов: 13
Просмотров: 6483
Последний ответ 07.09.2017, 01:45:49
от forzi
Сдвинуть пункты меню в левое положение

Автор wectra

Ответов: 6
Просмотров: 707
Последний ответ 12.07.2017, 21:09:01
от wectra