Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Benutzerhandbuch › Fortgeschrittene › Tutorials & How To's - Tipps & Tricks ›

Prozentbalken bei Views (Balkendiagramm)

Eingetragen von xqbzzr (156) am 01.02.2011 - 13:29 Uhr in
  • Drupal 6.x

Mit diesem Code kann die Prozentuale Verteilung von Beiträgen eines bestimmten Beitragstyps im Vergleich zur Gesamtzahl der Beiträge mit einem Balkendiagramm angezeigt werden.

Neben dem üblichen Views-Modul braucht man noch das http://drupal.org/project/views_customfield. Damit kann man per php-Code eigene Felder erstellen.

  1. Man erzeugt einen neuen View vom Typ "Begriff"/"Term".
  2. Man fügt das Feld "Taxonomie: Begriff"/"Taxonomy: Term" hinzu. Das Feld wird ganz oben "von der Anzeige ausgeschlossen."
  3. Man fügt das Feld "Taxonomie: Begriff"s ID"/"Taxonomy: Term ID" hinzu. Das Feld wird ganz oben "von der Anzeige ausgeschlossen."
  4. Da meistens viele Dinge bereits mit Taxonomien belegt sind, kann jetzt ein Filter "Taxonomie:Vokabular" hinzugefügt werden, mit dem man die angezeigten Ergebnisse auf bestimmte Taxonomien beschränkt.
  5. Falls man mit verschachtelten Taxonomien arbeitet, kann die Anzeige teilweise verwirrend sein. Man kann mit zusätzlichen Filtern z.B. die übergeordneten Begriffe ausschliessen.
  6. Ein Feld "Taxonomie: Vokabularname" anlegen und per Checkbox "von der Anzeige ausschliessen".(wird später benötigt für Gruppierung)
  7. Bis hierhin ist der View noch komplett leer. Wir haben nur die benötigten Daten geladen, die im nächsten Schritt verwendet werden.

  8. Ein neues "Customfield" hinzufügen. Beschriftung: leer. Per Checkbox "dieses Feld als Link ausgeben" und in den Pfad taxonomy/term/[tid] und bei Alt-Text [name] eingeben. (Das funktioniert nur, wenn das Feld für den Begriffsnamen vor diesem Feld angelegt wurde!(siehe Schritt 2))
  9. Per Checkbox die "Nummer 0 als leer werten" und das Feld "verstecken, falls leer".
  10. Als Wert folgenden Code eingeben:
    <?php $nodecount_bytype=db_result(db_query("SELECT COUNT(nid) FROM {node} WHERE type= 'XYZ'")); //count all nodes of a certain type(replace XYZ with your nodetype name)?>
    <?php $nodecount_byterm=taxonomy_term_count_nodes($data->tid, $type = 0); //count all nodes on this term?>
    <?php $nodecount_percent=($nodecount_byterm/$nodecount_bytype)*100; //calculate percentage?>
    <?php if ($nodecount_byterm!='0' ) { //check if any nodes for this term exist ?>
    <div class="percent-bg" style="width: 100%; background: silver; margin-bottom: 5px; ">
    <div class="percent-bar" style="width: <?php echo($nodecount_percent);?>%; background: orange; overflow: visible; white-space: nowrap;">
    <span class="percent-text" style="padding-left: 5px;">
    <?php echo ($data->term_data_name.': '.number_format($nodecount_percent,2).' Prozent');?>
    </span>
    </div>
    </div>
    <?php  } else echo '0'; //output zero for terms with no nodes and hide that term?>

    In der ersten Zeile wird der Beitragstyp definiert. Das "XYZ" muss durch den maschinenlesbaren Namen des Beitragstypes/Nodetypes ersetzt werden.
    Im Moment wird die Prozentzahl mit zwei Nachkommastellen angezeigt. Wer lieber auf volle Prozente runden will ersetzt die Zeile
    <?php echo ($data->term_data_name.': '.number_format($nodecount_percent,2).' Prozent');?>

    durch
    <?php echo ($data->term_data_name.': '.round($nodecount_percent).' Prozent');?>
  11. Als "View Style"/"Darstellung" "Unformatiert" wählen.
  12. Bei den Darstellungsoptionen (das kleine Zahnrad) als Gruppierungsfeld "Taxonomie:Vokabularname" wählen.(siehe Schritt 6)

