Views

Jedná se v podstatě o "inteligentního tvůrce dotazů". Umožňuje vytvářet a filtrovat vlastní sestavy, souhrny, kolekce obrázků a další obsah.

Instalace

  1. Nainstalujte modul Chaos Tools.
  2. Rozbalte modul Views 7.x-3.0-rc1 do adresáře sites/all/modules.
  3. V admin/modules (Moduly) povolte požadované moduly např.:
    • Views
    • Views UI (konfigurační rozhraní je vhodné na produkčním webu vypnout)
  4. Při upgradu z Drupalu 5 nebo Views 1 je nutné v admin/structure/views/tools/convert (Struktura, Views, Tools, Convert) ručně převést stávající pohledy do verze nové.
  5. V admin/structure/views (Struktura, Views) můžete upravit stávající pohledy.
  6. V admin/structure/views/add (Struktura, Views, Add new view) je možné vytvářet pohledy nové.
  7. V admin/people/permissions (Uživatelé, Oprávnění) nastavte oprávnění jednotlivých uživatelských rolí.
    • omezení přístupu je také možné nastavit přímo ve vlastnostech každého pohledu 
  8. admin/structure/views/settings (Struktura, Views, Nastavení) je možné upravit výchozí nastavení např. povolit:
    • Always show the master display
    • Always show advanced display settings
  9. Pro import existujících Views je nutné povolit v modulech PHP filter enlightened.

Video návod Views2 (en), Views Documentation (en)

Další moduly:

  • Advanced help
  • Administration Views – umožňuje upravit administrační stránky dle potřeb např. filtrace obsahu, komentářů, dávkové operace atd.
  • Internationalization Views
  • Simple Views – usnadňuje vytváření často používaných pohledů (může ušetřit spoustu času nejen začátečníkům)
  • Masonry Views – dynamické rozmístění obsahu
  • Views Field View
  • Views Auto-Refresh
  • CCK
  • DraggableViews
  • Voting API
  • Views Bonus Pack – umožňuje exporty do CSV, XLS, DOC, XML atd.
    1. přidat pohled "page feed"
    2. nastavit styl CSV
    3. nastavit cestu: něco.csv
    4. připojit (attach to) k již existujícímu pohledu
  • Views Bulk Operations (VBO)
  • Views OR (experimental)
  • Devel
  • Calendar
  • Views Calc
  • Views PHP
  • Term Node Count
  • Views Crosstab
  • Views Group By
  • Views Custom Field
  • Views Accordion – další typ zobrazení (sbalování a rozbalování obsahu)
  • Slideshow efekty:
    • Flex Slider
      • FlexSlider Views Slideshow
        • pro automatickou výšku obrázků je vhodné doplnit CSS např.:
        • /* auto height */
          .flexslider .slides img {
            height: auto;
          }
    • Views Slideshow – typ zobrazení umožňující vytvářet slideshow z uzlů
      • pozor jQuery Cycle Plugin Lite (je asi o 90% menší) nemá funkční aktivní přepínací tlačítka enlightened
      • pro automatickou výšku obrázků je vhodné doplnit CSS např.:
        • /* auto height */
          .views-slideshow-cycle-main-frame {
            width: 100% !important;
            height: auto !important;
            margin-bottom: 50%;
          }
          /* clear fix */
          .views-slideshow-cycle-main-frame:after {
            clear: both;
            content: ".";
            display: block;
            height: 0;
            visibility: hidden;
          }
          /* responsive image */
          .views_slideshow_slide,
          .views_slideshow_slide img {
            width: 100% !important;
            height: auto !important;
          }
          
      • pro vytváření slideshow z multiple-field polí je třeba zapnout Singleframe
      • pro vlastní konfigurace vzhledu "přepínačů" je možné zapnout ThumbnailHover (Drupal 6) nebo postupovat dle návodu Creating an image pager (Drupal 7)
      • pro automatické pozastavení slideshow při přehrávání videa je vhodné aplikovat patch solution for pause slideshow with click on embedded video (nutné pro Chrome a IE) enlightened
    • Views Slideshow: Galleria
    • jCarousel – efektní karusel
    • Dynamic display block – efektní procházení obsahu
    • Featured Content Slider
    • Views Stapel – efektní zobrazení seskupených náhledů
  • Views Cloud (TagCloud, Cloud Zoom, cctags, TagCanvas, Leaflet, CloudMenu)
  • Nodequeue – ruční řazení (drag and drop) zvoleného obsahu
  • Better Exposed Filters – rozšiřuje filtraci např. o záložky
    • Clean Pagination yes (řeší problémy filtrace záložek při zapnutém stránkování)
  • Views Ticker - "rolující" text
  • Views Data Export – export do CSV, XLS, DOC, TXT a XML
    • pomocí drush příkazu je také možné uložit data přímo do souboru např.:
    • drush views-data-export [view-name] [display-id] [output-file]
  • Views XML Backend – nativní podpora XPath enlightened
  • Views tree enlightened
  • Menu Node Views
  • Views block area
  • Views Menu Area
  • Views Contextual Range Filter
  • Views Datasource – zobrazení obsahu ve formátech XML, JSON, RDF a XHTML
    • ve verzi 7.x-1.0-alpha2 se chybně překládají i názvy tagů, je tedy vhodné používat URL s prefixem "en"

