CCK & Views DRUPAL KUNG-FU Vojtěch Kusý kusy.info
24.5.2008
První česká Drupal konference Vojtěch Kusý, verze 1.5 Praha, 24.5.2008
Praha, 24.5.2008
1
Obsah přednášky Část I: CCK ●
●
●
24.5.2008
Proč CCK? (Features)
Část II: Views ●
Jak to funguje? Co najdeme v „základním balení“
●
Proč Views? (Features) Co najdeme v „základním balení“
●
Přehled rozšíření
●
Přehled rozšíření
●
Vkládání View
●
API
●
Verze
●
Odkazy
●
API
●
Odkazy
Vojtěch Kusý, verze 1.5
2
Stručné představení ●
Views –
●
generování „Pohledů“
CCK = Content Construction Kit –
Souprava na konstruování obsahu
=> Abstrakce od konkrétních úkolů => Nejsou to aplikace ale nástroje => Budování libovolných aplikací 24.5.2008
Vojtěch Kusý, verze 1.5
3
Část I: CCK
CCK
Content Construction Kit
24.5.2008
Vojtěch Kusý, verze 1.5
4
CCK: Obsah
24.5.2008
●
Proč CCK? (Features)
●
Jak to funguje?
●
Co najdeme v „základním balení“
●
Přehled rozšíření
●
Widgets
●
API
●
Odkazy
Vojtěch Kusý, verze 1.5
5
CCK: Proč? Vytváříme typ obsahu „postaru“:
24.5.2008
●
hook_node_info
●
hook_submit
●
hook_help
●
hook_load
●
hook_perm
●
hook_insert
●
hook_access
●
hook_update
●
hook_menu
●
hook_delete
●
hook_link
●
hook_cron
●
hook_block
●
hook_search
●
hook_form
●
hook_nodeapi
●
● (+ Views API) hook_validate Vojtěch Kusý, verze 1.5
6
CCK: Proč? ●
24.5.2008
Když nechceme CCK aneb jak dělat typy „postaru“... –
IBM DeveloperWorks: #6 Building a custom module in Drupal http://www.ibm.com/developerworks/ibm/lib rary/i-osource6/
–
Drupal API http://api.drupal.org
Vojtěch Kusý, verze 1.5
7
CCK: Jak to funguje? ●
●
●
24.5.2008
CCK poskytuje UI pro vytváření typů obsahu (vytvářet typy umí Drupal 5+) stará se o ukládání a nahrávání z databáze –
automaticky vytváří DB tabulky s příslušnými sloupečky (single vs. multiple)
–
kromě toho ukládá podrobné nastavení všech definic políček do vlastní tabulky
dále poskytuje –
formulářové prvky a jejich validaci,
–
zobrazení dat je možné několika způsoby Vojtěch Kusý, verze 1.5
8
CCK: Jak to funguje? ●
Pro hlubší pochopení doporučuji např. článek od Roberta Douglasse „What is the Content Construction Kit?“ –
24.5.2008
http://www.lullabot.com/articles/an_introduc tion_to_the_content_construction_kit
Vojtěch Kusý, verze 1.5
9
CCK: „Základní balení“
24.5.2008
●
Content (jádro)
●
Text
●
Number
●
Node Reference
●
User Reference
●
Option Widgets – select, radios, auto …
●
Fieldgroup – fieldset
●
Content Copy – import/export Vojtěch Kusý, verze 1.5
10
CCK: Rozšíření
24.5.2008
●
Address field for CCK
●
CCK Latitude Longitude
●
Fivestar
●
Guitar :-)
●
Computed Field
●
Content Taxonomy
●
Dependent fields
●
Explainfield CCK widget Vojtěch Kusý, verze 1.5
11
CCK: Rozšíření ● ●
24.5.2008
Imagefield, FlashVideo, Media Field YouTube CCK, Flickr CCK, GMap Lat/Lon
●
CCK Field Permissions
●
Nodeprofile
●
CCK Create Install
●
Flexinode to CCK Converter
●
… aktuálně celkem 155 „related“ modulů Vojtěch Kusý, verze 1.5
12
CCK: Widgets ●
Textfield
●
Selectbox
●
Checkbox
●
Radios
●
Autocomplete
●
24.5.2008
Rozšíření: Imagefield, Imagefield Crop apod.
Vojtěch Kusý, verze 1.5
13
CCK: Image Crop
24.5.2008
Vojtěch Kusý, verze 1.5
14
CCK: API ●
24.5.2008
K čemu slouží:
hook_field_info
Databáze
●
hook_field_settings
●
hook_field
●
hook_field_formatter_info
Theme
●
hook_field_formatter
Views
●
hook_widget_info
●
hook_widget_settings
●
hook_widget Vojtěch Kusý, verze 1.5
Views
Formulář (insert/update) 15
CCK: Jak to funguje? 3 vrstvy Zdroj: © lullabot.com
24.5.2008
Vojtěch Kusý, verze 1.5
16
CCK: Příklad 1. zapneme potřebné CCK moduly 2. vybereme typ a widget 3. upravíme nastavení typu & widgetu 4. nastavíme pořadí a zobrazení 5. hotovo … a nebo ne? 6. contemplate, theme, hook_form_alter
24.5.2008
Vojtěch Kusý, verze 1.5
17
CCK: Odkazy ●
●
●
24.5.2008
Domovská stránka projektu http://drupal.org/project/cck Dokumentace http://drupal.org/node/101723 Články o CCK na –
drupal.org
–
lullabot.com
–
drupal-dojo.com
Vojtěch Kusý, verze 1.5
18
Část II: Views
Views 24.5.2008
Vojtěch Kusý, verze 1.5
19
Views: Obsah
24.5.2008
●
Proč Views? (Features)
●
Co najdeme v „základním balení“
●
Přehled rozšíření
●
Vkládání View
●
Verze
●
API
●
Odkazy
Vojtěch Kusý, verze 1.5
20
Proč Views? ●
Co jsou Views? Proč Views? –
●
24.5.2008
webové stránky = 75% ÷ 100% jen „views“
Co Views řeší? –
jak zobrazit block/page (počet, stránkování, nadpis, popis … )
–
typ zobrazení/výpisu (tabulka, teaser, full)
–
filtrování (výchozí - napevno, „exposed“)
–
třídění (výchozí, „sortable“)
–
pravidla přístupu Vojtěch Kusý, verze 1.5
21
Proč Views? ●
24.5.2008
dále řeší –
integrace do menu (item, tab)
–
summary views, pohledy o několika hloubkách
–
využití argumentů, změny v konfiguraci pohledu na základě nastavení argumentu
–
page/embed, defaul view
–
šablony, theme generátor
–
duplikování, import/export Vojtěch Kusý, verze 1.5
22
Proč Views? ●
„obyčejné pohledy“ poskytované moduly –
● ●
●
24.5.2008
např. bloky recent comments, blog apod
téměř žádné nastavení v administraci změna = spousta programátorské práce navíc (práce s kódem v theme apod., překrývání) Views poskytují ohromnou flexibilitu, flexibilitu nastavení jdou z 80% „naklikat“
Vojtěch Kusý, verze 1.5
23
Views: „Základní balení“ ●
Views (jádro) –
●
Views UI –
●
pomocník pro úpravu šablon (theme)
Views RSS –
24.5.2008
uživatelské (administrátorské) rozhraní
Views Theme Wizard –
●
jádro
vytvoření RSS kanálu pro View Vojtěch Kusý, verze 1.5
24
Views (jádro) ● ●
● ●
generování pohledů na obsah webu Creating views programmatically http://drupal.org/node/138828 API (viz později) přímá podpora pro moduly jádra Drupalu: –
24.5.2008
book, comment, forum, node, profile, search, statistics, taxonomy, upload, user
Vojtěch Kusý, verze 1.5
25
Views UI ●
●
24.5.2008
komplexní formulář pro vybudování (=naklikání :-) view oddíly: –
obecné informace
–
blok
–
stránka (page)
–
argumenty
–
filtry
–
„exposed“ filtry
–
třídění Vojtěch Kusý, verze 1.5
26
Views: Rozšiřujeme Views
24.5.2008
●
Calendar – zobrazení dat v kalendáři
●
Views Bonus Pack
●
Insert View – inline view [view:name]
●
relatedviews – taxonomy term
●
Views 'Group-By' Pack
●
Views Calc
●
Views Date Range Filter
Vojtěch Kusý, verze 1.5
27
Views: Rozšiřujeme Views
24.5.2008
●
View of Views
●
Views Fusion (+Nodefamily)
●
Editview – ajax „live“ editace
●
Action Views – hromadné akce
●
Fasttoggle – běžné akce
●
Views Actions Links
●
Views Bulk Operations
●
… aktuálně celkem 88 „related “modulů Vojtěch Kusý, verze 1.5
28
Vkládání view ●
stránka (page)
●
blok (block)
●
filtr obsahu – modul Insert View –
vkládání do textu pomocí tagů [view:id] PŘ.
● ●
24.5.2008
CCK políčko – modul Viewfield „embed view“ do stránky s povoleným php nebo do vlastního modulu, pomocí funkcí –
views_get_view()
–
views_build_view() Vojtěch Kusý, verze 1.5
př
29
Views: API
24.5.2008
●
hook_views_tables()
●
hook_views_arguments()
●
hook_views_default_views()
●
pokročilejší funkce API:
př
–
hook_views_query_alter(&$query, &$view, $summary, $level) př
–
hook_views_pre_query(&$view)
–
hook_views_pre_view(&$view)
–
hook_views_post_view(&$view) Vojtěch Kusý, verze 1.5
30
Views: $view object ●
●
24.5.2008
Objekt $view jen jako „nosič informací“ jako $node nebo $user class StdClass{} –
[vid] => 1
–
[name] => Example View
–
[description] => This is an example
–
[sort] => Array ( [0] => Array
–
[argument] => Array ( Array (
–
[field] => Array ( [0] => Array (
–
[filter] => Array (
–
[exposed_filter] => Array ( Vojtěch Kusý, verze 1.5
31
Views: $query object
24.5.2008
●
Skutečný objekt! class _views_query{}
●
Metody např.: –
add_where($clause)
–
add_orderby($table, $field, $order, $alias)
–
add_groupby($clause)
Vojtěch Kusý, verze 1.5
32
Views: Verze ●
1. vývojářská verze vydána 2. prosince 2005 (Drupal 4.6)
●
kontinuálně vyvíjena (merlinofchaos)
●
aktuální verze: – – –
●
1.6 vs 2.0 Features: –
24.5.2008
6.x-2.0-beta3 5.x-1.6 4.7.x-1.6 Table style, Live preview, External Data API, Ajax UI … and more Vojtěch Kusý, verze 1.5
33
Views: Příklady ●
Summary view (2 level) –
●
Admin View –
●
24.5.2008
„group by“, argument handling exposed filtry, akce
Efekty – javascriptové & Ajax vychytávky –
News Ticker
–
Ajax Block
Vojtěch Kusý, verze 1.5
34
Views: Summary & Arguments
Klik!
24.5.2008
Vojtěch Kusý, verze 1.5
35
Views: Summary & Arguments
24.5.2008
Vojtěch Kusý, verze 1.5
36
Views Admin View
modul Views Bulk Operations
24.5.2008
Vojtěch Kusý, verze 1.5
37
Views: Odkazy ●
●
●
●
Stránka s projektem Views http://drupal.org/project/views Views Snippets http://drupal.org/node/47412 Dokumentace http://drupal.org/node/109604 Tutoriály na – – –
24.5.2008
drupal.org lullabot.com drupal-dojo.com Vojtěch Kusý, verze 1.5
38
CCK & Views: Vývojáři ●
Views –
●
Earl Miles (aka merlinofchaos), USA
CCK –
Jonathan Chaffer (aka JonBob), USA
–
Karen Stevenson (aka KarenS), USA
–
Yves Chedemois (aka yched), France
Zdroje fotek: Earl Miles a Jonathan Chaffer © Dries Buytaert, Karen Stevenson © by Boris Mann, Yves Chedemois © DevelopmentSeed 24.5.2008
Vojtěch Kusý, verze 1.5
39
Děkuji za pozornost Nějaké otázky? VIEWS
DRUPAL
CCK
DRUPAL KUNG-FU Drupal and his two cool little brothers Zdroj: © drupal-dojo.com
24.5.2008
Vojtěch Kusý, verze 1.5
40
Část III: Příklady
Příklady 24.5.2008
Vojtěch Kusý, verze 1.5
41
Vložený View
Návrat
24.5.2008
Vojtěch Kusý, verze 1.5
42
Views: hook_views_tables() (1)
(2)
(3)
24.5.2008
Vojtěch Kusý, verze 1.5
43
Views: hook_views_tables()
24.5.2008
Vojtěch Kusý, verze 1.5
44
Views: hook_views_tables()
24.5.2008
Vojtěch Kusý, verze 1.5
45
Views: hook_views_tables()
Návrat 24.5.2008
Vojtěch Kusý, verze 1.5
46
Kouzla s hook_views_query_alter() v argumentech:
v modulu:
Návrat 24.5.2008
Vojtěch Kusý, verze 1.5
47
Kouzla s hook_views_query_alter()
Návrat 24.5.2008
Vojtěch Kusý, verze 1.5
48