Die Prozentbalken haben eigene CSS Klassen bekommen, damit sie aus dem Theme heraus verändert werden können. Wenn diese zweifarbige Gestaltung ausreichend ist, können auch einfach "silver" und "orange" durch die gewünschten Farben ersetzt werden.(Hexadezimalcodes #00ff00)
Wahrscheinlich ist diese Abfrage nicht sehr Datenbankfreundlich und sollte für große Seiten vielleicht lieber mit dem http://drupal.org/project/term_node_count realisiert werden.
Der Vorteil ist, dass kein Extra Modul benötigt wird.
Ich hoffe, diese Anleitung ist hilfreich und wünsche viel Erfolg.
Verbesserungsvorschläge von "echten" Programmierern immer gerne.

AnhangGröße
Beispiel120.37 KB
‹ Portierung eine Themes von openwebdesign.org nach oben Themen eines Node-Formulars ›

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal 10 und Thema Bartik
  • Wie in hook_views_query_alter() einen join auf Tabelle url_alias durchführen?
  • Strukturierte Daten Fehler
  • fbsmp\plugins Hilfe
  • Migration über feeds von D6 auf D8
  • Theme Classy sei installiert, ist aber nicht bei Themes
  • Composer 1 zu Composer 2
  • Bitte um Einschätzung: Upgrade von Drupal 7 auf 9
  • Scroll zu View-Ergebnissen nachdem Filter angewendet ist
  • SQL-Injection? User hat sich Zugriff aufs Admin-Konto geholt und Änderungen vorgenommen.
  • [gelöst] Persönliches Kontaktformular, oder interne User Nachrichten
  • Webform Progress Symbol (Loading icon)?
Weiter

Neue Kommentare

  • Superfish
    vor 2 Tagen 13 Stunden
  • Auch für superfish gibt es
    vor 2 Tagen 16 Stunden
  • Versuchs mal mit
    vor 2 Tagen 16 Stunden
  • Drupal 10 läuft
    vor 2 Tagen 17 Stunden
  • Da wirst Du den Bug wohl selbst beheben müssen
    vor 4 Tagen 12 Stunden
  • Gleiches Problem: bootstrap 4
    vor 6 Tagen 14 Stunden
  • Da wirst Du den Bug wohl
    vor 6 Tagen 17 Stunden
  • Immer noch composer 1 zu 2
    vor 1 Woche 7 Stunden
  • Beziehung Branche Adresse!
    vor 5 Tagen 17 Stunden
  • Sorry, dann gab es das bei
    vor 1 Woche 10 Stunden

Statistik

Beiträge im Forum: 248398
Registrierte User: 19753

Neue User:

  • Aman_Musani
  • Dustinjex
  • Rickywap

» Alle User anzeigen

User nach Punkten sortiert:
wla9289
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 4 Gäste online.

DrupalCenter durchsuchen:

Benutzerhandbuch

  • FAQ - Häufig gestellte Fragen.
  • Links & Downloads
  • Über Drupalcenter.de und das deutschsprachige Benutzerhandbuch
  • Über Drupal
  • Einsteiger
  • Fortgeschrittene
    • Best Practice - Drupal Sites - Guidelines
    • Die beliebtesten Themes und Module
    • Tutorials & How To's - Tipps & Tricks
      • Kurztipps - Dinge die Stunden sparen können.
      • Notfallpläne - Tipps die Deine Drupalinstallation retten können
      • Anleitung zur Erstellung eines einfachen Kontaktformulars
      • Arbeiten mit dem Drupal Taxonomie-System [beinhaltet veraltete Inhalte]
      • Bearbeiten-Tab zu jeden Block hinzufügen
      • Block View mit Argument
      • Das Tagebuch einer Site
      • Drupal 6 - Automatisch unterschiedliche Bildgröße bei Teaser und Artikel
      • Drupal 6 - Eigene CSS Datei in ein Theme integrieren
      • Drupal 6 - Einfache Bildergalerie mit Image und Lightbox2
      • Drupal 6 - Einrichten eines Kalenders
      • Drupal 6 - Google Adsense ohne Zusatzmodul einbinden
      • Drupal 6 - Hauptnavigation mit DropDown Effekt ab Ebene Zwei
      • Drupal 6 - ImageMagick mit XAMPP Lite nutzen
      • Drupal 6 - Imagefield mit Imagecache und Colorbox
      • Drupal 6 - Installation FCK Editor
      • Drupal 6 - Installieren der WYSIWYG API inkl. Editoren
      • Drupal 7: mehrere Bilder in Node: 1 Bild in Anrisstext
      • Drupal Code Highlighting in Redmine Projektarchiv (CodeRay)
      • Drupal Theming: JavaScript einhängen in Abhängigkeit von Page-Variablen
      • Drush - Das Schweizermesser für Drupal auf Kommandozeile
      • Einfaches und erfolgreiches Patchen unter Windows
      • Eingabeformat & Inputfilter
      • Einrichten eines einfachen, statischen Menüsystems
      • Erstellen von Patches
      • Gallery mit CCK und Views erstellen (Drupal 5)
      • Header image Modul einrichten
      • Inhaltsübersicht für einen User mit einem View erstellen
      • Javascript und CSS-Dateien einbinden
      • Kontaktformular mit Jquery aufwerten
      • Leitfaden zur Erstellung von Suchmaschinenoptimierten Drupal-Sites
      • Mac OSX - Backupskript für Websites auf MAMP
      • Module updaten via Shell auf Windows
      • Module übersetzen
      • Perl-Script zum Erzeugen einer statischen Kopie einer Drupal-Website
      • Portierung eine Themes von openwebdesign.org
      • Prozentbalken bei Views (Balkendiagramm)
      • Themen eines Node-Formulars
      • Titel mit Stil
      • Umkreissuche mit Location- und Views-Modul
      • Usergalerie mit ImageCache, CCK, Views + Thickbox
      • Userprofil mit Usernodes erstellen
      • Validierung von Usereingaben bei Nodes
      • Variation vom Showroom auf drupalcenter.de
      • View mit Eingabeformular für neue Beiträge
      • WebSVN mit Drupal Code Highlighting
      • Zusätzliche Submit-Schaltfläche in Node-Formularen
      • i18n Language Switcher Block, die Links mit den Flaggen themen
      • ui.slider als Ersatz für den Ajax-Pager von Views
      • Zugriffsbeschränkungen für Nodes - eine Übersicht der Möglichkeiten
  • Entwicklung von Modulen und Themes
  • Drupalcenters Community
  • Drupal 7 Video-Trainings (Deutsch)
  • Drupal-Testumgebung erstellen
  • Drupal 6 Module
  • Drupal 7 Module
  • Drupal Screencasts auf deutsch
  • Archiv

Das Copyright des deutschsprachigen Drupal-Benutzerhandbuches unterliegt den jeweiligen Autoren. Übersetzungen des englischsprachigen Drupal-Benutzerhandbuches unterliegen der Creative Commons License, Attribution-ShareAlike 2.0.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association