| |||
Problema con una vista El caso es que quería hacer una vista en la que salgan todos los términos de un vocabulario llamado "Comarcas", y que de cada comarca aparezca un sólo artículo. El caso es que consigo que salgan todas las comarcas si elijo en el tipo de vista Term, pero no me sale opción de poner los artículos en la vista, y si escojo node, sí sale, pero las comarcas sin noticias no aparecen. ¿Alguna sugerencia? |
| |||
Respuesta: Problema con una vista Me refiero a que si escojo una vista tipo Term, pues en field no me deja elegir los nodos. Además, si escojo en el tipo node, los términos que no tienen todavía relacionado ningún artículo no aparecen. |
| ||||
Respuesta: Problema con una vista Te conviene usar la vista taxonomy/term/% que viene con el modulo Views integrado, solo la tenes que habilitar y listo, los nodos los elige solos, tenes que limitar a 1 nada mas. No te conviene crear una vista de tipo term, al menos en mi opinion. Saludos. |
| |||
Respuesta: Problema con una vista Lo que quiero es que aparezcan todos los términos, incluso los que no tienen artículo, y los que tienen artículo que muestren uno solo, no sé si me explico. |
| ||||
Respuesta: Problema con una vista Algo que se me ocurrio es lo siguiente: Creas una vista de tipo Term, donde te devuelven todos los terminos. Haces un override del views-row (como se muestra cada resultado de la vista). En ella usas la funcion taxonomy_select_nodes de la api de Drupal, que te devuelve todos los ids de nodos que contengan. http://api.drupal.org/api/drupal/mod...select_nodes/7 Lo que tenes que hacer es imprimir el termino, y en caso de que haya articulos que contentan ese termino, entonces imprimis el primero, todo esto programandolo en PHP (sin usar Drupal). Lo unico que veo de malo es como ordenar esos ids de nodos, ya que no se como los devuelven, podes ponerle un limite de ids (fijate el enlace que te puse). Saludos. |
| ||||
Respuesta: Problema con una vista Fijate el enlace de arriba, es una funcion de la api de drupal que, dado el id del termino, te devuelve los nodos que lo llevan, es bastante facil de usar. A esa funcion la tenes que usar cuando hagas el override de las vistas, y asi conseguiras el articulo, si es que existe (si no existe nada se supone que no tenes que imprimir mas que el nombre del termino) Saludos. |
| ||||
Respuesta: Problema con una vista No, no me refiero a eso, es lo siguiente: Dentro de cada vista vos tenes una opcion "Theme", esta abajo. Cuando haces click, te salen un listado de opciones, con sus respectivos nombres de ficheros usados por la vista. Mira la siguiente imagen: Lo que te dije que tenes que hacer es crear un nuevo fichero php para el "Row Style output", que es lo que se muestra en cada Row (fila, en tu caso cada termino). Lo creas, copias el contenido que hay por defecto, y lo pones en la carpeta de tu theme. Luego lo editas y programas en php, usando la funcion que te puse mas arriba ... ahi ya no tenes que usar Drupal, tenes que programar a mano, calculando si hay un articulo para el termino o no. De todos modos creo que vos no sabes bien como usar la vista, te recomendaria que leas la documentacion del modulo, porque esto que queres hacer es muy avanzado, y, viendo tu planteamiento inicial, creo que buscabas una solucion sin programar nada... Saludos. |
| |||
Respuesta: Problema con una vista No, si hay que programar, se programa. Hmmm, esto se puede hacer con una consulta SQL también, ahora que lo pienso. ¿Ayudarían algo las Q-views? Por cierto, ¿dónde guardo el fichero creado? |
| ||||
Respuesta: Problema con una vista En la foto que te puse, los nombre de ficheros en negrita son los usados por views a la hora de mostrar resultados, si el marcado es el primero, eso quiere decir que Views usa el fichero por defecto. Los tenes que poner dentro de la carpeta de tu theme, el que estes usando. Y de qviews no se nada =( , lo siento Saludos. |
| ||||
Respuesta: Problema con una vista En uno nuevo, lo tenes que crear vos con los nombres que te recomienda el modulo. Fijate como yo cree en Row Style Output un fichero, y Views lo eligio (es el segundo). Es muy dificil de explicar chateando esto .... te voy a dejar un tutorial, pq si no no vamos a acabar mas. http://www.appnovation.com/over-ridi...queries-drupal Saludos. |
| |||
Respuesta: Problema con una vista Bueno, retomo el tema de las comarcas. Estuve leyendo el tutorial, y tengo alguna pregunta: Donde pone que crear el archivo views-view-table—name-of-your-view--page.tpl.php dentro de mi carpeta de temas, ¿ese — se refiere a -- o a —? ¿Por carpeta de temas es el tema que estoy usando o la carpeta donde están los temas? |
| ||||
Respuesta: Problema con una vista Dentro de cada display de las vistas, tenes la opcion "Theme", cuando haces click, te salen los diferentes nombres de ficheros para hacer override, los creas, pones el contenido que te da Drupal, colocas el fichero en la carpeta de tu tema, y le das a "Rescan Templates", asi reconoce tu fichero nuevo. Luego de eso tan solo tenes que modificar el fichero a tu gusto, es bastante util la verdad. Saludos. |
| |||
Respuesta: Problema con una vista Encontré otra forma de hacerlo, así, probando cosas. Si en relaciones escojo Taxonomía: Nodo (que encuentra todos los nodos etiquetados con un término), me hace casi lo que quiero. Casi porque aparecen todos los artículos de cada una de las comarcas, y yo quería una noticia por cada comarca, cosa que conseguí con el estilo Grouping Field (With limit), pero la vista resultante con este estilo es bastante simple, fea, y yo buscaba algo parecido a Fluid Grid. ¿Hay algo parecido a Grouping Field (With Limit) pero con una estética más atractiva? |
| ||||
Respuesta: Problema con una vista La estetica te la podes crear vos mismo desde theme, lo que te mencione antes. Sin embargo, si buscas que Drupal haga de diseñador, lo tenes dificil... |
| |||
Respuesta: Problema con una vista Bueno, como ahora quiere mi jefe que en vez de salir un artículo por comarca, salgan dos artículos, pues empecé a hacer lo del override, así que tengo este fichero creado: views-view-fields--Comarcas.tpl.php. Pero cuando le pongo lo deltaxonomy_select_nodes me sale este error: |
| |||
Respuesta: Problema con una vista <?php // $Id: views-view-fields.tpl.php,v 1.6 2008/09/24 22:48:21 merlinofchaos Exp $ /** * @file views-view-fields.tpl.php * Default simple view template to all the fields as a row. * * - $view: The view in use. * - $fields: an array of $field objects. Each one contains: * - $field->content: The output of the field. * - $field->raw: The raw data for the field, if it exists. This is NOT output safe. * - $field->class: The safe class id to use. * - $field->handler: The Views field handler object controlling this field. Do not use * var_export to dump this object, as it can't handle the recursion. * - $field->inline: Whether or not the field should be inline. * - $field->inline_html: either div or span based on the above flag. * - $field->separator: an optional separator that may appear before a field. * - $row: The raw result object from the query, with all data it fetched. * * @ingroup views_templates */ ?> <?php foreach ($fields as $id => $field): ?> <?php if (!empty($field->separator)): ?> <?php print $field->separator; ?> <?php endif; ?> <<?php print $field->inline_html;?> class="views-field-<?php print $field->class; ?>"> <?php if ($field->label): ?> <label class="views-label-<?php print $field->class; ?>"> <?php print $field->label; ?>: </label> <?php endif; ?> <?php // $field->element_type is either SPAN or DIV depending upon whether or not // the field is a 'block' element type or 'inline' element type. ?> <<?php print $field->element_type; ?> class="field-content"><?php print $field->content; ?></<?php print $field->element_type; ?>> </<?php print $field->inline_html;?>> <?php endforeach; ?> <?php function taxonomy_select_nodes($tids = array(), $operator = 'or', $depth = 0, $pager = TRUE, $order = 'n.sticky DESC, n.created DESC') { if (count($tids) > 0) { // For each term ID, generate an array of descendant term IDs to the right depth. $descendant_tids = array(); if ($depth === 'all') { $depth = NULL; } foreach ($tids as $index => $tid) { $term = taxonomy_get_term($tid); $tree = taxonomy_get_tree($term->vid, $tid, -1, $depth); $descendant_tids[] = array_merge(array($tid), array_map('_taxonomy_get_tid_from_term', $tree)); } if ($operator == 'or') { $args = call_user_func_array('array_merge', $descendant_tids); $placeholders = db_placeholders($args, 'int'); $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n INNER JOIN {term_node} tn ON n.vid = tn.vid WHERE tn.tid IN (' . $placeholders . ') AND n.status = 1 ORDER BY ' . $order; $sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n INNER JOIN {term_node} tn ON n.vid = tn.vid WHERE tn.tid IN (' . $placeholders . ') AND n.status = 1'; } else { $joins = ''; $wheres = ''; $args = array(); foreach ($descendant_tids as $index => $tids) { $joins .= ' INNER JOIN {term_node} tn' . $index . ' ON n.vid = tn' . $index . '.vid'; $wheres .= ' AND tn' . $index . '.tid IN (' . db_placeholders($tids, 'int') . ')'; $args = array_merge($args, $tids); } $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n ' . $joins . ' WHERE n.status = 1 ' . $wheres . ' ORDER BY ' . $order; $sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n ' . $joins . ' WHERE n.status = 1 ' . $wheres; } $sql = db_rewrite_sql($sql); $sql_count = db_rewrite_sql($sql_count); if ($pager) { $result = pager_query($sql, variable_get('default_nodes_main', 10), 0, $sql_count, $args); } else { $result = db_query_range($sql, $args, 0, variable_get('feed_default_items', 10)); } } return $result; } ?> |
| ||||
Respuesta: Problema con una vista Pq copias y pegas la funcion ahi? Se supone q esta definida ya en el modulo de Taxonomias, normal q te tire un error .... Vos lo q tenes q hacer es usar esa funcion, no definirla!! |
| |||
Respuesta: Problema con una vista ¿Entonces, lo que tengo que poner es lo de taxonomy_select_nodes($tids = array(), $operator = 'or', $depth = 0, $pager = TRUE, $order = 'n.sticky DESC, n.created DESC') ? Me refiero sin el function antes de taxonomy_select_nodes. Última edición por Gandolfillo; 01/02/2011 a las 04:29 |
Etiquetas: |