Další "efektní" moduly:

  • Featured Content Slider
  • Dynamic display block

 

Nastavení

Prozkoumejte nastavení stávajících pohledů nebo pohledů vytvořených modulem Simple Views.

Typy pohledů:

  • stránka
  • blok
  • příloha – umožňuje spojit více pohledů do jednoho
  • feed – RSS kanál
  • a další

Nastavení pohledu:

  • Popis pohledu
  • Značka pohledu

Základní nastavení:

  • Style:
    • u tabulkového vzhledu je možné do jedné buňky vložit i více polí
  • Use pager: Ano
  • Access: Unrestricted

Kritéria řazení:

  • Global: Random
  • Uzly: Post date desc

Filtry:

  • Uzly: Typ = Článek
  • Uzly: Vydáno Ano
  • Kategorie: Term = Sport
  • Node translation: Jazyk = jazyk současného uživatele
  • (vlastnost Search umožňuje při vyhledávání používat zástupné symboly)

Page settings:

  • Cesta: views/news/sport/%
    • ​argument % na konci cesty je důležitý např. pro zobrazení Menu Bloku s druhou úrovní navigace enlightened
  • Menu: Normal: Sport
    • Vlastní drobečkovou navigaci (breadcrumb) je možné vytvořit např. přidáním a modifikací níže uvedeného obsahu do hlavičky u příslušné views stránky:

      <?php
        $breadcrumb[] = l(t('Home'),'<front>');
        $breadcrumb[] = l(t('Views page title'), 'path/to/view-page');
        $breadcrumb[] = t('Title');
        drupal_set_breadcrumb($breadcrumb);
      ?>

Argumenty:

Umožňují fitrovat zobrazený pohled např. zadáváním argumentů např. přímo do adresního řádku prohlížeče. Při nezadání argumentů je možné zobrazit výchozí, i vícestupňový, seznam (roky > termíny atd.) s počty vnořených uzlů.

Argumenty je možné předávat i automaticky čehož je možné využívat např. u termínů. Příklad použití:

  • Action to take if argument is not present: Provide default argument
    • Default argument type: Taxonomy Term ID from URL
    • Load default argument from term page
  • Validator: Termín taxonomie
  • Argument type: Term ID
  • Action to take if argument does not validate: Hide View / Page not found (404)

Příklad PHP code validátoru:

  • // Only on first page of pager
    if (!isset($_GE​T['page'])) { return TRUE; }

Příklad exposted filtru:

  • Use AJAX: Ano (při volbě Ne není vidět exposed filtr v zobrazení "Blok")
  • Contextual filter -> Global: Null -> When the filter value is not available -> Provide default value
    • PHP kód
    • if (count($view->exposed_input)) {
        return FALSE;
      }

Vztahy:

Definice vztahu (relace) propojí entity (tabulky) mezi sebou a umožňuje tak zobrazit libovolné pole:

  • Referenced (odkazavané) – pole na straně 1
  • Referencing (odkazující) – pole na straně N

Pokud je vztah definován přes 3 a více entit je nutné příslušný vztah definovat již přímo při vytváření vztahu.

Po vytvoření vztahu je možné u zobrazovaného pole zvolit, ze které entity se mají požadovaná data zobrazovat.

Vývoj

  • hook_preprocess_views_view
  • hook_preprocess_views_view_fields
  • hook_views_pre_render
  • hook_views_post_execute

Příklady – Drupal 7

Zobrazení popisku (případně dalších poli) termínu ve Views "Taxonomy term":

  1. Vytvořte nové Views:
    1. Název: Taxonomy description (případně něco jiného)
    2. Popis: Zobrazení popisu termínu (pokud chcete)
    3. Zobrazení: Taxonomy terms
    4. Pokračovat a upravit
    5. Pole > Přidat: Taxonomy term: Term description (přídadně Display Suite pokud jej používáte)
    6. Pokročilé > Contextual filters > Přidat: Taxonomy term: Term ID
    7. Uložit
  2. Upravte existující views Taxonomy term:
    1. Hlavička > Přidat: Global: View area
    2. View to insert: View: taxonomy_description – Display: default
    3. Zdědit kontextuální filtry: zatrhnout
    4. Uložit

Zobrazení popisku (případně dalších poli) termínu ve Views "Taxonomy term" pomocí PHP:

  • do hlavičky vložte "Global: Text Area" a níže uvedený kód:
  • <?php
      // Display description of taxonomy term in views header
      $view = views_get_current_view();
      $current = taxonomy_term_load($view->args['0']);
      print $current->description;
    ?>

Příklady – Drupal 6

Úprava stávajícího pohledu na úvodní stránku

Chcete-li mít na úvodní stránce webu (frontpage, node) např. nadpis Aktuality:

  1. V tématu vzhledu změnte v souboru node.tpl.php<h2> na <h3>.
  2. Upravte views frontpage:
    • Defaults
      • Header: None
        • vložte požadovaný nadpis 2. úrovně např. <h2>Aktuality</h2>
        • přepněte formát vstupu na Full HTML
    • Vytvořte novou stránku
      • Page settings
        • Cesta: node

Úprava stávajícího pohledu na kategorie

Chcete-li např. řadit termíny ve slovníku podle názvu (ne dle výchozího datumu vytvoření) a zobrazovat termíny do hloubky 10 úrovní (ne pouze termíny v aktuální kategorii) nastavte:

Kritéria řazení:

  • Uzly: Sticky desc
  • Uzly: Nadpis asc
  • Uzly: Post date desc

Argumenty:

  • Kategorie: Term ID (with depth)
    • Depth: 10

Blok zobrazující příbuzné uzly

Hotové řešení si můžete do Views naimportovat pomocí přiloženého souboru views-related-by-term.zip.

Nastavení argumentu Taxonomy: Term ID:

  • Provide default argument
  • PHP Code (načte objekt pro aktuální uzel, který je zařazen do nějaké kategorie a zřetězí seznam všech ID termínů na tomto uzlu, vrácený řetězec k zobrazení je ve formátu 1+2+3, stejně jako argumenty views taxonomy_term):
    • $node = node_load(arg(1));
      if ($node && $node->taxonomy) {
        foreach($node->taxonomy as $term) {
          $terms[] = $term->tid;
        }
        return implode('+', $terms);
      }
      else return;
      
  • Allow multiple terms per argument (umožňuje používat formát 1+2+3)
  • Reduce duplicates (odstraňuje duplicitní záznamy)

Nastavení argumentu Node: Nid (vyloučení aktuálně zobrazeného uzlu):

  • Provide default argument
  • Node ID from URL
  • Exclude the argument

Podobný výsledek je možné dosáhnout i jinýmy moduly viz Comparison of Similiar / Relevant by term block modules.

Úprava stávajíciho pohledu na archiv

