Skip to Content

Ocultar tipus de contingut al menú node/add

Hola,

en un drupal 6 tinc tipus de continguts que estan referenciats per un altre i que no haurien de poder-se crear per els mateixos. Per exemple tinc un tipus de contingut objectiu que està referenciat per un tipus de contingut projecte amb un giny de creació. D'aquesta manera, com que un projecte te n objectius, en el formulari per introduir un projecte puc crear alhora els seus objectius. El que no te sentit és que jo pugui crear un objectiu fora del formulari de projecte -aïllat-.

La idea dons és que a les opcions de menú per 'crea contingut' aparegui 'projecte' i no aparegui 'objectiu', encara que l'usuari ha de tenir permisos per crear tots dos.

Alguna idea de com fer-ho?

Gràcies

imatge de calbasi

I si deshabilites aquesta

I si deshabilites aquesta entrada des de la gestió del menú de navegació??

imatge de markus_petrux

Varies maneres de fer-ho... programant una micona

Una manera: redefinir a nivell de tema la funció theme_node_add_list(), que la tens a node.pages.inc

Una altra manera, en un m`dol custom, implementes un hook_menu_alter() per a canviar el 'page callback' assignat al path 'node/add'. En el teu menu callback pots generar la pàgina com vulguis, verificant els permisos per a crear nodes, però saltant-te el que no vulguis.

Penso que no més senzill sería lo primer. Aixì doncs, a nivell de tema, en el template.php, podries tenir quelcom semblant a:

<?php
/**
* Display the list of available node types for node creation.
*
* @see theme_node_add_list()
*/
function MYTHEME_node_add_list($content) {
 
$output = '';

  if (
$content) {
   
$output = '<dl class="node-type-list">';
    foreach (
$content as $item) {

     
// Ignore node types that match the following rules.
     
if (preg_match('`node/add/objectiu`', $item['href'])) {
        continue;
      }

     
$output .= '<dt>'. l($item['title'], $item['href'], $item['localized_options']) .'</dt>';     
     
$output .= '<dd>'. filter_xss_admin($item['description']) .'</dd>';
    }
   
$output .= '</dl>';
  }
  return
$output;
}
?>

imatge de ismaelgarcia

Solució

Hola,

he tingut prou amb anar a l'administració de menús -admin/build/settings- i desactivar els que no vull que apareguin.

Gràcies

imatge de ismaelgarcia

Una qüestió més

Hola,

seguint amb el tema anterior, també necessito que, els tipus de continguts que s'han de crear obligatòriament dins un grup -orgànic group- només apareguin sota el menú node/add, quan l'usuari hagi entrat a l'interior del grup.

Afegir que estic treballant amb atrium i aquest gestiona els entorns amb el mòdul contents i features, la qual cosa no se com afecta a les possibles solucions que puguem trobar.

Alguna idea?

Gràcies