Submitted by zmove on
Bonjour à tous,
Je rencontre un problème pour styler ma view. J'ai utilisé le "theme wizard" et il m'a générer du code autommatiquement que j'ai placé aux bons endroits, et ca marche. Cependant, j'ai encore des <div>
indésirable et je ne sais pas comment les enlever.
voici mon code :
dans template.php
/**
* views template to output a view.
* This code was generated by the views theming wizard
* Date: jeu, 05/04/2007 - 14:44
* View: en_actualite
*
* This function goes in your template.php file
*/
function phptemplate_views_view_list_en_actualite($view, $nodes, $type) {
$fields = _views_get_fields();
$taken = array();
// Set up the fields in nicely named chunks.
foreach ($view->field as $id => $field) {
$field_name = $field['field'];
if (isset($taken[$field_name])) {
$field_name = $field['queryname'];
}
$taken[$field_name] = true;
$field_names[$id] = $field_name;
}
// Set up some variables that won't change.
$base_vars = array(
'view' => $view,
'view_type' => $type,
);
foreach ($nodes as $i => $node) {
$vars = $base_vars;
$vars['node'] = $node;
$vars['count'] = $i;
$vars['stripe'] = $i % 2 ? 'even' : 'odd';
foreach ($view->field as $id => $field) {
$name = $field_names[$id];
$vars[$name] = views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view);
if (isset($field['label'])) {
$vars[$name . '_label'] = $field['label'];
}
}
$items[] = _phptemplate_callback('views-list-en_actualite', $vars);
}
if ($items) {
return theme('item_list', $items);
}
}
Dans views-list-fr_actualite.tpl.php
<?php
/**
* views template to output one 'row' of a view.
* This code was generated by the views theming wizard
* Date: jeu, 05/04/2007 - 14:21
* View: fr_actualite
*
* Variables available:
* $view -- the entire view object. Important parts of this object are
* fr_actualite, .
* $view_type -- The type of the view. Probably 'page' or 'block' but could
* also be 'embed' or other string passed in from a custom view creator.
* $node -- the raw data. This is not a real node object, but will contain
* the nid as well as other support fields that might be necessary.
* $count -- the current row in the view (not TOTAL but for this page) starting
* from 0.
* $stripe -- 'odd' or 'even', alternating. * $title -- Montre l titre du noeud
* $title_label -- The assigned label for $title
* $created -- Montre l'heure de publication du noeud.
* $created_label -- The assigned label for $created
* $field_image_fid --
* $field_image_fid_label -- The assigned label for $field_image_fid
* $body -- Montrer le contenu principal
* $body_label -- The assigned label for $body
* $link -- This will create a link to the node; fill the option field with the text for the link. If you want titles that link to the node, use Node: Title instead.
* $link_label -- The assigned label for $link
*
* This function goes in your views-list-fr_actualite.tpl.php file
*/
//now we add the stylesheet...
drupal_add_css(path_to_theme() .'/views.css');
?>
<?php print $title_label ?>
<?php print $title?>
<?php print $created_label ?>
<?php print $created?>
<?php print $field_image_fid_label ?>
<?php print $field_image_fid?>
<?php print $body_label ?>
<?php print $body?>
<?php print $link_label ?>
<?php print $link?>
et voila le code source de me page au niveaux de la vue :
<div class="content">
<p><div class='view view-fr-actualite'><div class='view-content view-content-fr-actualite'><div class="item-list"><ul><li>
<a href="/fr/test">mon Titre</a>
28/03/2007 - 15:36
<img src="monimage.jpg" alt="3" title="3" width="125" height="100" />
<p>Lorem Ipsum is simply dummy</p>
<a href="/fr/test">[En savoir plus]</a>
</li>
j'aimerais donc supprimer les div "
<
div class='view view-fr-actualite'>", "
<
div class='view-content view-content-fr-actualite'>" et "
<
div class="item-list">" mais je ne vois pas comment faire cela.
Est-ce possible ? si oui, comment faire ?
D'avance merci !
pour ma part je supprimerais
Permalien Soumis par jubjub le 7 Avril, 2007 - 18:50
pour ma part je supprimerais simplement le code qui genere les div classe depuis le module view.
Cherche par exemple item-list dans le fichier.
sinon, sers toi de ses div pour styliser ta view.
ou as tu trouvé ce theme
Permalien Soumis par jubjub le 8 Avril, 2007 - 23:48
ou as tu trouvé ce theme wizard ?
merci
Il est me semble-t'il natif
Permalien Soumis par numidviking le 9 Avril, 2007 - 03:41
Il est me semble-t'il natif dans le package views
Voilà ce que j'ai dans views/views_theme_wizard.info
; $Id: views_theme_wizard.info,v 1.3.2.3 2007/01/19 00:22:46 merlinofchaos Exp $
name = Views Theme Wizard
description = The views theme wizard helps create stub theming for views.
version = "$Name: DRUPAL-5--1-5 $"
package = Views
dependencies = views
; Information added by drupal.org packaging script on 2007-01-22
version = "5.x-1.5"
project = "views"
Accès à partir de l'administration des Views par le menu (lien theme Wizard)
http://www.tonsite.com/admin/build/views/wizard
hummm....je ne trouve pas
Permalien Soumis par jubjub le 9 Avril, 2007 - 13:43
hummm....je ne trouve pas cela. c'est parce que j'ai la 4.7...
j'ai mis les fichiers du theme wizard dans mon module view 4.7. j'active le module, mais j'ai pas wizard dans les menu.
dommage, ca m'interresse ce truc.
Oui, j'ai le theme wizard
Permalien Soumis par zmove le 10 Avril, 2007 - 09:26
Oui, j'ai le theme wizard par défaut avec la dernière version de view sur une drupal 5. C'est une case a cocher dans module > view
Pour ce qui est du theming, oui, j'ai pu design comme je voulais mais j'aurais voulu faire l'économie des div en trop, étant donné que je suis assez pointilleux sur le XHTML et la sémantique. Et j'aurais aimé résoudre ce problème de la facon la plus "propre" possible, comme ca ca me fait apprendre le fonctionnement de drupal par la même occasion.
les class que genere la view
Permalien Soumis par jubjub le 12 Avril, 2007 - 16:38
les class que genere la view te genent dans quel sens?
elles sont la au cas ou tu veux les exploiter. si tu les laisse, ca changera rien.
Ce ne sont pas les classes
Permalien Soumis par zmove le 20 Avril, 2007 - 11:52
Ce ne sont pas les classes qui me gênent, ce sont les div en trop. les class je suis d'accord sur le fait qu'elles sont bien par défaut et si j'en ai pas besoin, ben je ne les utilise pas.
Par contre les div c'est plus génant, ils parasitent la structure de la page, et cela peut influer sur la qualité du référencement ou encore l'accessibilité du site...
Par contre les div c'est
Permalien Soumis par tostinni le 20 Avril, 2007 - 16:32
Par contre les div c'est plus génant, ils parasitent la structure de la page, et cela peut influer sur la qualité du référencement ou encore l'accessibilité du site...
Comment ca ?
Cote referencement, je ne vois pas trop en quoi ca le generait car les moteurs de recherches (a ma connaissance) n'ont rien a faire des balises "div" qui sont la principalement pour faire du positionnement/design de contenu. Bien sur tu peux mettre du formattage de texte mais la encore d'un point de vue semantique ta page ne devrait pas se fier a du CSS pour l'importance des termes.
C'est bien pour cela que Drupal fait un usage intensif des h1, h2 & co...
De meme, niveau accessibilite, la encore, tu peux matter ta page avec Lynx ou avec Opera qui propose ce genre de mode d'accessibilite et si elle est construite correctement (h1 et bla bla), le navigateur se fiche totalement qu'il y est un million de div qui trainent ds ton code ;)
My 2 cts...
Disons que la structure
Permalien Soumis par zmove le 23 Avril, 2007 - 09:26
Disons que la structure n'est pas optimale, quand un div ne sert à rien je préfers l'enlever. On m'a suffisament sensibilisé contre la "divite aigue" pendant mes études pour que j'en sois parano.
Et c'est également une bonne excuse pour comprendre un peu plus le fonctionnement de Drupal, le système phptemplate sensé être révolutionnaire et ultra puissant, je voulais apprendre à l'utiliser dans ses moindre retranchement.
C'est sur que les 2 div en trop sur mon site ne vont pas me faire perdre 1000000 places sur les moteurs de recherche mais ils n'apportent rien non plus.
Pire, il y a tellement de div que cela me génère une margin indésirable vu que mes éléments sont positionnés en float. Obligé de mettre un overflow:hidden pour enlever cette margin (avec tous les problèmes que cela implique...)
Donc ce n'est pas dramatique, mais c'était une bonne occaz de comprendre pourquoi la manipulation que j'ai faite ne marchait pas au moment ou je pensais avoir compris le fonctionnement de phptemplate...
Finalement, as tu reussi a
Permalien Soumis par xitag le 19 Juillet, 2007 - 16:37
Finalement, as tu reussi a regler le probleme ?
J'ai le même problème
Permalien Soumis par Tombiliby le 2 Août, 2008 - 18:13
J'ai le même problème beaucoup trop de div générées ! ça me paume dans ma css.
Bonjour, Je te conseille
Permalien Soumis par Laetitia P le 5 Août, 2008 - 16:56
Bonjour,
Je te conseille d'aller regarder : http://biboo.net/drupal-module-views-1
A partir de ce tutoriel en vidéo, tu as le cheminement, et le code php généré par le theme Wizard. (voir vers minute 11)
J'espère que tu trouveras là-dedans les div auxquelles tu fais référence.