Eigentlich sollten nur die Primarys erfasst werden
am 30.05.2008 - 18:50 Uhr in
Hallo zusammen,
habe folgendes in der template.php stehen...
<?php
function phptemplate_body_class($sidebar_left, $sidebar_right) {
if ($sidebar_left != '' && $sidebar_right != '') {
$class = 'sidebars';
}
else {
if ($sidebar_left != '') {
$class = 'sidebar-left';
}
if ($sidebar_right != '') {
$class = 'sidebar-right';
}
}
if (isset(
$class)) {
print ' class="'. $class .'"';
}
}
/**
* Return a themed breadcrumb trail.
*
* @param $breadcrumb
* An array containing the breadcrumb links.
* @return a string containing the breadcrumb output.
*/
function phptemplate_breadcrumb($breadcrumb) {
if (!empty($breadcrumb)) {
return '<div class="breadcrumb">'. implode(' › ', $breadcrumb) .'</div>';
}
}
/**
* Allow themable wrapping of all comments.
*/
function phptemplate_comment_wrapper($content, $type = null) {
static $node_type;
if (isset($type)) $node_type = $type;
if (!
$content || $node_type == 'forum') {
return '<div id="comments">'. $content . '</div>';
}
else {
return '<div id="comments"><h2 class="comments">'. t('Comments') .'</h2>'. $content .'</div>';
}
}
/**
* Override or insert PHPTemplate variables into the templates.
*/
function _phptemplate_variables($hook, $vars) {
$vars['primary_links'] = primary_secondary_links(variable_get('menu_primary_menu', 2),'tablist');
$vars['primary_sublinks'] = primary_sublinks(variable_get('menu_primary_menu', 2));
if ($hook == 'page') {
if (
$secondary = menu_secondary_local_tasks()) {
$output = '<span class="clear"></span>';
$output .= "<ul class=\"tabs secondary\">\n". $secondary ."</ul>\n";
$vars['tabs2'] = $output;
}
// Hook into color.module
if (module_exists('color')) {
_color_page_alter($vars);
}
return $vars;
}
return
$vars;
}
/**
* Hier werden die primary und secondary links formatiert, so dass diese einen zusatz markup bekommen
* zum schauen, welcher Punkt aktiv ist und welcher nicht.
*
* @param int $pid
* @param string $id
* @return string html
*/
function primary_secondary_links($pid, $id='primary-links') {
/*if ($tree = menu_tree($pid)) {
return '<ul id="'.$id.'">'. $tree .'</ul>';
}*/
$menu = menu_get_menu();
$output = '';
if (isset(
$menu['visible'][$pid])) {//I only want the once that are visible -> since its the primary navigation
foreach ($menu['visible'][$pid]['children'] as $mid) {
$output .= theme('menu_item', $mid);
}
}
return '<ul id="'.$id.'">'. $output .'</ul>';
}
/**
* Die Primary Sublinks werden herausgelöst, damit diese sepparat angezeigt werden können und nicht irgendwie verschachtelt.
*
* @param int $pid
* @return string html
*/
function primary_sublinks($pid,$anz=2){
$item = menu_get_item($pid); // hole den jeweiligen menupunkt
$out = '';
$final_out = '<div class="thirds"><ul>';
foreach ($item['children'] as $mid) {
if(menu_in_active_trail_in_submenu($mid,$pid)){
$current_menu_item = menu_get_item($mid);
if(is_array($current_menu_item['children'])){
$counter = 0;
foreach ($current_menu_item['children'] as $value) {
if($value > 0){
$final_out .= '<li class="primary_sublinks">'.menu_item_link($value).'</li>';
if ($counter >= $anz) {
$final_out .= '</ul></div><div class="thirds"><ul>';
$counter = 0;
}
$counter++;
}
}
}
}
}
return $final_out.'</ul></div>';
}
function talentdeluxe_extract($link_item) {
$raus = array();
$raus[0] = $link_item['title'];
$raus[0] = $link_item['path'];
return $raus;
}
/**
* überschreibt theme_menu_item() aus includes/menu.inc
*
* fügt zusätzlich eine class 'active' für alle aktiven menupunkte zum <li>-element
*
*/
function phptemplate_menu_item($mid, $children = '', $leaf = TRUE) {
$item = menu_get_item($mid); // hole den jeweiligen menupunkt
if ((drupal_get_normal_path($item['path']) == $_GET['q']) // pfad aktiv?
|| (drupal_is_front_page() && $item['path'] == '<front>') // oder sind wir auf der startseite?
|| menu_in_active_trail($mid)) { // oder sind wir irgendwo im aktiven pfad, also in einem übergeordneten element des gerade angewählten?
#$active = ' active'; falsch. führt zu klassen wie z.b. 'activeexpanden' statt 'active expanded'
$active = 'current '; # so ists korrekt
$active_later = 'current';
} else {
$active = '';
}
$link = menu_item_link($mid);
$link2 = explode('"',$link);
print_r(menu_get_menu($mid));
$css_id = strtolower(str_replace(' ', '_', strip_tags($link)));
if ($menu_test['title']==2){
return '<li id="'.$css_id.$active_later.'" class="' . $active . ($leaf ? 'leaf' : ($children ? 'expanded' : 'collapsed')) .'"><a href="'.$link2[1].'"><img src="'. path_to_theme() . '/images/spacer_'.$css_id.'.gif" border="0"/></a></li>';
}else {
}
}
?>leider versucht er nun bei allen Menüs diese Spacer einzufügen, dabei sollte dieser ganze Code nur für die Primarys sein.
Weiss jemand rat.
gruss
drupalino
- Anmelden oder Registrieren um Kommentare zu schreiben

Keiner eine Idee??? Wie
am 31.05.2008 - 09:48 Uhr
Keiner eine Idee???
Wie schaffe ich es, dass nur für die Primarys eine phptemplate_menu_item(), oder wie man die auch immer dann nennen will, benutzt wird??? Vielleicht über einen Block!! ich verzweifel noch an diesem Problem!
-------------------
gruss
drupalino
Du willst also nach jedem
am 31.05.2008 - 12:50 Uhr
Du willst also nach jedem Menüpunkt der primary Links einen Abstand?
Das geht rein über CSS, z.B. so:
#primary li {margin-right: 20px;
}
gruß pebosi
Nein, das Hauptproblem ist
am 31.05.2008 - 12:54 Uhr
Nein,
das Hauptproblem ist hier beschrieben http://www.drupalcenter.de/node/10312
Dies ist auch soweit gelöst, nur ist eben das Problem, dass ich in dem Code, den ich oben gepostet habe die menu-funktion überschreibe und dadurch auch alle anderen Menüs auf dieser Seite dadurch gerendert werden.
Soll heissen, ich muss irgendwie es hinbekommen, dass sich dies nur auf dieses Menü bezieht
-------------------
gruss
drupalino
Hat wirklich niemand eine
am 01.06.2008 - 11:05 Uhr
Hat wirklich niemand eine Idee, wie ich es schaffe, dass nur ein spezielles Menu mit dem Code gethemt wird. Hat noch niemand das Problem gehabt, dass ein überschriebene Themefunktion nur für einen bestimmten Bereich gelten soll und ansonsten die System-Funktionen ????
Kann doch nicht sein oder?
-------------------
gruss
drupalino