Index

Special Characters & Numbers

#access property, 338

#ajax attribute, 511

#ajax property, dynamic forms via, 591592

#attached property, 322, 788789, 932

#attributes array, 449

#callback property, 547

#description property, 336, 411, 781

#drupal-contribute, 199, 534

#element_validate property, 779, 781

#field_name, 755

#items property, 324

#markup line, 796, 799

#markup property, 411412, 927

#post_render methods, 932

#pre_render property, 332

#prefix property, 322, 411, 790

#region property, 322

#sorted property, 322

#states attribute, 511

#suffix property, 322, 411

#theme property, 322324, 331, 437

#theme_wrappers property, 322, 331, 435, 790, 927, 932

#title property, 411

#type element, 411, 925

#type property, 322, 324, 927

#view_mode, 755

#weight property, 322, 336, 339

$_GET['q'] path, 691

$account parameter, 469

$action_links variable, 327, 767

$arg parameter, 396, 481

$attributes variable, 297

$base_path, 686

$base_root, 686

$base_url, 686

$classes variable, 297, 314315

$closure variable, 286

$conf array, 637

$conf variable, 467, 689

$content variable, 297, 326328

$databases = array( ) line, 246

$directory variable, 296

$(document).ready( ) method, 364

$every_page flag, 362

$filters['dgd7_tip'] array, 776

$form argument, 505

$form array, 465, 544

$form['email'] field, 332

$form_id argument, 505

$form_id parameter, 505

$form_state argument, 505, 781

$has_credit, 406

$HOME directory, 602, 607

$HOME/.drush directory, 608

$HOME/.drush/drushrc.php file, 607608

$i iteration, 779

$i variable, 779

$Id$ comment, 389

$is_admin variable, 296

$is_front variable, 296, 347

$item variable, 327

$items array, 681682

$items['outrageous'] array, 670671

$language variable, 297

$logged_in variable, 296

$logo variable, 276

$main_menu variable, 277, 289

$messages variable, 311

$name_of_variable, 399

$node object, 399, 677678

$node->book array, 799

$num_hidden variable, 419420

$output variable, 335

$page variable, 326

$page['content'] variable, 286

$page_bottom region, 357

$page_callback variable, 413

$path parameter, 396, 481

$permissions variable, 432

$picture variable, 277

$rm array, 779

$rows variable, 434

$secondary_menu variable, 277, 289

$site_name, 276

$site_slogan, 276

$styles variable, 345

$submitted variable, 319

$tabs variable, 326

$text available, 399

$theme_hook_suggestions variable, 297, 305, 308309

$title_attributes variable, 297

$title_attributes_array, 319

$title_prefix variable, 297, 301, 328

$title_suffix variable, 297, 301, 328

$update_free_access, 142

$user variable, 277, 297, 399, 410

$user_profile variable, 326

$variables array, finding contents of, 317

$variables parameter, 316

$very_slow_result, 637

$whole_form, 781

($every_page), 362

($path == 'admin/content') comparison, 403

<?php print $block->subject ?> tag, 300

<?php print $content ?> tag, 300

<?php print $sidebar_first; ?> tag, 321

<?php print drupal_render_children($form); ?> tag, 337

<?php print render($title_prefix); ?> line, 301

<?php> tag, 392, 404, 860

@ingroup themeable method, documenting codes with, 433435

[*]_rollback method, 631

~/code directory, 973

~/code/dgd7/web/sites/all/modules/custom/xray directory, 388

~/workspace directory, 973

+ entity_exportable_schema_fields( ) method, 551

->condition( ) method, 451

->execute( ) method, 451

->fetchAllAsoc( ) method, 797

->fetchAllKeyed( ) method, 446

->fetchAssoc( ) method, 796, 798

->fetchField( ) method, 443

->save( ) method, 557

2>&1 modifier, 632

2bits.com, 88

404 errors, modules for handling, 106107

404 Navigation, 107

Apache Solr, 106

Global Redirect, 107

Search 404, 106107

404 Navigation module, 107

A

accepting tasks, 217

access

applying for, 863

receiving, 864

settings, creating bookmarks with server, 235236

to Suggestion content type Status field, limiting, 187190

user, conditionally taking action based on, 468469

access arguments, 678

access callback item, 671, 678

access callback key, 670

accessibility, 941946

legislation of, 943

population segments benefiting from, 942943

recent enhancements, 941

for sites, 943946

accessible modules, 943

automated testing, 944945

contrast and color, 944

expert feedback, 946

maintenance, 945946

regular reviews of pages, 946

simulation, 945

themes, 944

WAI-ARIA, 945

standards for, 942

Accessibility Group, 946

Accessible Helper module, 943

Accessible Rich Internet Applications (ARIA), 942, 945

accordion library, 367

Account link option, 758

ACID (Atomic, Consistency, Isolation, and Durability), and BASE, 643645

Acquia company, 197

Acquia Dev Desktop app, 985990

creating subsites with, 988989

importing sites with, 990

installation, 986987

Action links, 54

active voice, 745

activitystream, 890

Add content option, 225

Add new comment link, 328

add new links, contextual, 767771

Add or remove shortcut link, 277

addanother_access method, 495

addanother_message method, 496

addanother_node_access method, 495

addanother_node_insert method, 495

adherence, to coding standards, 406

admin menu, Drupal site, 224

admin path, 275

admin/appearance page, 13, 275, 278, 281, 348

admin/appearance/settings location, 275

admin/config path, 700

admin/config/content/blog, 804

admin/config/content/formats, 103, 186, 773, 787

admin/config/content/formats/filtered_html, 794

admin/config/content/formats/full_html, 794

admin/config/development, 463

admin/config/development/coder/upgrade, 491

admin/config/development/content_type_overview, 100

admin/config/development/devel, 474

admin/config/development/maintenance, 140, 142

admin/config/development/performance page, 636637, 798

admin/config/development/testing/settings, 522

admin/config/development/xray, 465

admin/config/group/permissions, 122

admin/config/group/roles, 122

admin/config/media/image-styles/edit/thumbnail, 184

admin/config/people, 465

admin/config/people/accounts, 27, 127, 184, 465

admin/config/people/comment_notify, 105

admin/config/people/gravatar, 183

admin/configs, 918

admin/config/search/path/patterns, 190

admin/config/search/path/settings, 96

admin/config/search/path/update_bulk, 802

admin/config/search/settings, 701

admin/config/system/site-export, 804

admin/config/system/site-information page, 276

admin/config/system/YourModuleName link, 493

admin/config/user-interface/shortcut, 13

admin/config/YourModuleName, 493

admin/content, 21, 423425, 767

admin/content/book/settings, 171

admin/help, 482

admin/help#xray, 482

admin/help/shortcut, 13

administration

code, creating separate file for, 465

reserving first user for, 126

theme, 274278

enabling and setting default, 274275

Global Settings, 275277

installing new, 277278

Administration menu, 1213

administration pages

stylesheets for, conditionally including, 788790

of Views module, 5356

Action links, 54

Advanced Help module, 53

available Views, 5556

changing listed Views, 54

administrative information, defining for Views, 7174

administrative interfaces

modules for, 99103

Content Type Overview, 99102

Environment Indicator, 99

Masquerade, 103

Smart Crop, 99

Workbench suite, 99

providing for entities, 555559

administrative options, Search module, 700701

Administrative overlay, 741

administrative tables, cloning and making using exposed filters, 8081

Administrator role, 27

admin/modules, 51, 94, 117, 422, 474, 490, 521, 550

admin/modules Modules page, 15

admin/modules/install, 110

admin/people/permissions, 13, 156, 189, 407, 467468

admin/people/permissions/roles Permissions Roles, 26

admin/reports, 430

admin/reports/dblog, 106, 142

admin/reports/status, 142

admin/reports/updates, 132, 139, 145, 147

admin/reports/xray, 422, 424, 426

admin/settings/YourModuleName menu path, 493

admin/structure, 481

admin/structure path, 394, 396

admin/structure/block, 21, 176, 183, 529

admin/structure/block page, 282, 292

admin/structure/block/add-menu-block, 176

admin/structure/content_migrate, 902

admin/structure/content-types, 767

admin/structure/features/create, 811, 906

admin/structure/field_permissions, 187

admin/structure/menu, 162

admin/structure/menu/manage/main-menu, 277

admin/structure/menu/manage/user-menu, 277

admin/structure/menu/settings, 277

admin/structure/pages, 119

admin/structure/taxonomy, 24

admin/structure/types/add, 17

admin/structure/types/manage/%, 481

admin/structure/types/manage/blog, 117

admin/structure/types/manage/book, 168

admin/structure/types/manage/book/fields, 172

admin/structure/types/manage/book/fields/body, 172

admin/structure/types/manage/book/fields/field_image/edit, 186

admin/structure/types/manage/group, 112

admin/structure/types/manage/profile/fields, 152

admin/structure/types/manage/profilevdisplayvteaser, 166

admin/structure/types/manage/resource/fields, 181

admin/structure/types/manage/suggestion/fields, 26

admin/structure/types/manage/suggestion/fields/field_status/field-settings, 188

admin/structure/views, 56, 6869, 8586, 767768

admin/structure/views/add, 802

adminvreports/updates/update, 146

adminvstructure/types/manage/article, 481

admin/xray, 422

Advanced Help module, 53

Advanced Settings box, 73

aegirproject.org, 386

aesthetics, concerns about, 222

aggregation, of CSS files, 341

agile style, 208209

ajax support, 574

algorithms, language negotiation, 691

Alias context, 608

alias drush='~/dev/drush/drush' code, 36

alias drush='/path/to/drush/drush' code, 36

alias files (aliases.drushrc.php), for Drush, 600601

aliases

creating for drush command, 3537

for Drush, 892893

aliases.drushrc.php file, 601, 607, 619620

all directory, 94

--all flag, 603, 615

--all option, 624

AllowOverride directive, 248

alphas, building and verifying with users, 733734

alter hooks, modifying forms using, 339340

altering queries and results, hooks for, 709710

Ambiguity attribute, 725

analysis, Apache Solr project and, 710711

analyzing, choosing method of, 737

Anderson, Greg, 595

anjaliup_update_7003( ) method, 897

Anonymous user role, 27

Answer support requests, 876

AntiSpam module, 98

Apache configuration file, 955

Apache Solr project, 106

configuration, 707708

enabled filters, 707

type biasing and exclusion, 707708

customization, 708710

integrating with server, 710711

managing data in Solr index, 710

searching and analysis, 710711

Apache Tab, MAMP screen, 978

Apache virtual host configuration file, 248

Apache web server, 247248

apachesolr.api.php, 708709

API methods, 258

api.drupal.org, 452

api.drupal.org/api/function/hook_menu/7, 423

api.drupal.org/api/group/themeable/7, 436

api.drupal.org/block_admin_display_form, 789

api.drupal.org/check_plain, 474

api.drupal.org/db_query_range, 797

api.drupal.org/db_transaction, 442

api.drupal.org/drupal_add_css, 789

api.drupal.org/drupal_process_attached, 932

api.drupal.org/form_error, 544

api.drupal.org/hook_comment_view, 393

api.drupal.org/hook_field_formatter_info, 757

api.drupal.org/hook_filter_info, 774

api.drupal.org/hook_form_alter, 410

api.drupal.org/hook_help, 396

api.drupal.org/hook_menu, 396

api.drupal.org/node_menu_local_tasks_alter, 770

api.drupal.org/number_field_formatter_settings_form, 759

api.drupal.org/theme_table, 434, 457

api.drupal.org/theme_user_admin_permissions, 433

api.drupal.org/timer_start, api.drupal.org/timer_stop, 908

api.jquery.com/category/events, 545

APIs (Application Programming Interfaces), 258259

changes, list of, 489

form elements, 331

Forms, 591592

automatic file inclusion, 592

dynamic forms via #ajax property, 591592

human, 713

outlining, 542

providing, 536537

keeping API and UI separate, 536537

using to hide complexity, 537

Search module, 704706

Simpletest framework, 530531

site-specific modules using, 792794

Appearance page, Drupal, 274

Apple Mac OS X, running Ubuntu operating system on, 971

Application Programming Interfaces. See APIs; Render API

applications

for access, 863

preparing branches for, 862

Appropriate degree of refinement attribute, 722

Archive view, 57

archives, uncompressing, 238239

arguments, for Drush scripts, 618

ARIA (Accessible Rich Internet Applications), 942, 945

arithmetic operator, 400

array_keys( ) method, 457

array_merge_recursive( ) method, 783

arrays

$variables, finding contents of, 317

render

in core templates, 326

overview, 321

renderable, 437

asort( ) method, 432

assertNoRaw('html'); 530

assertNoText('text'); 530

assertRaw('html'); 530

assertText( ) method, 527

assertText('text'); 530

Assigned field, 488

assigned tasks, 217

assignment operator, 399400

association.drupal.org/about/donations, 881

association.drupal.org/membership, 881

Atomic, Consistency, Isolation, and Durability (ACID), and BASE, 643645

atzzolo.org/category/topics/drupal-highlights, 869

audience, for Rules module, 723

auditing, migration processes, 910

Authenticated user role, 27

Author field, 225

Author profiles, connecting to author user accounts, 155156

authors

approximate pages contributed by each, 155

building headshot view of, 158162

author biographies view page, 162164

Image style, 159161

menu link for page view, 161162

giving permission to create profiles, 156157

linking chapters to, 178

linking to other pages by, 153154

listing, 157164

showcasing with profile pages, 149157

user accounts of, connecting Author profiles to, 155156

autogenerating, human-readable URLs with Pathauto module, 190191

automated backups, 249

automated module installer, 146

automated testing, for accessibility, 944945

automatic file inclusion, 592

automatic installers, 1112, 974975

automatic upgrades, adding Features module to, 906907

avoiding production bottlenecks, 225

B

Backlinks view, 57

Backup and Migrate module, 249

Backupninja tool, 250

backups

overview, 263264

of websites, 249251

Banner Ad region, 291

bare repository, 253

Bartik theme, 270, 294, 300

BASE (Basically Available, Scalable, and Eventually Consistent), ACID and, 643645

base Features modules, 905

base table, 553

base theme property, 279

base themes

custom, 351

popular, 350

starting with good, 351352

and subthemes, 348351

.bash_aliases file, 602

.bashrc file, 602

Basic settings, 163

Basically Available, Scalable, and Eventually Consistent (BASE), ACID and, 643645

batch tasks, 809

behaviors, 364365

attaching, 364

detaching, 365

Berkun, Scott, 219

best practices, in theming, 351354

leveraging default CSS classes, 353354

modules vs. themes, 354

overriding template files with purpose, 353

starting with good base theme, 351352

biasing, 707708

bi-directional text support, 343

binary operators, and concatenators, spaces on either side of, 406

biographies, of authors, 162164

block level caching, 916917

Block module, 91, 286

block system, 223

Block template, 306

block theme, 927

block__MODULE template, 304

block__MODULE__DELTA template, 306

block__REGION template, 306

block_admin_configure, 412

block_view block, 395

block--MODULE--DELTA.tpl.php, 306

block--MODULE.tpl.php, 304

<blockquote> tag, 940

block--REGION.tpl.php, 306

blocks

creating new, 223

overview, 2124

placing, 76

Blocks administration page, 287

block.tpl.php file, 295, 298, 301, 306, 351

blog/[user]/[title], 83

Body field, 225

<body> tags, 295, 357358

Book element, 2425

Book module, making table of contents with, 168178

adding to main menu, 178

Chapter content type, 172175

setting permissions for organizing and writing chapters, 170171

using Menu Block module to display better, 176177

book module templates, reusing to display non-book navigation, 798801

book navigation, next and previous links mimicking, 795801

book_node_load( ) method, 694

book_node_view( ) method, 798

book_page_alter( ) method, 697

bookmarks, creating with server access setting, 235236

book-navigation.tpl.php template, 798799

bootstrap phases, 685698

execution of page callback, 692693

initialize configuration, 686

initialize database layer, 689

initialize session handling, 690

initialize variable system, 689690

load modules and initialize theme, 691692

select language, 691

set up page header, 690

try to serve cached page, 687689

typical example, 694698

bootstrap.inc, 474

Bot module, 107

bottlenecks, avoiding, 225

