Views

Views 6.x 3.x Stable enough for production?

People are using Views 3.x in production. However, I recommend that only to Drupal experts who are comfortable digging deep into Views' code when they run into something, and people who are comfortable with the possibility that an upgrade might cause API related problems that could take some effort to understand and fix. The biggest weakness of Views 3 right now are other modules supporting API changes, but they've been coming around where possible.

from http://drupal.org/node/832436

Blog:

better_exposed_filter (by niceday5)

Wer bei der Verwendung von views_filter_pack Probleme damit hat, daß bei Verwendung der Checkboxen falls nichts selektiert ist, nicht die Suchergebnisse bekommt, die er bei einer Multiple Value Select List, welche er in der View als optional exposed filter eingestellt hat, bekommen würde wenn er dort nichts auswählt, der kann das Modul better_exposed_filter verwenden. Dieses liefert das gewünschte Verhalten und bietet einem zusätzlich noch die Möglichkeit ein "Select All/None" link zu aktivieren.

View zurücksetzen

Mit diesem Snippet kann man eine View, welche in Code exportiert ist, zurücksetzen:

<?php
$view = views_get_view('viewname');
// only revert it, don't remove it.
if ($view->type == t('Overridden')) {
$view->delete();
}
}
?>

Views in ein Modul exportieren

Jeder der einmal Views installiert hat wird schonmal über das Modul views_export gestolpert sein.

Hier eine kurze Anleitungen wie man damit mehrere Views in ein Modul zusammenpackt.

  1. Aktivierung des views export modules
  2. Auf admin/build/views/tools/export gehen und views auswählen
  3. Nun bekommt man vorschläge für Code
    Das erste muss in eine .module datei
    das zweite muss in eine .views_default.inc Datei, einfach kopieren

Jede Views völlig übersetzbar machen

Während des schreiben des vorherigen Blogeintrag ist mir die Idee gekommen, dass es den hook_views_pre_view() gibt:
Damit kann man nach dem Abfragen der Daten aus der Datenbank, das Viewsobjekt veränder, bevor es gerendert wird.

Somit könnte man jeden String einer Views übersetzbar machen, z.B. der Fieldtitel, der Seitentitel ...
Also habe ich mein vorheriges Modul ein bisschen angepasst. Nun kann man einfach jeden String übersetzen

Label von Exposed Filtern übersetzbar machen

Jemand hatte mich heute gefragt ob es möglich sei die Beschriftungen von Exposed Filter übersetzbar zu machen. Eine Lösung ist die View mit hook_views_default_views() zu integrieren und dort das Label mit einer t() Funktion umgegeben. Jedoch gibt es eine viel bessere, einfachere und für alle Views gültige Methode ein kleines Modul ( Im Anhang)
Dafür braucht man nur folgenden Code:
<?php
/**
* Implementation of hook_form_alter()
*/
function translate_filter_form_alter($form_id, &$form) {
// if you have a views_exposed_filter

Alle Nodes eines Contenttyp löschen

Wie löscht man effektiv, schnell und einfach alle Nodes eines Contenttyps. Mit SQL kommt man nicht weit, da insbesondere bei CCK relativ schwer ist, zu wissen wo alle Daten stehen. Was nimmt man dann?
DELETE from {node} where type="abc"
Das löscht zwar die Existens für Drupal, aber viele Daten sind weiterhin gespeichert

Da war mir erst guter Rat teuer. Aber dann kam mir die Idee: node_delete($NID) und Views -> keinerlei SQL und flexibel

Gallery mit CCK und Views erstellen

Seit CCK und Views kann man eigentlich ohne Probleme auf Image und seiner Gallery verzichten. Ich zeige hier wie man mit CCK und Views eine Gallery bereitstellen kann, mit der ganzen Kraft von Views.

Vorraussetzungen:

Views Element überspringen

Oft würde man in der Views, X Elemente überspringen, aber kann dies nur, zu mindestens war es bei mir so, mit Theming erreichen.

Dafür gibt es jedoch eine Sehr simple Lösung, wenn man die mal die komplette Views Genierungs Funktion anschaut:

<?php
function views_build_view($type, &$view, $args = array(), $use_pager = false, $limit = 0, $page = 0, $offset = 0, $filters = NULL) {}
?>

Wichtig ist Hier das Argument $offset, das lässt Elemente überspringen
also vorher $offset = 1; und übergeben

Views als Datenbank Abfrage

Views werden Standartmäßig ja nur als Block oder Page oder so eingesetzt, aber man könnte das ja auch einfach als Ersatz für SQL verwenden

<?php
$view1 = views_get_view('view_name');
views_build_view('page', $view1, $current_view->args, false, false));
?>

Dies ist dir normale Form der Einbindung aber statt "page" kann man noch andere Dinge eingeben

Subscribe to RSS - Views