Rozšíření archivu o termíny kategorie:

  1. Zkontrolujte nastavení argumentu Uzly: Created year + month
    • Nadpis: %1
    • Action to take if argument does not validate: Summary, sorted descending
    • Nastavení seznamu
      • Display record count with link (zobrazí v závorce počet uzlů)
  2. Vytvořte argument Kategorie: Term ID
    • Nadpis: %2
    • Action to take if argument does not validate: Summary, sorted ascending
    • Nastavení seznamu
      • Display record count with link (zobrazí v závorce počet uzlů)
  3. Přidáním /200901 k adrese pohledu v adresním řádku prohlížeče si mohou uživatelé omezit zobrazený pohled pouze na uzly vytvořené v lednu 2009.
  4. Pokud v menu vytvoříte odkazy s argumenty, získáte z jednoho nastaveného pohledu mnoho výstupů.

Vložení libovolného pohledu pomocí PHP

Pomocí funkce views_embed_view() je možné vložit zvolený pohled do libovolného místa webové stránky např.:

<?php
  print views_embed_view('taxonomy_term', 'page_1', '51');
?>

Případně si zobrazit kompletní obsah views:

<?php  
  $result = views_get_view_result('taxonomy_term', 'page_1', '51');
  print_r($result);
?>

Název zobrazení v pohledu (default, page, page_1, page_2, block, feed atd.) zjistíte ve stavovém řádku při najetí myší na příslušnou vertikální záložku v menu nad tlačítkem Add display.

Zobrazení neformátovaného výsledku views:

<?php
  $result = views_get_view_result('view_name', 'view_display', 'arguments');
  print_r($result);
?>

Příklady – Drupal 5

  1. Vytvoření dalšího "pohledu":
    • Basic information:
      • Jméno
      • Popis (návštěvníkům se nezobrazuje)
    • Stránka:
      • Provide Page View (poskytovat stránkový pohled); ano
      • URL: pod jakým URL bude pohle dostupný
      • View Type:
        • Full Nodes: zobrazení celého obsah záznamu
        • Teaser List: zobrazení náhledu záznamu
        • Table View: zobrazení záznamů v tabulce – umožňuje řazení dle záhlaví
        • List View: zobrazení záznamů v seznamu s odrážkami
        • Views RSS: výstupem je RSS kanál
      • Nadpis: nadpis pohledu pro návštěvníky stránek
      • Use Pager: pokud je více záznamů, použít stránkování; ano
      • Nodes per Page: kolik položek na stránce
      • Empty text: zobrazí se pokud neexistuje žádný obsah
    • Blok (vyplňte tuto sekci pokud chcete kromě stránkového pohledu zobrazovat také blok s daným obsahem):
      • Nodes per Block: kolik záznamů zobrazovat v bloku
      • [More] link?: pokud používáte stránkový i blokový pohled, můžete touto volbou vypsat odkaz vedoucí na stránkový pohled (velmi užitečné)
    • Fields, velmi důležitá část, přidejte sem:
      • Node: Body, tedy text obsahu
      • VotingAPI percent vote result (average), zobrazení hodnocení daného obsahu – podle tohoto sloupce je např. možné celou stránku řadit, jinak řečeno, na prvním místě bude u ta nejpopulárnější
    • Filtry, přidejte filtr:
      • Node: Type
        • Operator: vyberte Is One Of
        • Hodnota: zvolte požadovaný typ obsahu (např. Stránka, Článek atd.)
    • Sort Criteria
      • Random: náhodné zobrazování

Překlady:

  • <All>
    • <Vše>
  • Is None Of
    • Žádné z
  • Is One Of
    • Alespoň jedno z
  • Is All Of
    • V každém z
  • Is Equal To
    • Je shodný s
  • Contains
    • Obsahuje
  • Contains Any Word
    • Obsahuje nějaké slovo
  • Contains All Words
    • Obsahuje všechna slova
  • Starts With
    • Začíná na
  • Ends With
    • Končí na
  • Does Not Contain
    • Neobsahuje

Vytvoření seznmu alb a obsažených písniček.


Theming Views

PřílohaVelikost
views-related-by-term.zip1.3 KB