brainstorming meetings, 214

branches

preparing for applications, 862

and tags on Drupal.org, 861

browsers and devices, compatibility testing, 232233

budgeting time, and success as developer, 842

bueditor module, 97

builtin help command, 603

business models, for contributors, 849851

convincing clients of value of contributing, 849

developing install profile, 850

development plus model, 850

direct funding, 850851

Buying the Definitive Guide to Drupal 7 page, 19

C

--cache option, 614

cache tables, caching data using default, 765766

cache_get( ) method, 637, 765

cache_get modules, 765

cache_set( ) method, 637, 765, 930

cache-clear command, 598

cached pages, try to serve, 687689

cachegrind.out file, 918

caches, clearing, 407

caching, 63, 636638

data, using default cache table, 765766

disabling during development, 637638

memcached system, 638

page and block level, 916917

Cafés, Drupal, 880

callback methods, 592

entity access, defining, 554

overview, 676677

callbacks

delivery callback, 928929

execution of page, bootstrap phase, 692693

page callback, 928

settings, 776

camps, 845

Camps, Drupal, 879

Cannot modify header information error, 303

CAP (Consistency, Availability, and Partition Tolerance), between ACID and BASE, 643645

careers, 843847

getting involved in community, 844846

communities of like interests, 845846

conferences and camps, 845

user groups, 844845

possibilities for, 843847

starting own business, 846

Cart module, 583

Cascading Style Sheets files. See CSS files

case "admin/content": line, 403

case statements, 403

Category field, 488

Category option, filter drop-down, 486

CCK module, 850

cd command, 42, 602

cd Dropbox/MAMP/dgd7 command, 33

cd /path/to/site command, 33

c:drush, 965

change picture link, adding underneath user photo, 320

Chaos Tools dependency, 95

Chaos Tools project, 256

Chapter content type

adding metadata to with fields, 172173

setting how fields will be displayed by, 173175

Chapter number field display, 754757

Chapter option, 225

chapters

creating sample, 225

linking to authors, 178

Resource content type referencing, 179181

allowing people to attach generic files to content, 180

connecting content types with Node reference, 181

managing Resource content type display, 181

reusing chapter image field, 179180

setting permissions for organizing and writing, 170171

check_plain( ) method, 474, 478

checkins, 215

Checkout complete, 582

checkout system, 581583

chmod u+x dev/drush/drush command, 35

chmod u+x /path/to/drush/drush command, 35

Christenson, Bob, 226

classes

adding to template wrappers, 318

container form elements with specified, 790791

Clear all caches button, 798

Clear vocabulary attribute, 724

CLI context, 608

client-facing document, 209

clients

and entering content early, 222

getting involved, 842

interaction, with Drupal interface, 222

Clone view, 57

Close useless bug reports, 876

closing PHP tag, 404

coda, on contributed modules, 792

code

capturing all changes in, 256260

creating, editing, and reviewing content on production, 259

Features project, 256258

pages or content sections that require methodality, 259260

writing update hooks, 258259

copying, 540541

corrected, 493495

custom, 488

deployment of changes in, 254255

disabling modules in, 901902

Drupal 7 base, 893896

enabling modules in, 901

exporting Views to, 8586

finding model, 497498

keeping base current, 132133

making reusable, 511515

documenting, 513

following coding standards, 513

making methodality configurable, 512513

releasing work, 514515

tying components together, 513

original, 495496

packaging, 816817

hosting on drupal.org, 817

makefiles, 816817

reviews, security, 132

secure, 133135

sharing in sandbox on Drupal.org, 541

snippets, internal documentation, 225

themeable, documenting with @ingroup themeable method, 433435

updated, 496497

writing, 542543

code comments, 392

code contributions, 265

code directory, 144

Code Filter module, 103

Code Sprints, 880

<code> tag, 940

coder module output, 493

Coder review module, 478479

Coder Upgrade module, 489493

coder_upgrade directory, 490

coder_upgrade subdirectory, 490

coder_upgrade/old directory, 490

coder_upgrade/old/addanother- path, 491

coding standards

Drupal, 404406

internal documentation, 226

overview, 862

color, 718719

accessible, 944

harmony of, 719

scheme, of core theme, 1314

Color module, 91

--color=auto option, 632

Colorbox module, 104

Coming Soon page, 212

command aliases, 598

command hook, for Drush extensions, 627628

command-line

accessing, 230231

Mac OSX operating system installation, 979981

steps, 490497

coder module output, 493

corrected code, 493495

original code, 495496

updated code, 496497

command-line tools, Linux, 264

commands folder, 606

Comment module, 91

Comment Notify module, 104105

comments, code, 392

comment.tpl.php file, 295

Commerce module, 569

Commerce project, Drupal. See Drupal Commerce project

commerce_cart_product_add( ) method, 574

commerce_cart.module, 574

commerce_payment.checkout_pane.inc, 591

commerce_price_create_instance( ) method, 570

commerce_product_type_get_name( ) method, 590

commerce_product.forms.inc, 592

Commerce/Commerce UI, 568

CommerceProductEntityController class, 590

commit message, writing, 263

communication, effective, 218

community, 195201, 865883. See also contributors

building modules for, 104106

Comment Notify, 104105

Organic Groups, 105

Profile2, 106

Rate, 105

Role Limits, 106

Userpoints, 105

Voting API dependency, 105

contributing to, 840, 866881

answering questions, 873

by being wrong, 871

handling issue queues, 875877

hosting conferences, 879880

importance of, 867868

making Drupal.org better, 878879

mentoring, 871872

monitarily, 880881

non-technical support, 869

patches, 874875

reviewing patches, 878

writing documentation, 873874

documentation for, 226

getting involved in, 844846

communities of like interests, 845846

conferences and camps, 845

user groups, 844845

good karma in, 848

where to find, 196201

conferences and meetups, 197

Drupal Planet aggregator, 196

DrupalCamp events, 198

DrupalCon conferences, 198

Drupal.org forums, 197

Groups.Drupal.org site, 197

IRC, 199200

issue queues, 200201

local meetups, 198199

mailing lists, 197

podcasts, 196197

community web sites, creating with Organic Groups module, 109124

creating content, 117119

installing and configuring, 110114

Members, Roles, and Permissions settings, 122124

Panels module, 119122

using Views with, 115117

compact( ) method, 420

comparison operator, 400401

compatibility testing, browser and device, 232233

completion dates, estimating, 211212

Component field, 488

Component option, filter drop-down, 486

compression of CSS files, 341

concatenators, binary operators and, 406

concentration, 264

Concept design, defined, 213

concerns, about aesthetics, 222

conditional statements. See also operators

conditional stylesheets, adding for Internet Explorer, 345

conferences, 197, 845, 879880

configurable methodality, 512513

configuration, initializing, 686

configuration features, 810815

drune_track.*.inc file, 812

drune_track.module file, 812815

exceptions, 814815

overrides, 813

updates, 813

using installation profiles and features as development tool, 815

Configuration menu, 492, 494

configuration page, for modules, 469483

conditionally taking action based on configuration settings or user access, 468469

creating separate file for administration code, 465

defining menu items for settings form, 464465

defining new permissions, 467468

settings form, 465467

configuration settings, conditionally taking action based on, 468469

configure directive, 390

Configure filter criterion, 64

Consistency, Availability, and Partition Tolerance (CAP), between ACID and BASE, 643645

Contact module, 333

container form elements, with specified classes, 790791

container__xray__form, 412

content, 1921

connecting with Node reference, 181

contextual add new links for, 767771

finding better way, 770771

models, 767770

designing from, 938939

entering early, and clients, 222

fine-tuning, 164167

modifying teaser display and setting trim length, 166167

using view modes to display same content in different ways, 166

Group, 111114

with human-readable URL and main menu link, 1920

modules for display of, 103104

Code Filter, 103

Colorbox, 104

Panels, 103

modules for entry of, 99103

Content Type Overview, 99102

Environment Indicator, 99

Masquerade, 103

Smart Crop, 99

Workbench suite, 99

needs managing, 837

overviews of, 889890

posting and promoting to front page, 2021

of render arrays

altering inside, 325326

generating new, 323325

moving between regions, 325

types, 1619

connecting with Node reference, 181

contextual add new links for, 767771

Group, 111114

of website, 207

content child, 926

content editors, 223

Content region, 285

Content Staging, Drupal Project Stage, 208

Content staging stage, 9

Content translation module, 93

Content Type Overview module, 99102

content/[node:title], 190

content_migrate_batch_process_create_fields( ) method, 902

content_migrate_batch_process_migrate_data( ) method, 902

content-migrate-field-structure, 902

context item, 621

contexts, for Drush, 608609

contextual add new links, for content types, 767771

finding better way, 770771

models, 767770

contextual commands, 603

contextual filters, 62, 8283

Contextual Links module, 91

contrast, accessible, 944

contrib directory, 94

Contributed (contrib) module term, 501

contributed modules, 890891

coda on, 792

dependencies, 592593

storage of, 94

updating, 145147

automated module installer, 146

with Drush tool, 146147

contributed projects, dealing with issues in, 135

contributing to community, 866881

answering questions, 873

by being wrong, 871

handling issue queues, 875877

hosting conferences, 879880

importance of, 867868

making Drupal.org better, 878879

mentoring, 871872

monitarily, 880881

non-technical support, 869

patches, 874875

reviewing patches, 878

writing documentation, 873874

Contribution Sprints, 738

contributors, 847851

benefits of being, 847848

good community karma, 848

improving own work, 847848

notoriety, 848

participating in dialog, 848

business models for, 849851

convincing clients of value of contributing, 849

developing install profile, 850

"development plus" model, 850

direct funding, 850851

expectations for, 851

sustainability of, 848849

Control Panel links, 988

control statements, 405

control structures, 402403

if, elseif, and else statements, 402403

loops, 403

switch and case statements, 403

conversations, importance of, 218

Cooperperkins.com, 934

copying code, 540541

copywriting

causes of unhelpful, 744745

overview, 743744

core

Drupal

dealing with issues in, 135

loading code for, 953957

files

CSS, 342

downloading for Mac OSX installation, 979984

jQuery UI in, 366379

effects, 378379

elements, 367378

modules in, 9194

templates

common, 295

render arrays in, 326

themes directory, 269274

Bartik theme, 270

Garland theme, 271

Seven theme, 272

Stark theme, 272273

theme engines, 273274

core attribute, 807

core debug( ) method, 752

core directive, 389

Core Drupal Commerce Entities, 584

Core Drupal Commerce Fields, 584

core methods, Drupal, 943

Core module term, 501

core property, 279

core-cli command, 602

core-rsync command, 612, 614

core-status command, 612

count( ) method, 420421

countQuery( ) method, 445

<create a new book> tag, 175

Create content menu, 492

Create New Database option, Navicat, 980

credentials, login, 237

Csikszentmihalyi, Mihaly, 264

CSS (Cascading Style Sheets) files, 341348

adding, removing, and replacing, 343348

aggregation and compression, 341

leveraging default classes, 353354

patterns and naming conventions, 342343

bi-directional text support, 343

core and module CSS files, 342

rendered, 231232

streamlining form elements with, 766

stylesheets for administration pages, conditionally including, 788790

styling with, 440442

CSS class, 63

CTools, 257258

ctools folder, 51

Custom display settings, 749

Custom module term, 501

custom modules, 501502

Customer module, 577

Customer/Customer UI, 568

cvs.drupal.org, 389

Cyberduck, 235

D

Dashboard, customizing, 225

Dashboard link, Drupal site, 224

Dashboard Main region, 287

Dashboard module, 91

Dashboard Sidebar region, 287

data

decentralized dataspaces, 654

hooks for adding, 708709

legacy, 908909

linking on global scale, 655

migration of, 907911

auditing, 910

initial analysis, 909910

iterating, 910

launching, 910911

legacy data, 908909

managing, 907908

showing, 910

sticking points, 909

timing, 910

storing and editing in UI, 548549

data models

defining, 547555

overview, 452

data.agaric.com/edit-term-love Edit Term module, 869

database abstraction layer, initializing, bootstrap phase, 689

Database API, 442456

.install file, 451452

data models, 452

displaying same data in two locations, 447449

dynamic queries, 450451

fetching data

with select queries, 443445

with static queries with joins on two tables, 445447

inserting and updating data, 455456

tables, 453454

using variable_get( ) method and another static select counting and grouping query, 450

database backup tools, 45

Database Logging module, 92

Database overriding code, 56

databases, 639645

CAP between ACID and BASE, 643645

creating

command-line steps, 980981

for Drupal sites, 974

Mac OSX operating system installation, 979980

exporting, 244

finding system names in, 428430

indexes, 640642

MongoDB, 645650

Null values in, 649650

watchdog subsystem, session subsystem, and message queue, 648649

NULL values in SQL, 642643

setting up

with phpMyAdmin tool, 239240

with wizards and manual tools, 240

slow queries, 920921

date_validate( ) method, 543

datepicker library, 368

db_delete( ) method, 536, 898, 900901

db_drop_table( ) method, 899900

db_insert( ) method, 455, 536

db_merge( ) method, 455

db_or( ) method, 901

db_query( ) method, 443446, 450451, 457, 689

db_query_range( ) method, 797798

db_select( ) method, 445, 450451

db_update( ) method, 455, 536

dblog_overview( ) method, 456

--db-su option, 613

--db-su-pw option, 613

deadlines, 212

Debian package manager, 250

debug( ) method, 311, 410, 416, 456, 481, 504, 543, 748, 752, 796

--debug flag, 615

'debug' log level, 625

--debug option, 625, 632

debug($items) method, 761

debug($node) method, 796

debug(debug_backtrace( )) method, 475

debug(field_info_bundles( )) method, 460

debug(list_themes( )) method, 416

decentralized dataspaces, 654

default cache tables, caching data using, 765766

default key, 246

Default Order States and Statuses, 585

default regions, 284286

default status, 813

Default view mode, 165

default_message array, 927

.default_views.inc file, 812

default.settings.php file, 141

definitivedrupal.mayfirst.org domain, 248

DefinitiveDrupal.org, 747, 771772, 776

definitivedrupal.org/patch, 875

definitivedrupal.org/suggestions, 869

DefinitiveGuide.org account, 155

degrading, JavaScript language and jQuery library, 365366

delivery callback, 928929

Demonstration module, 254

dependencies

on contributed modules, 592593

making optional, 538539

dependencies attribute, 807

Dependencies item, 360

dependencies[] directive, 389391

Deploy module, 251, 259

Deployment and launch stage, 9

deployment of websites, 251261

approach, 252

capturing all changes in code, 256260

code changes, 254255

content, 253254

development workflow, 260261

workflow, 252253

Deployment/Launch, Drupal Project Stage, 208

description, project, 742743

description attribute, 807

description property, 279

Design, Drupal Project Stage, 208

designs, 723. See also visual design

Drupal Commerce project, 587588

with limited resources, 722

mockups for detailed, 733

process of

making informed decisions, 721

overview, 720721

of project planning, 206207

stress-testing, 730733

Empty screen state, 731

Error screen state, 733

Flooded screen state, 732

Normal screen state, 731

Dev Days, Drupal, 880

Dev Desktop app, Acquia. See Acquia Dev Desktop app

Dev Desktop Control Panel, 987

devel command file, 607

Devel dpm( ) method, 752

Devel module, tracing errors with, 474476

Develop for Drupal handbook, 134

developer profile, 804805

developers, 835843

being successful as, 841843

budgeting time, 842

create process, 841842

using distributions, 843

using experienced developers, 843

using install profiles, 843

common pitfalls of, 835836

consulting with experts, 838

content needs managing, 837

and contributing to community, 840

long-term benefits of using Drupal, 838

long-term support, 841

making sustainable choices, 840

sponsoring, 881

starting with goals, 838839

supporting different participants, 839840

understanding concepts of Drupal site, 836837

development

disabling caching during, 637638

from human mindset, 263265

backup, 263264

contributing, 265

experimenting, 264265

revision control, 263

meetings, 215

of project plan, 207

Development, Drupal Project Stage, 208

development environments, 227241

for beginners, 233241

selecting hosting services, 234238

server-side tasks and tools, 239241

uncompressing archives, 238239

enhancing existing, 229233

