Buenas a todos,
Necesito themear el node/add/mi_tipo_contenido
He probado agregando algunas funciones en template.php basandome en lo que esta acá,
http://2bits.com/articles/creating-nodes-using-mini-forms-anywhere.html
Pero no pude hacer que funcione como corresponde.
Lo que mas quiero hacer es agregar una vista arriba del formulario para crear contenido. Y para ello tengo dos opciones,
1.- Themear la pagina node/add/mi_tipo_contenido agregando mi estilo y la vista por arriba.
2.- Crear una vista o un page que incluya una vista. Y abajo incrustar el formulario.
Pero el tema es que no se como hacer ninguna de las dos.
Espero que alguien me pueda ayudar.
Saludos y muchas gracias!

Comments
hola
Mira, porque no intentas poner la vista como un bloque y decirle que se te muestre en esa dirección. Crea una region en el .info de tu tema e imprime la variable como otra cualquiera (left, rigth,....) y activa el bloque de la vista que solo se muestre en esa página.
Pero igual, este link explica como themear el formulario de creacion y edición de contenidos.
http://drupal.org/node/101092#comment-874839.
Nosotros lo hacemos...
Hola! mira nosotros hemos solucionado rápidamente creando el tpl:
page-node-add-micontenido.tpl.php
page-node-edit-micontenido.tpl.php
Saludos!
Tiana
Fenomeno!!!!
Gracias chicos, este ultimo tips me sirvio de mucho!
Saludos!
Solo para agregar, hay un tutorial lindo de Lullabot
Los tips que los compañeros te dan son muy buenos.
Si querés incursionar en hook_form_alter(), etc. para una solución, (en algún momento lo necesitarás), Lullabot tiene un buen tutorial, tanto para Drupal 5 (el ejemplo de 2bits que mencionas es solo para Drupal 5, por eso no te anda), y Drupal 6.
Ver http://www.lullabot.com/articles/modifying-forms-drupal-5-and-6
Para empotrar views con php, aquí van algunos ejemplos:
node-<tipo>.tpl.php:
<div class="content">
<?php print $content ?>
<?php
$view_name = <nombre del view>;
$args = array(0 => valor de argumeno primero); // si no hay argumentos, poner $args = array()
$view = views_get_view($view_name);
$view->set_arguments($args);
$view->set_items_per_page(0); // si usás pager
print $view->execute_display(0, $args);
//print_r($view->result);
?>
</div>
A veces es más simple:
print views_embed_view($viewname, $display_id = 'default');Y a veces solo queres el resultado como objeto php:
<?phpfunction views_build_view($view_name, $args = array()) {
$view = views_get_view($view_name);
$view->set_arguments($args);
$view->execute();
// hacer algo con $view->result; // es un array de objetos que son los resultados de la lista
}
?>
Saludos!
Victor Kane
http://awebfactory.com
Muy completa su respuesta
Muy completa su respuesta Victor.
Cuando necesito mostrar una vista dentro de un nodo, o alguna otra parte que no se pueda hacer mediante páneles o bloques, yo hago esto, que es lo que ud. menciona en su solución simple:
<?php$viewName = 'nombrevista';
$display_id = 'displayvista';
$args = array($arg1, $arg2, $arg3);
print views_embed_view($viewName, $display_id, $args);
?>
Saludos,
JaHuBeGo
Buenas a todos... Víctor,
Buenas a todos... Víctor, siempre un placer leerte.
Hace poco tuve la necesidad de crear una vista (display block) para usarla embebida en varias otras. Mi opción fue añadirla con un poco de código php en la cabeceras de las contenedoras. El resultado es muy bueno y me extraña que no haya sido comentado acá, aunque en definitiva, es una solución muy parecida a las dadas.
Cuando veo lo flexible que es Drupal, la cantidad de formas de hacer algo correctamente... me doy cuenta de lo potente que es esta herramienta.
Sólo tengo un problema, ahora leeré el tutorial de Lullabot a ver si encuentro algo. Mi conflicto es que no me muestra el display block, sino el por defecto.
<?php...
$view = views_get_view('slideshow');
if($view){
$args = array(arg(1),arg(2));
$display_id = 'block';
print $view->execute_display($display_id , $args);
}
...
?>
me salto algo en el código??
EDITO:
Pues conflicto solucionado.
Tenía que llamar a display 'block_1', es necesario invocar por el id único
Para más información: http://drupal.org/node/567214
Y es fácil encontrar el "nombre máquina" (machine name)
Hay dos maneras, uno mirar en la base de datos en la tabla "views_display", están todos indexados por id de views.
Más fácil y directo, mientras editás un view, si pasás tu mouse arriba de los displays, en la barra de status del browser, va a decir "http://example.com/admin/build/views/edit/list_issues#views-tab-node_content_1", con lo cual sería node_content_1 (si es un display usando el módulo views attach).
Obviamente, uno puede pensar, el primer block es block_1, etcétera, pero creo que si borrás uno en el medio más adelante la enumeración no va a ser consecutiva.
Excelente cómo te estás metiendo en todo esto.
Victor Kane
http://awebfactory.com
Hola
Me gustaría ver como se puede poner dentro de un Nodo paneles ( tabs) de forma interna , tal como en esta pagina de Joomla:
http://ayudajoomla.com/joomla/tutoriales/480-pestanas-slides-y-paginas-u...
El resultado Final seria como este:
http://ayudajoomla.com/images/stories/pestanas-joomla17.jpg
P.D. No se en este momento como crear un Nuevo tema , Disculpas si no lo he realizado Bien
view tabs
Hola witoszek
Te recomendaria el modulo Tabs (jQuery UI tabs)http://drupal.org/project/tabs si usas D6
En el caso de D7 http://drupal.org/node/1034690 te puede ayudar =)
saludos
Carolina
views tab
Hola
Gracias por tu pronta respuesta pero no encuentro un manual para crear el resultado Final.
Saludos
Daniel