pagina mostrar editar descripcion categorias categoria php drupal templates drupal-6 preprocessor

php - editar - mostrar categorias wordpress



¿Cómo puedo tema la plantilla para editar o agregar un nodo para un tipo de contenido específico? (6)

Esto es lo que creo que es la forma "correcta" de hacerlo.

Desde el módulo de nodo:

$form[''#theme''] = array($node->type .''_node_form'', ''node_form'');

Entonces Drupal intentará con el tema ''product_node_form''

para que pueda crear un módulo que implemente esto.

Tendrá que implementar [hook_theme] [1] y proporcionar una función o plantilla.

Puede encontrar que es más fácil usar [hook_form_alter] [2] para agregar algunas clases y CSS normal para cambiar la apariencia.

Quiero tema la plantilla para editar o agregar un nodo para un tipo de contenido específico.
Por ejemplo, para el tema de todos los formularios de tipo de contenido utilizo el archivo page-node-{add|edit}.tpl.php (dependiendo de lo que necesite hacer agregar o editar).

Pero no encontré el nombre de la plantilla para un tipo de nodo personalizado, por ejemplo, Productos.

Necesito el tema solo para Productos, pero no para los otros tipos de contenido.

Lo he intentado con page-node-edit-product.tpl.php y page-node-product-edit.tpl.php pero no page-node-product-edit.tpl.php suerte.


Hmm. Puede haber una manera mejor, pero ¿qué pasa con una función de preproceso?

Todavía soy muy nuevo en Drupal, así que tal vez intente algo como esto [el código puede no funcionar]:

<?php function themeName_preprocess_page(&$vars, $hook) { if ((arg(0) == ''node'') && (arg(1) == ''add'' && arg(2) == ''product'')) { $vars[''template_files''][] = ''page-node-add-product''; } } ?>

Asegúrese de borrar la caché y el registro de temas después de realizar nuevas funciones de preproceso.


Para mí el mismo problema. Preguntar dónde insertar un código:

<?php function themeName_preprocess_page(&$vars, $hook) { if ((arg(0) == ''node'') && (arg(1) == ''add'' || arg(2) == ''product'')) { $vars[''template_files''][] = ''page-node-add-product''; } } ?>

Se ingresa en template.php o en page-node - {add | edit} -example.tpl.php?


Puse esto en mi archivo template.php en el directorio de mi tema:

function MYTHEMENAME_theme($existing, $type, $theme, $path) { return array( // tell Drupal what template to use for the edit form family_individual_node_form'' => array( ''arguments'' => array(''form'' => NULL), ''template'' => ''node-family_individual-edit'' ) );


Soy novato de drupal, pero ¿algo (podría necesitar un poco más) como este?

function phptemplate_node_form($form) { switch ($form[''#node'']->type) { case ''product'': return theme_render_template(path_to_theme().''/node-edit-product.tpl.php'', array(''form'' => $form)); default: return theme_node_form($form); } }


function themename_preprocess_page(&$vars) { // Add per content type pages if (isset($vars[''node''])) { // Add template naming suggestion. It should alway use hyphens. // If node type is "custom_news", it will pickup "page-custom-news.tpl.php". $vars[''template_files''][] = ''page-''. str_replace(''_'', ''-'', $vars[''node'']->type); } }

Agregue el código anterior en template.php

Luego crea un par de archivos tpl

1) page-contenttype.tpl.php

utilizado al mostrar y editar el contenido

2) page-node-add-contenttype.tpl.php

utilizado al agregar ese tipo de contenido.

Funciona con drupal 6.