accessing command line, 230231

browser and device compatibility testing, 232233

hosting sites locally, 230

PHP files, 233

rendered HTML, 231232

Microsoft Windows. See Microsoft Windows development environment

starting with Quickstart appliance, 228229

Visual Studio, 948

development plus model, business model for contributors, 850

development profiles, 804805

development standards, Drupal Commerce project, 588

development team, documentation for, 225226

development tools, using installation profiles and features as, 815

development workflow, of websites, 260261

devices, browsers and, compatibility testing, 232233

DGB (Drush Git Backup), 249

DGD7 site code, 43

dgd7_field_formatter_view( ) method, 761

dgd7_tip directory, 775

dgd7_tip_add_rm_formset( ) method, 778779, 790

dgd7_tip_filter_info( ) method, 776

dgd7_tip_settings( ) method, 776

dgd7_tips_settings( ) method, 782

dgd7.aliases.drushrc.php file, 610

dgd9781430231356.css file, 794

dgd7glue folder, 749

dgd7glue_drupal_page_title( ) method, 763

dgd7glue_field_formatter_settings_form( ) method, 761

dgd7glue_field_formatter_settings_summary( ) method, 761

dgd7glue_field_formatter_view( ) method, 761

dgd7glue_nextprev_suggestion( ) method, 797798, 800

dgd7glue_node_view( ) method, 795

dgd7glue_preprocess_field( ) method, 754

dgd7glue.info file, 749

dgd7glue.module, 798

dialog, participating in community, 848

dialog library, 369370

diff command, 140, 498

diff method, updating with, 143144

diff tool, 141

diff via, 138

direct feedback, 264

direct funding, business model for contributors, 850851

directives

configure, 390

dependencies[], 389390

overview, 389

package, 391

directories, setting permissions, 245

<Directory> tag, 956

Disable view, 57

disabled = status, 444

discovery

meetings, 214

phase of project planning, 205206

Discovery, Drupal Project Stage, 208

Display Status, 62

displays. See also Views

content

fine-tuning, 164167

modules for, 103104

creating additional, 74

defining elements of content for, 72

defining order of content for, 72

defining type of content for, 71

of fields, setting with Chapter content type, 173175

multiple to highlight first result, 7778

names of, 60

Resource content type, managing, 181

settings

overriding, 63

of Views, 61

tabs for unique, 7879

teaser, modifying, 166167

types of, 5859

Disposable attribute, 724

Distinct gesture attribute, 724

distributions, 803818

configuration features, 810815

drune_track.*.inc file, 812

drune_track.module file, 812815

using installation profiles and features as development tool, 815

Drune example, 805

future of, 817818

packaging code, 816817

hosting on drupal.org, 817

makefiles, 816817

packaging, 817

site templates, 803805

development profiles, 804805

example distribution, 805

full-featured services, 804

structure of, 806809

drune.info file, 807

drune.profile file, 807809

and success as developer, 843

<div class="content"> wrapper, 328

<div class="inner"> tag, 352353

<div class="user-picture"> tag, 293

<div id="header"> tag, 292

<div id="page-wrapper"> tag, 292

div tags, 75

<div> wrapper, 315

DNS (Domain Name System) settings, 247

docs/drush.api.php file, 613

documentation, 221226, 741743

for community, 226

for development team, 225226

for end-user, post-launch, 222223

on-site, for modules, 482483

what makes good, 221225

writing, 873874

documentation contributions, 265

documenting code, 513

DocumentRoot, 956

documents, client-facing, 209

Dojo Barn Raisings, 872

Dojos, Drupal, 880

DOM traversal technique, 657

domain name, 247

Domain Name System (DNS) settings, 247

donating, to Drupal Association, 881

Downloads section, 89

dpm( ) method, 308, 311, 317, 505, 795

draggable library, 370

Dreditor, reviewing patches using, 878

Dropbox, 978

droppable library, 371

Drubuntu script, customizing Ubuntu OS for development with, 972

drubuntu-site-add, 894, 973

drune_track feature, 809

drune_track.*.inc file, 812

drune_track.info file, 812

drune_track.module file, 812815

exceptions, 814815

overrides, 813

updates, 813

drune.info file, 806807

drune.install file, 814

drune.profile file, 806809

batch tasks, 809

form tasks, 808809

Drupal

7-code base, 893896

coding standards, 404406

core, dealing with issues in, 135

and HTML5, 940

installing on Ubuntu operating system, 973975

automatic installer, 974975

database, 974

meet-ups, 824

story of, 821833

beginnings, 822824

Drupal Foundation, 828

hacking of server, 825827

upgrading from 6 to 7. See upgrading

Drupal 7 platform, improvements in, 589593

contributed module dependencies, 592593

core entities and fields, 589591

Forms API, 591592

Drupal administration menu, 984

Drupal Association, donating to, 881

Drupal Cafés, 880

Drupal Camps, 879

Drupal Commerce project, 565593

development history, 586588

design philosophy, 587588

development standards, 588

implementing, 585586

improvements in Drupal 7, 589593

contributed module dependencies, 592593

core entities and fields, 589591

Forms API, 591592

key features, 565566

overview, 565

store configuration, 566585

Cart module, 583

checkout system, 581583

Commerce module, 569

Customer module, 577

dynamic pricing, 570

enabling payment methods, 579581

line items, 573575

order system, 577578

Payment module, 578

Price module, 569570

Product display node type, 575577

Product module, 571573

Product Reference module, 575

summary of main components, 584585

Drupal Commons, 804

Drupal context, 608

Drupal core code, loading, 953957

Drupal Dev Days, 880

Drupal Dojos, 880

Drupal events, 832

Drupal install screen, 981

Drupal Katas, 880

Drupal Learning Projects, 872

Drupal Meetups, 880

Drupal Open Curriculum Project, 872

Drupal parties, 880

Drupal Planet aggregator, 196

Drupal project page, 10

Drupal projects, 832, 853854

Drupal Security Report, 134

Drupal Summits, 879

drupal_add_css( ) method, 343344, 361, 788789

drupal_add_js( ) method, 356359, 361362

drupal_add_library( ) method, 360362, 366367

