E-Book, Englisch, 704 Seiten
VanDyk Pro Drupal Development
2. ed
ISBN: 978-1-4302-0990-4
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark
E-Book, Englisch, 704 Seiten
ISBN: 978-1-4302-0990-4
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark
Widely praised for its in-depth coverage of Drupal internals, bestselling Pro Drupal Development has been updated for Drupal 6 in this edition, and provides are even more tricks of the trade to help you further yourself as a professional Drupal developer. Assuming you already know how to install and bring a standard installation online, John K. VanDyk gives you everything else you need to customize your Drupal installation however you see fit. Pro Drupal Development, Second Edition delves deep into Drupal internals, showing you how to take full advantage of its powerful architecture.
John K. VanDyk has been a Drupal developer since 2004. In 2005, he organized the first Drupal conference in Antwerp, Belgium, with Drupal founder Dries Buytaert. John has contributed several modules to Drupal including the actions, workflow, publish, subscribe, and pubcookie modules and has been instrumental in the design of Drupal's Content Construction Kit. John's day job is as an entomology professor and systems analyst at Iowa State University, where he teaches undergraduate courses about insects. In his spare time, when not hacking on Drupal, John enjoys squash hunting and raising children.
Autoren/Hrsg.
Weitere Infos & Material
1;Contents at a Glance;5
2;Contents;7
3;Foreword;25
4;About the Author;26
5;About the Technical Reviewer;27
6;Acknowledgments;28
7;Introduction;29
8;How Drupal Works;30
8.1;What Is Drupal?;30
8.2;Technology Stack;30
8.3;Core;31
8.4;Administrative Interface;32
8.5;Modules;32
8.6;Hooks;33
8.7;Themes;34
8.8;Nodes;34
8.9;Blocks;35
8.10;File Layout;35
8.11;Serving a Request;37
8.12;Summary;40
9;Writing a Module;41
9.1;Creating the Files;41
9.2;Implementing a Hook;43
9.3;Adding Module- Specific Settings;44
9.4;Adding the Data Entry Form;47
9.5;Defining Your Own Administration Section;55
9.6;Presenting a Settings Form to the User;57
9.7;Validating User- Submitted Settings;59
9.8;Storing Settings;60
9.9;Further Steps;62
9.10;Summary;62
10;Hooks, Actions, and Triggers;63
10.1;Understanding Events and Triggers;63
10.2;Understanding Actions;65
10.3;Using the Context in Actions;75
10.4;Examining the Context;79
10.5;How Actions Are Stored;80
10.6;Calling an Action Directly with actions_ do();81
10.7;Defining Your Own Triggers with hook_ hook_ info();82
10.8;Adding Triggers to Existing Hooks;84
10.9;Summary;86
11;The Menu System;87
11.1;Callback Mapping;87
11.2;Menu Nesting;97
11.3;Access Control;98
11.4;Title Localization and Customization;99
11.5;Wildcards in Menu Items;103
11.6;Altering Menu Items from Other Modules;108
11.7;Altering Menu Links from Other Modules;110
11.8;Kinds of Menu Items;110
11.9;Common Tasks;111
11.10;Using menu. module;115
11.11;Common Mistakes;115
11.12;Summary;116
12;Working with Databases;117
12.1;Defining Database Parameters;117
12.2;Understanding the Database Abstraction Layer;117
12.3;Connecting to the Database;119
12.4;Performing Simple Queries;120
12.5;Retrieving Query Results;122
12.6;The Schema API;123
12.7;Inserts and Updates with drupal_ write_ record();134
12.8;Exposing Queries to Other Modules with hook_ db_ rewrite_ sql();136
12.9;Connecting to Multiple Databases Within Drupal;139
12.10;Using a Temporary Table;140
12.11;Writing Your Own Database Driver;140
12.12;Summary;141
13;Working with Users;143
13.1;The $ user Object;143
13.2;Introduction to hook_ user();146
13.3;The User Registration Process;149
13.4;The Login Process;152
13.5;External Login;157
13.6;Summary;164
14;Working with Nodes;165
14.1;So What Exactly Is a Node?;165
14.2;Not Everything Is a Node;168
14.3;Creating a Node Module;168
14.4;How Nodes Are Stored;185
14.5;Creating a Node Type with CCK;186
14.6;Restricting Access to Nodes;187
14.7;Summary;191
15;The Theme System;192
15.1;Theme System Components;192
15.2;Installing a Theme;195
15.3;Building a PHPTemplate Theme;196
15.4;Understanding Template Files;203
15.5;Advanced Drupal Theming;221
15.6;Summary;228
16;Working with Blocks;229
16.1;What Is a Block?;229
16.2;Block Configuration Options;230
16.3;Block Placement;232
16.4;Defining a Block;232
16.5;Building a Block;236
16.6;Enabling a Block When a Module Is Installed;244
16.7;Block Visibility Examples;244
16.8;Summary;245
17;The Form API;246
17.1;Understanding Form Processing;246
17.2;Creating Basic Forms;254
17.3;Form API Properties;277
17.4;Summary;298
18;Manipulating User Input: The Filter System;299
18.1;Filters;299
18.2;Filters and Input Formats;300
18.3;Creating a Custom Filter;306
18.4;Protecting Against Malicious Data;312
18.5;Summary;313
19;Searching and Indexing Content;314
19.1;Building a Custom Search Page;314
19.2;Using the Search HTML Indexer;322
19.3;Summary;331
20;Working with Files;332
20.1;How Drupal Serves Files;332
20.2;PHP Settings;334
20.3;Media Handling;335
20.4;File API;336
20.5;Summary;349
21;Working with Taxonomy;350
21.1;What Is Taxonomy?;350
21.2;Kinds of Taxonomy;354
21.3;Viewing Content by Term;356
21.4;Storing Taxonomies;358
21.5;Module- Based Vocabularies;360
21.6;Common Tasks;363
21.7;Taxonomy Functions;365
21.8;Additional Resources;371
21.9;Summary;371
22;Caching;372
22.1;Knowing When to Cache;372
22.2;How Caching Works;373
22.3;How Caching Is Used Within Drupal Core;374
22.4;Summary;387
23;Sessions;388
23.1;What Are Sessions?;388
23.2;Usage;389
23.3;Session- Related Settings;390
23.4;Storage;392
23.5;Session Life Cycle;393
23.6;Session Conversations;395
23.7;Common Tasks;396
23.8;Summary;398
24;Using jQuery;399
24.1;What Is jQuery?;399
24.2;The Old Way;400
24.3;How jQuery Works;401
24.4;jQuery Within Drupal;403
24.5;Building a jQuery Voting Widget;415
24.6;Next Steps;427
24.7;Summary;427
25;Localization and Translation;428
25.1;Enabling the Locale Module;428
25.2;User Interface Translation;428
25.3;Starting a New Translation;441
25.4;Installing a Language Translation;445
25.5;Right- to- Left Language Support;447
25.6;Language Negotiation;448
25.7;Content Translation;453
25.8;Localization- and Translation- Related Files;458
25.9;Additional Resources;458
25.10;Summary;459
26;XML-RPC;460
26.1;What Is XML- RPC?;460
26.2;Prerequisites for XML- RPC;460
26.3;XML- RPC Clients;461
26.4;A Simple XML- RPC Server;466
26.5;Built- In XML- RPC Methods;470
26.6;Summary;472
27;Writing Secure Code;473
27.1;Handling User Input;473
27.2;Handling URLs Securely;480
27.3;Making Queries Secure with db_ query();481
27.4;Keeping Private Data Private with db_ rewrite_ sql();485
27.5;Dynamic Queries;486
27.6;Permissions and Page Callbacks;487
27.7;Cross- Site Request Forgeries ( CSRF);488
27.8;File Security;488
27.9;Encoding Mail Headers;491
27.10;Protecting cron. php;492
27.11;SSL Support;492
27.12;Stand- Alone PHP;493
27.13;AJAX Security;494
27.14;Form API Security;494
27.15;Protecting the Superuser Account;495
27.16;Using eval();496
27.17;Summary;496
28;Development Best Practices;497
28.1;Coding Standards;497
28.2;PHP Comments;503
28.3;Checking Your Coding Style Programmatically;507
28.4;Finding Your Way Around Code with egrep;508
28.5;Taking Advantage of Version Control;510
28.6;Creating and Applying Patches;520
28.7;Maintaining a Module;521
28.8;Mixing SVN with CVS for Project Management;538
28.9;Testing and Developing Code;539
28.10;The Module Builder Module;542
28.11;Application Profiling and Debugging;542
28.12;Summary;544
29;Optimizing Drupal;546
29.1;Finding the Bottleneck;546
29.2;Drupal- Specific Optimizations;555
29.3;Architectures;561
29.4;Summary;564
30;Installation Profiles;565
30.1;Where Profiles Are Stored;565
30.2;How Installation Profiles Work;566
30.3;Summary;589
31;Database Table Reference;590
31.1;access ( user module);590
31.2;accesslog ( statistics module);590
31.3;actions ( trigger module);591
31.4;actions_ aid ( trigger module);591
31.5;aggregator_ category ( aggregator module);592
31.6;aggregator_ category_ feed ( aggregator module);592
31.7;aggregator_ category_ item ( aggregator module);592
31.8;aggregator_ feed ( aggregator module);592
31.9;aggregator_ item ( aggregator module);593
31.10;authmap ( user module);593
31.11;batch ( batch. inc);594
31.12;blocks ( block module);594
31.13;blocks_ roles ( block module);595
31.14;book ( book module);595
31.15;boxes ( block module);596
31.16;cache;596
31.17;cache_ block ( block module);596
31.18;cache_ filter ( filter module);597
31.19;cache_ form;597
31.20;cache_ menu;598
31.21;cache_ page;598
31.22;cache_ update;599
31.23;comments ( comment module);599
31.24;contact ( contact module);600
31.25;files ( upload module);600
31.26;filter_ formats ( filter module);601
31.27;filters ( filter module);601
31.28;flood ( contact module);601
31.29;forum ( forum module);602
31.30;history ( node module);602
31.31;languages ( locale module);602
31.32;locales_ source ( locale module);603
31.33;locales_ target ( locale module);603
31.34;menu_ custom ( menu module);603
31.35;menu_ links ( menu module);604
31.36;menu_ router;605
31.37;node ( node module);606
31.38;node_ access ( node module);607
31.39;node_ comment_ statistics ( comment module);608
31.40;node_ counter ( statistics module);608
31.41;node_ revisions ( node module);608
31.42;node_ type ( node module);609
31.43;openid_ association ( openid module);610
31.44;permission ( user module);610
31.45;poll ( poll module);611
31.46;poll_ choices ( poll module);611
31.47;poll_ votes ( poll module);611
31.48;profile_ fields ( profile module);612
31.49;profile_ values ( profile module);612
31.50;role ( user module);613
31.51;search_ dataset ( search module);613
31.52;search_ index ( search module);613
31.53;search_ node_ links ( search module);614
31.54;search_ total ( search module);614
31.55;sessions;614
31.56;system;615
31.57;term_ data ( taxonomy module);616
31.58;term_ hierarchy ( taxonomy module);616
31.59;term_ node ( taxonomy module);616
31.60;term_ relation ( taxonomy module);616
31.61;term_ synonym ( taxonomy module);617
31.62;trigger_ assignments ( trigger module);617
31.63;upload ( upload module);617
31.64;url_ alias ( path module);618
31.65;users ( user module);618
31.66;users_ roles ( users);619
31.67;variable;619
31.68;vocabulary ( taxonomy module);620
31.69;vocabulary_ node_ types ( taxonomy module);620
31.70;watchdog ( dblog module);621
32;Resources;622
32.1;Code;622
32.2;Handbooks;623
32.3;Forums;623
32.4;Mailing Lists;623
32.5;User Groups and Interest Groups;625
32.6;Internet Relay Chat;625
32.7;Videocasts;626
32.8;Weblogs;626
32.9;Conferences;626
32.10;Contribute;627
33;Index;628




