web-dev-qa-db-fra.com

Obtenez des données de vues «brutes» (sans marquage peu ou peu)

Une chose que je déteste sur les vues est ce groupe de balises et de nidification utilise pour rendre les données sur une page.

Ce que je fais habituellement pour remédier à ce problème, c'est itérer la variable de contenu et couper toutes les étiquettes afin que je puisse leur l'afficher comme je le souhaite. Je connais ce genre de raccourci sale et je me demandais s'il y avait une meilleure façon de le faire.

Ne vise-t-il que la sortie des données brutes de la DB sans ajouter tout ce marquage à celui-ci?

5
silkAdmin

Utilisez-vous des vues 6.x-3.x ou 7.x-3.x? Si tel est le cas, vous pouvez faire une tonne de la tâche grognante de la suppression des vues 'Markup par défaut en ajustant les champs "Paramètres de style". Si vous utilisez une ancienne version de vues, Vues sémantiques fait à peu près la même chose. Un gotcha: Si vous ne voulez pas que l'enveloppe par défaut autour de chaque champ, vous devez vérifier l'option "Configurer le champ et l'emballage de l'étiquette" et définissez-la sur 'Aucun' - qui me fait trébucher parfois.

Pour ajuster les autres bits de balisage autour, par exemple, la vue entière, ou chaque ligne, vous pouvez copier les fichiers de modèle de vues (dans le views/theme Dossier) Dans le dossier de votre thème et les modifier au contenu de votre coeur.

Les vues de la raison créent tout ce marquage étranger est qu'il essaie d'être tout pour tout le monde. Je trouve beaucoup de fois que c'est plus facile (et aide à peine les temps de chargement de la page) pour simplement aller avec le balisage par défaut, sauf si j'essaie de faire du thème avancé. Il y a une classe pour à peu près tout!

Sur une autre note - si vous essayez de renvoyer quelques données, dans un format comme JSON ou XML ou quelque chose de similaire, vous souhaiterez utiliser un type d'affichage différent pour les vues en plus de l'un des "champs non formatés" standard ou ' ' les types...

2
geerlingguy

Le moyen le plus simple d'accomplir c'est:

  1. Exclure les champs d'affichage.
  2. Ajoutez un champ et choisissez "Réécrire les résultats" pour la réécrire avec les champs souhaités (des modèles de remplacement). Vous pouvez ajouter un balisage autour des jetons si vous le souhaitez.
  3. Décochez "Fournissez des éléments d'emballage par défaut" à partir des paramètres d'affichage.
1
cateye

Une combinaison de vues 3 et le module de vues sémantiques est généralement suffisant pour moi.

Dans des circonstances extrêmes, quand je veux absolument zéro Markup, par exemple. Pour afficher une date complètement personnalisée, je crée mon propre petit modèle pour le champ en question (en choisissant le bon fichier pour créer à l'aide de la partie d'information sur le thème de la vue). Dans votre modèle, la valeur par défaut est print $output;, qui est totalement inutile. Pour mon exemple de date, j'ai remplacé cela avec:

print my_pretty_date($row->{$field->aliases['field_date_value']},
  $row->{$field->aliases['field_date_value2']}
);

Cela me laissera exécuter ma fonction de formatage de la date personnalisée avec les dates au format DateTime MySQL.

Important: je ne sais pas si le $row Les données sont désinfectées. Il est difficile de le découvrir aussi.

1
chichilatte