drupal_add_library('system', 'ui.dialog);, 369371

drupal_add_library('system', 'ui.progressbar);, 372

drupal_add_library('system', 'ui.resizable);, 373

drupal_add_library('system', 'ui.selectable);, 374

drupal_add_library('system', 'ui.slider);, 375

drupal_add_library('system', 'ui.sortable);, 376

drupal_add_library('system', 'ui.tabs);, 377

drupal_alter( ) method, 538

drupal_bootstrap( ) method, 407, 685686

drupal_deliver_html_page( ) method, 676, 692, 697, 928929

drupal_deliver_page( ) method, 692, 697

drupal_flush_all_caches( ) method, 407, 436

drupal_form_submit( ) method, 258259

drupal_get_form( ) method, 464465

drupal_get_normal_path( ) method, 692

drupal_get_path( ) method, 356, 770

Drupal_http_request( ) method, 710

drupal_is_front_page( ) method, 296

drupal_load( ) method, 918

drupal_parse_info_file( ) method, 919

drupal_placeholder( ) method, 476

drupal_process_attached( ) method, 932

drupal_render( ) method, 692, 697, 923, 930, 932

drupal_render_cache_by_query( ) method, 931

drupal_render_children( ) method, 334, 782

drupal_render_children($form), 337

drupal_render_page( ) method, 929

drupal_required_modules( ) method, 919

drupal_set_message( ) method, 451, 495

drupal_static( ) method, 907, 909

drupal_system_listing( ) method, 919

drupal_uninstall_/chema( ) method, 899

drupal_uninstall_modules( ) method, 902

drupal_write_record( ) method, 536

Drupal.attachBehaviors( ) method, 364365

Drupal.behavior method, 364, 368, 371377

Drupal.behaviors object, 364

DrupalCacheInterface, 688

DrupalCamp events, 198

DrupalCon conferences, 198

drupalcontrib.org, 394

drupalCreateUser( ) method, 530

DrupalDefaultEntityController class, 553, 694

DrupalDojo.com, 869, 872

drupalGet('path') method, 530

drupalLogin($user), 530

DrupalOpenLearning.org, 872

Drupal.org

accounts, setting up for contributing, 854855

branches and tags on, 861

contributing patch files to, 498499

improving, 878879

linking to with field formatters, 757766

caching data using default cache table, 765766

fetching usernames, 763764

sandboxes on, sharing code in, 541

sharing modules on, 791792

submitting patches to, 531532

drupal.org, hosting on, 234, 817

drupal.org documentation, 869

Drupal.org forums, 197, 873

drupal.org project page, 228

Drupal.org User ID, 154

drupal.org username, 870

drupal.org web forums, 196

drupal.org/coding-standards, 478

drupal.org/community-spotlight, 869

drupal.org/contribute/documentation, 874

drupal.org/contribute/documentation/join, 874

drupal.org/home, 140

drupal.org-hosted module, 488

drupal.org/irc/guidelines, 881

drupal.org/localize, 11

drupal.org/node/add/book, 874

drupal.org/node/add/project-project, 541, 856

drupal.org/patch, 91

drupal.org/patch/apply, 875

drupal.org/patch/create, 875

drupal.org/patch/novice, 874

drupal.org/planet, 871

drupal.org/project/advanced_help, 183

drupal.org/project/api, 394

drupal.org/project/backupmigrate Backup and Migrate module, 45

drupal.org/project/bbcode, 772

drupal.org/project/browscap, 232

drupal.org/project/captcha_pack, 99

drupal.org/project/coder, 406, 478, 862

drupal.org/project/content_type_overview, 100, 179

drupal.org/project/corolla, 13

drupal.org/project/custom_formatters, 154

drupal.org/project/customfilter, 772

drupal.org/project/devel, 474

drupal.org/project/dreditor, 878

drupal.org/project/drubuntu, 972

drupal.org/project/drupalforfirebug, 232

drupal.org/project/drupalorg_testing, 879

drupal.org/project/enabled_modules, 898

drupal.org/project/entity, 550

drupal.org/project/examples, 773

drupal.org/project/field_group, 96

drupal.org/project/field_permissions, 187

drupal.org/project/flexifilter, 772

drupal.org/project/grammar_parser, 406

drupal.org/project/image_resize_filter, 781

drupal.org/project/imagefield_crop, 159

drupal.org/project/insert, 186

drupal.org/project/issues, 868

drupal.org/project/issues/drupal, 877

drupal.org/project/issues/gci, 872

drupal.org/project/issues/projectapplications, 863

drupal.org/project/issues/remarkup, 794

drupal.org/project/link, 96, 151

drupal.org/project/markdown, 772

drupal.org/project/media, 97

drupal.org/project/modules, 88, 90, 94

drupal.org/project/multicolumncheckboxesradios, 766

drupal.org/project/openid_provider, 15

drupal.org/project/oracle, 442

drupal.org/project/pathauto, 190, 801

drupal.org/project/pathologic, 187

drupal.org/project/project_shortname, 94

drupal.org/project/quickstart, 228, 972

drupal.org/project/references, 96

drupal.org/project/relation, 96, 179, 182

drupal.org/project/remarkup, 792

drupal.org/project/reptag, 772

drupal.org/project/simplehtmldom, 772

drupal.org/project/sitedoc, 889

drupal.org/project/skinr, 939

drupal.org/project/sky, 939

drupal.org/project/smartcrop, 159

drupal.org/project/sqlsrv, 442

drupal.org/project/strongarm, 905

drupal.org/project/textile, 772

drupal.org/project/themes, 13

drupal.org/project/token, 190, 853

drupal.org/project/typogrify, 772

drupal.org/projectvctools, 95

drupal.org/project/views, 89

drupal.org/project/votingapi, 537

drupal.org/project/wysiwyg_linebreaks, 97

drupal.org/project/xray, 769

drupal.org/requirements, 234

drupal.org's version control, 492

drupal.org/user/register, 874

drupal.orgvnode/1002658, 146

drupal.orgvproject/hacked, 143

drupal.orgvproject/migrate, 889

drupal.orgvproject/xray, 902

drupal.orgvsecurity-team, 137

drupal.orgvuser/26979, 876

drupal.org/writing-secure-code, 863

drupalPost( ) method, 527528

Drupaltherapy, 226

Drush, 3146, 595633

alias files (aliases.drushrc.php), 600601

aliases for all sites involved in upgrade, 892893

applying code updates with, 603606

combined with manual approach for upgrading, 893896

command-specific options, 609

contexts for, 608609

database backup tools, 45

Drush Shell, 601603

installing, 3238

creating alias, 3537

downloading Drush tool, 34

extensions for, 606607

making Drush tool executable, 35

testing, 3738

scripting with, 617626

arguments for, 618

drush_dispatch command, 619

drush_html_to_text command, 623

drush_invoke command, 619

drush_invoke_process command, 620

drush_invoke_process_args command, 620

drush_invoke_sitealias command, 620

drush_invoke_sitealias_args command, 620

drush_log command, 625626

drush_op_system command, 619

drush_print command, 622

drush_print_pipe command, 622

drush_print_table command, 622623

drush_set_error comand, 626

drush_shell_exec command, 619

dt command, 622

options for, 618

processing command results, 620621

prompting user, 623624

site lists for, 609610

site selection with, 597600

updating with

contributed modules, 146147

overview, 142

using remote commands with, 610617

making local copy of remote Drupal site, 612614

managing dump files, 614615

setting up SSH key pair, 611612

using Drush site context to control sql-sync options, 616617

using sql-sync without installing Drush on remote system, 615616

writing extensions for, 626633

altering Drush command behavior with, 631633

command hook for, 627628

help hook for, 630631

implementing command methods, 628

manually specify command with callback, 629

placing command implementation in separate file, 629

returning array to pass data to other Drush scripts, 629

drush @dev core-status command, 609

drush cache-clear all command, 598, 613

drush cc all command, 46, 407, 798

drush cc command, 494

drush command, 35

drush commandname command, 33

drush convert-makefile command, 817

drush core-cli command, 601

drush core-rsync command, 612

drush dl menu_block; drush en -y menu_block, 176

drush dl MODULE_NAME, 31

drush dl modulename, 38

drush docs-commands command, 628

drush en featurename, 906

drush en views_ui, 904

drush features-export command, 905

drush features-revert command, 813

drush features-update command, 813

.drush folder, 607

Drush Git Backup (DGB), 249

drush help --filter command, 630

Drush help screen, 968

drush make command, 816817

drush mmas command, 628

Drush programs, 965969

installing, 965968

running, 968969

Drush project page, 34

drush site-install command, 540, 806

drush site-upgrade command, 888, 893, 895, 897, 901, 904

drush sql-dump > /path/to/filename.sql command, 45

drush sql-query 'show tables;' | grep cache command, 613

drush sql-sync @dev @live command, 617

drush sql-sync command, 612, 894

drush topic docs-api command, 633

drush up command, 3132, 38, 147

drush upc ctools views, 147

drush verify-makefile command, 817

drush_bootstrap_max method, 631

drush_choice method, 624

drush_command_invoke_all method, 632

drush_command_invoke_all_ref method, 632

drush_COMMANDFILE_HOOK method, 631

drush_COMMANDFILE_HOOK_validate method, 631

drush_COMMANDFILE_post_HOOK method, 631

drush_COMMANDFILE_pre_HOOK method, 631

drush_confirm method, 624

drush_devel_download method, 632

drush_dispatch command, 619

drush_dispatch method, 629

drush_docs_readme method, 629

drush_extras module, 611

drush_get_merged_options method, 621

drush_HOOK_init method, 631

drush_html_to_text command, 623

drush_invoke command, 619

drush_invoke_process command, 620

drush_invoke_process_args command, 620

drush_invoke_sitealias command, 620

drush_invoke_sitealias_args command, 620

drush_key_value_to_array_table method, 623

drush_log command, 625626

drush_log method, 624626

drush_op_system command, 619

drush_print command, 622

drush_print method, 624

drush_print_file method, 629

drush_print_pipe command, 622

drush_print_pipe method, 629

drush_print_table command, 622623

drush_prompt method, 624

drush_redispatch_get_options method, 625

drush_set_error command, 626

drush_set_error method, 624625, 631632

drush_shell_exec command, 619

drushed modules, 386

drush/examples/helloworld.script file, 618, 622

drush/examples/sandwich.drush.inc file, 626

drush.php file, 608

drushrc.php file, 600, 606607, 613, 617

dsm( ) method, 311

dt command, 622

Dublin Core vocabulary, 662

dump files, managing, 614615

dur option, 648

dynamic forms, via #ajax property, 591592

dynamic pages, building using Views module. See Views module

dynamic pricing, 570

dynamic queries, 450451

E

EcoAlign site, 937

Edit view, 57

effective communication, 218

effects, jQuery UI, 378379

element field name, 26

element_validate property, 544

elements

forms accepting multiple, 776779

jQuery UI

accordion library, 367

datepicker library, 368

dialog library, 369370

draggable library, 370

droppable library, 371

progressbar library, 372373

resizeable library, 373

selectable library, 374

slider library, 375

sortable library, 376

tabs library, 377378

render

manipulating output of, 322326

overview, 322

else statements, 402403

elseif statements, 402403

<em> tags, 413

Empty screen state, 731

Enable and set default link, 281

enabled filters, 707

end-user, documentation for, 222223

engine property, 279

engines, theme, 273274

entities, 460461

and fields, 589591

order entity, 590591

product entity, 589590

providing administrative interface for, 555559

providing new types, 549555

defining entity access callback method, 554

defining new permission, 554555

reasons for creating, 550

entity class, 553

entity keys, 553

ENTITY_build_content( ) method, 694

entity_load( ) method, 559

entity_metadata_comment_access( ) method, 554

entity_prepare_view( ) method, 694

ENTITY_view_multiple( ) method, 694

EntityAPIController class, 553

entityFieldQuery( ) method, 549

Environment Indicator module, 99, 252

Environment variables dialog, 967

error code, 621

error log level, 625

error messages, 472476

fatal errors

runtime, 473

syntactic, 472

finding cause of, 473474

searching for solutions to, 472

tracing with Devel module, 474476

Error screen state, 733

error_log item, 621

ERROR_REPORTING_DISPLAY_ALL, 408

error_status item, 621

errors

search and 404-modules for handling, 106107

showing, 408

etc/backup.d file, 250

events, sponsoring, 881

every_page flag, 358

everything in code approach, 251252

everything through the web philosophy, 252

example components, 813

example modal dialog, 60

example_something( ) method, 469

example_update_7001( ) method, 451

example.aliases.drushrc.php file, 600

example.com/blog/blog-post-title, 96

example.drushrc.php file, 608, 613

exampleform_unsubscribe( ) form, 331

example.js file, 357

examples directory, 608

examples folder, 618

examples/examples.drushrc.php file, 622

example/web directory, 140

exceptions, 814815

exclusion, 707708

existing modules, hooking into, 504

expectations, for contributors, 851

experts

consulting with, 838

and success as developer, 843

explorative usability tests, 736737

environment, 737

method, 736

scenario, 736

setting up module, recording, and logging, 738

tasks, 736737

Export view, 58

exportables, 811

exporting, Views to code, 8586

exposed filters, cloning and making administrative tables using, 8081

Exposed form in block, 62

Exposed form style, 62

exposed forms, 62

extensions for Drush, 626633

altering Drush command behavior with, 631633

command hook for, 627628

help hook for, 630631

implementing command methods, 628

installing, 606607

manually specify command with callback, 629

placing command implementation in separate file, 629

returning array to pass data to other Drush scripts, 629

extract( ) method, 471

F

facet blocks, 703

fatal errors

runtime, 473

syntactic, 472

faux-exportables, 811

Features, defined, 214

features directory, 906

Features modules, 905907

adding to automatic upgrade, 906907

base, 905

Features project, 256258

features property, 279

Features suite, 252

features_revert( ) method, 258

.features.content.inc file, 812

feedback

direct and immediate, 264

expert, about site accessibility, 946

from issue queues, 741

on wireframes, 729730

Feeds module, 259, 805

field displays, 754757

field formatters, linking to Drupal.org/Twitter accounts with, 757766

caching data using default cache table, 765766

fetching usernames, 763764

Field SQL Storage, Field UI module, 92

field_add_more_js( ) method, 777

field_attach_form( ) method, 557

field_attach_load( ) method, 694

field_create_field( ) method, 560

field_get_items( ) method, 509

field_info_bundles( ) method, 460461

field_language( ) method, 509

field_status, 187

fields

adding metadata to Chapter content type with, 172173

adding types of to Field module, 9697

editing, 7475

entities and, 589591

order entity, 590591

product entity, 589590

programmatically creating and attaching, 559560

setting display of with Chapter content type, 173175

of Views, 61

Fields API, 509510

Fields module, adding field types to, 9697

Fields upgrades, automating, 902903

field.tpl.php file, 293, 295

'file' => filename.extension, 424

file directories, setting permissions, 245

file placement, 911

File Transfer Protocol clients. See FTP clients

file xray.admin.inc, 465

file_get_contents( ) method, 710

file_scan_directory( ) method, 919

file.js, 365

files

adding to repository, 859861

automatic inclusion of, 592

generic, allowing people to attach to content, 180

Photoshop, 206

uploading, with FTP clients, 237

files attribute, 807

files[ ] = mymodule.test, 519

FILO (first in, last out) order, 308

--filter flag, 607

filter module, PHP, 128

filter settings

forms

accepting two additional rows, 777779

providing instructions on, 781782

validating, 780781

filter_example.module, 773, 775776

filter_xss( ) method, 478

--filter=devel flag, 607

filtered_html_plus, 185

filters

contextual, 62, 8283

criteria

groups, 6566

of Views, 61

custom text, 771795

adding custom markup for output, 795

container form elements with specified classes, 790791

custom hooks, 783

editing text formats, 794

examples, 773

filtering content, 783788

modules, 771773, 776788, 791794

stylesheets for administration pages, 788790

tags and replacement markup form, 776782

enabled, 707

exposed, cloning and making administrative tables using, 8081

filters, unchanged, 163

Filters section, 6465

find command, 646

Find duplicate issues, 875

Find maintainer directions, 875

Find related issues, 876

fine-tuning content display, 164167

modifying teaser display and setting trim length, 166167

using view modes to display same content in different ways, 166

Firebug net summary, 914

FireFTP, 236

first in, last out (FILO) order, 308

fitness, of paths, 679680

Flooded screen state, 732

flow state, 264

FOAF (Friend of a Friend) vocabulary, 662

fonts, choosing for visual design, 939

foo_load( ) method, 677

footers, 61, 357

foreach( ) statement, 763

foreach loop, 419, 421

Form API, 134

Form component type, 504

form elements

container, with specified classes, 790791

investigating, 543544

form tasks, 808809

form variable, 547

form_alter( ) method, 412

form_error( ) method, 544

form_get_error( ) method, 547

form_id form, 332

form_process_password_confirm( ), 542

form_set_error( ) method, 544

form_set_value( ) method, 779

form_state variable, 547

<form> ID attribute, 333

Format settings

configuration options for, 6768

for Views, 72

format_plural( ) method, localization with t( ) method and, 412414

formats, text, 794

formatters, fields, 757766

formatting

allowing images, adding to text, 184187

data for display as tables, 433435

Views, 6061

formmsgs directory, 540

formmsgs entity, 553

formmsgs_form( ) method, 557

formmsgs_form_submit( )method, 557

formmsgs_load( ) method, 557

formmsgs_load_by_name( ) method, 557

formmsgs_load_multiple( ) method, 557

formmsgs.admin.inc file, 556

forms

accepting multiple elements, 776779

altering, 409412

API elements and default properties, 331

dynamic, via #ajax property, 591592

filter settings

accepting two additional rows, 777779

providing instructions on, 781782

manipulating elements

in template files, 337338

in theme methods, 335

Simpletest framework and, 528530

streamlining elements with CSS, 766

theming, 329340

finding form ID, 332333

hook_theme( ) method, 333334

markup generation, 329332

modifying using alter hooks, 339340

with template files, 336339

with theme methods, 334335

Forms API, 591592

automatic file inclusion, 592

dynamic forms via #ajax property, 591592

Forum module, 93

FOSDEM (Free and Open Source Developers' European Meeting), 824

FOSS (Free and Open Source Software), 822

Free and Open Source Developers' European Meeting (FOSDEM), 824

Free and Open Source Software (FOSS), 822

Friend of a Friend (FOAF) vocabulary, 662

Front page view, 57

<front> text, 22

FTP (File Transfer Protocol) clients

setting to use text editor, 238

setting up, 235238

creating bookmarks with server access setting, 235236

entering login credentials, 237

selecting security protocol, 236237

starting connection and uploading files, 237

text editor, 237238

function signatures, of hook_help( ) method, 480

function_exists($function_name), 670

function_name( ) method, 404

functional requirements

development and implementation, 207

IA stage, 206

functional testing, with Simpletest framework, 517532

.test files, 522526

advantages and caveats, 518

API, 530531

description, 519520

forms, 528530

further reading, 530531

running tests, 520522, 526527

setting up tests, 520522

submitting patches to Drupal.org, 531532

TDD, 519

when to use, 518

functionality

extending with modules, 1516

disabling unneeded, 1516

OpenID module, 15

modifying existing, 504

pages or content sections requiring, 259260

functions

calling directly, 438439

identifying needed, 414421

theme, 301304

calling, 302

hook suggestions and, 308310

overriding, 302304

G

garfieldtech.com/blog/language-tradeoffs, 393

Garland theme, 271, 277

garland_width setting, 277

garland.info file, 277

Gestalt psychology, 716717

get_defined_vars( ) method, 311

getfirebug.com, 753

git add -A command, 255

git add commands, 42, 776

git bisect, 263

git checkout mymodule.info, 45

git checkout -- path/to/filename.php command, 45

git clone --bare command, 254

git commit -a -m command, 263

git commit command, 43

git diff command, 249

.git directory, 254

Git homepage, 40

git init command, 42

git log command, 45

git pull command, 139

git reset command, 255

git reset --hard HEAD command, 44

git revert HEAD command, 45

git status command, 42, 45, 255

git status type, 139

Git system, 263

Git tool, 3138, 4546, 858861

adding files to repository, 859861

database backup tools, 45

git checkout mymodule.info command, 45

git log command, 45

git status command, 45

installing, 3941

SSH protocol, 858859

working with, 4145

creating repository, 4244

identifying user, 4142

reverting in Git tool, 4445

Git version control system, 254255

git.drupal.org, 389, 792, 862

gitignore file, 894

gitorious.org/drupal-open-curriculum/pages/Home, 872

Global Redirect module, 107

Global Settings page, 275276

Global Theme Settings, 275277

custom, 277

Logo setting, 276

Main and Secondary menus settings, 277

Name and Slogan settings, 276

Shortcut Icon setting, 277

User Pictures in Posts and Comments settings, 277

User Verification Status in Comments option, 277

global variables, 296301

Glossary view, 57

glue code modules, custom upgrade methods from, 896897

GNU General Public License, 822

goals

setting, 264

starting with, 838839

GoMockingbird, 206

Grid option, 68

GROUP BY, 908

Group content types, 111114

group rule, 358

Group-related Roles, 123

groups

creating, 114

in drupal_add_js( ) method, 357359

Groups landing page, 116

Groups.Drupal.com/seattle, 872

groups.drupal.org profile pages, 763

Groups.Drupal.org site, 197

Groups.Drupal.org User ID, 154

groups.drupal.org/contributed-module-ideas, 91

groups.drupal.org/drupalchix, 882

groups.drupal.org/events, 875

groups.drupal.org/html5, 940

groups.drupal.org/peer-review, 479480

GUI tools, 264

-h parameter, mysql command, 246

H

<h2> tags, 319

hackable URLs, views allowing for user pages, 801802

hacking core, 277

hacking of server, 825827

hardcoded variables, 289

hard-coding, variables in template files, 288

<head> tags, 295, 345

headers

overview, 61

setting up page, bootstrap phase, 690

Headers already sent error, 303

headshot images

building for authors, 158162

author biographies view page, 162164

Image style, 159161

menu link for page view, 161162

overview, 151

helloworld.drush file, 618

help command, 598, 603

help hook, for Drush extensions, 630631

Help region, 285

Help-displays help text module, 92

Heyes, Richard, 622

hidden regions, 286287

<Hidden> tag, 165

hide( ) method, 319, 327329

Highlighted region, 323

highlighting first result with multiple displays, 7778

Home context, 608

home pages, project, 130131

homepage.css stylesheet, 347

hook suggestions

overview, 305

and template files, 305308

and theme methods, 308310

hook_anything_whatsoever( ) method, 393

hook_apachesolr_field_mappings_alter(&$mappings) method, 709

hook_apachesolr_modify_query( ) method, 709

hook_apachesolr_modify_query($query, $caller) method, 709

hook_apachesolr_node_exclude($node, $namespace) method, 709

hook_apachesolr_prepare_query($query, $caller) method, 709

hook_apachesolr_search_result_alter($doc, $extra) method, 710

hook_apachesolr_update_index( ) method, 709

hook_apachesolr_update_index($document, $entity, $namespace) method, 708

hook_apachesolr_update_index($document, $node, $namespace) method, 709

hook_block( ) method, 260

hook_block_view( ) method, 395

hook_boot( ) method, 687690

hook_comment_presave( ) method, 503

hook_comment_view( ) method, 393

hook_commerce_currency_info_alter( ) method, 569

hook_commerce_customer_profile_info( ) method, 577

hook_commerce_line_item_info( ) method, 568, 574

hook_commerce_line_item_info_alter( ) method, 574

hook_commerce_payment_info( ) method, 579

hook_commerce_product_info( ) method, 590

hook_commerce_tax_info( ) method, 574

hook_contact_site_form( ) method, 334

hook_cron( ) method, 685

hook_css_alter( ) method, 343, 345348, 916

hook_custom_theme( ) method, 692

hook_db_rewrite_sql( ) method, 63

hook_default_formmsgs( ) method, 538

hook_default_views( ) method, 538

hook_entity_info( ) method, 460, 550551, 554, 556, 571

hook_entity_info_alter( ) method, 590591, 748, 750

hook_entity_load( ) method, 694

hook_entity_prepare_view( ) method, 694

hook_entity_view( ) method, 695

hook_entity_view_alter( ) method, 695

hook_exit( ) method, 687689

hook_field_attach_load( ) method, 694

hook_field_formatter_*( ) method, 758

hook_field_formatter_info( ) method, 757758

hook_field_formatter_view( ) method, 761762

hook_field_storage_pre_load( ) method, 694

hook_filter_info( ) method, 774776

hook_form_alter( ) method, 190, 339340, 392, 409, 440, 505, 542, 545, 923

hook_form_FORM_ID_alter( ) method, 340, 409

hook_forms( ) method, 464

hook_help( ) method, 394396, 416, 422, 440, 463, 480, 482, 539

hook_init( ) method, 692

hook_install( ) method, 258, 451, 508, 560, 808, 814, 899, 903, 907

hook_install_tasks( ) method, 807808

hook_js_alter( ) method, 362363, 916

hook_language_init( ) fuction, 689, 691

hook_language_negotiation_info( ) method, 691

hook_language_negotiation_info_alter( ) method, 691

hook_library( ) method, 359362, 545

hook_library_alter( ) method, 363

hook_load( ) method, 694

hook_menu( ) method, creating pages with, 421426

choosing paths for administration pages, 422

menu items, 422426

hook_menu implementations, 675, 682

hook_menu_alter( ) method, 362, 424, 427, 681, 705

hook_menu_alter array, 679682

hook_menu_item_alter( ) method, 928929

hook_module_implements_alter(&$implementations, $hook) method, 509

hook_node_info( ) method, 513

hook_node_insert( ) method, 772

hook_node_load( ) method, 694

hook_node_update( ) method, 772

hook_node_update_index($node), 709

hook_node_view( ) method, 513, 772, 795, 798

hook_node_view($node, $view_mode, $langcode) method, 709

hook_node_view_alter( ) method, 695, 804

hook_nodeapi method, 496

hook_page_alter( ) method, 325326, 437, 511, 697, 929932

hook_page_build( ) method, 260, 697, 929930

hook_permission( ) method, 426, 555

hook_permissions( ) method, 432, 555

hook_preprocess_comment( ) method, 754

hook_preprocess_HOOK( ) method, 754

hook_preprocess_node( ) method, 748749, 754

hook_preprocess_page( ) method, 362, 754

hook_process_HOOK( ) method, 754

hook_rdf_mapping( ) method, 661

hook_requirements( ) method, 452

hook_schema( ) method, 258, 451, 453454, 551, 553

hook_search_execute( ) method, 704705

hook_search_info( ) method, 704705

hook_search_page( ) method, 705706

hook_stream_wrapper_alter( ) method, 691

hook_stream_wrappers( ) method, 691

hook_system_info_alter( ) method, 286287

hook_theme( ) method, 301302, 316, 333334, 407, 435436, 439, 476, 483

hook_theme_registry_alter( ) method, 799

hook_update_dependencies( ) method, 452

hook_update_N( ) method, 258, 451452, 454, 560, 814, 897, 899, 903, 906

hook_url_inbound_alter( ) method, 692

hook_views_default( ) method, 538

hook_views_default_view( ) method, 513

hook_watchdog( ) method, 689

hooking, into modules, 537538

hooks, 304310, 393397, 503, 783

adding data, 708709

alter, modifying forms using, 339340

altering queries and results, 709710

calling all implementations of, 432433

description of, 304

execution order of, 508509

preprocess and process, 315317

Search module

defining new searches, 704

optional, 704706

update, 258259

capturing additional upgrade steps in, 896904

hookvnode_view( ) method, 695

host server, with SSH, 243

hosting

conferences, 879880

services, 234238

FTP client setup, 235238

selecting according to performance and service, 234235

sites, locally, 230

hosting name, 247

.htaccess files, 10, 138139, 141, 245, 248, 962

HTML (HyperText Markup Language)

attributes, 297301

rendered, 231232

semantic markup, 656

HTML List option, 68

html theme, 927

html_tag, 324

HTML5-and Drupal, 940

htmlspecialchars( ) method, 472475

html.tpl.php file, 293, 295

html.tpl.php template, 288

HTTP (Hypertext Transfer Protocol) accelerators, Varnish, 638

HTTP port, 952

httpd.conf file, 955

http://drupal.org project page, 486

http://purl.org/dc/terms/ namespace, 653

Hudson tool, 260

hybrid approach, 253

HyperText Markup Language. See HTML

Hypertext Preprocessor. See PHP

Hypertext Transfer Protocol (HTTP) accelerators, Varnish, 638

I

identi.ca, 655

IDEs (Integrated Development Environments), 237

idiosyncrasies, internal documentation, 226

if ($path == 'admin/structure')... statement, 403

if module_exists( ) method, 259

if statements, 338, 402403

if... statements, 675

image fields, reusing, 179180

Image styles, 159161

image_resize_filter, 147

image_resize_filter.module, 782

image_style_name_validate( ) method, 544

images

headshots, 151

inserting into posts, 186187

of users, 183184

immediate feedback, 264

implementation, of project plan, 207

Implements hook_somethingorother( ) method, 496

include file, 550

--include-conf option, 612

includes/common.inc, 899

includes/entity.controller.inc file, 553

includes/graph.inc, 536

in/config/development/performance, 341

indenting, two spaces, 405

indexes, 640642

index.php file, 10, 502, 608, 685, 692, 784, 960, 962

Inexpensive attribute, 721

.info files, 278281, 355356, 388391

adding stylesheets via, 343344

directives

configure, 390

dependencies[], 389390

overview, 389

package, 391

properties, 279281

.info folder, 85

information architecture

and design meetings, 214215

overview, 206

Information Architecture Discovery, Drupal Project Stage, 208

inline parameter, 357

<input type="submit" >, 331

install directory, 140

.install files, 259, 451453, 550, 560

install_profile_info( ) method, 919

installation profiles, 803818

configuration features, 810815

drune_track.*.inc file, 812

drune_track.module file, 812815

using installation profiles and features as development tool, 815

developing, as business model for contributors, 850

future of, 817818

packaging code, 816817

hosting on drupal.org, 817

makefiles, 816817

site templates, 803805

development profiles, 804805

example distribution, 805

full-featured services, 804

structure of, 806809

drune.info file, 807

drune.profile file, 807809

and success as developer, 843

installers

automated module, 146

automatic, 974975

one-click, circumventing, 240241

installing Drupal, on Ubuntu operating system, 973975

installing program, 912

automatic installer, 1112

file placement, 911

install.php file, 974

INSTALL.txt, 386

Integrated Development Environments (IDEs), 237

interaction, adding dynamic front-end, 510511

#ajax attribute, 511

#states attribute, 511

jQuery UI library, 510511

interfaces, administrative

modules for, 99103

providing for entities, 555559

interim names, for modules, 773775

internal documentation, 225

Internet Explorer, adding conditional stylesheets for, 345

Internet Protocol (IP) address, 247

Internet Relay Chat (IRC) site, 199200

Invocation count, 918

IP (Internet Protocol) address, 247

IRC (Internet Relay Chat) site, 199200

isset( ) method, 419, 421

issue queues, 200201

feedback from, 741

handling, 875877

issues

posting, 486488

reporting, 740741

item_list( ) method, 459

iterating, migration processes, 910

J

JavaScript language

and jQuery library, 355366

.info files, 355356

behaviors, 364365

degrading, 365366

drupal_add_js( ) method, 356357

libraries, 359362

overriding, 362363

rendered, 231232

Jenkins Continuous Integration tool, 260

joins, static queries with, 445447

jQuery library, 355379

.info files, 355356

drupal_add_js( ) method

overview, 356357

weight in, 357359

further resources, 379

and JavaScript language, 355366

.info files, 355356

behaviors, 364365

degrading, 365366

drupal_add_js( ) method, 356357

libraries, 359362

overriding, 362363

UI, 366379, 510511

jquery.js file, 363

Js item, 360

JS_DEFAULT, 358359

JS_LIBRARY, 358359

JS_THEME, 358

js-file-one.js file, 360

js-file-two.js file, 360

Jump Menu option, 68

K

karma, in community, 848

Katas, Drupal, 880

keyup( ) method, 545

kickoff meetings, 213214

Kit specification, 257

Knaddison, Greg, 134

kpr( ) method, 748, 755

kpr($vars);, 749

Krumo library, 311

L

LAMP (Linux/Apache/MySQL/PHP) stack, to WISP, 947948

languages

negotiation algorithms, 691

selection, bootstrap phase, 691

Last updated issue, 488

launching

meetings, 216

migration processes, 910911

of website, 207

laws

of proximity, 717719

of similarity, 717

layout

defined, 213

strategies for, 289292

Learning Projects, Drupal, 872

left-to-right (LTR), 343

legacy data, 908909

legislation, of accessibility, 943

libraries, jQuery, 359362

drupal_add_library( ) method, 361362

hook_library( ) method, 359361

licensing, 863

lifecycle of project, 209213

estimating completion dates, 211212

minimum viable project, 212

project plan, 209211

risks, 212

tracking system, 212213

limitations, role of in project planning, 203204

Line Item/Line Item UI, 568

line items, 573575

line_item_id values, 574

Link display, 63

linking

chapters to authors, 178

to other pages by authors, 153154

from profiles to web sites, 151153

links, menu, 161162

links template, 309

links__comment template, 309

links__contextual template, 309

links__contextual__node template, 309

links__node template, 309

Linux/Apache/MySQL/PHP (LAMP) stack, to WISP, 947948

list_themes( ) method, 415416

listing

authors of sites, 157164

author biographies view page, 162164

building authors headshot view, 158162

page, 726729

loader methods, 677679

local copy, of remote Drupal site, 612614

local hosting, of sites, 230

local tasks

defining tabs with, 425

second to complement default, 431432

Locale module, 93

locale.module, 765

localhost hostname, Navicat, 979

localization, with t( ) and format_plural( ) methods, 412414

--lock option, 605

log item, 621

logging, setting up for testing, 738

logging in

allowing with OpenID module, 15

entering credentials, 237

logical operators

combining sorts with, 6566

overview, 401402

logintoboggan module, 603

Logo checkbox, 276

Logo setting, 276

long-term memory, 714715

long-term support, 841

loops, 403

Lopp, Michael, 219

LTR (left-to-right), 343

Lullabot consulting and training shop, 197

Lullabots, 226

M

Mac OSX operating system installation, downloading core file, 977984

command-line fu, 979

creating database, 979980

starting install, 981984

Machine Name field, 62

machine_name.info, 389

mailing lists, 197

Main and Secondary menus settings, 277

main menu, adding table of contents to, 178

main menu link, 1920

<Main menu>, 19

Main page areas, 730

Main page content block, 286

maintenance

accessibility, 945946

of project, 207

major modules. See modules, major

make command, 816

makefiles, 816817

MAMP icon, 977

MAMP screen, 977

man backupninja command, 250

man command, 245

man git command, 45

Manage display page, 165

manual tools, setting up databases with, 240

mappings

RDF structure, 661665

options for working with, 661662

vocabularies, 662665

semantic markup, 659660

markdown filter, 97

markup

adding custom for output, 795

generation of, 329332

replacement, tags and, 776782

Masquerade module, 103

max_execution_time, 895

Media module, 804

MediaWiki, 225

meetings, brainstorming, 214

Meetup.com, 199

meetups, 824

local, 198199

overview, 197

Members settings, 122124

memcached system, 638

memory, human, 713715

memory item, 621

mental models, 714715

mentoring, 871872

Menu Block module

overview, 104

using to display better table of contents, 176177

Menu component type, 504

menu items

create new, 223

declaring for X-ray module, 425426

defining for settings form, 464465

defining pages with normal, 422424

defining tabs with local task, 425

menu links, for page view, 161162

Menu module, 92

Menu Position module, 104

Menu Settings page, 277

menu system, and paths, 667683

callback methods, 676677

fitness, 679680

loader methods, 677679

menu system, 667673

modifying existing router items, 680683

structure of, 674676

MENU_DEFAULT_LOCAL_TASK, 425

menu_execute_active_handler( ) method, 407, 475, 928

menu_get_active_help( ) method, 395396

menu_get_item( ) method, 438439

MENU_NORMAL_ITEM, 425

menu_router database, 682

menu_router table, 680

menus

adding to Views, 73

modules for, 104

message item, 621

message queue, 648649

meta:COMMANDFILE:summary item, 630

meta:COMMANDFILE:title item, 630

metadata

adding to Chapter content type with fields, 172173

defining .info files, 278281

method ->extend('TableSort'); 457

methodologies, of project management, 207209

Microsoft Windows development environment, 947969

Drush programs, 965969

installing, 965968

running, 968969

LAMP stack to WISP, 947948

loading Drupal core code, 953957

phpMyAdmin and MySQL Connector tools, 963965

Visual Studio development environment, 948

VS.Php add-on, 957962

WAMP stack, 948953

Microsoft Windows, running Ubuntu operating system on, 971

Migrate module, 259

migration of data, 907911

auditing, 910

initial analysis, 909910

iterating, 910

launching, 910911

legacy data, 908909

managing, 907908

showing, 910

sticking points, 909

timing, 910

milestones

closing meetings, 215216

site review at completion of, 217218

tracking, 212

Minimal detail attribute, 725

minimum viable project (MVP), 212

misc/favicon.ico file, 277

misc/machine-name.js file, 356

Mission Statement block, 23

mission statement, custom, 2124

mk-query-digest, 920

mockups

defined, 213

for detailed designs, 733

of DGD7 home page, 8

mod_deflate, 916

model code, finding, 497498

models, 767770

concept, of Rules module, 722

finding, 559560

view, using to display same content in different ways, 166

Modifying field label, 113

modular modules, 537539

hooking into, 537538

making dependencies optional, 538539

modularity, 713

.module files, 391392

Module Page Signup, 734

module_disable( ) method, 901902

module_exists('block'); 539

module_implements_alter( ) method, 452

module_invoke_all( ) method, 393, 432, 783

module_invoke_all('x') method, 395

modulename_function( ) method, 405

modulename.api.php file, 538

modules, 87107, 463469, 485488

$path and $arg parameters, 481

accessible, 943

administrative interface and content entry, 99103

Content Type Overview module, 99102

Environment Indicator module, 99

Masquerade module, 103

Smart Crop module, 99

Workbench suite of modules, 99

automated installer, 146

book, templates for, 798801

Bot, 107

choosing, 129132

approach, 772773

project home page, 130131

security code reviews, 132

coda on contributed, 792

Coder review, 478479

Coder Upgrade module, 489493

community building and social networking, 104106

Comment Notify module, 104105

Organic Groups module, 105

Profile2 module, 106

Rate module, 105

Role Limits module, 106

Userpoints module, 105

Voting API dependency, 105

configuration page for, 469483

conditionally taking action based on configuration settings or user access, 468469

creating separate file for administration code, 465

defining menu items for settings form, 464465

defining new permissions, 467468

settings form, 465467

content display, 103104

Code Filter module, 103

Colorbox module, 104

Panels module, 103

contributed

overview, 890891

patch files to Drupal.org, 498499

updating, 145147

in core, 9194

CSS files, 342

custom coding, 488

custom upgrade methods from glue code, 896897

custom utility methods, 470471

dependencies on contributed, 592593

development of, 383408

.info file, 388391

.module file, 391392

hooks, 393397

placement of custom modules, 385387

repository for modules, 388

technical skills, 397408

two files in folder, 383385

disabling in code, 901902

enabling in code, 901

error messages, 472476

fatal errors, 472473

finding cause of, 473474

searching for solutions to, 472

tracing with Devel module, 474476

evolution of, 87

extending site methodality with, 1516

Features, 905907

adding to automatic upgrade, 906907

base, 905

finding existing, 534535

finding model code, 497498

fixing problems with, 91

handling search and 404 errors, 106107

404 Navigation module, 107

Apache Solr module, 106

Global Redirect module, 107

Search 404 module, 106107

hook_help( ) method, 480

identifying problems, 493497

implementations, 317

interim names for, 773775

list of API changes, 489

loading, bootstrap phase, 691692

locating and choosing, 8891

locating needed, 771772

major, 533561

defining data model, 547555

defining goals, 561

finding existing modules, 534535

knowledge of tools, 535536

modular modules, 537539

planning approach to, 541547

programmatically creating and attaching fields, 559560

providing administrative interface for entities, 555559

providing APIs, 536537

providing new entity type, 549555

test environment, 539541

menus and navigation, 104

on-site documentation for, 482483

OpenLayers, 107

Peer Review group, 479480

performance issues with, 88

PHP filter, avoiding using, 128

posting issues, 486488

preprocess methods, 476477

releasing, project page and documentation, 741743

renaming, 788

repository for, 775776

setting up for testing, 738

sharing on Drupal.org, 791792

site building essentials, 9498

adding field types to Fields module, 9697

AntiSpam and Mollom modules, 98

Pathauto module, 9596

Token dependency, 96

Views module, 95

Webform module, 98

WYSIWYG module, 97

site-specific using API, 792794

storing contributed, 94

vs. themes, 354

upgrade, 897901

using APIs in, 409461

altering forms, 409412

calling all implementations of hooks, 432433

calling methods directly, 438439

creating pages with hook_menu( ) method, 421426

Database API, 442456

displaying data in sortable tables, 456460

entities, 460461

formatting data for display as tables, 433435

identifying needed methods, 414421

localization with t( ) and format_plural( ) methods, 412414

Permissions administration page, 426431

second local task to complement default local task, 431432

styling with CSS files, 440442

themes, 435437

writing site-specific, 501515

case examples, 506511

custom modules, 501502

hook system, 503

making code reusable, 511515

method for, 503506

modules directory, 502, 508

modules_number field, 460

modules/acquia, 989

modules/block directory, 298

modules/block.module, 445

modules/book, 798

modules/contact/contact.test file, 531

modules/field/field.form.inc, 777

modules/file/file.js, 365

modules/help/help.api.php, 396

modules/image/image.admin.inc, 544

modules/node folder, 423

modules/node/node.test file, 518, 522, 531

module-specific regions, 287

modules/simpletest/drupal_web_test_case.php file, 531

modules/system directory, 292, 309

modules/system/system.api.php, 393

modules/user/user.admin.inc: user_admin_permissions( ) method, 433

modules/user/user.install, 796

modules/user/user.js, 544

Mollom module, 98

monetizing, 835851

building career, 843847

getting involved in community, 844846

possibilities for, 843847

starting own business, 846

as contributor, 847851

benefits of, 847848

business models for, 849851

expectations for, 851

sustainability of, 848849

as developer, 835843

being successful, 841843

common pitfalls of, 835836

consulting with experts, 838

content needs managing, 837

and contriburing to community, 840

long-term benefits of using Drupal, 838

long-term support, 841

making sustainable choices, 840

starting with goals, 838839

supporting different participants, 839840

understanding concepts of Drupal site, 836837

mongod, 648

MongoDB database, 645650

Null values in, 649650

watchdog subsystem, session subsystem, and message queue, 648649

mongodb_watchdog, 649

monitary support, of community, 880881

More link, 61, 7576

moreoutrageous_menu_alter( ) method, 681

moreoutrageous_message( ) method, 682

MustardSeed Media video podcast, 226

MVP (minimum viable project), 212

mymodule_active_users( ) method, 524

mymodule.info file, 519

mymodule.module file, 519

mymodule.test file, 519

mysql command, 246

MySQL Connector tools, 963965

MySQL RDBMS, root password, 972

MySQL root password, 246

mysqldump command, 244245, 614

mytheme_css_alter( ) method, 348

mytheme_js_alter( ) method, 362

N

name attribute, 807

name code, 530

name field_user, 155

name property, 279

Name setting, 276

names, for modules

interim, 773775

renaming, 788

nameservers, 247

naming conventions, of CSS files, 342343

bi-directional text support, 343

core and module, 342

nano .bash_profile file, 36

Napkin sketch wireframe, 6

Navicat Lite, 979

Navicat Premium, 979

navigation

book, next and previous links mimicking, 795801

modules for, 104

non-book, reusing book module templates to display, 798801

Navigation region, 291

negotiation algorithms, language, 691

New Bookmark window, 236

new tasks, 217

new_stuff element, 323324

next links, mimicking book navigation, 795801

ninjahelper program, 250

--no option, 624

no results behavior, 62

Node component type, 504

Node export module, 259

Node module, 314

Node reference, connecting content types with, 181

node types, Product display, 575577

'node/%node' menu router item, 677678

node/[nid], 928

node/[node ID], 92

node_access_grants( ) method, 709

node_add( ) method, 769

node_add_access( ) method, 676

node_add_body_field( ) method, 559

node_add_page( ) callback, 676

node_build_content( ) method, 695

node_form_block_admin_configure_alter( ) method, 412

node_help( ) method, 396

node_load( ) method, 677, 694

node_menu( ) method, 481, 676

node_menu_local_tasks_alter( ) method, 770

node_page_default( ) method, 307

node_page_title( ) method, 678

node_page_view( ) method, 678, 694

node_save( ) method, 258259

node_show( ) method, 694

node_type, 445

node_view( ) method, 695

node_view_multiple( ) method, 694

node/42 path, 674

node/add Add content page, 17

node/add/article, 481

node/add/blog, 117, 530

node/add/book, 174

node/add/group, 114, 117

node/add/page, 16, 19

node/add/suggestion, 769770

node.admin.inc file, 424

node--article--teaser.tpl.php file, 749

node--article.tpl.php file, 749

node-compact class, 748

node.css file, 348

node/integer/action type paths, 675

node.module, 676, 770

node--profile--compact.tpl.php file, 751752

node--profile.tpl.php file, 751

nodes, making changes to, 319320

node--suggestion.tpl.php file, 753

node-title class, 319

node.tpl.php file, 295, 648, 751752

nodewords, 147

none property, 944

normal menu items, defining pages with, 422424

Normal screen state, 731

--notes option, 609

notice log level, 625

notoriety, benefits of being contributor, 848

NULL values

in MongoDB database, 649650

in SQL, 642643

O

object item, 621

OG Example panel, 120

ok log level, 625

one-click installers, circumventing, 240241

on-site documentation, for modules, 482483

ontologies, 653

Open Curriculum Project, Drupal, 872

Open ID module, 93

open source projects, contributing to, 265

OpenID module, allowing registration and logging in with, 15

openid_form_user_login_alter( ) method, 412

openid_form_user_login_block_alter( ) method, 412

openid.net, 15

OpenLayers module, 107

operators, 399402

arithmetic, 400

assignment, 399400

combining sorts with logical, 6566

comparison, 400401

logical, 401402

string, 400

ternary, 401

optimizing, 734738

choosing analysis method, 737

choosing users to test, 735736

explorative usability test, 736737

environment, 737

method, 736

scenario, 736

tasks, 736737

participants

finding, 737

informing of privacy considerations, 738

recruiting, 737

scheduling, 738

reasons for testing Rules module, 735

setting up module, recording, and logging, 738

test plan outline, 735

options

command-specific, 609

for Drush scripts, 618

order entity, 590591

order of content, defining for displays, 72

order rule, 358

order system, 577578

Order/Order UI, 568

Organic Groups module

creating community web sites with, 109124

creating content, 117119

installing and configuring, 110114

Members, Roles, and Permissions settings, 122124

Panels module, 119122

Views, 115117

overview, 105

OSX operating system installation, Mac. See Mac OSX operating system installation, downloading core file

output item, 620

output_charset option, examples/examples.drushrc.php file, 622

outrageous_menu( ) method, 669670, 682

outrageous_message( ) method, 669671

outrageous/dog/friend path, 673

Overlay module, 92

overrides, 813

overriding display settings, 63

overviews, content, 889890

-p parameter, mysqldump command, 244

P

package directive, 391

package manager, Debian, 250

packaging code, 816817

hosting on drupal.org, 817

makefiles, 816817

packaging, 817

page arguments key, 678

page caching, 916917

page callback method, 414, 682, 928

page rendering, 923932

delivery callback, 928929

drupal_render( ) method, 930

drupal_render_page( ) method, 929

hook_page_alter( ) method, 929930

page callback, 928

router item for, 928

page requests, bootstrap phases, 685698

execution of page callback, 692693

initialize configuration, 686

initialize database layer, 689

initialize session handling, 690

initialize variable system, 689690

load modules and initialize theme, 691692

select language, 691

set up page header, 690

try to serve cached page, 687689

typical example, 694698

Page Settings, 163

page view, menu links for, 161162

page_arguments array, 475

page_bottom region, 286

page_top region, 286

page-level suggestions, 306308

pagers, 61

pages

anatomy of, 934938

creating with hook_menu( ) method, 421426

choosing paths for administration pages, 422

menu items, 425426

defining with normal menu items, 422424

page.tpl.php file, 276, 293, 295

Panels module, 103, 119122

parameters, spaces between, 405

parenthesis, control statements and, spaces between, 405

participants

finding, 737

informing of privacy considerations, 738

not asking for solutions, 739

putting at ease, 740

questioning, 739

recruiting, 737

scheduling, 738

waiting before offering assistance, 740

parties, Drupal, 880

password-protected URL, 222

passwords

MySQL RDBMS root, 972

strong, 125126

patch command, 492, 499

patch files, contributing to Drupal.org, 498499

patches

contributing, 874875

reviewing, using Dreditor, 878

submitting to Drupal.org, 531532

patching existing modules, 514

PATH environment, 967

Path module, 92, 259

Pathauto module, 259

autogenerating human-readable URLs with, 190191

overview, 9596

Pathologic module, 259

paths

choosing for administration pages, 422

menu system and, 667683

callback methods, 676677

fitness of paths, 679680

loader methods, 677679

modifying existing router items, 680683

structure of paths, 674676

patterns of CSS files, 342343

bi-directional text support, 343

core and module, 342

payment methods, enabling, 579581

Payment module, 578

Payment/Payment UI, 568

Pear Consol Table library, 622

Peer Review group, 479480

perception, 715717

performance, 913921

issues with modules, 88

real, 916921

page and block level caching, 916917

profiling primer, 917920

slow database queries, 920921

reasons for slow websites, 913916

user-perceived, 913

permissions

allowing people to attach generic files to content, 180

assigning, 127

checking, 407

conditionally taking action based on, 468469

defining new, 467468, 554555

giving to authors to create profiles, 156157

limiting access to Suggestion content type Status field, 187190

overview, 2728

setting for organizing and writing chapters, 170171

for Views module, 5053

configuring, 5253

downloading, 51

enabling, 5152

Permissions administration page, finding system names, 426431

in code, 430431

in database, 428430

Permissions settings, 122124

personal control, sense of, 265

pg_dump command, 614

photos, adding change picture link underneath user, 320

Photoshop files, 206

PHP (Hypertext Preprocessor)

files, 233

filter module, avoiding using, 128

language

closing tag, 404

overview, 398

PHP Filter module, 128, 260

PHP property, 279

php.exe, 968

phpMyAdmin screen, 239, 963964

phpMyAdmin tool

overview, 963965

setting up databases with, 239240

PHP.net, 470

php.net/integer, 398

php.net/sort, 432

php.net/substr, 398, 781

php.net/switch, 403

php.net/ternary, 401

php.netvwhile, 403

PHPs /* */ C-style, 392

PHP's print_r( ) method, 752

PHPTemplate, 273

pictures, of users, 183184

--pipe flag, 627

--pipe option, 602, 606

Plentiful attribute, 722

pm-download command, 603, 607, 609, 624

pm-enable command, 632

pm-list command, 622

pm-releasenotes command, 605, 623

pm-update command, 605

pm-updatecode command, 604605, 609

podcasts, 196197

Poll module, 93

porting modules, upgrading, 485499

Coder Upgrade module, 489493

contributing patch files to Drupal.org, 498499

custom coding, 488

finding model code, 497498

identifying problems, 493497

list of API changes, 489

posting issues, 486488

post-launch, documentation for end-user, 222223

post-launch plan, 842

post-project debriefs, 216

posts

inserting images into, 186187

showing content that references post being viewed, 182183

Preferences button, MAMP screen, 978

preg_quote( ) method, 786

preg_replace( ) method, 786788

preprocess methods, 313320, 476477

adding change picture link underneath user photo, 320

adding classes to template wrappers, 318

finding contents of $variables array, 317

hooks, 315317

making changes to nodes, 319320

theming forms with template files, 338339

previous links, mimicking book navigation, 795801

Price module, 569570

pricing, dynamic, 570

principles, 745746

print render($content['field_image']);, 752

print_r( ) method, 311, 752, 796

Priority field, 488

Priority option, filter drop-down, 486

privacy of test participants, 738

problems, identifying in code, 493497

process API, 620

process code

keeping base current, 132133

writing secure, 133135

process methods, 313320

adding change picture link underneath user photo, 320

adding classes to template wrappers, 318

finding contents of $variables array, 317

hooks, 315317

making changes to nodes, 319320

Product display node type, 575577

product entity, 589590

Product module, 571573

adding products to site, 572573

product types, 571

Product Pricing/Product Pricing UI, 568

Product Reference module, 568, 575

production bottlenecks, avoiding, 225

Product/Product UI, 568

products

adding to site, 572573

types, 571

.profile file, 602

Profile module, 94

profile pages, showcasing authors of sites with, 149157

approximate pages contributed by each author, 155

connecting Author profiles to author user accounts, 155156

giving authors permission to create profiles, 156157

headshot image, 151

linking, 151154

Profile2 module, 106

profile2_get_types( ) method, 557

profile/drune/drune.make file, 816

profilename.info file, 806807, 815

profilename.install file, 808

profilename.profile file, 806807, 815

profiles

Author, connecting to author user accounts, 155156

giving authors permission to create, 156157

linking to web sites, 151153

profiles folder, 806

profiles/foo, 918

profiles/standard, 918

profiling, primer on, 917920

progressbar library, 372373

project goals, 842

Project information section, 89

Project Information section, 130

project manager, meetings with, 214

project pages, 741743

project plan, purpose statement of, 209

project/desired_name, 858

projects

contributed, dealing with issues in, 135

description of, 742743

home pages, 130131

lifecycle of, 205

maintaining, 853864

Drupal projects, 853854

Drupal.org accounts, 854855

Git tool, 858861

project information, 857

promoting projects from sandbox, 861864

sandbox projects, 856

status of projects, 856

managing, 203219

further resources, 219

methodologies, 207209

tasks, 213219

planning, 203219

example for BeachHouse non-profit, 210211

further resources, 219

project concept, 204207

project lifecycle, 209213

role of limitations, 203204

preparing for review, 862863

coding standards, 862

licensing, 863

project description, 863

security, 863

prompting user, in Drush scripts, 623624

properties, theme, 279281

property attribute, 659

prototypes, iterating rapidly, 222

proximity, law of, 717719

psychology, Gestalt, 716717

pure PHP themes, 274

purpose statement, of project plan, 209

Q

QA (Quality Assurance), 208, 217, 252, 256

Quality assurance stage, 9

queries

database, slow, 920

dynamic, 450451

hooks for altering, 709710

static, with joins on two tables, 445447

static select, counting and grouping, 450

Query settings, 62

Quick attribute, 724

quicksketch.org/node/5739, 889

Quickstart appliance, starting development environments with, 228229

R

randomName( ) method, 530

randyfay.com/node/76, 408

Rate module, 105

RDF (Resource Description Framework)

mappings structure, 661665

options for working with, 661662

vocabularies, 662665

overview, 652654

RDF module, 92, 298

RDF_DEFAULT_BUNDLE, 660

rdf_mapping_delete( ) method, 661

rdf_mapping_load( ) method, 661

rdf_mapping_save( ) method, 661

rdf_process( ) method, 315

RDFa, semantic markup, 656658

RDFa processing model, 657

RDFa semantic markup, 656658

readability, of custom utility methods, 470471

README.txt file, 349, 595, 851

real performance, 916921

page and block level caching, 916917

profiling primer, 917920

slow database queries, 920921

Recent comments view, 57

recording, setting up for testing, 738

recruiting participants, 737

referencing, showing content that references post being viewed, 182183

region theme, 927

regions, 282292

default, 284286

vs. hard-coding variables in template files, 288

hidden, 286287

layout strategies, 289292

module-specific, 287

moving content between, 325

and themes, 288

Regions asset, 349

regions property, 280

region.tpl.php file, 295

registration, allowing with OpenID module, 15

regression, defined, 518

regular expressions

overview, 784785

testing, 785788

rejecting tasks, 217

relationships, 62

Relationships configuration, 8384

releasing modules, project page and documentation, 741743

releasing work, 514515

new modules, 514515

patching existing modules, 514

remote commands, with Drush, 610617

making local copy of remote Drupal site, 612614

managing dump files, 614615

setting up SSH key pair, 611612

using Drush site context to control sql-sync options, 616617

using sql-sync without installing Drush on remote system, 615616

remote Drupal site, local copy of, 612614

render( ) method, 321, 327329, 752, 782

Render API (Application Programming Interface), 321326

elements

manipulating output of, 322326

overview, 322

render arrays

in core templates, 326

overview, 321

render arrays

altering content inside, 325326

in core templates, 326

overview, 321

render element, 439

renderable arrays, 436437

rendering languages, 231232

rendering pages. See page rendering

Replacement markup filter, 787

replacement markup, tags and, 776782

defining settings callback, 776

filter settings, 777782

forms accepting multiple elements, 776779

manipulating values before saving with validate method, 779780

repository

adding files to, 859861

creating for Git tool, 4244

for modules, 388, 775776

resizeable library, 373

Resource content type, referencing chapters, 179181

allowing people to attach generic files to content, 180

connecting content types with Node reference, 181

managing Resource content type display, 181

reusing chapter image field, 179180

Resource Description Framework. See RDF

restore later feature, 263

'restrict access' => TRUE directive, 554

results

defining number of, 72

hooks for altering, 709710

of usability tests, analyzing, 740

reverting, in Git tool, 4445

Review order, 582

Review patches, 876

reviews

by Coder module, 478479

of pages, for accessibility, 946

by Peer Review group, 479480

preparing projects for, 862863

coding standards, 862

licensing, 863

project description, 863

security, 863

revision control, 263

Revision moderation module, 259

right-to-left (RTL), 343

risks, in projects, 212

robots.txt, 139, 141

Role Limits module, 106

roles, 2728

Roles settings, 122124

<root of Definitive Guide to Drupal 7> tag, 176

--root option, 600601, 608

root passwords, MySQL RDBMS, 972

router items

modifying existing, 680683

for page rendering, 928

rows

filter setting forms accepting two additional, 777779

overriding styles for, 74

rsync command, 255

RTL (right-to-left), 343

Rules module

audience for, 723

concept model of, 722

listing page, 726729

reasons for testing, 735

sketching UI, 725

runtime fatal errors, 473

S

sachachua.com, 871

sample chapter, creating, 225

sandboxes

on Drupal.org, sharing code in, 541

projects, 856

promoting projects from, 861864

access, 863864

branches and tags on Drupal.org, 861

preparing branches for applications, 862

preparing projects for review, 862863

sandwich_drush_command method, 627

--sanitize option, 616

scaling, 635650

caching, 636638

disabling during development, 637638

memcached system, 638

databases, 639645

CAP between ACID and BASE, 643645

indexes, 640642

MongoDB, 645650

NULL values in SQL, 642643

Varnish HTTP accelerator, 638

why needed, 635636

scheduling, participants, 738

schema.xml file, 709710

Schneider, Jan, 622

'scope' => 'footer' setting, 357

scope rule, 358

scp command, 245

screencasts, Drupaltherapy, 226

screenshot property, 280

screenshot.png file, 281

scripting, with Drush, 617626

arguments for, 618

drush_dispatch command, 619

drush_html_to_text command, 623

drush_invoke command, 619

drush_invoke_process command, 620

drush_invoke_process_args command, 620

drush_invoke_sitealias command, 620

drush_invoke_sitealias_args command, 620

drush_log command, 625626

drush_op_system command, 619

drush_print command, 622

drush_print_pipe command, 622

drush_print_table command, 622623

drush_set_error comand, 626

drush_shell_exec command, 619

dt command, 622

options for, 618

processing command results, 620621

prompting user, 623624

scripts directory, 144

scripts property, 280

scripts[ ] = file.js, 355

Search 404 module, 106107

search errors, modules for handling, 106107

404 Navigation, 107

Apache Solr, 106

Global Redirect, 107

Search 404, 106107

Search for box, 488

Search for text field, 486

Search module, 699711

administrative options, 700701

Apache Solr project

configuration, 707708

customization, 708710

integrating with server, 710711

API, 704706

search results and facet blocks, 703

search results, 703

search.api.php file, 704

searches, Apache Solr project and, 710711

Secure Shell (SSH) protocol, 858859

security, 125136, 863

process, 128136

choosing modules and themes, 129132

code, 132135

dealing with issues, 135136

selecting protocol, 236237

of sites, 125128

assigning permissions, 127

avoiding using PHP filter module, 128

keeping text formats tight and secure, 127

reserving first user for administration, 126

strong passwords, 125126

security bugs, 131

[email protected], 135

--security-only flag, 605

--select flag, 603

-select option, 490

--select option, 624

select queries

counting and grouping, using variable_get( ) method and, 450

fetching data with, 443445

selectable library, 374

selecting sites, with Drush, 597600

Selection settings, 121

semantic markup, 651665

data content, 654

decentralized dataspaces, 654

HTML, 656

information identification, 651654

linking data on global scale, 655

RDF mappings structure, 661665

options for working with, 661662

vocabularies, 662665

RDFa, 656658

web, 659660

Semantically-Interlinked Online Communities (SIOC) vocabulary, 662

server, hacking of, 825827

servers

access setting, creating bookmarks with, 235236

creating databases on and importing, 245246

integrating Apache Solr project with, 710711

managing data in Solr index, 710

searching and analysis, 710711

transferring site to, 245

server-side tasks and tools, 239241

circumventing one-click installers, 240241

database setup

with phpMyAdmin tool, 239240

with wizards and manual tools, 240

session handling, initializing, 690

session subsystem, 648649

Set the status of bug report, 876

settings callback, 776

settings form, 464467

settings property, 280

settings.php file, 126, 141142, 246247, 597, 616, 648, 689, 921

setUp( ) method, 528

setup.exe, 230

Seven theme, 272, 275, 345

Shortcut Icon setting, 277

shortcut list, customizing, 225

Shortcut module, 92, 277

show( ) method, 327329, 782

SHOW TABLES, 899

--show-invoke option, 632

--show-invoke output option, 632

--show-passwords option, 609, 615

Sidebar First region, 289, 300

sidebar_first region, 529530, 929

similarity, law of, 717

Simple Knowledge Organization System (SKOS) vocabulary, 662

simplehtmldom.sourceforge.net, 772

Simpletest framework, functional testing with, 517532

.test files, 522526

advantages and caveats, 518

API, 530531

description, 519520

forms, 528530

further reading, 530531

running tests, 520522, 526527

setting up tests, 520522

submitting patches to Drupal.org, 531532

TDD, 519

when to use, 518

--simulate option, 612

simulation, accessibility, 945

SIOC (Semantically-Interlinked Online Communities) vocabulary, 662

SIPP (Survey for Income and Program Participation), 942

site architecture, and visual design, 939

Site builder, 735

Site context, 608

site launch checklist, internal documentation, 226

site lists, for Drush, 609610

site recipes, internal documentation, 226

site selection, with Drush, 597600

site templates, 803805

development profiles, 804805

example distribution, Drune, 805

full-featured services, 804

sitealias API, 620

site-alias command, 616

sites. See websites

sites directory, 140

sites folder, 94, 140, 597, 637

sites/all/libraries folder, 97

sites/all/modules directory, 491, 508, 523

sites/all/modules/contrib directory, 94, 386, 502

sites/all/modules/ctools directory, 51

sites/all/modules/custom directory, 94, 384, 386387, 502, 906

sites/all/modules/mymodule/mymodule.info file, 526

sites/all/modules/mymodule/mymodule.module directory, 523

sites/all/modules/mymodule/mymodule.test directory, 519, 524

sites/all/modules/views directory, 51

sites/all/themes directory, 278

sites/all/themes/gamma/gamma.info, 356

sites/all/themes/gamma/js/gamma.js, 356

sites/all/themes/mytheme directory, 292

sites/default, 540, 647648

sites/default/default.settings.php file, 11, 973

sites/default/files directory, 11, 490

sites/default/files/coder_upgrade/new directory, 491

sites/default/files/coder_upgrade/old directory, 490

sites/default/modules/ directory, 386387

sites/default/modules file, 493

sites/default/settings.php directory, 240, 637, 973

sites-enabled directory, 248

sites/example.com/modules/custom/ directory, 387

site-specific modules, using API, 792794

sites/sitename/themes directory, 278

sitesvall/modules/custom, 386

site-upgrade command, 893

site-upgrade-modules, 904

sketching

overview, 724725

Rules module UI, 725

Skip navigation, 941

skip-tables option, 615

SKOS (Simple Knowledge Organization System) vocabulary, 662

Slate color, 14

slider library, 375

Slogan setting, 276

small_square, 160

Smart Crop module, 99

Smith, Greg, 219

social networking, modules for, 104106

Comment Notify, 104105

Organic Groups, 105

Profile2, 106

Rate, 105

Role Limits, 106

Userpoints, 105

Voting API dependency, 105

sogame.cat/dummylipsum, 174

Solr project, Apache. See Apache Solr project

sort( ) method, 432

Sort criteria, 61, 6667

sortable library, 376

sortable tables, displaying data in, 456460

sorts, combining with logical operators, 6566

source .bash_profile file, 37

source command, 602

--source-dump option, 614

spaces

between control statements and parenthesis, 405

on either side of binary operators and concatenators, 406

indenting two, 405

between parameters, 405

Specific context, 608

sponsoring, 881

SQL (Structured Query Language), NULL values in, 642643

SQL dumps, 263

sql-conf command, 615

sql-sync command

using Drush site context to control options, 616617

using without installing Drush on remote system, 615616

square_root( ) method, 517

SSH (Secure Shell) protocol, 858859

SSH key pairs, setting up, 611612

st( ) method, 808

staging server, 222

staging websites, 251261

approach, 252

capturing all changes in code, 256260

of code changes, 254255

of content, 253254

development workflow, 260261

workflow, 252253

standards, coding, 862

Stark theme, 272273

starter themes, 350

static queries

counting and grouping, using variable_get( ) method and, 450

with joins on two tables, fetching data with, 445447

stats.php, 648

Status field, Suggestion content type, 187190

Status option, filter drop-down, 486

storage

of contributed modules, 94

of data, 548549

store configuration, Drupal Commerce project, 566585

Cart module, 583

checkout system, 581583

Commerce module, 569

Customer module, 577

dynamic pricing, 570

enabling payment methods, 579581

line items, 573575

order system, 577578

Payment module, 578

Price module, 569570

Product display node type, 575577

Product module, 571573

Product Reference module, 575

summary of main components, 584585

stress-testing designs, 730733

Empty screen state, 731

Error screen state, 733

Flooded screen state, 732

Normal screen state, 731

string operator, 400

strlen($element['#value']), 781

Strongarm module, 258

Structured Query Language (SQL), NULL values in, 642643

structure/features, 111

structure-tables option, 615

Style settings, 163

style-rtl.css file, 343

styles, overriding, 74

stylesheets

adding conditional for Internet Explorer, 345

adding via .info files, 343344

for administration pages, conditionally including, 788790

conditionally loading with drupal_add_css( ) method, 344

controlling using hook_css_alter( ) method, 345348

stylesheets property, 280

stylesheets[all] = file.css, 355

stylesheets[TYPE][] directive, 440

styling, with CSS files, 440442

Submit Again module, 495

submit button, changing label of, 505506

submit method, 259

subsites, creating with Acquia Dev Desktop app, 988989

substr( ) method, 398

substr_count( ) method, 781

subthemes, base themes and, 348351

custom, 351

inheritance, 349

popular, 350

success as developer, 841843

budgeting time, 842

create process, 841842

using distributions, 843

using experienced developers, 843

using install profiles, 843

success log level, 625

sudo a2ensite dgd7 command, 248

sudo apt-get install git command, 39

Suggest and explore rather than confirm attribute, 722

Suggestion content type

overview, 1619

Status field, limiting access to, 187190

suggestions

hook

and template files, 305308

and theme methods, 308310

page-level, 306308

suggestions path, 768

suggestions/installing-drubuntu, 802

Summits, Drupal, 879

superuser accounts, setting up, 983

Survey for Income and Program Participation (SIPP), 942

sustainability

of contributors, 848849

in theming, 351354

leveraging default CSS classes, 353354

modules vs. themes, 354

overriding template files with purpose, 353

starting with good base theme, 351352

sustainable choices, 842

switch statements, 403, 763

SwitchTheme, 275

syntactic fatal errors, 472

Syslog module, 94

system names, finding

in code, 430431

in database, 428430

system_admin_config_page( ) method, 465

system_block_view( ) method, 395397

system_element_info( ) method, 324, 331

system_help block, 395, 397

system_init( ) method, 692

system_main, 926

system_modules( ) method, 384

system_rebuild_theme_data( ) method, 285, 415, 421

system_requirements( ) method, 919

system_schema( ) method, 453

system_settings_form( ) method, 465, 467

system_themes_page( ) method, 415

system.admin.css file, 342

system.base.css file, 342, 354

system.maintenance.css file, 342

system.menus.css file, 342

system.messages.css file, 342

system.module file, 414415

system.theme.css file, 342

T

t( ) methods, 412414, 424, 470471, 474, 479, 529, 808

table of contents, making with Book module, 168178

adding to main menu, 178

Chapter content type, 172175

setting permissions for organizing and writing chapters, 170171

using Menu Block module to display better, 176177

Table option, 68

tables, 453454

administrative, cloning and making using exposed filters, 8081

formatting data for display as, 433435

sortable, displaying data in, 456460

tabs

defining with local task menu items, 425

for unique displays, 7879

tabs library, 377378

tags

<?php opening, 404

branches and, on Drupal.org, 861

closing PHP, 404

and replacement markup form, 776782

defining settings callback, 776

filter settings, 777782

forms accepting multiple elements, 776779

manipulating values before saving with validate method, 779780

--tar option, 817

--target-dump option, 614

--target-structure-tables='users,user_roles' option, 620

task management systems, 213

tasks, server-side, 239241

circumventing one-click installers, 240241

database setup, 239240

Taxonomy module, 2426, 92

taxonomy system, 223

Taxonomy term view, 57

taxonomy terms, 223

taxonomy_help( ) method, 396

Tax/Tax UI, 568

t('Content summary'); 413

TDD (test-driven development), 519

teaser display, modifying, 166167

technical skills, 397408

<?php opening tag, 404

automating adherence, 406

checking permissions, 407

clearing caches, 407

closing PHP tag, 404

control statements starting new lines, 405

control structures, 402403

if, elseif, and else statements, 402403

loops, 403

switch and case statements, 403

Drupal coding standards, 404406

operators, 399402

arithmetic, 400

assignment, 399400

comparison, 400401

logical, 401402

string, 400

ternary, 401

PHP language, 398

preceding internal methods with underscore, 404405

showing errors, 408

spaces

between control statements and parenthesis, 405

on either side of binary operators and concatenators, 406

indenting two, 405

between parameters, 405

terminology, 398399

template files, 293301

common core templates, 295

global variables, 296301

hook suggestions and, 305308

overriding, 295296

overriding with purpose, 353

themes vs. hard-coding variables in, 288

theming forms with, 336339

manipulating form elements, 337338

preprocess methods, 338339

template_preprocess( ) method, 297, 314

template_preprocess_block( ) method, 297, 305

template_preprocess_book_navigation( ) method, 799

template_preprocess_field( ) method, 754

template_preprocess_html( ) method, 344345

template_preprocess_node( ) method, 297, 305, 314316, 476

template_preprocess_user_picture( ) method, 320

template_preprocess_username( ) method, 277

template_process( ) method, 315

template.php file, 318, 333, 356, 359, 476

templates

adding classes to wrappers, 318

book module, reusing to display non-book navigation, 798801

common core, 295

core, render arrays in, 326

custom theming, 751754

templates subdirectory, 751

terminology, in code, 398399

ternary operator, 401

test environments, code, 539541

copying, 540541

sharing in sandbox on Drupal.org, 541

.test files, 522526

test plans, outline for, 735

test-driven development (TDD), 519

test.info file, 481

testing

automated, for accessibility, 944945

choosing users to test, 735736

explorative usability, 736737

environment, 737

method, 736

scenario, 736

tasks, 736737

Rules module, reasons for, 735

setting up module, recording, and logging, 738

Testing module, 94

test.module, 481

test.php file, 445, 787

text

adding format that allows images, 184187

bi-directional support, 343

custom filters

adding custom markup for output, 795

container form elements with specified classes, 790791

editing text formats, 794

examples, 773

filtering content, 783788

hooks, 783

modules, 771773, 776788, 791794

stylesheets for administration pages, 788790

tags and replacement markup form, 776782

editing formats, 794

editors

configuring preferences for, 238

setting FTP client to use, 238

setting up, 237238

keeping formats tight and secure, 127

text_long format, 559

Theme, defined, 213

theme( ) methods, theming forms with, 334335

manipulating form elements in, 335

using drupal_render_children( ) method, 334

Theme Developer module, 312313

Theme Developer window, 313

theme engines, 854

Theme Screenshot, 349

Theme Settings, 349

theme_block( ) method, 923

theme_contact_site_form( ) method, 334

theme_container( ) method, 324

THEME_container( ) method, 412

theme_container( ) method, 790

THEME_container__xray( ) method, 412

THEME_container__xray__form( ) method, 412

theme_form( ) method, 332

theme_form_element( ) method, 766

theme_get_suggestions( ) method, 306

'theme_hook_suggestions' array, 748

theme_html_tag( ) method, 324

theme_image_resize_filter_form( ) method, 782

theme_item_list( ) method, 324

theme_links( ) method, 277, 308

THEME_links( ) method, 309

THEME_links__comment( ) method, 309

THEME_links__contextual( ) method, 309

THEME_links__contextual__node( ) method, 309

THEME_links__node( ) method, 309

theme_links__system_main_menu( ) method, 309

theme_links__system_secondary_menu( ) method, 309

theme_menu_link( ) method, 278

theme_more_link( ) method, 303

theme_my_theme_hook( ) method, 302

theme_name_menu_link( ) method, 278

theme_name.info file, 278

theme_node( ) method, 305

theme_node__suggestion( ) method, 753

THEME_preprocess_page( ) method, 310

THEME_preprocess_page__front( ) method, 308

theme_table( ) method, 336, 437, 457

theme_that( ) method, 302

theme_this( ) method, 302

theme_user_admin_permissions( ) method, 433

theme_username( ) method, 277

theme_xray_permission_names( ) method, 435

theme_xray_show_callback, 475

theme_xray_show_page_callback( ) method, 439

themeable codes, documenting with @ingroup themeable method, 433435

themes, 435437

accessible, 944

choosing, 129132

project home page, 130131

security code reviews, 132

enabling and setting default, 274275

implementations, 317

initializing, bootstrap phase, 691692

regions and, 288

renderable arrays, 436437

resources for, 436

theming, 269354

administration, 274278

enabling and setting default theme, 274275

Global Theme Settings, 275277

installing new theme, 277278

base and subthemes, 348351

base themes, 350351

inheritance, 349

core themes directory, 269274

Bartik theme, 270

Garland theme, 271

Seven theme, 272

Stark theme, 272273

theme engines, 273274

defining metadata, .info files, 278281

forms, 329340

finding form ID, 332333

hook_theme( ) method, 333334

markup generation, 329332

modifying using alter hooks, 339340

with template files, 336339

with theme methods, 334335

functions, 301304

calling, 302

overriding, 302304

hook suggestions

and template files, 305308

and theme methods, 308310

hooks, 304310

managing CSS files, 341348

adding, removing, and replacing, 343348

aggregation and compression, 341

patterns and naming conventions, 342343

preprocess and process methods, 313320

adding change picture link underneath user photo, 320

adding classes to template wrappers, 318

finding contents of $variables array, 317

hooks, 315317

making changes to nodes, 319320

regions, 282292

default, 284286

vs. hard-coding variables in template files, 288

hidden, 286287

layout strategies, 289292

module-specific, 287

and themes, 288

render( ), hide( ), and show( ) methods, 327329

sustainability and best practices, 351354

leveraging default CSS classes, 353354

modules vs. themes, 354

overriding template files with purpose, 353

starting with good base theme, 351352

Template files, 293301

common core templates, 295

global variables, 296301

overriding, 295296

templates, custom, 751754

theme layer, finding available variables in, 311313

using Render API, 321326

elements, 322

render arrays, 321326

three-column layout, 285

tilting images, 184

time, budgeting of, 842

Timely attribute, 724

timer_start( ) method, 909

timestamp item, 621

timing, migration processes, 910

'title arguments' => array(1), 678

title code, 530

Title field, 150, 225

title item, 359, 671

titles, of Views, 6071

Token dependency, 96

Toolbar module, 93

toolbar.js file, 363

tools

knowledge of, 535536

server-side, 239241

circumventing one-click installers, 240241

database setup, 239240

Total inclusive cost, 918

Total self cost, 918

.tpl.php suffix, 336

Tracker module, 94

Tracker view, 57

tracking milestones, 212

tracking system, 212213

Trigger module, 94

trim length, setting, 166167

Trimmed format, 167

t('Save blocks'); 529

twice-nested array, 246

Twitter accounts, linking to with field formatters, 757766

caching data using default cache table, 765766

fetching usernames, 763764

tying components together, 513

type attribute, 808

type item, 621

types, biasing, 707708

Typical Slow Query Summary, 920

-u parameter, mysqldump command, 244

U

Ubuntu operating system, 971975

customizing for development with Drubuntu script, 972

installing Drupal on, 973975

automatic installer, 974975

database, 974

running on Microsoft Windows or Apple Mac OS X, 971

ubuntu.com/download, 971

UIs (User Interfaces)

administrative, providing for entities, 555559

editing data in, 548549

keeping separate from API, 536537

Rules module, sketching, 725

uncompressing, archives, 238239

Under Construction icon, 212

underscores, preceding internal methods with, 404405

Unformatted option, 68

Uniform Resource Locators. See URLs

Unit tests, 517

Universally Unique Identifiers (UUIDs), 260

--unlock=all option, 606

--unlock=module_name option, 606

update hooks

capturing additional upgrade steps in, 896904

automating Fields upgrade, 902903

modules, 896902

rerunning upgrade, 903904

overview, 258259

Update manager module, 93

update path, 710

update_advanced module, 606

updatedb command, 605

update.php file, 126, 141, 252, 255, 259, 605, 887888, 896, 903

updates

applying with Drush, 603606

overview, 813

updating, 137147

contributed modules, 145147

automated installer, 146

with Drush tool, 146147

with diff method, 143144

with Drush tool, 142

importance of, 137138

manually, 139142

preparation for, 138139

upgrade modules, 897901

UPGRADE.txt file instructions, 140142

upgrading

automatic, adding Features module to, 906907

custom methods for, from glue code, 896897

from Drupal 6 to Drupal 7, 887911

assessing the situation, 889891

capturing additional upgrade steps in update hooks, 896904

data migration, 907911

Features module, 905907

running the upgrade repeatedly, 891896

Fields upgrade, automating, 902903

modules, 485488

Coder Upgrade module, 489493

contributing patch files to Drupal.org, 498499

custom coding, 488

finding model code, 497498

identifying problems, 493497

list of API changes, 489

posting issues, 486488

rerunning, 903904

uploading files, with FTP clients, 237

--uri option, 600601, 608

URL - checkout/#, 583

URLs (Uniform Resource Locators)

human-readable, 1920, 190191

password-protected, 222

requests. See page requests, bootstrap phases

views allowing hackable for user pages, 801802

usability tests, 739740

explorative, 736737

environment, 737

method, 736

scenario, 736

tasks, 736737

participants

not asking for solutions, 739

putting at ease, 740

questioning, 739

waiting before offering assistance, 740

setting up module, recording, and logging, 738

use @alias command, 603

Use AJAX, 62

USE databasename, 898

Use grouping, 62

Use pager, 61

Use Slave Server, 63

user access, conditionally taking action based on, 468469

user accounts, of authors, connecting Author profiles to, 155156

user experience, 713746

bringing principles into practice, 720746

analyzing results, 740

building alpha and verifying with users, 733734

challenges, 721722

copywriting, 743744

design process, 720721

feedback from issue queues, 741

larger concept, 722729

optimizing, 734738

principles, 745746

project description, 742743

releasing modules, 741743

reporting issues, 740741

usability test, 739740

wireframes, 729733

color harmony, 719

designing for, 940

human API, 713

laws

of proximity, 717719

of similarity, 717

memory, 713714

modularity, 713

perception, 715717

User Groups, 738

user groups, 844845

user interface, hiding elements from, 507508

User Interfaces. See UIs

user login box, Drupal site, 224

user object, 530

user pages, views allowing hackable URLs for, 801802

User Pictures in Posts and Comments settings, 277

user stories, creating, 216217

User Verification Status in Comments option, 277

user_access( ) method, 426, 468469, 554555

user_admin_settings( ) method, 465

user_menu( ) method, 464

user_picture theme hook, 293

user_roles table, 617

user/7/shortcuts user's Shortcuts tab, 13

user/86/edit, 15

usernames, fetching, 763764

user-perceived performance, 913

user-picture.tpl.php file, 293, 320

Userpoints module, 105

users, 2728

choosing which to test, 735736

photos, adding change picture link underneath, 320

pictures of, 183184

reserving first for administration, 126

verifying alpha with, 733734

users table, 617

usr/share/drush/commands folder, 609

utility methods, custom, 470471

UUIDs (Universally Unique Identifiers), 260

V

validate method, manipulating values before saving with, 779780

validating filter settings, 780781

values, manipulating before saving with validate method, 779780

var_dump( ) method, 311

var_export( ) method, 796

variable system, initializing, 689690

variable_get( ) method, 450, 465, 467469, 785

variable_set( ) method, 465, 467

variables

finding available in theme layer, 311313

global, 296301

in template files, themes vs. hard-coding, 288

Varnish HTTP accelerator, 638

var/www directory, 245

var/www/dgd7 directory, 246

--verbose flag, 625

verbose messages, 522

--verbose option, 625

Version item, 359

Version option, filter drop-down, 486

version property, 280

version-specific dependencies, 390

vertical-tabs.css file, 346

very_slow_find( ) method, 636

vi /etc/apache2/sites-available/dgd7 command, 247

video podcast, MustardSeed Media, 226

view modes

overview, 747751

using to display same content in different ways, 166

view pages, for biographies of authors, 162164

Views

allowing hackable URLs for user pages, 801802

available, 5556

default, 56

elements of listings, 5556

changing listed, 54

with contextual filters, 82

creating with Views module, 6876

adding features to, 7476

adding menus, 73

administrative information, 71

Advanced Settings box, 73

displays, 7172

dynamically editing, 7374

format settings, 72

goal of, 68

number of results, 72

previewing work, 73

setting up basics for, 6971

systematic approach to, 6869

title for, 71

viewing, 74

deconstructing, 5768

configuration detail, 5963

display types, 5859

exporting to code, 8586

with exposed filters, 81

extending, 7681

cloning and making administrative tables using exposed filters, 8081

displays, 7779

handling zero results, 76

with other modules, 84

using with Organic Groups module, 115117

Views module, 4995

Administration page, 5356

Action links, 54

Advanced Help module, 53

available Views, 5556

changing listed Views, 54

advanced implementations, 8284

contextual filters, 8283

Relationships configuration, 8384

Chaos Tools dependency, 95

creating Views with, 6876

adding features to, 7476

adding menus, 73

administrative information, 71

Advanced Settings box, 73

displays, 7172

dynamically editing, 7374

format settings, 72

goal of, 68

number of results, 72

previewing work, 73

setting up basics for, 6971

systematic approach to, 6869

title for, 71

viewing, 74

deconstructing Views, 5768

configuration detail, 5963

display types, 5859

filter criteria groups, 6566

Filters section, 6465

Format settings, 6768

overriding, 63

Sort criteria, 6667

description of, 4953

examples of usage, 50

permissions for, 5053

exporting to code, 8586

extending Views, 7681

cloning and making administrative tables using exposed filters, 8081

displays, 7779

handling zero results, 76

with other modules, 84

view.tpl.php file, 351

virtual host configuration file, Apache, 248

virtualbox.org, 971

visual design, 933940

advice on, 939940

choosing fonts wisely, 939

designing for entire user experience, 940

remembering purpose of design, 939

understanding site architecture, 939

with Drupal

advantages of working with Drupal, 933

anatomy of pages, 934938

designing from content out, 938939

differences of, 934

and HTML5, 940

Visual Studio development environment, 948

vocabularies, RDF, 662665

Voting API dependency, 105

VS.Php add-on, 957962

VS.Php happy screen, 959

W

WAI (Web Accessibility Initiative), 942

WAI-ARIA (Accessible Rich Internet Applications), 945

WAMP (Windows/Apache/MySQL/PHP) stack, 948953

WampServer control panel, 951

WampServer default happy screen, 951

warning log level, 625

watchdog( ) method, 765

watchdog subsystem, 648649

watchdog-show command, 623

waterfall style, 207208

WCAG (Web Content Accessibility Guidelines) 2.0, 942, 945

Web Accessibility Initiative (WAI), 942

Web Content Accessibility Guidelines (WCAG) 2.0, 942, 945

web root, 978979

web server, Apache, 247248

web sites, 243261

accessibility for, 943946

automated testing, 944945

contrast and color, 944

expert feedback, 946

maintenance, 945946

modules, 943

regular reviews of pages, 946

simulation, 945

themes, 944

WAI-ARIA, 945

Acquia Dev Desktop app

creating subsites with, 988989

importing sites with, 990

adding products to, 572573

adding Resource content type that references chapters, 179181

allowing people to attach generic files to content, 180

connecting content types with Node reference, 181

managing Resource content type display, 181

reusing chapter image field, 179180

adding text format that allows images, 184187

inserting images into posts, 186187

authors of

linking chapters to, 178

listing, 157164

showcasing with profile pages, 149157

autogenerating human-readable URLs with Pathauto module, 190191

backing up, 249251

Chapter number field display, 754757

community. See community web sites, creating with Organic Groups module

contextual add new links for content types, 767771

finding better way, 770771

models, 767770

custom text filters, 771795

adding custom markup for output, 795

container form elements with specified classes, 790791

custom hooks, 783

editing text formats, 794

examples, 773

filtering content, 783788

modules, 771773, 776788, 791794

stylesheets for administration pages, 788790

tags and replacement markup form, 776782

custom theming templates, 751754

essential modules for building, 9498

AntiSpam and Mollom, 98

Fields, 9697

Pathauto, 9596

Token dependency, 96

Views, 95

Webform, 98

WYSIWYG, 97

fine-tuning content display, 164167

modifying teaser display and setting trim length, 166167

using view modes to display same content in different ways, 166

hosting locally, 230

implementation, 828

Administration menu, 1213

appearance, 1314

blocks, 2124

content, 1621

extending methodality with modules, 1516

installing program, 912

Taxonomy module, 2426

users, roles, and permissions, 2728

limiting access to Suggestion content type Status field, 187190

linking profiles to, 151153

linking to Drupal.org and Twitter accounts with field formatters, 757766

caching data using default cache table, 765766

fetching usernames, 763764

making table of contents with Book module, 168178

adding to main menu, 178

Chapter content type, 172175

setting permissions for organizing and writing chapters, 170171

using Menu Block module to display better, 176177

next and previous links mimicking book navigation, 795801

planning, 48

design, 78

discovery, 45

information architecture, 57

putting online, 243248

databases, 244247

pointing visitors to your site, 247248

transferring site to server, 245

reasons for slow, 913916

security of, 125128

assigning permissions, 127

avoiding using PHP filter module, 128

keeping text formats tight and secure, 127

reserving user 1 for administration, 126

strong passwords, 125126

showing content that references post being viewed, 182183

staging and deployment, 251261

approach, 252

capturing all changes in code, 256260

of code changes, 254255

of content, 253254

development workflow, 260261

workflow, 252253

streamlining form elements with CSS, 766

user pictures, 183184

view modes, 747751

views to allow hackable URLs for user pages, 801802

work in progress version, 222

Webform module, 98

weight, in drupal_add_js( ) method, 357359

weight rule, 358

while ($expression) ... statement, 403

widgets, 152

Windows development environment, Microsoft. See Microsoft Windows development environment

Windows/Apache/MySQL/PHP (WAMP) stack, 948953

wireframes, 729733

getting feedback on, 729730

mockups for detailed design, 733

stress-testing design, 730733

Empty screen state, 731

Error screen state, 733

Flooded screen state, 732

Normal screen state, 731

wireframing, 206207

WISP, LAMP stack to, 947948

wizards, setting up databases with, 240

Workbench suite of modules, 99

workflow, of websites, 252253

wrappers, templates, 318

Writing Secure Code, 134

www.w3.org/TR/xhtml-rdfa-primer/, 658

WYSIWYG editors, 223

WYSIWYG module, 97, 223

X

xdebug.profiler_enable_trigger=1, 918

X-ray module, declaring menu items for, 425426

xray_admin_settings( ) method, 464465

xray_block_view_system_help_alter( ) method, 397

xray_display_section_summaries, 465

xray_form_alter( ) method, 392393, 399, 410, 469

xray_help( ) method, 395396, 399

xray_help_admin_appearance( ) method, 416

xray_menu( ) method, 468

xray_module_implements_alter( ) method, 457

xray_overview_page( ) method, 449

xray_oxford_comma_list( ) method, 439, 449, 459, 471

xray_permission_names( ) method, 435

xray_permission_names_page( ) method, 432, 436

xray_show_page_callback( ) method, 475

xray_stats_blocks_enabled_by_theme( ) method, 447

xray_stats_content_type_total( ) method, 413, 450

xray.admin.inc, 465

xray.info file, 384, 387, 440

xray.module file, 384, 394

Y

--yes option, 624

YSlow grade, 915

Z

zebra_help( ) method, 396

zero results, handling, 76

.zip formats, 953

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.220.88.62