-- Table structure for table `node_type`
--

CREATE TABLE `node_type` (
  `type` varchar(32) NOT NULL DEFAULT '',
  `name` varchar(255) NOT NULL DEFAULT '',
  `module` varchar(255) NOT NULL DEFAULT '',
  `description` mediumtext NOT NULL,
  `help` mediumtext NOT NULL,
  `has_title` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `title_label` varchar(255) NOT NULL DEFAULT '',
  `has_body` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `body_label` varchar(255) NOT NULL DEFAULT '',
  `min_word_count` smallint(5) unsigned NOT NULL DEFAULT '0',
  `custom` tinyint(4) NOT NULL DEFAULT '0',
  `modified` tinyint(4) NOT NULL DEFAULT '0',
  `locked` tinyint(4) NOT NULL DEFAULT '0',
  `orig_type` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`type`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `node_type`
--

INSERT INTO `node_type` VALUES ('crancnode','CRANC Node','node','SPECIFIC to SINGLE ISSUE or ARTICLE\r\nNodes are individual items of content in the content management system.  Content types are templates for the creation of nodes.  This content type is called <em>node</em> because it is thought to be the most general and often used content type on this site. ','',1,'Title',1,'Body',0,1,1,0,'page'),('story','Story','node','A <em>story</em>, similar in form to a <em>page</em>, is ideal for creating and displaying content that informs or engages website visitors. Press releases, site announcements, and informal blog-like entries may all be created with a <em>story</em> entry. By default, a <em>story</em> entry is automatically featured on the site\'s initial home page, and provides the ability to post comments.','',1,'Title',1,'Body',0,1,1,0,'story'),('news','News Item','node','A <em>news item</em> displays in the news section.','',1,'Title',1,'Body',0,1,1,0,'news'),('webform','Webform','webform','Create a new form or questionnaire accessible to users. Submission results and statistics are recorded and accessible to privileged users.','',1,'Title',1,'Body',0,0,0,1,'webform'),('blog','Blog entry','blog','A <em>blog entry</em> is a single post to an online journal, or <em>blog</em>.','',1,'Title',1,'Body',0,0,0,1,'blog'),('homepage_slideshow','Homepage Video Slideshow','node','Each node is a full slideshow (originally meant for the homepage, but can be applied anywhere on the website)','For Administrative puroposes only.',1,'Title',0,'',0,1,1,0,''),('simplenode','Simple Node','node','Title and Body - nothing fancy.','',1,'Title',1,'Body',0,1,1,0,''),('bookstore_items','Bookstore Item for Sale','node','Bookstore items for sale.','',1,'Item',1,'Description',0,1,1,0,'');

--
-- Table structure for table `page_manager_handlers`
--

CREATE TABLE `page_manager_handlers` (
  `did` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `task` varchar(64) DEFAULT NULL,
  `subtask` varchar(64) NOT NULL DEFAULT '',
  `handler` varchar(64) DEFAULT NULL,
  `weight` int(11) DEFAULT NULL,
  `conf` longtext NOT NULL,
  PRIMARY KEY (`did`),
  UNIQUE KEY `name` (`name`),
  KEY `fulltask` (`task`,`subtask`,`weight`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `page_manager_handlers`
--


--
-- Table structure for table `page_manager_pages`
--

CREATE TABLE `page_manager_pages` (
  `pid` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `task` varchar(64) DEFAULT 'page',
  `admin_title` varchar(255) DEFAULT NULL,
  `admin_description` longtext,
  `path` varchar(255) DEFAULT NULL,
  `access` longtext NOT NULL,
  `menu` longtext NOT NULL,
  `arguments` longtext NOT NULL,
  `conf` longtext NOT NULL,
  PRIMARY KEY (`pid`),
  UNIQUE KEY `name` (`name`),
  KEY `task` (`task`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `page_manager_pages`
--


--
-- Table structure for table `page_manager_weights`
--

CREATE TABLE `page_manager_weights` (
  `name` varchar(255) NOT NULL DEFAULT '',
  `weight` int(11) DEFAULT NULL,
  PRIMARY KEY (`name`),
  KEY `weights` (`name`,`weight`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `page_manager_weights`
--


--
-- Table structure for table `panels_display`
--

CREATE TABLE `panels_display` (
  `did` int(11) NOT NULL AUTO_INCREMENT,
  `layout` varchar(32) DEFAULT '',
  `layout_settings` longtext,
  `panel_settings` longtext,
  `cache` text,
  `title` varchar(255) DEFAULT '',
  `hide_title` tinyint(4) DEFAULT '0',
  `title_pane` int(11) DEFAULT '0',
  PRIMARY KEY (`did`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `panels_display`
--


--
-- Table structure for table `panels_pane`
--

CREATE TABLE `panels_pane` (
  `pid` int(11) NOT NULL AUTO_INCREMENT,
  `did` int(11) NOT NULL DEFAULT '0',
  `panel` varchar(32) DEFAULT '',
  `type` varchar(32) DEFAULT '',
  `subtype` varchar(64) DEFAULT '',
  `shown` tinyint(4) DEFAULT '1',
  `access` longtext,
  `configuration` longtext,
  `cache` longtext,
  `style` longtext,
  `css` longtext,
  `extras` longtext,
  `position` smallint(6) DEFAULT '0',
  PRIMARY KEY (`pid`),
  KEY `did_idx` (`did`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `panels_pane`
--


--
-- Table structure for table `permission`
--

CREATE TABLE `permission` (
  `pid` int(11) NOT NULL AUTO_INCREMENT,
  `rid` int(10) unsigned NOT NULL DEFAULT '0',
  `perm` longtext,
  `tid` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`pid`),
  KEY `rid` (`rid`)
) ENGINE=MyISAM AUTO_INCREMENT=46 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `permission`
--

INSERT INTO `permission` VALUES (37,1,'access news feeds, access comments, access site-wide contact form, view field_img, view field_price, view field_videos, access content, access all views',0),(45,3,'create webforms, edit own webforms, edit webforms, access webform results, clear webform results, access own webform submissions, edit own webform submissions, edit webform submissions, use PHP for additional processing, administer news feeds, access news feeds, administer blocks, use PHP for block visibility, create blog entries, delete own blog entries, delete any blog entry, edit own blog entries, edit any blog entry, access comments, post comments, administer comments, post comments without approval, access site-wide contact form, administer site-wide contact form, administer filters, administer menu, administer content types, administer nodes, access content, view revisions, revert revisions, delete revisions, create bookstore_items content, delete own bookstore_items content, delete any bookstore_items content, edit own bookstore_items content, edit any bookstore_items content, create crancnode content, delete own crancnode content, delete any crancnode content, edit own crancnode content, edit any crancnode content, create homepage_slideshow content, delete own homepage_slideshow content, delete any homepage_slideshow content, edit own homepage_slideshow content, edit any homepage_slideshow content, create news content, delete own news content, delete any news content, edit own news content, edit any news content, create simplenode content, delete own simplenode content, delete any simplenode content, edit own simplenode content, edit any simplenode content, create story content, delete own story content, delete any story content, edit own story content, edit any story content, create url aliases, administer url aliases, access statistics, view post access counter, administer site configuration, access administration pages, administer actions, access site reports, select different theme, administer files, administer taxonomy, upload files, view uploaded files, administer permissions, administer users, access user profiles, change own username, access administration menu, display drupal links, view advanced help topic, view advanced help popup, view advanced help index, Use PHP input for field settings (dangerous - grant with care), edit field_price, view field_price, edit field_img, view field_img, edit field_videos, view field_videos, administer imageapi, administer imagecache, flush imagecache, administer imce(execute PHP), view all panes, view pane admin links, administer pane visibility, administer pane access, administer advanced pane settings, use panels caching features, use panels dashboard, administer quicktabs, administer pathauto, notify of path changes, access all views, administer views, access devel information, execute php code, switch users, display source code, use page manager, administer page manager',0),(38,2,'access comments, post comments, post comments without approval, access content, access all views',0);

--
-- Table structure for table `profile_fields`
--

CREATE TABLE `profile_fields` (
  `fid` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `name` varchar(128) NOT NULL DEFAULT '',
  `explanation` text,
  `category` varchar(255) DEFAULT NULL,
  `page` varchar(255) DEFAULT NULL,
  `type` varchar(128) DEFAULT NULL,
  `weight` tinyint(4) NOT NULL DEFAULT '0',
  `required` tinyint(4) NOT NULL DEFAULT '0',
  `register` tinyint(4) NOT NULL DEFAULT '0',
  `visibility` tinyint(4) NOT NULL DEFAULT '0',
  `autocomplete` tinyint(4) NOT NULL DEFAULT '0',
  `options` text,
  PRIMARY KEY (`fid`),
  UNIQUE KEY `name` (`name`),
  KEY `category` (`category`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `profile_fields`
--


--
-- Table structure for table `profile_values`
--

CREATE TABLE `profile_values` (
  `fid` int(10) unsigned NOT NULL DEFAULT '0',
  `uid` int(10) unsigned NOT NULL DEFAULT '0',
  `value` text,
  PRIMARY KEY (`uid`,`fid`),
  KEY `fid` (`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `profile_values`
--


--
-- Table structure for table `quicktabs`
--

CREATE TABLE `quicktabs` (
  `qtid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `ajax` int(10) unsigned NOT NULL DEFAULT '0',
  `hide_empty_tabs` int(10) unsigned NOT NULL DEFAULT '0',
  `default_tab` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `title` varchar(255) NOT NULL DEFAULT '',
  `tabs` mediumtext NOT NULL,
  `style` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`qtid`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `quicktabs`
--

INSERT INTO `quicktabs` VALUES (1,0,0,0,'QuickTABS - 2nd Nav Menu','a:2:{i:0;a:6:{s:3:\"nid\";s:1:\"9\";s:6:\"teaser\";i:1;s:10:\"hide_title\";i:1;s:5:\"title\";s:10:\"What\'s New\";s:6:\"weight\";s:4:\"-100\";s:4:\"type\";s:4:\"node\";}i:1;a:6:{s:3:\"nid\";s:2:\"10\";s:6:\"teaser\";i:1;s:10:\"hide_title\";i:1;s:5:\"title\";s:18:\"Current Happenings\";s:6:\"weight\";s:3:\"-99\";s:4:\"type\";s:4:\"node\";}}','Bullets');

--
-- Table structure for table `role`
--

CREATE TABLE `role` (
  `rid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL DEFAULT '',
  PRIMARY KEY (`rid`),
  UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `role`
--

INSERT INTO `role` VALUES (1,'anonymous user'),(2,'authenticated user'),(3,'administrator');

--
-- Table structure for table `search_dataset`
--

CREATE TABLE `search_dataset` (
  `sid` int(10) unsigned NOT NULL DEFAULT '0',
  `type` varchar(16) DEFAULT NULL,
  `data` longtext NOT NULL,
  `reindex` int(10) unsigned NOT NULL DEFAULT '0',
  UNIQUE KEY `sid_type` (`sid`,`type`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `search_dataset`
--

INSERT INTO `search_dataset` VALUES (1,'help',' readme description this module adds a webform nodetype to your drupal site a webform can be a questionnaires contact or request form these can be used by visitor to make contact or to enable a more complex survey that the type polls enable submissions from a webform are saved in a database table and can optionaly also be mailed to an email address upon submission it was developed with fundings from af indurstri ab wwwafse open source city wwwopensourcecityorg and karlstad university library wwwbibkause also many thanks to the dupal community for all bughunting code contributions jnt townxelliot quicksketch if you feel left out please send me a message thru the contact form on http drupalorg user 6096 contact translation spanish translation is made by sergio gonzalez todo for an up to date todo list look at the issue tracker at http drupalorg project issues webform id readmetxt v 18 20080224 202816 quicksketch exp  ',0),(2,'help',' readme  id readmetxt v 112122 20091125 154900 davereid exp contents of this file introduction installation frequently asked questions faq known issues how can you contribute introduction creator jacobsingh comaintainer bevan comaintainer dave reid this module is a little helper to maintain an administrator role which has all available permissions by default drupal only has one super user and this module helps improve this drastically note the updatephp will still only work for the real admin user 1 installation see http drupalorg gettingstarted installcontrib for instructions on how to install or update drupal modules if you don t already have an existing role named admin or administrator the module will automatically create one for you on install otherwise you can go to your admin users user settings admin user settings page and select your preferred admin role under the administrator role fieldset now when you add a new module your assigned role will automatically receive any new available permissions known issues there are no known issues at this time how can you contribute write a review for this module at drupalmodulescom http drupalmodulescom module adminrole help translate this module http localizedrupalorg translate projects adminrole report any bugs feature requests etc in the issue tracker http drupalorg project issues adminrole  ',0),(3,'help',' readme  id readmetxt v 12028 20090116 203926 sun exp summary the drupal administration menu module displays the entire administrative menu tree and most local tasks in a dropdown menu providing administrators one or twoclick access to most pages other modules may also add menu links to administration menu using hookadminmenu for a full description of the module visit the project page http drupalorg project adminmenu to submit bug reports and feature suggestions or to track changes http drupalorg project issues adminmenu requirements none installation install as usual see http drupalorg node 70151 for further information configuration configure user permissions in administer user management permissions adminmenu module access administration menu users in roles with the access administration menu permission will see the administration menu at the top of each page display drupal links users in roles with the display drupal links permission will receive links to drupalorg issue queues for all enabled contributed modules the issue queue links appear under the administration menu icon note that the menu items displayed in the administration menu depend on the actual permissions of the viewing user for example the user management menu item is not displayed to a user who is not a member of a role with the administer permissions and administer users permissions customize the menu settings in administer site configuration administration menu to prevent administrative menu items from appearing twice you may hide the navigation menu block or move the administer menu items into a separate menu customization to override the default administration menu icon you may 1 disable it via css in your theme body adminmenuicon display none 2 alter the image by overriding the theme function copy the entire themeadminmenuicon function into your templatephp rename it to phptemplateadminmenuicon or themenameadminmenuicon and customize the output according to your needs remember that the output of the administration menu is cached to see changes from your theme override function you must clear your site cache via the flush all caches link on the menu to override the font size add the following line to your theme s stylesheet body adminmenu fontsize 10px troubleshooting if the menu does not display check the following are the access administration menu and access administration pages permissions enabled for the appropriate roles does your theme output the closure variable if the menu is rendered behind a flash movie object add this property to your flash object s see http drupalorg node 195386 for further information faq q when the administration menu module is enabled blank space is added to the bottom of my theme why a this is caused by a long list of links to module issue queues at drupalorg use administer user management permissions to disable the display drupal links permission for all appropriate roles note that since uid 1 automatically receives all permissions the list of issue queue links cannot be disabled for uid 1 q after upgrading to 6x1x the menu disappeared why a you may need to regenerate your menu visit http examplecom admin build modules to regenerate your menu substitute your site name for examplecom q can i configure the administration menu module to display another menu like the navigation menu for instance a no as the name implies administration menu module is for administrative menu links only however you can copy and paste the contents of adminmenucss into your theme s stylesheet and replace adminmenu with any other menu block id blockmenu1 for example q sometimes the user counter displays a lot of anonymous users but no spike of users or requests appear in google analytics or other tracking tools a if your site was concurrently spidered by searchengine robots it may have a significant number of anonymous users for a short time most web tracking tools like google analytics automatically filter out these requests q i enabled aggregate and compress css files but adminmenucss is still there is this normal a yes this is the intended behavior the administration menu module only loads its stylesheet as needed ie on page requests by loggedon administrative users q why are submenus not visible in opera a in the opera browser preferences under web pages there is an option to fit to width by disabling this option submenus in the administration menu should appear q how can the administration menu be hidden on certain pages a you can suppress it by simply calling the following function in php moduleinvoke adminmenu suppress however this needs to happen as early as possible in the page request so placing it in the theming layer resp a page template file is too late ideally the function is called in hookinit in a custom module if you do not have a custom module placing it into some conditional code at the top of templatephp may work out too contact current maintainers daniel f kudwien sun http drupalorg user 54136 peter wolanin pwolanin http drupalorg user 49851 stefan m kudwien smkka http drupalorg user 48898 dave reid dave reid http drupalorg user 53892 major rewrite for drupal 6 by peter wolanin pwolanin this project has been sponsored by unleashed mind specialized in consulting and planning of drupal powered sites unleashed mind offers installation development theming customization and hosting to get you started visit http wwwunleashedmindcom for more information lullabot friendly drupal experts providing professional consulting education services visit http wwwlullabotcom for more information acquia commercially supported drupal visit http acquiacom for more information  ',0),(4,'help',' using advanced help the advanced help system is a pluggable system that provides advanced help facilities for drupal and its modules although the advanced help does not provide general help by itself it provides a powerful and easy framework that modules may use to provide their own help modules utilizing advanced help should create a help subdirectory inside their module s directory place the file modulenamehelpini in this subdirectory formatted similar to the following example buses title how buses are tied into the system file buses topicid title title of topic file filename of topic without the html extension weight how important the topic is on the index page parent the optional topic parent to use in the breadcrumb either topic or module topic all topics are addressed by the module providing the topic and by the topic id to embed links use the following format output theme advancedhelptopic module topic inside your help file link to other topics using the format  a href topic module topic   this format will ensure the popup status remains consistent when switching between links use  a href path examplejpg  to reference items within the help directory such as images you wish to embed within the help text use  a href baseurl admin settings siteconfiguration  to reference any normal path in the site if the search module is enabled the contents of help system will be indexed on cron if you enable new modules and wish to immediately index its help text visit the administration reports status report and click the run cron manually link example  don t click this  see  ini file format note  in previous versions advanced help did not require the s wrapped around the topic path and baseurl links this is currently still supported but may be removed in a future version by adding the s these tokens are now not limited to href and src paramaters  ',0),(5,'help',' translating advanced help to translate advanced help first create a translations help language directory in the module directory then copy the ini file and all html files from the help directory the ini file only needs to keep the titles and if there is a name or index name setting in the advanced help settings portion that should be retained any retained settings should be translated the rest of the data in the ini file may be discarded or ignored each file should then be translated in place when translating a html file you will find that the path keyword will lead to the original directory if you must translate items that are linked such as images use transpath instead which will lead to the translated directory this will allow you to pick and choose which linked items if any will be translated  ',0),(6,'help',' help ini file format the advanced help configuration file is in simple ini file format divided into sections for each help file plus an optional section for global settings that might be inherited for each help file the first line of an advanced help ini file should be id which will be a comment providing the cvs identifier for the file the indicates a comment character anything after the will be ignored global settings may be put into a section named  advanced help settings   this means that this name is reserved and it cannot be a help file in any module the following settings may be set in this section  line break if set to any value the line break filter will be applied to all help files defined by this module unless that help file specifically is set otherwise by default the line break filter is not applied however help files can be much easier to write with the line break filter on navigation if set to true the navigation will be displayed at the end of the help topic previous topic next topic and child topics css specify a css file that will be used for all help files unless overridden including the css extension this css file must reside in the help directory along with the html files and will not be affected by translation name may be set to override the module name as displayed in both the module index as well as the navigation and breadcrumb trail in general this does not need to be set but a few modules may want to use a more friendly name than appears in the info file index name this may be set to change the name of the module in the module index it overrides the name setting above as well as the module name in its info file hide this may be used to hide a module in the module index this is particularly useful for modules who insert their help files into the hierarchy of another module as might be done by modules that extend views or cck by setting hide true the module will not appear as its own entry each section after that will correspond to a single help file and each one may have the following settings  title the title of the topic presented to the user and used in links if you have special characters in your title be sure to enclose it in quotes file the filename without the html extension used for the topic this is optional if not specified the topic name wil be the file name weight the weight used for sorting topics on the administration page defaults to 0 of unspecified items with the same weight are sorted alphabetically parent the topic id to use in a hierarchy children will be listed beneath parents in the topic list and will have the parent in their breadcrumb trail you may parent this topic to another module s topic by using module topic as the identifier for example views display will make this a child of the display topic in the views module line break if set to true linebreaks will be converted into br and p tags automatically if unspecified will default to off set to 0 to disable the filter if this has been turned on in the global settings css specify a css file that will be used for this file this css file must reside in the help directory along with the html files this will override any css file added by the global system popup width the width in pixels of the popup window defaults to 500 if unspecified popup height the height in pixels of the popup window defaults to 500 if unspecified for example here is a version of the advancedhelphelpini file usingadvancedhelp title using advanced help weight 10 translation title translating advanced help inifile title help ini file format line break true  ',0),(7,'help',' why advanced help  the advanced help system was designed to replace the original drupal help system which has several flaws that make it hard to create new help hard to maintain existing help and particularly hard to access help the primary goal then is to increase the accessibility of help meaning the ability of both the user and the help text author to access the needed tools to use create maintain and translate the help this system is completely separate from drupal s hookhelp in drupal 6 it actually coexists with it in the future it is hoped that it will completely replace it allowing hookhelp to be deprecated and removed messages added to the top of a page are not really help often these messages are an introduction to a form or a short blurb telling a user what to do with a particular page the problem is these messages are always there they are easily ignored and they come before the actual page in general when users are learning they want to see the page first then ask questions the reverse order is much less conducive to actually teaching a user how to use something by allowing help to be available on request the system conforms more naturally to how most people work advanced help is organized by topic with the hookhelp method help text is organized by url path this is fine if you have help text describing how to use a particular page or what a particular page does but ultimately is limiting because manuals and documentation are usually grouped by topic and those topics are determined by the material itself advanced help allows the documentation author to organize topics as he or she sees fit the only restriction really is that each individual chunk of text needs to stand on its own as a discrete topic what s more modules can insert their topics into another module s hierarchy this would allow the drupal core to create a task based help navigation system which allows modules insert topics into that navigation fluidly this allows modules to continue to keep their systems separate yet integrate into the main system advanced help topics are processed html in their own files this separation makes it easy to find and modify currently everything is lumped together in hookhelp in php strings that are run through t and there is a fair amount of php code necessary in this system that actually gets in the way of writing good explanatory text in fact requiring a documentation author to understand php at all is a detriment the idea that documentation writers need to have php development as a skill seriously reduces the number of available contributors html on the other hand is a much more common skill is relatively easy to learn and the amount of html needed to write documentation is only a little bit more than the html used in forum posts another benefit to not using php is that the files themselves are safe they are unlikely to include malicious php code that could take over the server or do worse things this means that these files can be used relatively easily on the drupalorg hardware so that a module s help files can be made immediately available without needing to download the module it also means that descriptions of the module can be made on drupalorg that are version aware can be corrected easily in cvs with patches but can also be made available with the module so that drupalorg is not required this also means that we could if we wanted package the drupalorg handbooks or a subset of them directly into a drupal distribution or a drupal addon so that drupal administrators can have drupal help without needing to visit drupalorg this can be valuable in locked down corporate environments and on planes but more importantly the handbooks can be made version aware much more easily than the current method on drupalorg the downside to this method is that these books can t easily be made dynamic though the use of alter hooks could allow a module to make modifications to the help as needed doing this could make the help files less useful when you take them out of context advanced help files are translated as a file it is actually not easy to translate documents as strings particularly when the language being used is very much unlike english in fact when translating a document the organization of the sentences may change drastically it is also a burden on the cpu to do this as you are indexing on very long strings translators have a much better time translating a document as a unit because of the presence of the entire context advanced help has its own navigation system by making use of a navigation system specified in a ini file which is not php code and therefore safe to use on drupalorg sites the help can be structured like a book which is typical of online manuals this is familiar to users can be organized and reorganized and allows a module to include significantly richer text without burdening the php code with having its help loaded unnecessarily this book can be navigated hierarchically as well making it easy to keep related topics together advanced help is indexed by the search engine an important goal of this system was to add searchability to the help by being able to enter keywords into the search box and find relevant topics we come up with a system that resembles the kind of help that comes with many operating systems this is very valuable when searching through manuals trying to find out how to do a particular thing this search is specific to the help meaning that the help will not be mixed in with the global node search this can be considered both an advantage and a disadvantage for the most part this help system is meant to provide help to site administrators and content searches should not find it the disadvantage of course is when you want to use it for end user help you will not be able to inline help can be brought in via popups in addition to the manuallike hierarchical navigation advanced help can also provide contextsensitive additional help through a popup while popups are controversial the argument for using them is that when getting help while on a form  a popup will not throw away a user s data browsers are not very friendly to input forms if they are not submitted and navigating away from the form can be dangerous there are various other solutions to this problem but each one has a drawback the drawbacks to popups are well known but mostly it is the irritation of having new windows when getting help though a popup is usually invited help should not interfere with what the operation the user is trying to complete it differs greatly from the uninvited popup which are usually ads or popups meant to prevent users from navigating away from a site these popups can be added to a page with text links or icon links  ',0),(8,'help',' readme  id readmetxt v 1122 20091217 093748 psynaptic exp author maintainers created by irakli nadareishvili aka irakli of phase2 technology http wwwphase2technologycom people irakli comaintained by richard burford aka psynaptic of freestyle systems http freestylesystemscouk installation follow the usual module installation procedure http drupalorg node 70151 usage the edit links are automatically added to the content variable of blocks and nodes if you happen to not print the content variable in your theme s template files you will need to print the block or node edit links in your nodetplphp or blocktplphp or a derivative of or the only requirement is that this variable is printed somewhere within the block or node div eg or this is so the jquery code can find the blocks nodes and the edit links within them  ',0),(9,'help',' fields and widgets the content construction kit cck is composed of numerous field and widget modules that can be used to add fields to any content type  ',0),(10,'help','  manage fields tab this page lets you manage the cck fields in your content type add fields and groups rearrange them access their configuration pages remove them from the content type  ',0),(11,'help',' add fields and groups the form elements at the bottom of the manage fields page let you add fields and groups to your content types the add existing field row is displayed only if there are fields available in other content types the add new group rows is displayed only if fieldgroup module is enabled your fields and groups will be created after you click the save button at the bottom of the page in subsequent pages you will be presented with the settings form for each field you added you will find more details on the required informations in the following pages  ',0),(12,'help',' add a new field at the bottom of the manage fields page for a content type you ll find this in order to add a new field to a content type you need to provide the following information label a humanreadable name for the field it will be used in input forms and on displayed content all characters are allowed including spaces accentuated or noneuropean characters field name a machinereadable name for the field it is used internally to identify the field and handle database storage when doing custom theming it is this identifier that you ll use to refer to that field important  the field name cannot be changed once the field has been created allowed characters az unaccentuated 09 and the underscore the length of the field name cannot exceed 32 characters including the field prefix that gets added automatically that is 26 free characters field type the type of data to be stored in that field important  the field type cannot be changed once the field has been created the available field types depend on the modules you have enabled on your site cck comes with 6 basic field types text integer float decimal node reference user reference additional modules can be downloaded to handle other field types such as dates files images look at the cck project page and the complete list of cckrelated modules  widget the form element that will be used to input data for this field on content forms text input select list etc each field type has its own list of available widgets when selecting a field type the list of widgets you can select is automatically updated  ',0),(13,'help',' add an existing field share a field across content types using a field across several content type can be handy if a piece of data is relevant for several content types a typical use case is a phone number field used in both restaurant and hotel content types even if hotels and restaurants are different enough to deserve their own specific set of fields and thus their own dedicated content types when a field has been added to more than one content type we also say it is shared and that it as several instances at the bottom of the manage fields page for a content type you ll find this in order to add a new instance of an existing field to a content type you need to provide the following information  label  a humanreadable name for the field it will be used in input forms and on displayed content all characters are allowed including spaces accentuated or noneuropean characters field  the field to be shared a field cannot appear more than once in each content type thus only fields that are not already present in the current content type will be proposed as shareable if none the add existing field option is not available on the manage fields page for this content type selecting a field automatically populates the label and widget values with the ones used by the previous field instance but you can change them if needed before submitting the form widget  the form element that will be used to input data for this field on content forms text input select list etc each field type has its own list of available widgets when selecting a field to share the list of widgets you can select is automatically updated  ',0),(14,'help',' add a new group field groups are used to visually gather several fields that are associated by some sort of logic for instance several text fields that hold the different parts of an address on input forms and displayed content the corresponding fields are enclosed inside an html fieldset at the bottom of the manage fields page for a content type you ll find this in order to add a new group to a content type you need to provide the following information  label  a humanreadable name for the group it will be used in input forms and on displayed content all characters are allowed including spaces accentuated or noneuropean characters group name a machinereadable name for the group it is used internally to identify the group when doing custom theming it is this identifier that you ll use to refer to that group important  the group name cannot be changed once the group has been created allowed characters az unaccentuated 09 and the underscore the length of the group name cannot exceed 32 characters including the group prefix that gets added automatically that is 26 free characters once a group has been created you can define what fields it will enclose by rearranging fields and groups   ',0),(15,'help',' rearrange fields and groups to change the order of fields grab a draganddrop handle and drag the field to a new location in the list grab a handle by clicking and holding the mouse while hovering over a handle icon remember that your changes will not be saved until you click the save button at the bottom of the page the order you define will be used both on input forms when creating or editing a post and on content display teasers content page rss items you can also change the order of noncck fields like title or file attachments  depending on the field this will affect input forms and or content display some of those fields are not displayed in both contexts if your content type has groups requires the fieldgroup module you can move a field inside a group by dragging it below the row of the group and then slightly to the right before dropping it note that groups can also be reordered but can currently not be nested inside other groups when adding a field or a group you can drag them directly to the intended spot in the list of fields and groups that are already present in your content type before clicking save   ',0),(16,'help',' remove fields and groups removing a field when you remove a field from a content type the data it holds are permanently erased you will be asked to confirm this action you will have to manually update your views pathauto settings etc if needed note if the field is shared across several content types removing it from one content type does not affect the data for the other content types removing a group removing a group from a content type does not remove the fields it contains and therefore erases no field data  ',0),(17,'help',' theming cck data in nodes note  these instructions assume you are familiar with the basic concepts of drupal 6 theming for more informations see the theme guide for drupal 6  and more specifically the overriding themable output section there are 3 levels where you can customize how the data in cck fields is displayed in nodes  ',0),(18,'help',' node templates template files all themes usually come with a default nodetplphp template drupal core lets you use the following variant suggestion node contenttypename tplphp ex nodestorytplphp if present will be used to theme a story node important  whenever you add new template files in your theme you need to rebuild the theme registry or the theme engine won t see them you can do that by visiting the administer modules page or using devel module  s clear cache link template variables cck makes the following variables available in your theme s node templates fieldname rendered contains the rendered html for the field including the label and all the field s values with the settings defined on the display fields tab groupname rendered contains the rendered html for the fieldgroup if any including the label and all the group s fields with the settings defined on the display fields tab this variable therefore includes the html contained in all the fieldname rendered variables for the group s fields fieldname contains the raw values of the fields in the usual arrayformat used internally by cck what you find in there depends on the field type each value also contains a view element that holds the readytodisplay value as rendered by the formatter for instance array 0 array nid 5 view a href node 5 title of node 5 a  raw data are not sanitized for output it is therefore not advised to use them directly  use the view value or run the values through contentformat  excluding fields from the content variable by default the content variable used in node templates contains the rendered html for the whole node cck fields and fieldgroups but also body file attachments fivestar widgets if for some fields you want to use the more finegrained variables described above you might want to use the exclude checkboxes on the display fields screen so that the output of those fields is excluded from the content variable you can then customize the display and layout of some cck fields or groups using the fieldname rendered groupname rendered variables and trust content to display the rest without getting duplicate information advanced trick the exclude checkboxes affect all active themes on sites with multiple themes however the list of fields to exclude from content might need to be different across the themes depending on how their respective node templates are structured a theme can bypass those settings by overriding the themecontentexclude function to specify the list of fields to exclude for this theme see the phpdoc of the function for more information  special case nodes in nodereference fields in addition to the above the following suggestions will be looked for in priority for nodes that are displayed as values of a nodereference field using the teaser or full node formatters nodenodereference referringfieldname typename tplphp ex nodenodereferencefieldnoderefstorytplphp if present will be used to theme a story node when refererenced in the fieldnoderef field nodenodereference typename tplphp ex nodenodereferencestorytplphp if present will be used to theme a story node when refererenced in any nodereference field nodenodereference referringfieldname tplphp ex nodenodereferencefieldnodereftplphp if present will be used to a node refererenced in the fieldnoderef field nodenodereferencetplphp if present will be used to theme nodes referenced in nodereference fields the following additional variables are available in templates for referenced nodes referringfield the nodereference field that references the current node referringnode the node referencing the current node  ',0),(19,'help',' field templates fieldlevel theming determines how the values of a given field are displayed the resulting output ends up in the content and fieldname rendered variables in the node templates template files in order to customize field themeing copy the contentfieldtplphp template file into your theme s root folder please keep the contents of the cck theme folder untouched for the same reason need to copy the file instead of just moving it edit that copy to your liking see the comments in cck theme content contentfieldtplphp for a list of all variables available in this template template suggestions in addition the theme layer will also look for fieldspecific variants suggestions in the following order of precedence contentfield fieldname contenttypename tplphp ex contentfieldfieldmyfieldstorytplphp if present will be used to theme the fieldmyfield field when displaying a story node contentfield contenttypename tplphp ex contentfieldstorytplphp if present will be used to theme all fields of story nodes contentfield fieldname tplphp ex contentfieldfieldmyfieldtplphp if present will be used to theme all fieldmyfield field in all the content types it appears in contentfieldtplphp if none of the above is present the base template will be used important  suggestions work only if the theme also has the base template file if your theme has contentfield tplphp files it must also have a contentfieldtplphp file whenever you add new template files in your theme you need to rebuild the theme registry or the theme engine won t see them you can do that by visiting the administer modules page or using devel module  s clear cache link see the working with template suggestions section of the theme guide for drupal 6 for more informations about templates and template suggestions  ',0),(20,'help',' formatter theme functions formatters are used to turn the raw data for a single field value into html the display fields tab lets you chose which formatter you want to use for each of your fields in cck 20 for drupal 6 all formatters now go through the theme layer therefore overriding a formatter s theme is another way you can alter how your values are displayed whereas changing contentfieldtplphp lets you change the html that wraps the values most formatters come as theme functions but some might use templates instead either way you can override them using the usual drupal 6 theme override practices for more informations see the theme guide for drupal 6  and more specifically the overriding themable output section  ',0),(21,'help',' nodereference field the nodereference field stores the nid of a related node the title of the related node is usually displayed as the value of this field the nodereference field can use an autocomplete widget or when used with optionwidgets  the available values can be presented to the end user in a dropdown select list checkboxes or radios a nodereference field can be used in views to create a relationship to another node to allow you to use any field argument or filter from the related node in your view  ',0),(22,'help',' number field the number field stores numeric data in the database it can either be an integer value a decimal value or a float value the number field provides a place for the administrator to create a list of allowed values for the field when used with optionwidgets  the allowed values are presented to the end user in a dropdown select list checkboxes or radios  ',0),(23,'help',' optionwidgets optionwidgets creates dropdown select lists checkboxes and radio widgets that can be used with fields that have specific allowed values the number and text fields have settings for creating lists of allowed values that can be used in optionwidgets the nodereference and userreference fields use optionwidgets to present the possible values in select lists or checkboxes  ',0),(24,'help',' text field the text field stores textual data in the database it can either be a simple textfield to hold up to 255 characters or a textarea of an unlimited size that can be combined with input filters to store lengthy descriptions and html code the text field provides a place for the administrator to create a list of allowed values for the field when used with optionwidgets  the allowed values are presented to the end user in a dropdown select list checkboxes or radios  ',0),(25,'help',' about chaos tool suite the chaos tool suite is a series of tools for developers to make code that i ve found to be very useful to views and panels more readily available certain methods of doing things particularly with ajax exportable objects and a plugin system are proving to be ideas that are useful outside of just views and panels this module does not offer much directly ot the end user but instead creates a library for other modules to use if you are an end user and some module asked you to install the ctools suite then this is far as you really need to go if you re a developer and are interested in these tools read on  tools provided by ctools plugins the plugins tool allows a module to allow other modules and themes to provide plugins which provide some kind of functionality or some kind of task for example in panels there are several types of plugins content types which are like blocks layouts which are page layouts and styles which can be used to style a panel each plugin is represented by a inc file and the functionaly they offer can differ wildly context context is the idea that the objects that are used in page generation have more value than simply creating a single piece of output instead contexts can be used to create multiple pieces of content that can all be put onto the page additionally contexts can be used to derive other contexts via relationships such as determining the node author and displaying data about the new context ajax tools ajax also known as ahah is a method of allowing the browser and the server to communicate without requiring a page refresh it can be used to create complicated interactive forms but it is somewhat difficult to integrate into drupal s form api these tools make it easier to accomplish this goal in addition ctools provides a few other javascript helpers such as a modal dialog a collapsible div a simple dropdown and dependent checkboxes css scrubbing and caching drupal comes with a fantastic array of tools to ensure html is safe to output but does not contain any similar tools for css ctools provides a small tool to sanitize css so that userinput css code can still be safely used it also provides a method for caching css for better performance exportable objects views and panels both use objects that can either be in code or in the database and the object can be exported into a piece of php code so that it can be moved from site to site or out of the database entirely this library abstracts that so that other modules can use this same concept for their data form tools drupal 6 s fapi really improved over drupal 5 and made a lot of things possible still it missed a few items that were needed to make form wizards and truly dynamic ajax forms possible ctools includes a replacement for drupalgetform that has a few more options and allows the caller to examine the formstate once the form has completed form wizards finally an easy way to have form wizards which is any form which is actually a string of forms that build up to a final conclusion the form wizard supports a single entry point the ability to choose whether or not the user can go forward back up on the form and easy callbacks to handle the difficult job of dealing with data in between forms temporary object cache for normal forms all of the data needed for an object is stored in the form so that the browser handles a lot of the work for multistep and ajax forms however this is impractical and letting the browser store data can be insecure the object cache provides a nonvolatile location to store temporary data while the form is being worked on this is much safer than the standard drupal caching mechanism which is volatile meaning it can be cleared at any time and any system using it must be capable of recreating the data that was there this system also allows for object locking since any object which has an item in the cache from another person can be assumed to be locked for editing  ',0),(26,'help',' context tool ',0),(27,'help',' context based access control plugins access plugins allow context based access control to pages title title of the plugin description description of the plugin callback callback to see if there is access is available params conf contexts account required context zero or more required contexts for this access plugin default an array of defaults or a callback giving defaults settings form settings form params form formstate conf settings form validate settings form submit warning your settings array will be stored in the menu system to reduce loads so be trim ',0),(28,'help',' context plugins context plugin data title visible title description description of context context callback to create a context params empty data null conf false settings form callback to show a context setting form params conf external false settings form validate params form formvalues formstate settings form submit params ctoolscontextnodesettingsformsubmit keyword the default keyword to use context name the unique identifier for this context for use by required context checks no ui if true this context cannot be selected  ',0),(29,'help',' argument plugins arguments create a context from external input which is assumed to be a string as though it came from a url element title title description description keyword default keyword for the context context callback to create the context params arg null conf null empty false default either an array of default settings or a string which is a callback or null to not use settings form params form formstate conf gets the whole form should put anything it wants to keep automatically in form settings settings form validate params form formstate settings form submit params form formstate criteria form params form formstate conf argument id gets the whole argument it should only put form widgets in form id conf may not be properly initialized so always guard against this due to arguments being changed and handlers not being updated to match submit validate criteria select returns true if the selected criteria matches the context params context conf  ',0),(30,'help',' relationship plugins  title the title to display description description to display keyword default keyword for the context created by this relationship required context one or more ctoolscontextrequired optional objects describing the context input new panelsrequiredcontext t node node context the callback to create the context params context null conf settings form settings form params conf settings form validate validate  ',0),(31,'help',' content plugins the ctools pluggable content system provides various pieces of content as discrete bits of data that can be added to other applications such as panels or dashboard via the ui whatever the content is added to stores the configuration for that individual piece of content and provides this to the content each content type plugin will be contained in a inc file with subsidiary files if necessary in or near the same directory each content type consists of some information and one or more subtypes which all use the same renderer subtypes are considered to be instances of the type for example the views content type would have each view in the system as a subtype many content types will have exactly one subtype because the content and forms can be provided via ajax the plugin also provides a list of css and javascript information that should be available on whatever page the content or forms may be ajaxed onto for the purposes of selecting content from the ui each content subtype will have the following information a title a short description a category do we want to add hierarchy categories do we want category to be more than just a string an icon do we want multiple icons this becomes a hefty requirement each piece of content provides one or more configuration forms if necessary and the system that includes the content will handle the data storage these forms can be provided in sequence as wizards or as extra forms that can be accessed through advanced administration the plugin for a content type should contain title for use on the content permissions screen content types either an array of content type definitions or a callback that will return content type definitions this callback will get the plugin definition as an argument content type optional provide a single content type definition this is only necessary if content types might be intensive render callback the callback to render the content parameters subtype the name of the subtype being rendered not the loaded subtype data conf the stored configuration for the content args any arguments passed context an array of contexts requested by the required contexts and assigned by the configuration step incomingcontent any incoming content if this is a wrapper admin title a callback to provide the administrative title if it is not a function then it will be counted as a string to use as the admin title admin info a callback to provide administrative information about the content to be displayed when manipulating the content it should contain a summary of configuration edit form either a single form id or an array of forms keyed by form id with the value to be used as the title of the form title me be used as a placeholder for the administrative title if necessary example array ctoolsexamplecontentformsecond t configure first form ctoolsexamplecontentformfirst t configure second form the first form will always have required configuration added to it these forms are normal fapi forms but you do not need to provide buttons these will be added by the form wizard add form optional if different from the edit forms provide them here in the same manner also may be set to false to not have an add form css a file or array of css files that are necessary for the content js a file or array of javascript files that are necessary for the content to be displayed admin css a file or array of css files that are necessary for the forms admin js a file or array of javascript files that are necessary for the forms extra forms an array of form information to handle extra administrative forms no title override set to true if the title cannot be overridden single set to true if this content provides exactly one subtype render last set to true if for some reason this content needs to render after other content this is primarily used for forms to ensure that render order is correct todo many of the above callbacks can be assumed based upon patterns modulename name function ie render admintitle admininfo etc todo some kind of simple access control to easily filter out content the subtype definition should contain title the title of the subtype icon the icon to display for the subtype path the path for the icon if it is not in the same directory as the plugin description the short description of the subtype to be used when selecting it in the ui category either a text string for the category or an array of the text string followed by the category weight required context optional either a ctoolscontextrequired or ctoolscontextoptional or array of contexts for this content if omitted no contexts are used rendered content rendered content is a little more than just html title the safe to render title of the content content the safe to render html content links an array of links associated with the content suitable for theme links more an optional more link destination only adminlinks administrative links associated with the content suitable for theme links feeds an array of feed icons or links associated with the content each member of the array is rendered html type the content type subtype the content subtype these two may be used together as moduledelta for block style rendering todo example todo after implementations are updated to new version  ',0),(32,'help',' plugins and apis tool the plugins tool allows a module to allow other modules and themes to provide plugins which provide some kind of functionality or some kind of task for example in panels there are several types of plugins content types which are like blocks layouts which are page layouts and styles which can be used to style a panel each plugin is represented by a inc file and the functionaly they offer can differ wildly a module which uses plugins can implement a hook describing the plugin which is not necessary as defaults will be filled in and then calls a ctools function which loads either all the known plugins used for listing choosing or loads a specific plugin used when its known which plugin is needed from the perspective of the plugin system a plugin is a packet of data usually some printable info and a list of callbacks it is up to the module implementing plugins to determine what that info means and what the callbacks do a module which implements plugins must first implement the hookctoolsplugindirectory function which simply tells the system which plugins are supported and what directory to look in each plugin will then be in a inc file in the directory supplied the inc file will contain a specially named hook which returns the data necessary to implement the plugin ',0),(33,'help',' creating plugins there are two primary pieces to using plugins the first is getting the data and the second is using the data getting the data to create a plugin a module only has to execute ctoolsgetplugins with the right data ctoolsinclude plugins ctoolsgetplugins module type id in the above example module should be your module s name and type is the type of the plugin it is typically best practice to provide some kind of wrapper function to make this easier for example panels provides the following functions to implement the contenttypes plugin fetch metadata on a specific contenttype plugin param content type name of a panel content type return an array with information about the requested panel content type function panelsgetcontenttype contenttype ctoolsinclude context ctoolsinclude plugins return ctoolsgetplugins panels contenttypes contenttype fetch metadata for all contenttype plugins return an array of arrays with information about all available panel content types function panelsgetcontenttypes ctoolsinclude context ctoolsinclude plugins return ctoolsgetplugins panels contenttypes as a plugin creator your module can also implement a hook to give more information about this plugin and to enable a few features that are not normally enabled if you need any of these features simply implement hookctoolsplugintype where type is the same type sent to ctoolsgetplugins this isn t a true hook it will only be called for the module that was given this hook returns an array inform ctools that the layout plugin can be loaded from themes function panelsctoolspluginlayouts return array load themes true the following information can be specified cache if set to true the results of ctoolsgetplugins will be cached in the cache table thus preventing inc files from being loaded ctoolsgetplugins looking for a specific plugin will always load the appropriate inc file defaults an array of defaults that should be applied to each plugin this can be used to ensure that every plugin has the basic data necessary these defaults will not ovewrite data supplied by the plugin this could also be a function name in which case the callback will be used to provide defaults load themes if set to true then plugins can be supplied by themes as well as modules if this is the case all themes that are currently enabled will provide a plugin note due to a slight ui bug in drupal it is possible for the default theme to be active but not enabled if this is the case that theme will not provide plugins so if you are using this feature be sure to document that issue also themes set via customtheme do not necessarily need to be enabled but the system has no way of knowing what those themes are so the enabled flag is the only true method of identifying which themes can provide layouts hook the name of the hook used to collect data for this plugin normally this is module type but this can be changed here if you change this you must be sure to document this for your plugin implementors as it will change the format of the specially named hook process an optional function callback to use for processing a plugin this can be used to provide automated settings that require code the parameters on this callback are  callback plugin info  where plugin is a reference to the plugin as processed and info is the fully processed result of hookctoolspluginapiinfo info file if set to true then the plugin will look for a info file instead of a inc internally this will look exactly the same though obviously a info file cannot contain functions this can be good for styles that may not need to contain code extension can be used to change the extension on a file by default the extension will be inc though it will default to info if info files is set to true do not include the dot in the extension if changing it that will be added automatically use hooks use to enable support for plugin definition hooks instead of plugin definition files in addition there is a module type and hook settings these are for internal use of the plugin system and you should not change these using the data each plugin returns a packet of data which is added to with a few defaults each plugin is guaranteed to always have the following data name the name of the plugin this is also the key in the array of the full list of plugins and is placed here since that is not always available module the module that supplied the plugin file the actual file containing the plugin path the path to the file containing the plugin this is useful for using secondary files such as templates css files images etc that may come with a plugin any of the above items can be overridden by the plugin itself though the most likely one to be modified is the path the most likely data beyond simple printable data for a plugin to provide is a callback the plugin system provides a pair of functions to make it easy and consistent for these callbacks to be used the first is ctoolsplugingetfunction which requires the full plugin object get a function from a plugin if it exists if the plugin is not already loaded try ctoolspluginloadfunction instead param plugin the loaded plugin type param callbackname the identifier of the function for example settings form return the actual name of the function to call or null if the function does not exist function ctoolsplugingetfunction plugin callbackname the second does not require the full plugin object and will load it load a plugin and get a function name from it returning success only if the function exists param module the module that owns the plugin type param type the type of plugin param id the id of the specific plugin to load param callbackname the identifier of the function for example settings form return the actual name of the function to call or null if the function does not exist function ctoolspluginloadfunction module type id callbackname both of these functions will ensure any needed files are included in fact it allows each callback to specify alternative include files the plugin implementation could include code like this callbackname actualnameoffunctionhere or like this callbackname array file filename path filepath optional will use plugin path if absent function actualnameoffunctionhere an example for pluginexample type plugin array name myplugin module mymodule examplecallback array file mypluginextrafileinc function mymodulemypluginexamplecallback to utilize this callback on this plugin if function ctoolsplugingetfunction plugin examplecallback function arg1 arg2 etc  document your plugins  since the data provided by your plugin tends to be specific to your plugin type you really need to document what the data returned in the hook in the inc file will be or nobody will figure it out use advanced help and document it there if every system that utilizes plugins does this then plugin implementors will quickly learn to expect the documentation to be in the advanced help  ',0),(34,'help',' implementing plugins to implement plugins you need to implement a single hook in your module to tell the system where your plugins live and then you need to implement one or more inc files that contain the plugin data telling it where your plugins live to implement any plugins at all you must implement a single function for all plugins  hookctoolsplugindirectory  every time a module loads plugins this hook will be called to see which modules implement those plugins and in what directory those plugins will live function hookctoolsplugindirectory module plugin if module panels plugin contenttypes return plugins contenttypes the directory returned should be relative to your module another common usage is to simply return that you implement all plugins owned by a given module or modules function hookctoolsplugindirectory module plugin if module panels return plugins plugin typically it is recommended that all plugins be placed into the plugins directory for clarity and maintainability inside the directory any number of subdirectories can be used for plugins that require extra files such as templates css javascript or image files this is highly recommended mymodulemodule mymoduleinfo plugins contenttypes mycontenttypeinc layouts mylayoutinc mylaoutcss mylayouttplphp mylayoutimagepng how a theme can implement plugins themes can implement plugins if the plugin owner specified that it s possible in its hookctoolsapitype call if so it is generally exactly the same as modules except for one important difference themes don t get hookctoolsplugindirectory instead themes add a line to their info file plugins module type directory how to structure the inc file the top of the inc file should contain an array that defines the plugin this array is simply defined in the global namespace of the file and does not need a function note that previous versions of this plugin system required a specially named function while this function will still work its use is now discouraged as it is annoying to name properly this array should look something like this plugin array key value several values will be filled in for you automatically but you can override them if necessary they include name path file and module additionally the plugin can owner can provide other defaults as well after this array if your plugin needs functions they can be declared different plugin types have different needs here so exactly what else will be needed will change from type to type  ',0),(35,'help',' exportable objects tool exportable objects are objects that can live either in the database or in code or in both if they live in both then the object in code is considered to be overridden meaning that the version in code is ignored in favor of the version in the database the main benefit to this is that you can move objects that are intended to be structure or featurerelated into code thus removing them entirely from the database this is a very important part of the deployment path since in an ideal world the database is primarily user generated content whereas site structure and site features should be in code however many many features in drupal rely on objects being in the database and provide uis to create them using this system you can give your objects dual life they can be created in the ui exported into code and put in revision control views and panels both use this system heavily plus any object that properly implements this system can be utilized by the features module to be used as part of a bundle of objects that can be turned into feature modules typically exportable objects have two identifiers one identifier is a simple serial used for database identification it is a primary key in the database and can be used locally it also has a name which is an easy way to uniquely identify it this makes it much less likely that importing and exporting these objects across systems will have collisions they still can of course but with good name selection these problems can be worked around making your objects exportable to make your objects exportable you do have to do a medium amount of work create a chunk of code in your object s schema definition in the install file to introduce the object to ctools export system create a load function for your object that utilizes ctoolsexportloadobject create a save function for your object that utilizes drupalwriterecord or any method you desire create an import and export mechanism from the ui the export section of the schema file exportable objects are created by adding definition to the schema in an export section for example function mymoduleschema schema mymodulemyobj array description t table storing myobj definitions export array key name identifier obj exports will be as myobj default hook defaultmymodulemyobj function hook name api array owner mymodule api defaultmymodulemyobjs base name for api include files minimumversion 1 currentversion 1 fields array name array type varchar length 255 description unique id for this object used to identify it programmatically oid array type serial unsigned true not null true description primary id field for the table not used for anything except internal lookups no export true do not export databaseonly keys primary key array oid unique keys array name array name return schema key this is the primary key of the exportable object and should be a string as names are more portable across systems it is possible to use numbers here but be aware that export collisions are very likely defaults to name object the class the object should be created ass defaults as stdclass can disable control whether or not the exportable objects can be disabled all this does is cause the disabled field on the object to always be set appropriately and a variable is kept to record the state changes made to this state must be handled by the owner of the object defaults to true status exportable objects can be enabled or disabled and this status is stored in a variable this defines what variable that is defaults to default table default hook what hook to invoke to find exportable objects that are currently defined these will all be gathered into a giant array defaults to default table identifier when exporting the object the identifier is the variable that the exported object will be placed in defaults to table bulk export declares whether or not the exportable will be available for bulk exporting bulk export ui is currently left to be handled by contrib though the core hooks are present so this can be done export callback the callback to use for bulk exporting defaults to module export table this function will receive the myobject and indent as arguments list callback bulk export callback to provide a list of exportable objects to be chosen for bulk exporting defaults to module table list to hook code callback function used to generate an export for the bulk export process this is only necessary if the export is more complicated than simply listing the fields defaults to module table tohookcode in addition each field can contain the following no export set to true to prevent that field from being exported export callback a function to override the export behavior it will receive myobject field value indent as arguments by default fields are exported through ctoolsvarexport  reserved keys on exportable objects exportable objects have several reserved keys that are used by the ctools export api each key can be found at myobj key on an object loaded through ctoolsexportloadobject implementing modules should not use these keys as they will be overwritten by the ctools export api apiversion the api version that this object implements disabled a boolean for whether the object is disabled exportmodule for objects that live in code the module which provides the default object exporttype a bitmask representation of an object current storage you can use this bitmask in combination with the exportincode and exportindatabase constants to test for an object s storage in your code incodeonly a boolean for whether the object lives only in code table the schema api table that this object belongs to type a string representing the storage type of this object can be one of the following  normal is an object that lives only in the database overridden is an object that lives in the database and is overriding the exported configuration of a corresponding object in code default is an object that lives only in code the load function typically there will be two load functions a single load to load just one object and an all load to load all of the objects for use in administrating the objects or utilizing the objects when you need all of them using ctoolsexportloadobject you can easily do both as well as quite a bit in between this example shows loading just one object load a single myobj function mymodulemyobjload name ctoolsinclude export result ctoolsexportloadobject mymodulemyobjs names array name if isset result name return result name  the save function the export mechanism does not actually provide a method to save an object this is okay because in the simple case drupalwriterecord does the job well in the more complex cases it would not work for you anyway load a single myobj function mymodulemyobjsave myobj update isset myobj oid isnumeric myobj oid array oid array drupalwriterecord myobj myobj update  export from the ui in your hookmenu you should define a path where users can export your object object in our example below this is admin build mymodule export where the matches our myobj s unique identifier this identifier will be passed to a form called mymoduleexportmyobj implementation of hookmenu function mymodulemenu items admin build mymodule export array title export page callback mymoduleexportmyobj page arguments array 3 access arguments array mymodule export permission type menucallback return items export a myobj and display it in a form function mymoduleexportmyobj formstate oid myobj mymodulemyobjload oid drupalsettitle checkplain myobj description code mymodulemyobjexport myobj return drupalgetform ctoolsexportform code checkplain myobj description the mymoduleexportmyobj form function calls two functions mymodulemyobjload to fetch the object in the desired format and mymodulemyobjexport to generate the exportable load a single myobj function mymodulemyobjload oid ctoolsinclude export result ctoolsexportloadobject mymodulemyobjs names array oid if isset result oid return result oid export a myobj by declaring this function in the schema anyone can easily export a myobj just by knowing that myobj exists function mymodulemyobjexport myobj indent ctoolsinclude export output ctoolsexportobject mymodulemyobjs myobj indent return output  import from the ui please note importing objects means you let the user run php code do not give this permission to untrusted users much like with exporting you ll need a menu entry to handle the import implementation of hookmenu function mymodulemenu items admin build mymodule import array title import page callback drupalgetform page arguments array mymoduleexportmyobj access arguments array mymodule import permission type menucallback return items in this case the page callback is a form where the user can paste the exported code we can provide an optional name field to change the name of the object while importing this can be used as a poor man s clone the method used here can also be used to very easily clone objects without going through the export import process manually form from page callback to import a myobj function mymoduleexportmyobj form formstate form name array type textfield title t myobj name description t enter the name of the new myobj this is optional and is not necessary if you do not wish to rename the object form object array type textarea title t paste variant code here rows 15 make sure that an import actually provides a handler function mymoduleexportmyobjvalidate form formstate first run the php and turn the input code into an object obstart eval formstate values object obendclean the object should appear as myobj this was the identifier set in the export section of the schema if empty myobj errors obgetcontents if empty errors errors t no myobj found formerror form object t unable to get a myobj from the import errors reported errors array errors errors formstate obj obj save the imported object function pagemanagerhandlerimportsubmit form formstate myobj formstate obj if empty formstate values name myobj name formstate values name mymodulemyobjsave myobj formstate redirect admin build mymodule myobj name edit  enabling and disabling exported objects exportable objects can be enabled or disabled by default the status of exported objects are stored in a variable defined in the export section of your hookschema the variable is an array with object primary keys and their corresponding status as a boolean where true means disabled and false means enabled  for the following status variable array apples true bananas true oranges false the apples and bananas objects are disabled while oranges is enabled this convention ensures that objects are enabled by default until they have an entry in the status variable that says otherwise you can enable or disable objects using the ctools export api disable an object by name objectname oranges ctoolsinclude export ctoolsexportsetstatus myobj oranges enable an object by name ctoolsexportsetstatus myobj oranges false disable a loaded object object mymodulemyobjload apples ctoolsexportsetobjectstatus object enable a loaded object ctoolsexportsetobjectstatus object false an object s status will be set by ctoolsexportloadobject at myobj disabled note that the actual meaning of the myobj disabled flag is delegated to the implementing module it is your responsibility to include exclude disabled objects from appearing on administrative forms being editable and exhibiting their general behavior putting exported objects into code this section still needs to be written  ',0),(36,'help',' form tools ctools form tool is a replacement for drupalgetform that includes some additional functionality it takes formstate as an argument which is accepted as a reference meaning when the form is complete you can examine the formstate to see what the form did it can handle get as an input source or the input can be provided from some other source it can be told not to render or not to redirect which can be important during ajax operations it can provide a special wrapper form which is used by the wizard tool to provide a standard set of buttons to a form usage ctoolsinclude form output ctoolsbuildform formid formstate previously arguments to the form builder were passed into drupalgetform this is no longer true you have two options for passing arguments to the form with ctoolsbuildform set formstate args to an array which will then be passed to the builder as before or simply set formstate values and refer to them in the builder values you can set on formstate noredirect if set to true completely disables redirecting no matter what formstate redirect has been set to rerender defaults to true if set the form will be rerendered after submit if not redirected if set to false the form will not be rerendered after submit and output will be null method defaults to post may be set to get if get is in use form ids and tokens will not be used and all get forms will automatically be assumed to be submitted beware as this can have unexpected effects on default values as fapi doesn t quite know how to handle this state input defaults to post if using get you should set this to get wrapper callback if this is set to a function name the form will be wrapped in another form this changes how the builder callback work first form is set to a blank array then the wrapper callback is called with form and formstate as arguments then the form builder is called with form and formstate as arguments no other arguments are given args an array of arguments that will be passed to the form builder callback just as though they were passed as arguments to drupalgetform want form defaults to false if set instead of rendering the return value will be the form array it can then be rendered via drupalrender normally this is particularly useful for ajax operations that may need to process a form and then only render a part of it  ',0),(37,'help',' form wizard tool form wizards or multistep forms are a process by which the user goes through or can use an arbitrary number of different forms to create a single object or perform a single task traditionally the multistep form is difficult in drupal because there is no easy place to put data in between forms no longer the form wizard tool allows a single entry point to easily set up a wizard of multiple forms provide callbacks to handle data storage and updates between forms and when forms are completed this tool pairs well with the object cache tool for storage the form info array the wizard starts with an array of data that describes all of the forms available to the wizard and sets options for how the wizard will present and control the flow here is an example of the forminfo array as used in the delegator module forminfo array id delegatorpage path admin build pages edit pagename step show trail true show back true show return false next callback delegatorpageaddsubtasknext finish callback delegatorpageaddsubtaskfinish return callback delegatorpageaddsubtaskfinish cancel callback delegatorpageaddsubtaskcancel order array basic t basic settings argument t argument settings access t access control menu t menu settings multiple t task handlers forms array basic array form id delegatorpageformbasic access array form id delegatorpageformaccess menu array form id delegatorpageformmenu argument array form id delegatorpageformargument multiple array form id delegatorpageargumentformmultiple the above array starts with an id which is used to identify the wizard in various places and a path which is needed to redirect to the next step between forms it then creates some settings which control which pieces are displayed in this case it displays a form trail and a back button but not the return button then there are the wizard callbacks which allow the wizard to act appropriately when forms are submitted finally it contains a list of forms and their order so that it knows which forms to use and what order to use them by default note that the keys in the order and list of forms match that key is called the step and is used to identify each individual step of the wizard here is a full list of every item that can be in the form info array id an id for wizard this is used like a hook to automatically name callbacks  as well as a form step s form building function it is also used in trail theming path the path to use when redirecting between forms  step will be replaced with the key for the form return path when a form is complete this is the path to go to this is required if the return button is shown and not using ajax it is also used for the finish button if it is not present and needed the cancel path will also be checked cancel path when a form is canceled this is the path to go to this is required if the cancel is shown and not using ajax show trail if set to true the form trail will be shown like a breadcrumb at the top of each form defaults to false show back if set to true show a back button on each form defaults to false show return if set to true show a return button defaults to false show cancel if set to true show a cancel button defaults to false back text set the text of the back button defaults to t back next text set the text of the next button defaults to t continue return text set the text of the return button defaults to t update and return finish text set the text of the finish button defaults to t finish cancel text set the text of the cancel button defaults to t cancel ajax turn on ajax capabilities using ctools ajaxinc defaults to false modal put the wizard in the modal tool the modal must already be open and called from an ajax button for this to work which is easily accomplished using functions provided by the modal tool ajax render a callback to display the rendered form via ajax this is not required if using the modal tool but is required otherwise since ajax by itself does not know how to render the results params formstate output finish callback the function to call when a form is complete and the finish button has been clicked this function should finalize all data params formstate defaults to forminfo id finish if function exists cancel callback the function to call when a form is canceled by the user this function should clean up any data that is cached params formstate defaults to forminfo id cancel if function exists return callback the function to call when a form is complete and the return button has been clicked this is often the same as the finish callback params formstate defaults to forminfo id return if function exists next callback the function to call when the next button has been clicked this function should take the submitted data and cache it for later use by the finish callback params formstate defaults to forminfo id next if function exists order an optional array of forms keyed by the step which represents the default order the forms will be displayed in if not set the forms array will control the order note that submit callbacks can override the order so that branching logic can be used forms an array of form info arrays keyed by step describing every form available to the wizard if order array isn t set the wizard will use this to set the default order each array contains form id the id of the form as used in the drupal form system this is also the name of the function that represents the form builder defaults to forminfo id stepform include the name of a file to include which contains the code for this form this makes it easy to include the form wizard in another file or set of files this must be the full path of the file so be sure to use drupalgetpath when setting this this can also be an array of files if multiple files need to be included title the title of the form to be optionally set via drupalgettitle this is required when using the modal if formstate title is not set invoking the form wizard your module should create a page callback via hookmenu and this callback should contain an argument for the step the path that leads to this page callback should be the same as the path set in the forminfo array the page callback should set up the forminfo and figure out what the default step should be if no step is provided note that the wizard does not do this for you you must specify a step then invoke the form wizard formstate array ctoolsinclude wizard output ctoolswizardmultistepform forminfo step formstate if using ajax or the modal this part is actually done if not you have one more small step return output  forms and their callbacks each form within the wizard is a complete independent form using drupal s form api system it has a form builder callback as well as submit and validate callbacks and can be form altered the primary difference between these forms and a normal drupal form is that the submit handler should not save any data instead it should make any changes to a cached object usually placed on the formstate and only the finish or return handler should actually save any real data how you handle this is completely up to you the recommended best practice is to use the ctools object cache and a good way to do this is to write a couple of wrapper functions around the cache that look like these example functions get the cached changes to a given task handler function delegatorpagegetpagecache name ctoolsinclude objectcache cache ctoolsobjectcacheget delegatorpage name if cache cache delegatorpageload name cache locked ctoolsobjectcachetest delegatorpage name return cache store changes to a task handler in the object cache function delegatorpagesetpagecache name page ctoolsinclude objectcache cache ctoolsobjectcacheset delegatorpage name page remove an item from the object cache function delegatorpageclearpagecache name ctoolsinclude objectcache ctoolsobjectcacheclear delegatorpage name using these wrappers when performing a getcache operation it defaults to loading the real object it then checks to see if another user has this object cached using the ctoolsobjectcachetest function which automatically sets a lock which can be used to prevent writes later on with this set up the next finish and cancel callbacks are quite simple callback generated when the add page process is finished function delegatorpageaddsubtaskfinish formstate page formstate page create a real object from the cache delegatorpagesave page clear the cache delegatorpageclearpagecache formstate cache name callback generated when the next button is clicked all we do here is store the cache function delegatorpageaddsubtasknext formstate update the cache with changes delegatorpagesetpagecache formstate page callback generated when the cancel button is clicked all we do here is clear the cache function delegatorpageaddsubtaskcancel formstate update the cache with changes delegatorpageclearpagecache formstate cache name all that s needed to tie this together is to understand how the changes made it into the cache in the first place this happened in the various form submit handlers which made changes to formstate page based upon the values set in the form store the values from the basic settings form function delegatorpageformbasicsubmit form formstate if isset formstate page pid empty formstate page import formstate page name formstate values name formstate page admintitle formstate values admintitle formstate page path formstate values path no database operations were made during this submit and that s a very important distinction about this system proper handling of back button when using  show back true the cached data should be assigned to the  defaultvalue form property otherwise when the user goes back to the previous step the forms default values instead of his cached input is used form builder function for wizard function wizardidstep2form form formstate formstate my data mymodulegetcache formstate cache name form example array type radios title t title defaultvalue formstate my data example formstate my data example default options array default t default setting1 t setting1 submit handler to prepare needed values for storing in cache function wizardidstep2formsubmit form formstate formstate my data example formstate values example the data is stored in the my data object on submitting if the user goes back to this step the cached my data is used as the default form value the function mymodulegetcache  is like the cache functions explained above required fields cancel and back buttons if you have required fields in your forms the back and cancel buttons will not work as expected since validation of the form will fail you can add the following code to the top of your form validation to avoid this problem validation handler for step2 form function wizardidstep2formvalidate form formstate if the clicked button is anything but the normal flow if formstate clickedbutton next formstate next drupalgetmessages error formseterror null true return you form validation goes here  wizard for anonymous users if you are creating a wizard which is be used by anonymous users you might run into some issues with drupal s caching for anonymous users you can circumvent this by using hookinit and telling drupal to not cache your wizard pages implementation of hook init function mymoduleinit if the path leads to the wizard if drupalmatchpath get q path to your wizard set cache to false globals conf cache false  ',0),(38,'help',' ajax and javascript helper tools ',0),(39,'help',' temporary object caching the ctools object cache is a specialized cache for storing data that is nonvolatile this differs from the standard drupal cache mechanism which is volatile meaning that the data can be cleared at any time and it is expected that any cached data can easily be reconstructed in contrast data stored in this cache is not expected to be reconstructable it is primarily used for storing user input which is retrieved in stages allowing for more complex user interface interactions the object cache consists of 3 normal functions for cache maintenance and 2 additional functions to facilitate locking to use any of these functions you must first use ctoolsinclude ctoolsinclude objectcache get an object from the nonvolatile ctools cache this function caches in memory as well so that multiple calls to this will not result in multiple database reads param obj a 32 character or less string to define what kind of object is being stored primarily this is used to prevent collisions param name the name of the object being stored param skipcache skip the memory cache meaning this must be read from the db again return the data that was cached function ctoolsobjectcacheget obj name skipcache false store an object in the nonvolatile ctools cache param obj a 32 character or less string to define what kind of object is being stored primarily this is used to prevent collisions param name the name of the object being stored param cache the object to be cached this will be serialized prior to writing function ctoolsobjectcacheset obj name cache remove an object from the nonvolatile ctools cache param obj a 32 character or less string to define what kind of object is being stored primarily this is used to prevent collisions param name the name of the object being removed function ctoolsobjectcacheclear obj name to facilitate locking which is the ability to prohibit updates by other users while one user has an object cached this system provides two functions determine if another user has a given object cached this is very useful for locking objects so that only one user can modify them param obj a 32 character or less string to define what kind of object is being stored primarily this is used to prevent collisions param name the name of the object being removed return an object containing the uid and updated date if found null if not function ctoolsobjectcachetest obj name the object returned by ctoolsobjectcachetest can be directly used to determine whether a user should be allowed to cache their own version of an object to allow the concept of breaking a lock that is clearing another users changes remove an object from the nonvolatile ctools cache for all session ids this is useful for clearing a lock param obj a 32 character or less string to define what kind of object is being stored primarily this is used to prevent collisions param name the name of the object being removed function ctoolsobjectcacheclearall obj name typical best practice is to use wrapper functions such as these get the cached changes to a given task handler function delegatorpagegetpagecache name ctoolsinclude objectcache cache ctoolsobjectcacheget delegatorpage name if cache cache delegatorpageload name cache locked ctoolsobjectcachetest delegatorpage name return cache store changes to a task handler in the object cache function delegatorpagesetpagecache name page ctoolsinclude objectcache cache ctoolsobjectcacheset delegatorpage name page remove an item from the object cache function delegatorpageclearpagecache name ctoolsinclude objectcache ctoolsobjectcacheclear delegatorpage name  ',0),(40,'help',' overview the date module defines a highly configurable date time field type for the content module and a date api that can be used by other applications  ',0),(41,'help',' date api once the date api is installed all functions in the api are available to be used anywhere by any module if the date timezone module is installed the system site timezone selector and the user timezone selectors are overwritten to allow the selection of timezone names instead of offsets proper timezone conversion requires knowledge of those timezone names something that is not currently available in drupal core and the change in selectors makes it possible to track it in most cases you should enable the date timezone module any time you use the date api to be able to set the site and user timezone names it is not enabled by default in case another module is setting timezone names in the database the api uses the php 52 date functions to create and manipulate dates and contains an option module that will emulate those functions in earlier versions of php if you are using php 4 or php 50 or 51 native date handling won t work right install the datephp4 module to enable wrapper functions so this code will work in old php versions  ',0),(42,'help',' new features the date api now uses php 52 date functions for better date and timezone handling and has php 4 emulations for those functions so the module will work in php4 although the code will work with php 4 it is significantly faster and more efficient under php 52 or higher so php 52 is highly recommended the database query handling has been completely reworked to take advantage of database timezone handling when available with a fallback to the older and less reliable method of using offsets to do timezone adjustments no more need for the adodb date library historical dates earlier than 1970 and later than 2038 are handled without any external code ical integration is greatly improved an ical parser can parse events alarms most types of dates and timezones duration repeat rules and more the date api creates date elements that can be used by any module including dateselect datetextfield and datetimezone a new date timezone module overrides the site and user timezone selectors to allow you to select a timezone name instead of a timezone offset and that stored name is used to properly adjust date values it also detects the user s timezone name automatically and updates the user record with that name a new date popup module creates a jquery popup calendar date picker and time picker and the element is available to other modules as a form type of datepopup the date module now has lots of new ways to define default values you can set a the default to blank now or relative where relative is something like 90 days the to date has a separate default value which can be the same as the from date or do something different a date repeat api module has been added which can be used by any other module the cck date module uses it to allow you to select repeating as a type of multiple date present the user with a form to select the repeat rules for their date and then create all the multiple values that match those rules  ',0),(43,'help',' date field the cck date field is one of the content construction kit cck field modules  it uses the date api to create date fields and widgets there are a number of date fields and widgets you can create with this module  ',0),(44,'help',' date php4 note  the date api is designed to use the new php date and timezone functions that are available in php 52 and above if you re using an earlier version of php you ll need to enable the date php4 module which provides some wrapper code to emulate those functions the wrapper code is slower and less efficient than the native date functions so if at all possible you will want to run on a server that uses php 52 or higher for the best performance some distros like red hat use php 51 instead see installing php 52 on redhat for ideas on how to update that php 4 substitutions for the php 5 date functions are supplied if the date php4 module is enabled use the php 5 functions in your code as they would normally be used and the php 4 alternatives will be automatically be substituted in when needed you cannot do everything with these functions that can be done in php 5 but you can create dates find timezone offsets and format the results timezone handling uses native php 5 functions when available and degrades automatically for php 4 to use substitutions like those provided in previous versions of the date and event modules read the doxygen documentation in this module for more information about using the functions in ways that will work in php 4 the following functions are emulated in php4 datecreate datedateset dateformat dateoffsetget datetimezoneset timezoneabbreviationslist timezoneidentifierslist timezoneoffsetget timezoneopen  ',0),(45,'help',' date field date fields the cck date field uses the date api to create date fields and widgets you have a choice of creating an iso date or a unix timestamp if you are porting information from another application you may want to create a field using a type that matches the source data some advantages and disadvantages of each include datestamp unix timestamp stores the date as an integer takes up less room in the database because it s smaller often easier to use for date calculations because you can increase or decrease it just by adding or subtracting seconds it is the format used by php date functions it must be filled with a complete date year month day hour minute second so you sometimes have to arbitrarily set some of these values even if they are not applicable date iso date stores the date in an iso format yyyymmddthh mm ss the data is in a humanreadable form you can use it for incomplete dates ie only a year or only a year and a month and pad the other values with zeros so it does not appear to be any more precise than it really is it is a format that is internationallyrecognized and it is used asis on many web sites and in many applications datetime stores the date in the database s native date format yyyymmdd hh mm ss the data is in a humanreadable form you can use it for incomplete dates ie only a year or only a year and a month and pad the other values with zeros so it does not appear to be any more precise than it really is it can take advantage of the database s date handling functions without any conversion date widgets there are several widgets to choose from to control how users can enter data for this field text field the text field date widget uses a custom format set in the field settings like 31122008 as a fallback the widget will try to accept input allowed by the php strtotime function  this allows the user to type a date in in many natural formats like march 31 1980 there are limitations to strtotime so setting a custom format is more reliable the strtotime function will assume date shortcuts are in american format mm dd yy and strtotime will not work for dates prior to 1970 select list the select list date widget presents users with a dropdown list or textfield for each part of the date year month day hour etc the whole selector is collapsed onto a single line using css except for the timezone selector if datespecific timezones are collected the selector is highly configurable and you can set it up to use 5 10 or 15 minute increments for minutes and seconds or make some parts of the selector use textfields instead of dropdowns useful to allow any year without creating a huge dropdown selector jquery popup calendar the javascript popup calendar is offered as an input alternative if the date popup module is installed the date is split into date and time fields and the date field uses a jquery popup calendar and the time field uses a jquery timeselector widget that only allows valid time input if you have the date repeat module enabled you will also see options for each of those widgets that include a repeat options selection form that will allow the user to choose values like every week or the last tuesday  ',0),(46,'help',' date formatter display the date field can be displayed or formatted several ways some configurable in the date settings others that are automatically provided as options you ll see these formatters as options on the display fields screen and when you add the fields to views you can also use these formatters in custom code by doing something like print contentformat fielddate node fielddate 0 iso  formatter settings in many places you can further control the way multiple value dates will be displayed with formatter settings the formatter settings look like default as time ago long medium short date only time only hidden display from and to dates display from date only display to date only show value s starting from ending on display repeat rule hide repeat rule the number of values should be a numeric value or blank to show all dates that match your other options starting from and ending on can be a fixed dates in iso format like 20090303t103000 or relative times like now or now 1 day  formats and format types formatter options include default the main way to display this date configured in the date settings defaults to the site short format short the site short format medium the site medium format long the site long format time display the date time only using the time format in the default display timetimezone display the date time and timezone using the time format in the default display iso display the date in the standard iso format of yyyymmddthh mm ss ical display the date in the standard ical format of yyyymmddthhmmss timestamp display the date as the unix timestamp value formatinterval display the date as xx days xx hours ago or xx months xx days from now to set up custom formats and formatters go to admin settings datetime formats  you can either use a preconfigured display format or create your own formatters and formats define a php date format string like mdy h i see http phpnet date for more details on custom format strings  ',0),(47,'help',' date copy the date copy module allows you to import date data into cck nodes currently you can convert event nodes to cck nodes or import date data from an ical feed importing from event nodes if you currently have date information in event nodes and want to get the event dates into cck date fields instead you can do this using the date copy module included with the date module first create the content type you want to import your events into and make sure the content type has a cck date field and a field to hold the event description either a body or a text field you can create a new content type for this purpose or add a cck date field to the current event type depending on whether you want to create new nodes and nids or use the current ones make sure you set up the cck date field to have both a from date and a to date if your events have eventspecific timezones make sure the cck date field is set up to use the date s timezone go to admin content management date import export import events and select events as the content type to import from and your new content type as the type to import to only content types that have date fields will appear in the list of available content types if you have added the new date fields to the current content type be sure to select the option to not delete the old node after the import if you have created a new content type you will probably want to delete the old nodes you can select the number of items to import and the starting nid import will be done in ascending nid order use that to import a single node as a test to be sure the results are what you want once your nodes seem to be importing correctly go ahead and import more of them you may want to do them in batches to keep the server from timing out  ',0),(48,'help',' ical import you can import ical feeds from other sources into your database by using the feed api and feed api mapper  check create an ical parser and create a cck date feed mapper for the current status of patches needed to get this working decide what content type will be used for nodes imported from your ical feed it can be a separate content type for each feed or they can be combined into other content types make sure the content type you select has a date field that can be used for the ical date plus fields for any other ical information that will be imported create a new content type for ical feeds scroll down to the bottom of the content type edit page and look for the place to set up feed information set it up to be a feed type that uses the ical parser go to create content and create a new node using the ical feed content type when you create the node you will find a place to input the url of the feed and select the content type for the resulting nodes once the feed node has been created you will see a tab at the top where you can map its data to the fields in your target content type scroll down and look for options dtstart and options dtend and map them to the from date and to date fields then map any other information from the feed to right fields in the target node once the fields have been mapped use the remove items tab at the top of the page to eliminate nodes that may have been created before the fields were mapped then use the refresh tab to reimport them you can see in the content screen in the administration area that the nodes have been imported  ',0),(49,'help',' views integration ',0),(50,'help',' generic date argument the generic date argument is based on iso 8601 date duration and time interval standards and allows you to create an flexible argument for any date range for any date field the argument expects a value like 2006010120060115 or 2006w24 or p1w separate from and to dates or date and period with a double hyphen from and to dates in argument are iso dates but can be shortened and missing parts will be added omitted parts of iso dates will be assumed to be the first possible for the from date or the last possible for the to date value in that time period the to portion of the argument can be eliminated if it is the same as the from portion use instead of a date to substitute in the current date and time shortcuts are available use periods p1h p1d p1w p1m p1y to get next hour day week month year from now use date before p sign to get next hour day week month year from that date the iso standard calls for a separator between a date and the p but the separator is optional between a start date and a period in this argument to make the result easier to read use format like 2006w24 to find iso week number 24 in year 2006 examples  argument resulting query range 2006w24 24th iso week in 2006 2006 the whole year of 2006 200603 the whole month of mar 2006 200602200703 feb 1 2006 to mar 31 2006 20060831t1420060831t16 the 14th to 16th hours of aug 8 2006 20061231 now to 20061231t235959 p3h now to three hours from now p1y90d now to 1 year and 90 days from now 20060305p1w the week starting mar 5 2006 200601p3m 3 months starting jan 2006 see http enwikipediaorg wiki iso8601 weekdates for definitions of iso weeks see http enwikipediaorg wiki iso8601 duration for definitions of iso duration and time interval  ',0),(51,'help',' generic date filter the date api provides a generic date filter that can filter on any views date field  ',0),(52,'help',' embedding views embedding views embed a date browser view anywhere using the format dateembedview viewname displayname settings args settings are used to override some values of the view the primary setting that is useful here is a setting for blockidentifier the view s blockidentifier is used to control individual instances of regular and embedded views that contain date navigation so that they move separately or together all views that use the same identifier will move together all views that use different identifiers will move independently the identifier will show up in the url as a querystring like node 275 mini calendar 200810 examples   php print dateembedview myview page1 this will embed the first page display in the view myview php print dateembedview myview page1 array blockidentifer embedded array 2008w45 this will embed the first page display of the view and use embedded as an identifier set to show the week view for week 45 of 2008 php print dateembedview myview block1 array blockidentifier mini array 200807 this will embed the first block view of the view and use mini as an identifier set to show the month view for july 2008  ',0),(53,'help',' repeating date options dates will match any selection within the same box january or june when more than one box has criteria selected all of them are combined to create repeats january or june and day 1 or day 15 positive numbers count from the beginning of the period negative numbers count from the end of the period ie 1 is the last 2 is the next to last etc if you select every year above and march from month and 1 and 15 from day of month in the advanced options you will be selecting the 1st and 15th days of march of every year if you select every other month above and second tuesday in the advanced options you will be selecting the second tuesday of every other month if you select every year above and second tuesday in the advanced options you will be selecting the second tuesday of every year if you select every month above and january and june and first saturday in the advanced options you will be selecting the first saturday in january or june if you select every month above and 1 from day of month in the advanced options you will be selecting the last day of every month  ',0),(54,'help',' the php datetime object the datetime object is defined in php versions 52 and greater full documentation can be found at phpnet datetime  php s printr    devel module  s dpm   and similar functions and most debuggers are not able to show the properties of datetime objects the dateformat  function provides a good alternate method to debug datetime objects an example of its usage follows including some common datetime manipulation functions php create a datetime object for 11 november 2008 5pm chicago time date datecreate 20081111 170000 timezoneopen america chicago find out what time it is in new york datetimezoneset date timezoneopen america newyork now move it ahead to the following tuesday datemodify date 1 tuesday print out the result print dateformat date l r tuesday tue 18 nov 2008 180000 0500 the date api provides a helper function datemakedate string timezone type where string is a unixtimestamp an iso date or a string like yyyymmdd hh mm ss timezone is the name of the timezone this date is in and type is the type of date it is dateunix dateiso or datedatetime it creates and return a date object set to the right date and timezone  ',0),(55,'help',' date api functions preconfigured arrays both translated and untranslated values are available the dateweekdaysordered function will shift an array of week day names so it starts with the site s first day of the week otherwise the weekday names start with sunday as the first value the expected order for many php and sql functions datemonthnames datemonthnamesabbr datemonthnamesuntranslated dateweekdays dateweekdaysabbr dateweekdaysuntranslated dateweekdaysordered dateyears datehours dateminutes dateseconds datetimezonenames dateampm  miscellaneous date manipulation functions predefined constants and functions that will handle pre1970 and post2038 dates in both php 4 and php 5 in any os dates can be converted from one type to another and date parts can be extracted from any date type datedatetime dateiso dateunix datearray dateobject dateical dateconvert dateisvalid datepartisvalid datepartextract  date calculation and navigation datediff will find the time difference between any two days measured in seconds minutes hours days months weeks or years datedaysinmonth datedaysinyear dateweeksinyear datelastdayofmonth datedayofweek datedayofweekname datediff  date regex and format helpers predefined constants an array of date format strings and their equivalent regex strings dateregexloose is a very loose regex that will pull date parts out of an iso date with or without separators using either t or a space to separate date and time and with or without time dateformatdate is similar to formatdate except it takes a date object instead of a timestamp as the first parameter dateformatiso dateformatdatetime dateformatunix dateformatical dateregexiso dateregexdatetime dateregexloose dateformatdate datet dateshortformats datemediumformats datelongformats dateformatpatterns  ',0),(56,'help',' form elements usage example of date elements within forms  enable the date api module you might want to add a dependency in the info file of your module date api uses hookelements  to create custom form types you can check the file dateapielementsinc for the list of form types available and for other configuration options adding a date form element is then easy php your form builder function mymoduleform formstate form array snip add many fields to your form creating the date time element starts here provide a default date in the format yyyymmdd hh mm ss date 20081231 000000 provide a format using regular php format parts see documentation on phpnet if you re using a dateselect the format will control the order of the date parts in the selector rearrange them any way you like parts left out of the format will not be displayed to the user format ymd h i form date2 array type dateselect types datetext and datetimezone are also supported see inc file title select a date defaultvalue date dateformat format datelabelposition within see other available attributes and what they do in dateapielementsinc datetimezone america chicago optional if your date has a timezone other than the site timezone dateincrement 15 optional used by the dateselect and datepopup elements to increment minutes and seconds dateyearrange 3 3 optional used to set the year range back 3 years and forward 3 years is the default snip more fields including the submit button return form these are selfvalidating elements you shouldn t need to do anything except include them in your form you pass them parameters for the timezone format and a default value in the format yyyymmdd hh mm ss and it will convert your input into the format the element wants split the date and time into different fields as needed then accept and validate the user input and convert it back into a string in the same format you originally provided yyyymmdd hh mm ss so you pass it a string and it will pass back a string by the time you get to your own validation function you are responsible for doing your own timezone conversion the element uses the timezone just so it can create a date object with the right timezone for doing its formatting so if you need to do timezone conversion you pull your utc date out of the database and convert it to a local date pass that value to the date element then take what it returns and convert it back to utc and store it in the database again if the date popup module is enabled a datepopup element can be used it works like the other elements but splits the date and time into separate parts you control whether it uses date or date and time by the format you supply in dateformat if you don t have any time parts in the format you won t get a time element note that the jquery widget the date part of the popup can only accept a limited number of formats things like ymd or m d y or dmy  ',0),(57,'help',' timezone handling creating a timezone form item using date api this is simple just use the datetimezone type which is provided by dateapimodule php form timezone array type datetimezone defaultvalue timezone description select a timezone if all the events will happen in the same place select that place s timezone  converting to and from utc in the new system you just need to know the timezone name and either the utc or local time we store the utc time and the timezone name in the database in two separate fields we retrieve that data and do php date the utc value from the database localzone the name of the local timezone type the type of date value datedatetime dateiso or dateunix date datemakedate date utc type datetimezoneset date timezoneopen localzone date now contains the local value of the date output it like print dateformatdate date custom m d y h i to convert a local date back to utc to store it in the database do php date local date value localzone the name of the local timezone type the type of date value datedatetime dateiso or dateunix date datemakedate date localzone type datetimezoneset date timezoneopen utc date now contains the utc value of the date output it like print dateformatdate date custom m d y h i  use of timezone abbreviations the api doesn t handle timezone abbreviations at all there s no way to do it right because they are not unique est could be eastern standard time or european summer time we need the full undeprecated timezone name which looks like america chicago it is comprised of the name of the continent and the major city in the timezone older names like us central are deprecated because the area names change but city names rarely do some good info about timezones is at http enwikipediaorg wiki zoneinfo also we do not use spaces in the timezone names so we use america newyork not america new york the php 52 date functions and mysql native timezone handling all expect names without spaces in them to work correctly you can use the php function timezonenamefromabbr  to try to translate to and from abbreviations but it s not entirely reliable as noted above if we have the current offset and we know if it s currently daylight savings time or not you can combine that with the abbreviation to get the timezone name but that s a lot of if s timezone names the complete list of allowed undeprecated timezone names is africa algiers africa asmera africa bangui africa blantyre africa brazzaville africa bujumbura africa cairo africa ceuta africa daressalaam africa djibouti africa douala africa gaborone africa harare africa johannesburg africa kampala africa khartoum africa kigali africa kinshasa africa lagos africa libreville africa luanda africa lubumbashi africa lusaka africa malabo africa maputo africa maseru africa mbabane africa mogadishu africa nairobi africa ndjamena africa niamey africa portonovo africa tripoli africa tunis africa windhoek america adak america anchorage america anguilla america antigua america araguaina america aruba america asuncion america atka america barbados america belem america belize america boavista america bogota america boise america buenosaires america cambridgebay america cancun america caracas america catamarca america cayenne america cayman america chicago america chihuahua america cordoba america costarica america cuiaba america curacao america dawson america dawsoncreek america denver america detroit america dominica america edmonton america eirunepe america elsalvador america ensenada america fortwayne america fortaleza america glacebay america godthab america goosebay america grandturk america grenada america guadeloupe america guatemala america guayaquil america guyana america halifax america havana america hermosillo america indiana indianapolis america indiana knox america indiana marengo america indiana vevay america indianapolis america inuvik america iqaluit america jamaica america jujuy america juneau america kentucky louisville america kentucky monticello america knoxin america lapaz america lima america losangeles america louisville america maceio america managua america manaus america martinique america mazatlan america mendoza america menominee america merida america mexicocity america miquelon america monterrey america montevideo america montreal america montserrat america nassau america newyork america nipigon america nome america noronha america panama america pangnirtung america paramaribo america phoenix america portauprince america portofspain america portoacre america portovelho america puertorico america rainyriver america rankininlet america recife america regina america riobranco america rosario america santiago america santodomingo america saopaulo america scoresbysund america shiprock america stjohns america stkitts america stlucia america stthomas america stvincent america swiftcurrent america tegucigalpa america thule america thunderbay america tijuana america tortola america vancouver america virgin america whitehorse america winnipeg america yakutat america yellowknife antarctica casey antarctica davis antarctica dumontdurville antarctica mawson antarctica mcmurdo antarctica palmer antarctica southpole antarctica syowa antarctica vostok arctic longyearbyen asia aden asia almaty asia amman asia anadyr asia aqtau asia aqtobe asia ashgabat asia ashkhabad asia baghdad asia bahrain asia baku asia bangkok asia beirut asia bishkek asia brunei asia calcutta asia chungking asia colombo asia dacca asia damascus asia dhaka asia dili asia dubai asia dushanbe asia gaza asia harbin asia hongkong asia hovd asia irkutsk asia istanbul asia jakarta asia jayapura asia jerusalem asia kabul asia kamchatka asia karachi asia kashgar asia katmandu asia krasnoyarsk asia kualalumpur asia kuching asia kuwait asia macao asia magadan asia manila asia muscat asia nicosia asia novosibirsk asia omsk asia phnompenh asia pyongyang asia qatar asia rangoon asia riyadh asia riyadh87 asia riyadh88 asia riyadh89 asia saigon asia samarkand asia seoul asia shanghai asia singapore asia taipei asia tashkent asia tbilisi asia tehran asia telaviv asia thimbu asia thimphu asia tokyo asia ujungpandang asia ulaanbaatar asia ulanbator asia urumqi asia vientiane asia vladivostok asia yakutsk asia yekaterinburg asia yerevan atlantic azores atlantic bermuda atlantic canary atlantic capeverde atlantic faeroe atlantic janmayen atlantic madeira atlantic southgeorgia atlantic stanley australia act australia adelaide australia brisbane australia brokenhill australia canberra australia darwin australia hobart australia lhi australia lindeman australia lordhowe australia melbourne australia nsw australia north australia perth australia queensland australia south australia sydney australia tasmania australia victoria australia west australia yancowinna europe amsterdam europe andorra europe athens europe belfast europe belgrade europe berlin europe bratislava europe brussels europe bucharest europe budapest europe chisinau europe copenhagen europe dublin europe gibraltar europe helsinki europe istanbul europe kaliningrad europe kiev europe lisbon europe ljubljana europe london europe luxembourg europe madrid europe malta europe minsk europe monaco europe moscow europe nicosia europe oslo europe paris europe prague europe riga europe rome europe samara europe sanmarino europe sarajevo europe simferopol europe skopje europe sofia europe stockholm europe tallinn europe tirane europe tiraspol europe uzhgorod europe vaduz europe vatican europe vienna europe vilnius europe warsaw europe zagreb europe zaporozhye europe zurich indian antananarivo indian chagos indian christmas indian cocos indian comoro indian kerguelen indian mahe indian maldives indian mauritius indian mayotte indian reunion pacific apia pacific auckland pacific chatham pacific easter pacific efate pacific enderbury pacific fakaofo pacific fiji pacific funafuti pacific galapagos pacific gambier pacific guadalcanal pacific guam pacific honolulu pacific johnston pacific kiritimati pacific kosrae pacific kwajalein pacific majuro pacific marquesas pacific midway pacific nauru pacific niue pacific norfolk pacific noumea pacific pagopago pacific palau pacific pitcairn pacific ponape pacific portmoresby pacific rarotonga pacific saipan pacific samoa pacific tahiti pacific tarawa pacific tongatapu pacific truk pacific wake pacific wallis pacific yap pacific frenchpolynesiamarquesasislands utc  ',0),(58,'help',' ical parser standardized ical parser and creator the ical parser is found in dateapiicalinc which is not included by default include that file if you want to use these functions this feature can be used to parse vevents vlocations valarms and all kinds of timezone options and repeat rules for ical imports the ical parser is used by feed api to import ical feeds  dateicalexport dateicalimport dateicaldateformat  ',0),(59,'help',' views date handling custom modules and add their own dates to the list the date api views filter and date api views argument can handle see the following example for the way that core dates have been added implementation of hookdateapifields on behalf of core fields all modules that create custom fields that use the viewshandlerfielddate handler can provide additional information here about the type of date they create so the date can be used by the date api views date argument and date filter function dateapidateapifields field values array the type of date dateunix dateiso datedatetime sqltype dateunix timezone handling options none site date utc tzhandling site needed only for dates that use date tzhandling timezonefield needed only for dates that use date tzhandling offsetfield array of tablefield values for related fields that should be loaded automatically in the views sql relatedfields array granularity of this date field s db data granularity array year month day hour minute second switch field case userscreated case usersaccess case userslogin case nodecreated case nodechanged case noderevisionstimestamp case filestimestamp case nodecountertimestamp case accesslogtimestamp case commentstimestamp case nodecommentstatisticslastcommenttimestamp return values  ',0),(60,'help',' readme readmetxt a module containing helper functions for drupal developers and inquisitive admins this module can print a log of all database queries for each page request at the bottom of each page the summary includes how many times each query was executed on a page and how long each query took it also a block for running custom php on a page a block for quickly accessing devel pages a block for masquerading as other users useful for testing reports memory usage at bottom of page more this module is safe to use on a production site just be sure to only grant access development information permission to developers also a dpr function is provided which pretty prints arrays and strings useful during development many other nice functions like dpm dvm ajax developers in particular ought to install firephp core from http wwwfirephporg and put it in the devel directory your path to fbphp should looks like devel firephpcore lib firephpcore fbphp you can use svn checkout http firephpgooglecodecom svn trunk trunk libraries firephpcore then you can log php variables to the firebug console is quite useful included in this package is also develthemermodule which outputs deep information related to all theme calls on a page develnodeaccess module which prints out the nodeaccess records for a given node also offers hooknodeaccessexplain for all node access modules to implement handy develgeneratemodule which bulk creates nodes users comment terms for development macro module has moved to http drupalorg project macro compatibility notes modules that use ahah may have incompatibility with the query log and other footer info consider setting globals develshutdown false in order to avoid issues modules that use ajax should idenify their response as contenttype text javascript the easiest way to do that is run your reply through drupaljson author maintainer moshe weitzman weitzman at tejasa dot com  ',0),(61,'help',' readmedevelnodeaccess readme this module contains tools for developers using access control modules to restrict access to some nodes it is intended to help catch some common mistakes and provide feedback to confirm that restricted nodes are in fact visible only to the intended users provides a summary page which queries the nodeaccess table and reports common mistakes such as the presence of drupal s default entry which grants all users read access to all nodes also reports the presence of nodes not represented in nodeaccess table this may occur when an access control module is installed after nodes have already been created provides a block which shows all nodeaccess entries for the nodes shown on a given page this gives developers a quick check to see that grants are provided as they should be this block autoenables to the footer region you may move it as desired if you enable dba debug mode on the devel settings page you will get more information provides a second block that shows and explains the crud access rights of the 10 most recently active users this block is disabled by default because it has a huge overhead if views module is installed allows browsing of nodes by realm including those nodes not in the nodeaccess table null realm wishlist things i d like to see but haven t had time to do automatically solve common problems ie delete the all realm entry and automatically save all nodes not in the nodeaccess table nicer feedback indicating whether nodes are visible to the public or not ie use color coding or icons summary does not differentiate between view grants and other types of grants i personally use nodeaccess only for view grants so i m not sure exactly what else it should show staff original author dave cohen aka yogadex on drupalorg current maintainer hans salvisberg aka salvis on drupalorg  ',0),(62,'help',' readme  id readmetxt v 1121 20080718 202244 alexua exp embedded video field author aaron winborn development began 20070223 requires drupal 6 content cck emfield optional views this extensible module will create a field for node content types that can be used to display video and thumbnails from various third party video providers when entering the content the user will simply paste the url or embed code of the video and the module will automatically determine which content provider is being used when displaying the video the proper embedding format will be used the module already supports youtube google revver myspace metacafe jumpcut brightcove sevenload ifilm and bliptv video formats more are planned to be supported soon an api allows other third party video providers to be supported using simple include files and provided hooks developers examine the documentation of providers youtubeinc for help in adding support for new providers the administer of a site may decide whether to allow all content providers or only a certain number of them they may further be limited when configuring the field on the display fields settings page the administrator may further choose how to display the video for teasers and body videos may be displayed in a preview or full size each of configurable sizes when available by a provider thumbnails may also be displayed and sized appropriately any necessary api calls to third party providers are cached other features available are allowing a video to autoplay or changing the size of the video those features will be set when creating or editing the specific field note that not all options are supported by all providers you can see a list of what features are currently supported by a provider at admin content emfield some providers may provide other features that are supported by video cck such as affiliate programs with revver or related video thumbnails with youtube embedded within the video you can find those settings at admin content emfield in the fieldset for the specific provider questions can be directed to winborn at advomatic dot com  ',0),(63,'help',' readme  id readmetxt v 1166 20081112 181437 aaron exp embedded media field author aaron winborn aaron maintainers aaron winborn aaron alex urevickackelsberg alex ua development began 20070613 requires drupal 5 or 6 content cck optional views feedapi feedapi element mapper see this for instructions for importing embedded video feeds http zivtechcom blog modulemashupcreatingafeedembeddedvideosusingemfiel media actions asset thickbox the embedded media field creates a field for nodes created with cck to accept pasted url s or embed code from various third party media content providers such as youtube and flickr it will then parse the url to determine the provider and display the media appropriately currently the module ships with embedded video field embedded image field and embedded audio field in addition it has embedded media import to import photosets and playlists into individual nodes when allowed by specific providers finally it also ships with embedded media thumbnail which allows editors to override providersupplied thumbnails with their own custom image thumbnails the module also allows field provider specific settings and overrides such as autoplay resized thumbnails or videos for teasers rss support and youtube s related videos you can turn off individual provider support on a field or global basis refreshing data there are some instances in which your thirdparty data may need to be refreshed that should be the first step to take if you notice media not working that used to work before you can refresh an individual node s thirdparty multimedia data by editing its node and resubmitting the info you can also do this for multiple nodes by visiting the content management administration page by browsing to administer content management content at admin content node then select the nodes you wish to refresh checking their respective check boxes selecting reload embedded media data from the update options dropdown and pressing the update button if you have the job queue module enabled from http drupalorg project jobqueue you will be able to similarly refresh all nodes on your site by visiting the reload data tab that will then appear on the embedded media field configuration page by browsing to administer content management embedded media field configuration reload data at admin content emfield reload then select the content type s you wish to refresh and press the submit button all nodes will then be refreshed on your next cron batch or several crons if you have a lot of nodes on your site providers currently supported providers video bliptv brightcove daily motion google guba jumpcut imeem lastfm livevideo metacafe myspace revver sevenload spiketv tudou veoh vimeo youtube local videos when already uploaded in the files directory image flickr imageshack photobucket picasa audio odeo podcast alley podomatic you can administer emfield s general settings at administer content emfield add embedded media fields to your content types at administer content types yourtype addfield manage teaser and full node display settings at administer content types yourtype fields for the most uptodate documentation please see http drupalorg node 184346 ',0),(64,'help',' readme  id readmetxt v 16 20090327 035637 quicksketch exp filefield provides an file field type to cck it provides many advantages over the drupal core upload module including perfield upload control file extensions file size pernode upload size limits multiple fields per content type customizable paths for saving uploads plus token support for dynamic paths icons for uploaded file types filefield was written by darrel opry dopry maintained by nathan haug quicksketch and andrew morton drewish dependencies content filefield also provides additional features when used with the following imagefield see an image preview during editing token generate dynamic paths when saving images imagecache create thumbnails of images on output if your site is any larger than a personal blog you should definitely install the following modules to increase the security and stability of your uploads transliteration convert unsafe characters to file system safe names mimedetect check the content of files to ensure they match the extension install 1 copy the filefield folder to the modules folder in your installation 2 enable the module using administer site building modules admin build modules 3 create a new file field in through cck s interface visit administer content management content types admin content types then click manage fields on the type you want to add an file upload field select file as the field type and file as the widget type to create a new field 4 upload files on the node form for the type that you set up  ',0),(65,'help',' readme imageapi a non writing image manipulation api for drupal this api is meant to be used in place of the api provided by imageinc you probably do not need to install this module unless another module are you using requires it it provides no new features to your drupal site it only provides an api other modules can leverage changes from imageinc api images are objects images are not written on each image operation and must be explicitly closed when processing is complete multiple image toolkits can be used simultaneously however only the image toolkit and image was opened with can be used to process it this is hidden in the imageapi layer api quick reference imageapiimagescaleandcrop image width height imageapiimagescale image width height upscale false imageapiimageresize image width height imageapiimagerotate image degrees bgcolor 0x000000 imageapiimagecrop image x y width height imageapiimagedesaturate image imageapiimageopen file toolkit false imageapiimageclose image destination image is an image object returned from imageapiimageopen expanding imageapi if you wish to expand on imageapi add a new wrapper function to imageapimodule do any common preprocessing for all underlying layers in the wrapper function then invoke the driver pay heed to the function naming in imageapi and imageapi gd if the toolkit changes the size of an image it must update the image info width and image info height variables all toolkit functions should return true on success and false on failure for more detailed documentation read imageapimodule dopry  ',0),(66,'help',' readme imageapi a non writing image manipulation api for drupal this api is meant to be used in place of the api provided by imageinc you probably do not need to install this module unless another module are you using requires it it provides no new features to your drupal site it only provides an api other modules can leverage changes from imageinc api images are objects images are not written on each image operation and must be explicitly closed when processing is complete multiple image toolkits can be used simultaneously however only the image toolkit and image was opened with can be used to process it this is hidden in the imageapi layer api quick reference imageapiimagescaleandcrop image width height imageapiimagescale image width height upscale false imageapiimageresize image width height imageapiimagerotate image degrees bgcolor 0x000000 imageapiimagecrop image x y width height imageapiimagedesaturate image imageapiimageopen file toolkit false imageapiimageclose image destination image is an image object returned from imageapiimageopen expanding imageapi if you wish to expand on imageapi add a new wrapper function to imageapimodule do any common preprocessing for all underlying layers in the wrapper function then invoke the driver pay heed to the function naming in imageapi and imageapi gd if the toolkit changes the size of an image it must update the image info width and image info height variables all toolkit functions should return true on success and false on failure for more detailed documentation read imageapimodule dopry  ',0),(67,'help',' readme imagecache is a dynamic image manipulation and cache tool it allows you to create a namespace that corresponds to a set of image manipulation actions it generates a derivative image the first time it is requested from a namespace until the namespace or the entire imagecache is flushed getting started 1 upload and enable both the imagecache and imagecache ui modules 2 go to administer site building imagecache click on the local task tab labeled add new preset to build a new set of image manipulation actions 3 enter a descriptive name of your choice eg productthumbnail into the preset namespace box and click create new preset 4 add actions to your preset that tell imagecache how to manipulate the original image when it is rendered for display available actions include crop scale desaturate grey scale resize and rotate multiple actions may be added to a preset 5 each action is configured in its own form and the actions may be reordered from the preset s configuration form if you need to make any changes to the order of actions in a preset remember to click update preset when you re finished viewing manipulated images your modified image can be viewed by visiting a url in this format http examplecom files imagecache presetname files imagenamejpg for example if your preset is named productthumbnail and your image is named greenwidgetjpg you could view your modified image at http examplecom files imagecache productthumbnail files greenwidget note each role that wishes to view the images generated by a particular preset must be given permission on the admin user permissions page imagecache also defines a theme function that you can use in your modules and themes to automatically display a manipulated image for example to use the theme function in a tplphp file add the following line where you would like the image to appear change presetnamespace to the name of your imagecache preset and make sure that imagefilepath or some other variable contains the actual filepath to the image you would like to display alt title and attributes are optional parameters that specify alt title text for the image element in the html or other attributes as specified in the attributes array using imagecache with contributed modules imagecache presets can be put to use in various other modules for example when using cck with the imagefield module you can use the display fields local task tab to choose a preset to apply to images in that field similarly you can specify a preset when displaying images attached to nodes using imagefield in a view through the views ui for more information refer to http drupalorg node 163561 images page names and form field names may refer to previous versions of imagecache but the concepts are the same  ',0),(68,'help',' readme imagecache is a dynamic image manipulation and cache tool it allows you to create a namespace that corresponds to a set of image manipulation actions it generates a derivative image the first time it is requested from a namespace until the namespace or the entire imagecache is flushed getting started 1 upload and enable both the imagecache and imagecache ui modules 2 go to administer site building imagecache click on the local task tab labeled add new preset to build a new set of image manipulation actions 3 enter a descriptive name of your choice eg productthumbnail into the preset namespace box and click create new preset 4 add actions to your preset that tell imagecache how to manipulate the original image when it is rendered for display available actions include crop scale desaturate grey scale resize and rotate multiple actions may be added to a preset 5 each action is configured in its own form and the actions may be reordered from the preset s configuration form if you need to make any changes to the order of actions in a preset remember to click update preset when you re finished viewing manipulated images your modified image can be viewed by visiting a url in this format http examplecom files imagecache presetname files imagenamejpg for example if your preset is named productthumbnail and your image is named greenwidgetjpg you could view your modified image at http examplecom files imagecache productthumbnail files greenwidget note each role that wishes to view the images generated by a particular preset must be given permission on the admin user permissions page imagecache also defines a theme function that you can use in your modules and themes to automatically display a manipulated image for example to use the theme function in a tplphp file add the following line where you would like the image to appear change presetnamespace to the name of your imagecache preset and make sure that imagefilepath or some other variable contains the actual filepath to the image you would like to display alt title and attributes are optional parameters that specify alt title text for the image element in the html or other attributes as specified in the attributes array using imagecache with contributed modules imagecache presets can be put to use in various other modules for example when using cck with the imagefield module you can use the display fields local task tab to choose a preset to apply to images in that field similarly you can specify a preset when displaying images attached to nodes using imagefield in a view through the views ui for more information refer to http drupalorg node 163561 images page names and form field names may refer to previous versions of imagecache but the concepts are the same  ',0),(69,'help',' readme  id readmetxt v 15 20090316 233417 quicksketch exp imagefield provides an image widget type to cck this module leverages the functionality of filefield and behaves nearly identically imagefield widgets will give you a nice thumbnail preview of the image when uploaded and provides a few display options formatters within cck to display the images when the content is viewed imagefield was written by darrel opry dopry maintained by nathan haug quicksketch and andrew morton drewish dependencies filefield content imagefield also provides additional features when used with the following token generate dynamic paths when saving images imagecache create thumbnails of images on output install 1 copy the imagefield folder to the modules folder in your installation 2 enable the module using administer site building modules admin build modules 3 create a new image field in through cck s interface visit administer content management content types admin content types then click manage fields on the type you want to add an image upload field select file as the field type and image as the widget type to create a new field  ',0),(70,'help',' readme  id readmetxt v 1145 20091006 054818 yhager exp overview imagefieldcrop provides a widget for cropping an image after upload usage when the user uploads an image the image is presented inside a cropping area a cropping box is shown inside and the user can resize and move it upon clicking preview or submit the image is cropped and the result is saved within the node features dynamic preview is presented during cropping original image is displayed every time for recropping the original image is used for cropping for best quality ability to define the crop interface resolution ability to define the output image resolution and enforce it prerequisites you will need imagefield and imageapi enabled in order to use this module along with a graphics processing engine gd imagemagick or anything else imageapimodule can work with installation install the module and enable it set appropriate permissions at admin user permissions under sections contentpermissions module node module on the imagefield configuration page admin content types fields choose the image with cropping widget save your field you can set the widget settings form where you can choose the cropping box size and other configuration options upon uploading an image or editing an existing node the image cropping interface will be presented  ',0),(71,'help',' readme  id readmetxt v 11129 20100201 154258 ufku exp imce is an image file uploader and browser that supports personal directories and quota imce can easily be integrated into any wysiwyg editor or any web application that needs a file browser see integration methods for more information features basic file operations upload delete image jpg png gif operations resize create thumbnails preview support for private downloads configurable limits for user roles file size per upload total directory size quota file extensions and image dimensions personal or shared folders for users userfriendly interface directory and file listing file sorting by name size dimensions date selecting preview keyboard shortcuts up down insert or enter delete builtin support for inline image file insertion into textareas new in 6x improved ui tabbed interface for file operations resizable workspaces ftplike directory navigation log messages additional keyboard shortcuts home end ctrl a r esize t humbnails u pload multiple file selection using ctrl or shift ajax file operations operate on multiple files at a time directory caching themable layout using tpl files improved configuration profiles multiple personal or shared directory assignments for users permissions per directory option to use total user quota together with the directory quota replace method options for existing files multiple thumbnail definitions new integration api for wysiwyg editors installation 1 copy imce directory to your modules directory 2 enable the module at admin build modules 3 create configuration profiles and assign them to user roles at admin settings imce 4 test it at user userid imce or imce 5 see integration methods to make imce collaborate with your application if it s not already integrated notes when you configure imce for inline image file insertion into textareas there should appear an imce link under each textarea you specified if you are uploading files containing unicode characters it is strongly recommended to use the transliteration module that sanitizes filenames by converting characters from unicode to usascii http drupalorg project transliteration if you are using cck you may want to check the imce cck image module at http drupalorg project imceimage or the file field sources module at http drupalorg project filefieldsources frequently faced issues inaccessible invalid directory or subdirectory in some server configurations manually ftp or directly created directories may not be writable by php by imce in this case you have to set the chmod permissions of the directory to 0777 in order to make it writable by anyone you should also make sure that in each configuration profile all of the defined directories are located under drupal s file system path which is usually files and also if safe mode restriction is active in your server don t expect imce to run flawlessly disappearing images after node submission having nothing to do with imce it appeared many times in issue queues this is an input filtering issue that can be resolved by adding tag into the default input format using full html is another solution see admin settings filters no browse button in ie ff at all probably talking about tinymce or fckeditor see integration methods to learn to integrate it by yourself upload does not work in opera jquery form plugin before version 209 has problems with opera 92 replace drupal s misc jqueryformjs with the one at http jquerymalsupcom form download imce may have problem working with google analytics and secure pages modules just make sure to add imce path to the exceptions list of these modules integration methods if you are using wysiwyg module you must also download and install http drupalorg project imcewysiwyg bridge module and enable imce as a plugin in wysiwyg settings here are the applications whose users are lucky that they don t have to read the details of integration methods bueditor obviously the author knows how to integrate imce to his application users need nothing to do fckeditor without wysiwyg another module from another blessed author which makes imce integration as simple as a single click fckeditor profile file browser settings imce integration note one can also override the settings at advanced settings custom javascript configuration here are the lines that force imce integration don t force unless you need to linkbrowser true imagebrowser true flashbrowser true linkbrowserurl q imce app fckeditor url txturl imagebrowserurl q imce app fckeditor url txturl width txtwidth height txtheight flashbrowserurl q imce app fckeditor url txturl there may be other applications that integrated imce already if your application is not one of them please keep reading let s create a case and embody the imce integration on it an application named myapp has an url field for file url has a browse button with click event this can be a text link or anything that is clickable now let s go through the integration methods and define the openfilebrowser function that opens imce and makes it fill our url field on file selection integration by url when imce is opened using an url that contains app applicationname fileproperty1 fieldid1 fileproperty2 fieldid2 the specified fields are filled with the specified properties of the selected file avaliable file properties are url name size formatted width height date formatted bytes integer size in bytes time integer date timestamp id file id for newly uploaded files 0 or integer relpath rawurlencoded path relative to file directory path in our case we should open imce using this url q imce app myapp url urlfield which contains our application name and our url field id function openfilebrowser windowopen q imce app myapp url urlfield width 760 height 560 resizable 1 that s all we need leave the rest to imce it will automatically create an operation tab named send to myapp that sends the file url to our url field clicking the files in preview do the same thing as well what if we had another field for another file property eg size we should have opened imce using this url q imce app myapp url urlfield size filesize using imceload you can point a predefined function to be executed when imce loads when the url is like app myapp imceload myonloadfunc imce looks for myonloadfunc in the parent window and executes it with the window parameter referring to imce window function myonloadfunc win any method of imce is available through winimce winimcesetsendto give it to myapplication baby myfilehandler you should also define myfilehandler using sendto you can point a predefined function to which the selected files are sent when the url is like app myapp sendto myfilehandler imce calls myfilehandler function of the parent window with file and window parameters function myfilehandler file win urlfieldid val fileurl insert file url into the url field winclose close imce usually sendto method is easier to implement on the other hand imceload method is more flexible as you manually add your sento operator and also can do any modification before imce shows up advanced integration in case your application wants to go beyond the simple give me that file property interaction with imce your application wants imce to send multiple files to it eg a gallery application your application wants to gain total control over imce then you should consider applying advanced integration the initial step of advanced integration is the same as imceloadintegration above we open imce and set its onload function windowopen q imce app myapp imceload initiatemyapp width 760 height 560 resizable 1 initiatemyapp win will run when imce loads now we define our initiator function in which we do the necessary manipulations to imce interface initiatemyapp function win var imce winimce use imce methods to add remove change things allright but what do we add romeve change in imce depends on our goal here are some properties and methods that can help us to achieve it hooks imcehooksload an array of functions that run after imce loads they are called with the window parameter imcehookslist an array of functions that run while processing the file list each row of the file list is sent to these functions imcehooksnavigate an array of functions that run after a directory is loaded parameters sent are data from ajax or cache olddirectory cached boolean that states the data is from the cache or not imcehookscache an array of functions that run just before a new directory is loaded parameters are cacheddata and newdirectory directory related properties imcetree stores the directory list where imcetree is the root element directory related methods imcediradd directoryname parentelement clickable adds directoryname under parentelement ex imcediradd foo imcedir true imcedirsubdirs directoryname subdirectories adds each subdirectory in subdirectories array under directoryname ex imcedirsubdirs foo bar baz file related properties imcefindex indexed array of files table rows that contain file properties imcefids object containing fileid file name file row pairs imceselected object containing currently selected fileid file name file row pairs file related methods imcefileadd file adds the file object to the list file object has the properties name size bytes width height date timestamp fsize formatted fdate formatted imcefileremove fiileid removes the file having the fileid from the list imcefileget fileid returns the file object having the fileid file object contains name url size bytes width height date time id file id for newly uploaded files 0 or integer relpath rawurlencoded path relative to file directory path file operations imceopadd op adds an operation tab to the interface op contains name title content optional func optional onclick function imceopenable name imceopdisable name enable disable operation tabs miscellaneous imcesetmessage msg type logs a message of the type status warning error note all url strings in the examples start with considering the base path is in case your drupal is running on a sub directory eg http localhost drupal these urls should start with drupal there is a safer solution that does not require manual url fixing if the drupal javascript object is avaliable in your page you can use drupalsettingsbasepath at the beginning of urls drupalsettingsbasepath q imce note that this won t work with multilingual paths with language prefixes file and directory ids names used in imcejs are url encoded forms of original names they are decoded using imcedecode and displayed in the lists ',0),(72,'help',' readme  id readmetxt v 13 20090706 222713 sun exp summary this module is acts as a bridge between the imce module and the wysiwyg api module for a full description of the module visit the project page http drupalorg project imcewysiwyg to submit bug reports and feature suggestions or to track changes http drupalorg project issues imcewysiwyg requirements imce wysiwyg api installation install as usual see http drupalorg node 70151 for further information configuration enable the image button as imce is accessed from the image plugin enable the imce plugin in the plugins buttons configuration of the wysiwyg profiles of your choice usage please consult the documentation of imce for further information this is just an integration module troubleshooting no known issues yet faq no known issues yet contact current maintainers aaron hawkins http drupalorg user 128806 daniel f kudwien sun http drupalorg user 54136  ',0),(73,'help',' readme  id readmetxt v 114221 20090320 072358 dww exp original author boris mann http drupalorg user 4426 co maintainers nathan haug quicksketch http drupalorg user 35821 simon hobbs sime http drupalorg user 35266 jeansebastien senecal tatien http drupalorg user 1323 moshe weitzman http drupalorg user 23 derek wright dww http drupalorg user 46549 this is the start of helper functions for people creating install profiles instructions 1 put installprofileapi in your profile s hookprofilemodules array 2 in your profile s hookprofiletasks call installinclude like so function fooprofiletasks installinclude fooprofilemodules whatever else you need to do discussion first announcement http groupsdrupalorg node 3179 distributions group http groupsdrupalorg distributions support feature requests etc http drupalorg project issues installprofileapi  ',0),(74,'help',' testing procedure gmap 1x location 3x tester checklist setup from scratch enable modules visit admin settings gmap and configure api key visit admin settings filters and set up a gmap filter visit admin content types and create if desired and locationenable a content type visit admin settings location geocoding and configure geocoding for a country visit admin user settings and configure the location fields section visit admin build block and enable the author map and location map blocks visit admin build block configure gmaplocation 1 and enable the author block for the content type you locationenabled tests 1 gmap macros visit map macro  play with the controls and ensure map responds play with map and ensure controls respond doodle on the map make sure drawing controls work as expected copy macro open another window tab create a node set filter to gmap filter and paste macro save node compare display of map to macro in other window tab tests 2 location user edit your user account add your location ensure geocoding works ensure the data is not lost when going back to edit tests 3 location nodes create a node with locative information ensure author map and location map display as expected advanced section stuff involving special setup or advanced knowledge advanced upgrade path create test site on location 27 perform tasks from setup from scratch section create or import test data install location 3 attempt to perform updates ensure in database that data was properly split off into locationinstance ensure site settings are in a sane state you should not get any misconfigurationrelated warnings errors visually inspect some locations on site advanced nonstandard usage disable gmap and create locative nodes ensure form continues to work in the absence of gmap  ',0),(75,'help',' country api note  this file describes the original country api while the api itself hasn t changed some things have moved in directions not forseen by this documentation for example there is less emphasis today on postal data and more emphasis on geocoding webservices please take this documentation with a grain of salt until it is fully cleaned up and brought up to date locationxxinc adding support for an unsupported country this file is a php programmer s description of what needs to be done in order to extend the location system to support locationes from a new country let s suppose we want to extend the location system to support locationes from belgium to this end there are 2 tasks task 1 we use the lowercase of the country s twoletter iso 3166 code to create a file locationbeinc that defines the necessary functions that will hook into the location system this way when a highlevel function in the public location api receives a call that uses some belgium specific function the call will be delegated to the appropriately named function in locationbeinc task 2 you need postal code data for your country this postal code data needs to be able to connect the baselength postal code eg us postal codes can be 9 digits but we re only interested to the level of 5 digits and most people only know the 5digit version to a city province state country duh and a latitude longitude pair in degrees that represents the approximate center of the postal code s area ultimately you will want to create a database dump that inserts these fields into specific columns zip for postal codes city for city names province for the standard state province country abbreviation country for the lowercase of the country s two letter iso code latitude for the latitude in degree value as opposed to radian value and longitude for the degree value of the longitude in a lot of countries this data costs money you cannot simply create a dump and then publish it on drupalorg unless the data is free to redistribute however if you are interested in buying this data from some vendor and using it on your own site you can do so but may have to acquire a new license for each seperate business or web site for which you wish to use postal code data if in fact you had to pay a fee or license for this data this postalcodetolat lon mapping is important if you want to enable locationbased proximity searches of anykind for addresses in a particular country the module will still work fine without it but will not be able to support searches based on postal codes contents of locationbeinc this file will need to implement a handful of functions with the parameters and return values described below it is possible to not implement all of these functions since the caller usually checks to see if the function exists before calling it but it may limit the number of features the location system will be able to support for your country for an example implementation of the functions described below see supported locationusinc function themelocationbe location hide param location an associative array location where street the street portion of the location additional additional street portion of the location city the city of the location province the province state or territory country lowercased twoletter iso code required postalcode the international postal code for this location required param hide an linear array where the values are the location fields to suppress in the themed display return a string of the themed location the entire location should be enclosed by dl class location dl tags the different lines of the location should be enclosed by dl dl tags the idea is to allow countryspecific files to change the display of an location from the default theming done in themelocation defined in locationinc function locationprovincelistbe returns an associative array where the keys are the alluppercase standard postal abbreviation for provinces territories and like subdivisions the values are the fully spelled names of the abbreviated names preferrably these will be sorted by the full name function locationmaplinkbe location returns a deeplink to an online mapping service eg yahoo maps mapquest or some other preferrably free service given a full partial location in the format described in public api document locationapitxt param location an associative array location where street the street portion of the location additional additional street portion of the location city the city of the location province the province state or territory country lowercased twoletter iso code required postalcode the international postal code for this location required return a url with encoded http get variables to a free onlinemapping service note url not html link null if there is not even enough information to generate even a semiuseful link useful may depend entirely on the mapping service you choose to link to you are advised to experiment usually a city province combination is enough as is a postal code by itself however some services get confused when all fields are supplied some mapping services will be unable to map a city province location while they can t do anything with a postal code while others map postal codes fine but can t do anything useful with a city province pair function locationmaplinkbeproviders returns an array of mapping services to which the generation of deeplinks is supported supported means that the function for that particular mapping service has been defined for example if the locationbeinc file for belgium has functions for taking a location and generating a deeplink to yahoo maps and google this function will return that list in an array that give additional info see locationusinc for an example return an associative array where the keys are single words no spaces that identify a function in the same file for returning a deep link for example yahoo means locationmaplinkbeyahoo google means locationmaplinkbegoogle the values are themselves associative arrays with 3 expected keys name the name of the mapping service in the case of yahoo it would be yahoo maps url the full url of the main page of the mapping service ie the home page tos the full url of the terms of service for the mapping service function locationmaplinkbedefaultproviders returns an array of default mapping services it may happen that the site administrator has not yet made it to the settings page for selecting mapping providers in this case we want to tell the location modules which one to use as defaults to help the site admin avoid being in violation of each mapping services s terms of service we return a linear array whose values are the appropriately selected keys in the array returned the locationmaplinkxxproviders function return a linear array with the oneword nospaced identifiers used to identify the mapping function these should only be for the mapping services with relatively lenient and permissive terms of service important for more information on how to add support for deeplinks you are encouraged to see the examples in modules location supported locationusinc if you need extra help please feel free to submit a question on the issues queue for this project at http drupalorg project issues location replies will be prompt function locationdrivingdirectionslinkbe locationa locationb returns a deeplink to an online mapping service eg yahoo maps mapquest or some other preferrably free service given full partial locationes depending on whether or not the parameter locationes are complete enough for the chosen service this function will return either a deeplink directly to the driving direction or will provide a deeplink to a partially prefilled form for driving directions on the site you choose to link to param locationa an associative array location where street the street portion of the location additional additional street portion of the location city the city of the location province the province state or territory country lowercased twoletter iso code required postalcode the international postal code for this location required param locationb an associative array location where street the street portion of the location additional additional street portion of the location city the city of the location province the province state or territory country lowercased twoletter iso code required postalcode the international postal code for this location required return a url not html link with http get variables tacked on to the end this url either points to a form for driving directions from locationa to locationb or a deeplink directly to the driving directions depending on how complete the locationes are function locationgetpostalcodedatabe location array param location an associative array location where street the street portion of the location additional additional street portion of the location city the city of the location province the province state or territory country lowercased twoletter iso code required postalcode the international postal code for this location required return an associative array where lat a floating point for the latitude of the approximate center of the postalcode in the given location lon a floating point for the longitude of the approximate center of the postal code in the given location city the most appropriate city name for the given postal code in location province the most appropriate province name for the given postal code in location returns null if the postal code doesn t make sense typically this function will pull out the latitude longitude of the approximate center of postal code in the given location parameter as well as other data the reason this can t be implemented at the noncountry specific level in locationinc is that postal codes may be submitted in varying formats of varying precision while postal codes for this country in the database table may all be in a particular format it is up to this country specific function to examine location postalcode and format it appropriately so that it matches with a postal code in the postal codes table this hook is meant to be a replacement for the locationgetlatlonroughxx hook described next function locationlatlonroughbe location array param location an associative array location where street the street portion of the location additional additional street portion of the location city the city of the location province the province state or territory country lowercased twoletter iso code required postalcode the international postal code for this location required return an associative array where lat a floating point for the latitude of the approximate center of the postalcode in the given location lon a floating point for the longitude of the approximate center of the postal code in the given location returns null if the postal code doesn t make sense typically this function will pull out the latitude longitude of the approximate center of postal code in the given location parameter function locationlatlonexactbe location array param location an associative array location where street the street portion of the location additional additional street portion of the location city the city of the location province the province state or territory country lowercased twoletter iso code required postalcode the international postal code for this location required return an associative array where lat a floating point for the latitude of the approximate center of the postalcode in the given location lon a floating point for the longitude of the approximate center of the postal code in the given location returns null if the postal code doesn t make sense typically this function will be implemented on top of a webservice for retrieving exact lat lon information for a full location this function is not a necessity but a sample implementation would be helpful for future users if not it can always be added on a supply and demand basis  ',0),(76,'help',' readme  id readmetxt v 1721 20090330 033457 thehunmonkgroup exp readmetxt for logintobogganmodule for drupal this module was codeveloped by jeff robbins jjeff and chad phillips thehunmonkgroup with several features added by raven brooks rbrooks00 the login toboggan module improves the drupal login system in an external module by offering the following features 1 allow users to login using either their username or their email address 2 allow users to login immediately 3 provide a login form on access denied pages for nonloggedin anonymous users 4 the module provides two login block options one uses javascript to display the form within the block immediately upon clicking log in the other brings the user to a separate page but returns the user to their original page upon login 5 customize the registration form with two email fields to ensure accuracy 6 optionally redirect the user to a specific page when using the immediate login feature 7 optionally redirect the user to a specific page upon validation of their email address 8 optionally display a user message indicating a successful login 9 optionally have unvalidated users purged from the system at a predefined interval please read the caveats section of installtxt for important information on configuring this feature users who choose their own password can be automatically assigned to a selected nonauthenticated role this role could have more permissions than anonymous but less than authenticated thus preventing spoof accounts and spammers the user will only be removed from the nonauthenticated role and granted authenticated permissions when they verify their account via a special email link or when an administrator removes them from the nonauthenticated role the module does not require any patches to core or other special configurations  ',0),(77,'help',' panels api ',0),(78,'help',' creating layout plugins getting started  layout plugins are one of the simplest and most powerful sections of the panels api there are two different ways that a layout can be implemented via panels panels supports both module and theme implementations of panels the module implementation requires that hookctoolsplugindirectory define the directory in which your layout plugins exist this same hook defines the directory for all panels plugins alternately if you intend on implementing a layout in a theme this can be done primary through the theme s info file the ctools help does a great job of actually explaining this portion of the api ctools plugins  ctools explains even the layout hooks a little in its example but we ll recap quickly and expand on this information as ctools explains the actual plugin file must be named with care as it will directly affect your naming scheme for the hook within it this is really no different from any other hook within drupal except that we ll be using multiple replacements in this case the function we re looking to implement is an instance of function yourmodulepluginnameownermoduleplugintype in our case we already know that the function will be function yourmodulepluginnamepanelslayouts this is because the plugin type we re working with is a layout and the module that implements these layouts is the panels module for the rest of the naming scheme yourmodule will be replaced with either the name of your module that implements this layout or the name of the theme and pluginname will be replaced with whatever the name of the plugin file is for purposes of this example our module name us going to be layoutsample and our plugin will be firstlayout  directory structure  we re going to assume that you ve laid your directory structure out very similarly to how panels does it something like this is rather likely layoutsample layoutsampleinfo layoutsamplemodule plugins layouts firstlayout firstlayoutcss firstlayoutinc firstlayoutpng layoutsamplefirstlayouttplphp the name of our inc file is going to be the key to the entire layout plugin the inc file  we will start with the firstlayoutinc file as it s the most important file we re dealing with here firstlayoutinc will look similar to the following function layoutsamplefirstlayoutpanelslayouts items firstlayout array title t first layout icon firstlayoutpng theme layoutsamplefirstlayout css firstlayoutcss panels array main t main region right t right region return items the include file defines all the other files that our layout will utilize in order to be truly useful the array is fairly self explanitory but for the sake of specificity  title  the title of our layout utilized within the panels administration screens  icon  the graphical representation of our layout utilized within the panels administration screens  theme  the template file of our layout sharp eyed readers will note that the theme definition utilizes underscores instead of dashes and does not have tplphp after it this is refering to the layoutsamplefirstlayouttplphp file all the same it is simply how the naming convention works utilize dashes in the tpl file name and underscores when refering to it in your include file  css  the css file to be utilized for our layout utilized within the panels administration screens and when viewing the actual panel itself  panels  defines all the various regions within your panel this will be further utilized within our tplphp file there are many additional properties that can be added to the include file for purposes of this document we ll also make mention of the admin css property admin css is especially useful when utilizing a fixed width layout with fixed with panel regions this can break under most administrative circumstances and panels provides you with the ability to give an additional css layout for the administrative section it s a simple nicety and looks like this function layoutsamplefirstlayoutpanelslayouts items firstlayout array title t first layout icon firstlayoutpng theme layoutsamplefirstlayout css firstlayoutcss admin css firstlayoutadmincss panels array main t main region right t right region return items  the tplphp file  the tplphp file is very similar to any other template file within drupal the difference here is that we re being passed an array of regions through content and we also have a css id available to us for the entire panel in the form of cssid the template is very straight forward and will look similar to the following div class paneldisplay panelstackedtwothirdsonethird clearblock php if empty cssid print id cssid div class panelpanel panelcolfirst panelregionmain div class inside php print content main div div div class panelpanel panelcollast panelregionright div class inside php print content right div div div this is simply an example of what the html could look like you can alter an update this html to fit your own needs the other files  the css and png files are as simple as any other css or png file you ve ever utilized panels provides some images for its graphical representations of its layouts i would heavily encourage you to modify these to suit your needs the css files admin and non will be included at the appropriate times simply set them up to fit your purposes if you re utilizing fixed width panel regions it s probably smart to provide an admin css file as well with your panel layout  ',0),(79,'help',' creating style plugins ',0),(80,'help',' readme  id readmetxt v 1622 20091224 203508 davereid exp description poormanscron is a module which runs the drupal cron operations without needing the cron application the module inserts a small amount of javascript on each page of your site that when a certain amount of time has passed since the last cron run calls an ajax request to run the cron tasks your users should not notice any kind of delay or disruption when viewing your site this is a drupal 6 backport of the simple poormanscron feature that was added to drupal 7 http drupalorg node 331611 installation read http drupalorg gettingstarted installcontrib on how to download and install drupal modules the typical location for the module s files is sites all modules poormanscron in the drupal directory once the module is enabled you can configure the module at administer site configuration site information authors moshe weitzman original author uwe hermann current maintainer rob loach comaintainer dave reid comaintainer  ',0),(81,'help',' readme  id readmetxt v 1641 20090621 035446 sun exp summary wysiwyg api allows to users of your site to use wysiwyg richtext and other clientside editors for editing contents this module depends on thirdparty editor libraries most often based on javascript for a full description visit the project page http drupalorg project wysiwyg bug reports feature suggestions and latest developments http drupalorg project issues wysiwyg requirements none installation install as usual see http drupalorg node 70151 for further information go to administer site configuration wysiwyg and follow the displayed installation instructions to download and install one of the supported editors configuration go to administer site configuration input formats and either configure the full html format assign it to trusted roles and disable html filter line break converter and optionally url filter or add a new input format assign it to trusted roles and ensure that above mentioned input filters are disabled setup editor profiles in administer site configuration wysiwyg contact current maintainers daniel f kudwien sun http drupalorg user 54136 henrik danielsson twod http drupalorg user 244227 this project has been sponsored by unleashed mind specialized in consulting and planning of drupal powered sites unleashed mind offers installation development theming customization and hosting to get you started visit http wwwunleashedmindcom for more information  ',0),(82,'help',' readme please read this file and also the installtxt they contain answers to many common questions if you are developing for this module the apitxt may be interesting if you are upgrading check the changelogtxt for major changes description the pathauto module provides support functions for other modules to automatically generate aliases based on appropriate criteria with a central settings path for site administrators implementations are provided for core content types nodes taxonomy terms and users including blogs and tracker pages pathauto also provides a way to delete large numbers of aliases this feature is available at administer site building url aliases delete aliases benefits besides making the page address more reflective of its content than node 138 it s important to know that modern search engines give heavy weight to search terms which appear in a page s url by automatically using keywords based directly on the page content in the url relevant search engine hits for your page can be significantly enhanced installation and upgrades see the installtxt file notices pathauto just adds url aliases to nodes users and taxonomy terms because it s an alias the standard drupal url for example node 123 or taxonomy term 1 will still function as normal if you have external links to your site pointing to standard drupal urls or hardcoded links in a module template node or menu which point to standard drupal urls it will bypass the alias set by pathauto there are reasons you might not want two urls for the same content on your site if this applies to you please note that you will need to update any hard coded links in your nodes or blocks if you use the system path ie node 10 for menu items and settings like that drupal will replace it with the urlalias for external links you might want to consider the path redirect or global redirect modules which allow you to set forwarding either per item or across the site to your aliased urls urls not getting replaced with aliases please bear in mind that only urls passed through drupal s l or url functions will be replaced with their aliases during page output if a module or your template contains hardcoded links such as href node node nid those won t get replaced with their corresponding aliases use the drupal api instead href url node node nid or l your link title node node nid see http apidrupalorg api head function url and http apidrupalorg api head function l for more information disabling pathauto for a specific node type or taxonomy when the pattern for a node type is left blank the default pattern will be used but if the default pattern is also blank pathauto will be disabled for that node type bulk updates must be run multiple times as of 5x2x pathauto now performs bulk updates in a manner which is more likely to succeed on large sites the drawback is that it needs to be run multiple times if you want to reduce the number of times that you need to run pathauto you can increase the maximum number of objects to alias in a bulk update setting under general settings wysiwyg conflicts fckeditor tinymce etc if you use a wysiwyg editor please disable it for the pathauto admin page failure to do so may cause errors about pregreplace problems due to the tag being added to the strings to replace see http drupalorg node 175772 credits the original module combined the functionality of mike ryan s autopath with tommy sundstrom s pathautomatic significant enhancements were contributed by jdmquin wwwbcdemsnet matt england added the tracker support other suggestions and patches contributed by the drupal community current maintainers greg knaddison http growingventuresolutionscom mike ryan http mikeryanname frederik freso s olesen http fresodk changes see the changelogtxt file id readmetxt v 116 20080621 182038 greggles exp  ',0),(83,'help',' readme  id readmetxt v 1161 20090419 213124 greggles exp description token module provides a centralized api for text substitution unless you re installing another drupal module that requires it this software is probably unnecessary for more information on tokens see http groupsdrupalorg tokens benefits if you re a drupal developer check out apitxt for detailed instructions on using the token api it allows every module to announce the placeholder tokens they can handle uses simple caching to prevent duplicated work in a given pageview and is pretty lightweight it s nice you ll like it tokenstarter want to add your own custom tokens to a site not sure how to write a module worry no more it s now quite easy 1 copy and rename the tokenstarterinfo and tokenstartermodule replacing every instance of starter with a descriptive appropriate word 2 edit the module file and change hooktokenlist and hooktokenvalues to provide whatever additional tokens or logic your site needs 3 enable the module and enjoy you should also want to read the apitxt ',0),(84,'help',' what is views  the views module allows administrators and site designers to create manage and display lists of content each list managed by the views module is known as a view and the output of a view is known as a display displays are provided in either block or page form and a single view may have multiple displays optional navigation aids including a system path and menu item can be set for each pagebased display of a view by default views may be created that list content a node view type content revisions a node revisions view type or users a user view type a view may be restricted to members of specific user roles and may be added edited or deleted at the views administration page the building block design of the views system provides power and flexibility allowing parameters to be specified only when needed while an advanced view may use all of available parameters to create complex and highly interactive applications a simple content listing may specify only a few options all views rely on a conceptual framework that includes  fields  or the individual pieces of data being displayed adding the fields node title   node type  and node post date to a node view for example includes the title content type and creation date in the displayed results relationships  or information about how data elements relate to one another if relationship data is available like that provided by a cck nodereference field items from a related node may be included in the view arguments  or additional parameters that dynamically refine the view results passed as part of the path adding an argument of node type to a node view with a path of content for example dynamically filters the displayed items by content type in this example shown with clean urls enabled accessing the view through the path  http wwwexamplecom content page  displays all posts of the type page the path  http wwwexamplecom content story  displays all posts of the type story and  http wwwexamplecom content  displays all posts regardless of type  sort criteria  which determine the order of items displayed in the view results adding the sort criteria node post date  in descending order to a node view  for example sorts the displayed posts in descending order by creation date filters  which limit items displayed in the results adding the filter node published  and setting it equal to published to a node view for example prevents unpublished items from being displayed displays  which control where the output will be seen every view has a default display which doesn t actually display the view anywhere but is used to hold the default settings for the view and is used when the view is called programmatically if another display is not specified much more useful to users are the page display which gives a view a path and allows it to be the primary content of a page or the block display which allows it to appear as secondary content on other pages  ',0),(85,'help',' getting started module developers the views api help pages can be found here  new users for those new to views it can be a complex system that appears totally overwhelming the good news is that the ui is designed to compartmentalize everything this means that for the most part you can ignore the parts you re not interested in start small and build your way up because of this the edit ui can seem overwhelming at first but there are really just a few things you have to know the rest you can find through exploration the views edit ui image below gives an overview of what you ll find on the edit ui the views edit ui notes 1 every view has a number of displays which represent where output will be placed if you re familiar with the original views 1 you could set a view to be a page with a url path or a block that could show up in a sidebar with views 2 you can add as many displays as you like in addition you have the default display which contains the basic settings but doesn t actually show up anywhere 2 when you click on the link for an item a form will open up for browsers with smaller resolutions you may have to scroll down a little to see this form if a form is open the item its attached to will be highlighted 3  overrides mean that a particular display is not using default settings when you create a new display many of its settings will start off using default values this will be indicated by italics and a lighter color if you change these values without first overriding them you will change the default value for all displays that use them 4 some items particularly styles have additional settings ordinarily when you update a style if it has additional settings you will automatically see that form next often you will need to go directly to those settings 5 you can safely leave a view page to go and do other things if you come back the view will still be there stored in a cache keep in mind however that while you do this that view is locked  meaning another user cannot edit this view without breaking the lock breaking the lock will discard your changes it helps to have something particular in mind that you want to accomplish when using views here are a couple of ideas and a brief sketch of how to accomplish what you want  ',0),(86,'help',' create a page to list users by role in this example you will create a page view listing users on your site through this stepbystep process you will become familiar with some basic steps in creating a view and familiarize yourself with the views user interface creating a new view go to add new view  give your new view the name userlist description a simple user listing tag users type user and click next  about the interface you have been brought to the views user interface as you start you are editing the default options for the view in the 1st column on the left you can see the dropdown menu offers block for example to select settings specific only to block views in the remaining columns you will be able to add or change options by clicking on links or icons these options will then appear below this main area most likely you will need to scroll to see the options appear as you make changes these options will appear in bold until you save your view creating a page display choosing a url and creating a menu link in the 1st column ensure that page is selected in the dropdown menu and click add display  next we ll define the path for this page a page must have a path and we define it early so that views doesn t warn us display page uses path but path is undefined locate the page settings in the 2nd column and click the none link next to the path setting in the options editing area that appears below set the path to userlist or something else if you prefer and click update  next to menu setting click the no menu link in the options which appear below select normal menu entry  and set the title to user list and click update  scroll up to basic settings  in that same 2nd column and click the no link next to use pager  below in the options select full pager and click update default display  selecting the fields to display in 3rd column locate the fields options click the   icon to add fields scroll down to defaults add fields  in the groups dropdown menu select user then check the following fields  user created date   user delete link   user edit link   user last access   user name and user picture  then click add  you will be taken through the fields you added one at a time click update default display to go to each next field leave the default options on all fields except delete link  change that field s label to operations scroll back up to fields and click the  uarr darr  icon to rearrange fields down below drag the name field by dragging its foursided arrow to the top drag the delete link operations  field to the bottom and the edit link field just above it then click update  seeing what we ve done so far at this point you have done enough to create a valid view if you scroll down you will see a preview of your view if it doesn t show already click the preview button but generally this display updates automatically whenever you finish working in one of the mini forms styling the view as a table combining related fields into columns under basic settings  in the 1st column click the unformatted link next to the style setting in the options below under page how should this view be styled  choose table and click update default display  you will be taken to a page style options form to edit the table settings locate our edit link field in this mini form and notice the column dropdown change this dropdown to show operations  in the separator column next to the operations field type note the spaces around the   symbol check all of the sortable checkboxes and set default sort to name  when finished click update default display  filtering the user list to exclude unwanted entries click the   icon next to filters  in the groups dropdown menu select user then check the user name filter and click add  select is not one of and enter anonymous in the usernames box click update default display  adding an argument to list users by role dynamically scroll up to arguments  and click its   icon check the user roles argument and click add  set the title to 1 don t type the quotes and under action to take if argument is not present select summary sorted ascending  leave the other settings as they are click update default display  and click update through the prompts that follow to accept their default values saving the view finally click the save button to save your work at the very top click view page  to go to your new view  ',0),(87,'help',' create a block of recent stories in this example you will create a list of nodes of the content type story to be shown in a block through this stepbystep process you will become familiar with some basic steps in creating a view and familiarize yourself with the views user interface creating a new view go to add new view  give your new view the name recentstories description recent stories tag story type node and click next  about the interface you have been brought to views user interface as you start you are editing the default options for the view in the 1st column on the left you can see the dropdown menu offers block for example to select settings specific only to block views in the remaining columns you will be able to add or change options by clicking on links or icons these options will then appear below this main area most likely you will need to scroll a bit to see the options appear selecting the fields to display in 3rd column locate the fields options click the   icon to add fields scroll down to defaults add fields  in the groups dropdown menu select node then check the following two fields  node post date   node title  then click add  you will be taken through the fields you added one at a time make the changes specified below for the post date field delete the post date label change the date format to custom  and the custom date format to f j y g i a do not type the single quotes for the meaning of these letter codes click on the php docs link under that box to arrive at the explanation click update  for the title field delete the title label select link this field to its node click update  scroll back up to fields and click the  uarr darr  icon to rearrange fields drag the foursided arrow next to node title so that it appears above node post date  click update to save the new field order filtering to story nodes only click the   icon next to filters  in the groups dropdown menu select node then check the node published and node type filters and click add  select the published checkbox click update select is one of and check story in the node type field click update  sorting to show most recent first scroll up to sort criteria and click the   icon in the groups dropdown menu below select node then check node post date  and click add  alternatively you may instead check node last comment time  or node updated commented date  or node updated date  select descending sort order  click update  refining the basic settings in 1st column under basic settings locate these options  items to display setting click 10  change the 10 to 4 click update style setting click unformatted  change to list  click update  adding a block display for custom options in the dropdown on the left ensure that block is selected and click add display  under block settings  click the none link next to the admin setting change block block admin description to recent stories  saving the view click save to save your work instructing drupal to show the block finally you should tell drupal to show this block configure your block by going to admin build block  locate the block in the list it is labeled recent stories  place this block in a region and click save  you may click configure to set a different title to determine which roles can view the block and on which pages it appears if you want your block on the front page only enter front  ',0),(88,'help',' create an rss feed of user posts in this example you will create a feed display to show nodes by individual users dynamically selected through the url you will become familiar with the views 2 interface as well as learn how to use an argument to pull in a user name and use it in a dynamically created path a feed is a data format that places your site s content into a file that can be read and displayed by news reader programs when visiting a site you may notice a small rss transmission icon  whereby clicking on it you can subscribe to the site s most recent content this makes it easier for your visitors to keep up to date with your website you can also use this format to aggregate information into other sites for more information please watch a video from common craft about rss in plain english  note drupal automatically creates a feed for your website but you may want to create feeds with specific information in this case a list per user creating a new view go to add new view  give it the name userfeed description a feed of user nodes tag users type node and click next about the interface you have been brought to the views user interface as you start you are editing the default options for the view in the 1st column on the left you can see the pulldown menu offers feed for example to select settings specific only to rss views in the remaining columns you will be able to add or change options by clicking on links or icons these options appear below this main area most likely you will need to scroll to see the options appear as you make changes these options will appear in bold until you save your view change default display under basic settings in the 2nd column click row style fields a menu loads below  defaults how should each row in this view be styled  check the node option and click update  this loads another options menu  defaults row style options click update  create the rss view in the 1st column select feed in the dropdown menu and click add display  under basic settings in the 2nd column click row style missing style plugin note options appear below the views interface you may need to scroll to see feed how should each row in this view be styled tick node  then update this loads the next options menu display type  select use default rss settings click update  set the path for accessing your feed in the 2nd column under feed settings  click path none in options below feed the menu path or url of this view enter in the path with an argument feeds rssxml click update set up your arguments to say which user s nodes to display to the right of arguments  click the sign to add and argument in the feed add arguments menu that loads below select user in the pulldown menu check the box user name  click add scroll down to options to find case in path  select lower case check the box transform spaces to dashes in url click update default display sort to show most recent at top of feed scroll up to sort criteria in the right most column and click the icon in the groups dropdown menu below select node then check node post date  and click add  select descending sort order  click update  set filters to hide unpublished entries click the icon next to filters  in the options below select node under groups dropdown menu choose the node published filter and click add  check the box published  click update default display test click save under live preview type in the name of a user in lowercase replacing spaces with dashes click preview  you should test and find your feeds at urls like http yoursitecom feeds username rssxml you can use this path for aggregating on another site you can also attach the rss feed to another display of view to make the feed link appear on that display  ',0),(89,'help',' create a block of author s recent blog posts in this example you will create a contextsensitive block that shows the titles of recent blog entries by an author when viewing one of their posts this will demonstrate using views arguments to dynamically filter a view s contents at display time before working through this example enable the blog module and populate some entries from a few different users creating the view the first step is creating a view for our recent blog entries block because the block will show the titles of blog entries this view is considered a node type go to add new view  enter the following properties and click next  view name recentblogentries view description list of recent blog entries for a given author view tag blog view type node generating a list of blog entries it will be much easier to see the view progress if we can see it doing something in this section we will create a basic view displaying blog entry titles in the third column locate the fields area generally speaking fields are the pieces of information that you want to display in the view in this case node title click the   icon to add a field scroll down to defaults add fields  below the settings table a large selection of fields will be available in the groups dropdown menu select node  this will limit the list to only the default fields exposed by node module scroll down the list select the node title field and click add  you will now be presented with settings for the node title field delete the label from the label field so that each individual node title is not prefixed with the word title additionally check the link this field to its node box so that visitors who see an interesting title can click directly on it to read the blog entry to which it belongs when finished click update  if you scroll down to the live preview section you should now see a list of several node titles however both blog entries and other node types will be in the list let s fix that in the fourth column locate the filters area filters limit the results displayed in the view and we can use this to our advantage here by showing node titles only from blog entries and not every type of node click the   icon to add a filter as before scroll down to the defaults add filters section select node from the groups select box to limit the list of options to only those exposed by node module scroll down and select the node type field and click add  in the settings page that appears leave operator as is one of and select blog entry under node type  click update when finished now by scrolling down to live preview  you ll see that the list only shows blog entries adding context with arguments while filters are very useful for limiting the results of a view when the condition is always consistent for example a view of blog entry nodes should always be filtered by the blog entry type something filters can t do is smart decisionmaking based on the page context in our case we want the view to display a different list of blog entries when looking at a post by user admin than we do when looking at a post by user member and filters won t be able to help luckily there s another way to filter a view s content  arguments  through arguments views are able to obtain additional context typically via dynamic urls with ids in them and can take this context into consideration when displaying the view let s walk through adding and configuring an argument to our view so that we can change its contents based on post author in the third column locate the arguments area click the   icon to add an argument because we are basing the view around content authors  this time under groups select user  check user uid and click add  the defaults configure argument user uid settings page has a lot going on but only a few things that need our attention the title field here unlike the title field under basic settings  can be based upon the context that the view is being displayed in change the title to recent entries by 1 1 will later be expanded to the user s name based on the user uid argument when the view is displayed under action to take if argument is not present  there are a variety of options ranging from displaying a 404 or a 403 page to simply displaying all values in the view in our case if an argument isn t specified which it won t be since this view will be displayed in a sidebar block not as a page with its own url we want to give it a default one to act on select provide default argument  assuming javascript is enabled in your browser you should now get another selection for default argument type  select user id from url  which will then provide a new option  also look for a node and use the node author  select it this will cause views to first see if it can figure out a user id from the current url for example user 1 if it can t it will instead check to see if the current page is a node page such as node 42 and if so take the user id from the node s author field instead validator options provide a useful way to control what kind of arguments your view will accept select user as the validator  by default changing this setting will check the incoming argument and ensure it s a valid user id if not the view will be hidden from the page once you have changed the argument s title default argument and validator options click update to save your changes you ll notice that now the live preview no longer shows anything did we just break the view fortunately no it s merely abiding by our wishes to hide itself if there is no valid user id given to it try entering a 1 in the arguments box and clicking preview  you should now see a list of only user 1 s blog entries creating the block so the live preview is now showing basically what we want there s just one problem we have no way to stick what we ve done so far into a sidebar block let s fix that by adding a new display  in the first column under defaults  there is a select box containing entries such as page   feed  and yes  block  select block and click add display  there s not much else to do here as far as views is concerned under block settings  click the none link next to admin and fill in a description for the block in the administrative interface such as recent blog entries by author and click update  save your work by clicking the save button at the bottom of the views interface you should receive a message that the view has been saved next navigate to the blocks interface and drag the recent blog entries by author block to the right sidebar region or similar and click save blocks  you ll notice this appeared to do nothing no block shows in the sidebar but remember we are looking at an adminitrative page we are not looking at a page that would provide a user id context navigate to the main blog listing and click on an entry there you should now see a sidebar block titled something like recent entries by admin with a list of blog entries beneath it finishing touches there are still a few remaining things to do before our view is complete for example we said that the block was to show recent blog entries but instead it s showing them in the order they were entered with oldest on top additionally even unpublished entries are showing in the list currently return to the recentblogentries view edit page  add an additional filter by clicking the   icon in the filters section in the fourth column change groups to node and select node published  click add  under the published selection choose yes and click update  to handle sorting locate the sort criteria area just above filters and click the   icon there under groups  again select node  from the list of options check node post date and click add  in the settings page change sort order to descending  this will place the newer posts on top of the older ones click update when finished finally  save the view for your new settings to take effect  ',0),(90,'help',' view types the view type describes how this view is stored views is capable of having views entirely in code that are not in the database this allows modules to easily ship with views built in and it allows you to create a module to store your views for easy deployment between development and production servers normal normal views are stored in your database and are completely local to your system default default views are stored only in code and are not anywhere in your database they may be enabled or disabled but you may not completely remove them from your system you can override the view which will create a local copy of your view if you do this future updates to the version in code will not affect your view overridden overridden views are stored both in code and in the database while overridden the version that is in code is completely dormant if you revert the view the version in the database will be deleted and the version that is in code will once again be used you may store your views in code with the following procedure create a module to store the views add the function modulenameviewsdefaultviews  to this module export the view you wish to store in your module in code cut and paste that into the abovenamed function make sure the last line of the view is   views view name view  make sure the last line of the function is return views  after you make any changes be sure to clear the views cache  you may do this from the tools menu  ',0),(91,'help',' displays displays tell views where the output should go by adding a display to a view you can have your view appear as a page or as a block or even as an attachment to a different display on the view each display can have its own settings but when it s created a display will take all of its basic settings from the default display which all views must have for most settings there is an override button that will override that single setting for the current display overridden settings will have a mark in the summary for that display all default display settings are shown in the other displays  italic  when you override a setting than it is shown normal please keep in mind that when you are editing a setting on a display that is not overridden then by default you are editing that for all displays for fields   arguments   sorts   filters and relationships  you can only override all of them or none of them to do this click on the header for the filters or the rearrange button once you override the display will then have its own copies of the fields filters etc and changes to the defaults will not be reflected on your display ',0),(92,'help',' default display the default display is primarily a display to store settings and isn t actually used anywhere within the views system it is possible for external programs to use the default display but if they do they will hopefully tell you which display they will be working with the default display is also a convenient display to use to embed into your site using php snippets this is useful for example in node content but this is something that should generally only be done by administrators in general you probably want to add either a page display or a block display   ',0),(93,'help',' page display page displays have a path and an optional menu component page displays will be the primary content for the page meaning they will be displayed in the main content area when you visit the url that corresponds to the path page displays take their arguments from the url you can embed arguments into the url using in previous versions of views this was arg for example node foo will accept urls such as node 1 foo please remember that using a placeholder makes the argument required if you wish to have an optional argument simply omit the from the path ie using page as the path requires an argument and visiting http wwwexamplecom page will not trigger the view ',0),(94,'help',' block display block displays will show up on your blocks administration page once a block display is created and saved it can be enabled and positioned in your theme by visiting administer site building blocks and selecting it from the list blocks do not accept arguments from any source the only way to get arguments to a block is to provide defaults to it possibly via the php code default setting edit the argument in question you may want to override this argument if you have multiple displays using it change the action to take if argument is not present to provide default argument this will bring up a new box called provide default argument options the most common default argument type used for blocks is node from url where it attempts to determine if the url refers to a node for example if visiting node 1 or node 1 edit user id from url is also very common if you change the default argument type to php code note you must have permission to use php code on your site you can enter php to define the argument needed simply return the argument  ',0),(95,'help',' attachment display attachment displays are attached to another display in the same view when the display is visited the attached display will also be rendered and may be placed before after or both before and after the original display attachment displays are often useful for displaying an argument summary view along with a page display that accepts arguments this can be used to provide a kind of glossary ',0),(96,'help',' feed display a feed display allows you to attach an rss feed to a view  ',0),(97,'help',' arguments arguments are input while they often come from the url  they don t always so please don t be shocked when they don t each display type may have its own source for arguments block displays have no source of arguments at all they cannot pull arguments from the url and often require use of the default argument php code in order to get arguments the argument default plugins can be used to get arguments into a block view see provide default below in general arguments are used to filter the view and in that sense they have a very close relationship to filters but that isn t necessarily true for every argument arguments can be used for any purpose really the extent of what the argument does is up to the developer of the argument but the arguments that come with views are almost entirely filters a typical use of an argument might be to reduce a view to a single node a single user or nodes with a given taxonomy term action to take if argument is not present ignore the argument is removed from the view as though it weren t there and all results will be displayed hide view page not found the view will remove itself entirely if the argument is not present for a block this means it simply won t appear for page views the view will return a 404 and present a page not found error display empty text the value of the empty text will be displayed summary the view will attempt to display a summary of arguments available based upon the view and provide links to the view with those arguments summaries have their own style handlers as well as options the default summary style simply displays a list of arguments with a count of entries found per argument this special mode is a very powerful part of views provide default if no argument is given a default argument can be selected the method of choosing the default argument is selectable and pluggable wildcards all arguments have a wildcard which is an argument that means to use all values in practice it is the same as ignore above where the argument is simply removed and the view is created without the argument the wildcard title is used in titles and breadcrumb trails default arguments default argument selection is available only if the action to take is provide default   when that is selected a new fieldset will appear letting you choose what the default argument will be views provides the following default selectors by default but other modules may add more fixed entry you may directly enter what the argument will be this is not a variable it will always be the same argument node id from url this will attempt to find a node id from the url and is primarily useful for the node id argument though other arguments that use node ids such as the cck node reference argument will find it useful too for example when visiting the path node 1 or node 1 edit it will know that the 1 in that path is a node id and use it user id from url like node id from url this will attempt to find a user id from the path it also includes an option to look for a node and use the node author as the user id user id from logged in user you can use this to easily default a menu item to the logged in user for example if you created the path blogs and gave it a user id argument with this default blogs would go to the user s own blogs and blogs 1 would go to user id 1 s blogs please bear in mind that the selection of default argument happens only if an argument is not provided if using a display that has no argument source such as a block this will always be used however if using a display that reads arguments from the url this will happen only if the url did not contain an argument argument validation arguments can also have validators which are pluggable systems used to ensure that arguments fit within certain parameters when a validator is chosen it may provide some settings for the validator including the action to take if an argument is presented but it fails to validate these actions are generally the same as the default actions above excluding the ability to provide another default if a view provides a menu option such as a tab if the argument does not validate the tab will not appear this sytem can have other validators plugged in by default views provides basic validation ensures that the argument is present a php null value from eg php default argument code will invalidate node ensure that the argument is a valid node id you may select which types of node the validator will accept taxonomy term ensure that the argument is a valid taxonomy term this includes options to limit to specific vocabularies and can transform the argument to the right type depending upon the actual argument set the argument type option to the actual type of data that the argument being used is expecting php code you may enter arbitrary php code similar to the php block visibility code to determine if the argument is valid or not  ',0),(98,'help',' fields fields are the individual pieces of data being displayed adding the fields node title   node type  and node post date to a node view for example includes the title content type and creation date in the displayed results fields may not appear on every display because not all style plugins actually use fields for example the node row plugin simply displays the node through drupal s normal mechanisms and fields are not involved for the most part the field settings should be self explanatory fields will appear in the order that they are arranged in and they will usually appear with the label they are given ',0),(99,'help',' sorts sort criteria determine what order the records are retrieved from the database and displayed in generally all you need to do is pick a field and choose ascending 1 2 3 4 or descending 4 3 2 1 and it will be done if you have multiple sort criteria the second and later items only come into play if the first item is the same different data types sort just a little bit differently from others number fields number fields sort like you would expect 1 comes before 2 which comes before 10 which comes before 100 which comes before 200 etc text fields text fields always sort alphabetically even if the text contains numbers this can have some odd effects if you have numbers stored in text because the values 1 3 7 10 12 20 100 120 will sort like this 1 10 100 12 120 200 3 7 this is because these fields sort purely by characters and not numeric value ie comparing 200 and 3 the 2 comes before the 3 therefore 200 is smaller than 3 date fields date fields often can have a granularity which is a way of making similar dates actually be the same date take two dates that are close to each other  may 1 2007 530 am and may 1 2007 945am  without granularity the two dates are compared and the first date comes before the second date however if the granularity is set to day it only looks at the parts of the date up to the day  may 1 2007 and may 1 2007  at that point they are the same and the sort would move on to the next sort criterion  ',0),(100,'help',' filters filters are used to reduce the data set that views provides that is to say without any filters applied views will return all of your content you don t want that so at least some filters must be used some very commonly used filters the node published filter is used to restrict a node view to only nodes that are are have the published box checked this can be very important to prevent users from viewing content they should not have access to the node promoted to front page filter can be used to show only nodes that have the promote to front page turned on the node type filter is useful for showing only certain types of nodes let s say you wanted users to see only nodes that were book nodes or a combination of book nodes and staffblog nodes this filter allows you to select exactly that the user current filter will show only nodes that the logged in user has authored the node post date filter can be used to show only nodes posted before after or between a range of dates the above list is only a tiny fraction of the filters available in views referenced here to give an idea of the kinds of tasks filters can accomplish  ',0),(9,'node',' what s new lorem ipsum dolor sit amet consectetuer adipiscing elit sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat ut wisi enim ad minim veniam quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum typi non habent claritatem insitam est usus legentis in iis qui facit eorum claritatem investigationes demonstraverunt lectores legere me lius quod ii legunt saepius claritas est etiam processus dynamicus qui sequitur mutationem consuetudium lectorum mirum est notare quam littera gothica quam nunc putamus parum claram anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima eodem modo typi qui nunc nobis videntur parum clari fiant sollemnes in futurum  ',0),(2,'node',' sample news article stet clita kasd gubergren no sea takimata sanctus est lorem ipsum dolor sit amet lorem ipsum dolor sit amet consetetur sadipscing elitr at accusam aliquyam diam diam dolore dolores duo eirmod eos erat et nonumy sed tempor et et invidunt justo labore stet clita ea et gubergren kasd magna no rebum sanctus sea sed takimata ut vero voluptua est lorem ipsum dolor sit amet  ',0),(3,'node',' sample blog post sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed diam voluptua at vero eos et accusam et justo duo dolores et ea rebum stet clita kasd gubergren no sea takimata sanctus est lorem ipsum dolor sit amet lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed diam voluptua  ',0),(4,'node',' privacy policy is committed to protecting your privacy online while using our website you do not have to identify yourself or divulge personal information if you should choose to give us your personal information you decide the amount of information you provide our campaign is continually trying to expand online activism and to give voters the information they need in a timely manner as a result we may periodically ask you to provide information such as your name address phone number and email address in an effort to enhance our ability to work with you as an online activist if you choose not to give us any information we may not be able to provide you with timely information regarding events and issues important to you as a politically interested and active citizen maintain several interconnected websites at any given time the principal website is permanent other issuespecific websites may be created and removed as needed to highlight important issues and events all websites owned and operated by are identified by the text paid for by our privacy policy explains the information practices we use at our site may link to a limited number of other websites is not responsible for the content or the privacy policies of these websites this privacy policy may be amended by at any time without notice other than posting of such amendments on this site will not sell your email address or other personal information to an outside unaffiliated organization or any unauthorized third parties when you contribute money online  when you contribute online uses stateoftheart security protocols through verisign to protect sensitive data such as personal information and credit card numbers while this data is being transferred it is protected by the secure sockets layer ssl using a 128bit signed certificate the highest level commercially available before you even register or log in to verisign the verisign server checks that you re using an approved browser one that uses ssl 30 or higher once your information reaches verisign it resides on a server that is heavily guarded both physically and electronically the verisign servers sit behind an electronic firewall and are not directly connected to the internet so your private information is available only to authorized computers when you sign up for one of our mailing lists  we collect your name contact information and email address and certain other information we use your email address to send you the email newsletter to which you subscribed you may remove your email address from that subscriber list by visiting the unsubscribe page for that list when you fill out one of our surveys  your opinion matters to and we want your input as a result we may sometimes use surveys to help us understand which issues you are interested in ip addresses and log file data  we log ip address which is the location of your computer or network on the internet for systems administration and troubleshooting purposes we also use page hits in the aggregate to track the popularity of pages that people visit in order to improve the quality of the site there is no personal identifiable information collected in our log files information on children  because we care about the safety and privacy of children online we comply with the children s online privacy protection act of 1998 coppa coppa and its accompanying ftc regulations establish united states federal law that protects the privacy of children using the internet we do not knowingly contact or collect personal information from children under 13 our site is not intended to solicit information of any kind from children under 13 and we have designed our sites to block our knowing acceptance of information from children under 13 whenever agerelated information is requested contacting us about privacy  if you have any questions about our privacy policy the information we have collected from you online the practices of this site or your interaction with this website send email to  ',0),(101,'help',' relationships relationships allow you to expand the query to include objects other than the base query this is actually made more difficult to understand by the fact that views actually includes a few relationships by default and doesn t tell you they re there for historical reasons it would be inconvenient to remove these default relationships when relationships are present all fields including relationships will gain a new form item to let you select which relationship they will use they will default to using no relationship at all the main example of the relationship that is there by default is the node user relationship every node has an author and if a node is in the query the user who wrote that node is automatically made available note the author considers it an error that this relationship is automatic but by the time it was realized this was in error it was too late to change it a similar relationship that is not automatically made available is for node revisions each revision has its own author which is the user who made the revision by adding the node revision user relationship all of the user fields sorts filters and arguments available to a user will now be available for the revision author when a relationship is added to the view all applicable items will gain a relationship select box where you can choose which version of that particular item you wish to use this can be illustrated with an example a comment view contains the relationships comment node and comment user this means that all the fields for the node that a comment is attached to are available and all the user fields for that node author also become available the other relationship makes fields for the author of the comment available very often not the author of the node when you add the user name field you will be presented with a select box either the node relationship or the user relationship must be selected because there are two possible user names in the view to choose from another example of relationships involves the files table in drupal files are related to users but files are not necessarily related to nodes however the uploadmodule allows some files to be attached to nodes the only way for views to deal with this discrepancy is with relationships when creating a node view it s possible to add an uploaded files relationship to get file data for nodes that were attached with the upload module it is also possible to go the other way from a files view you may add a relationship via the upload table to view information about the node  ',0),(102,'help',' output styles view styles  the views  style system is how you customize the output produced by your view a view style is basically a smart theme template that processes the view data and then outputs it all styles in views can be overridden by placing copies of the templates in your theme directory and then modifying them see the theme information link available on all views to get hints for which templates a given view is using a breakdown of view output by default the style is unformatted  which means that there is very little style actually used the records are simply displayed one after another enclosed in a div tag so that you can use css to manipulate the view  some styles use a separate row style to determine how each row of the view looks this is useful for mixing and matching styles to more readily produce exactly the kind of output you need many styles can be grouped  for styles that can there will be a grouping field option pick one of the fields to group by this grouping field will be displayed as a header and all rows will be displayed beneath it with the theme developer module enabled the field grouping in views does not work disable the theme developer module before grouping by fields each style is its own entity  ',0),(103,'help',' view row styles a row style is an individual style to display only an individual record within a view for example a node type view would display one node per row a user type view would display one user per row some row styles use fields which means you select from the available fields to display others do not they are able to use the base type and create a display usually row styles that do not use fields produce less efficient slower views  so bear this in mind when contemplating the performance of your site ',0),(104,'help',' list output style the list view style will display every row of the view as part of an html list construct for example row 1 row 2 row 3 row 4 you may select whether or not the list is ordered which just means whether or not it uses numbers instead of the bullet row 1 row 2 row 3 row 4 the list style also uses a row style which means that it doesn t care what the actual output for each row of the view is if you need information about using css to style list views you may find this a list apart guide to styling lists useful ',0),(105,'help',' unformatted output style the unformatted output style simply places each row of the view one after another with no additional formatting  ',0),(106,'help',' table output style the table style will display the view results as a table each row of the table will correspond to a row from the view result when setting the table options each field in the view will be presented with some information next to each field  column by default each field is its own column however you can place multiple fields in the same column to do this pick which field you want to represent the column then pick another field and set the column value to that field you can place as many fields as you like in a single column but only the main field in a column can be clicksorted separator if you have multiple fields in the same column the separator will be placed between each one at the very least nbsp should be used as without the separator the fields will be placed very close to each other common separators are a bullet the symbol and a comma if there are no other fields in the column the separator will have no effect sortable if checked the header for the column will be clickable and the user may resort the table by clicking on this to sort by that field at this time views does not support clicksorting to sort by multiple columns at the same time default sort you may select a column which will be sorted by default when the table is first viewed this column will be highlighted to the user you may also select whether the default sort is ascending or descending  ',0),(107,'help',' grid output style the grid style will display each row of your view within a grid you may customize the number of columns though it defaults to 4 a grid looks like this row 1 row 2 row 3 row 4 row 5 row 6 row 7 row 8 row 9 row 10 row 11 row 12 row 13 row 14 row 15 row 16 the above uses the horizontal alignment where rows are added into the grid from left to right with a vertical alignment rows will be placed from top to bottom like this row 1 row 5 row 9 row 13 row 2 row 6 row 10 row 14 row 3 row 7 row 11 row 15 row 4 row 8 row 12 row 16 this style uses a row style to determine what each row will look like ',0),(108,'help',' rss output style the rss output style is only available for feed display types it will display the view as an rss feed which is a specialized xml output this output is not user visible but can be parsed by feed readers for aggregation you may supply a description for the rss feed most feed readers will display this description along with the contents of the feed you may also select to use the site s mission statement for the description ',0),(109,'help',' fields row style the fields row style displays each field defined in the view one after another each field defines its own output by default each field is put in a div unless it is selected to be inline  if it is inline it is put in a span two items in div s will be displayed one after another with the second one below the first two items in span s will be displayed on the same line one item in a span next to div s is the same as two items in div s this means that for the inline setting to do anything at least two consecutive items must be set inline you may define a separator which will be placed between each item this separator may be html you can use nbsp to print blank space ',0),(110,'help',' node row style the node row style will display each item of the view through drupal s standard nodeview  function views has very little control over this output except for the options you see instead the output is run through the standard node template mechanism typically nodetplphp or a variant thereof and any decisions about what is output may be done there views does add an extra suggestion to the list of possible node templates  nodeviewviewnametplphp  you may use this to theme a node specifically for the view this can be handy for creating very small teasers and the like you may opt to display the full node body or the node teaser and you may add the node links such as he comment links that appear after a node or not because of this behavior  the node row style does not utilize fields and the fields section will not be displayed please note that this row style performs a nodeload for every row and as such can produce a lot of extra queries sometimes this is necessary but it can have a negative impact on your site s performance  ',0),(111,'help',' node rss item row style this row style is only available to rss styles it produces xml necessary for an rss feed for the node record ',0),(112,'help',' comment rss item row style this row style is only available to rss styles it produces xml necessary for an rss feed for the comment ',0),(113,'help',' unformatted summary style the unformatted summary style is only available for summary styles which are when an argument has been set to provide a summary if it was not provided with a value this summary provides the possible candidates for the argument one after another with no special formatting if inline is selected the summary items will be enclosed within span tags otherwise the items will be in div tags you can also elect to display the number of matching records for the argument plus change the number of items per page for the summary this is often useful because summary views are often quite small but other views quite space intensive it is very common to have far more records available in the summary view than in the more normal view ',0),(114,'help',' list summary style the list summary style is only available for summary styles which are when an argument has been set to provide a summary if it was not provided with a value this summary provides a list of possible candidates for the argument in a standard html list like the normal list style you may set this list to be ordered or not you can also elect to display the number of matching records for the argument plus change the number of items per page for the summary this is often useful because summary views are often quite small but other views quite space intensive it is very common to have far more records available in the summary view than in the more normal view ',0),(115,'help',' menu options page display  page displays can hook into the drupal menu system and provide menu links that will appear in the navigation system as well as tabs that can be used to keep views next to each other for simple menu links  there is very little you need to do simply select normal menu entry and fill in the text for the title this will appear in the navigation menu by default you will need to visit the menu administration page to move this to another menu tabs are not quite so simple there are some complex rules for using tabs in drupal all tabs must have a parent which is the next level up in the path hierarchy for example if the view path is example taba then the parent must be example all tabs must have one and only one default tab this is usually the same content as the parent if a parent does not exist when creating the default tab views will allow you to also create a parent item it will automatically set up the url for you when it does this tab weight is used to control what order the tabs are displayed in lower numbers will display more to the left for tabs whose numbers are the same they will be displayed alphabetically drupal only supports 2 levels of tabs so be careful about trying to put tabs within tabs within tabs that won t work for example if you have two views that you want to be tabs you could set it up like this in the first view set the path to tabs tab1 set it to be the default tab set the title to tab 1 and the weight to 0 click update and you will be taken to a form that lets you define the parent since tabs doesn t already exist in the system select normal menu item and set the title to tabs on the second view set the path to tabs tab2 set it to be a menu tab and set the title to tab 2 with this done you will now have a navigation link named tabs and when you click on it you will go to the tabs with tab 1 being the default tab that appears you can then click between tab 1 and tab 2  ',0),(116,'help',' path options page display  if a display has a path that means that it can be retrieved directly by calling a url as a first class page on your drupal site any items after the path will be passed into the view as arguments for example if the path is foo bar and a user visits http wwwexamplecom foo bar baz beta  baz and beta will be given as arguments to the view these can be handled by adding items to the arguments section you may also use placeholders in your path to represent arguments that come in the middle for example the path node someview would expect the first argument to be the second part of the path for example  node 21 someview would have an argument of 21  note  views 1 used  arg for this kind of thing arg is no longer allowed as part of the path you must use instead if multiple displays within the same view have the same path the user will get the first display they have access to this means you can create successfuly less restricted displays in order to give administrators and privileged users different content at the same path ',0),(117,'help',' theme information you may use any of the following possible theme files to modify individual parts of your view in total there are four parts to theming a view the display theme is usually viewsviewtplphp and it largely controls the decorations around a view where the header footer pager more link feed icon etc will be placed the style will control how all of the results of the display are put together it may be as simple as just displaying all of the rows or it may be a complex table generator or something in between the row style controls each individual row not all styles utilize the row style notably the table but most others do finally  field themes allow you to override the look and even the data of each individual field if the style uses fields the actual template the system will use should be hilighted in bold  a breakdown of view output the link to the left of each type will give you information about the default template used for that type you may cut and paste this and place it in your theme with the appropriate template or you may copy the base file from the views theme directory or if provided by a module from the module s directory  it is important that you clear the theme registry cache every time you add a new template or the new template will not be picked up important note  you place your custom template files in your theme directory  not views theme  this is always true of theming with drupal in addition to this tool the very useful devel module contains a tool called the theme developer which does a good job of visually showing you which areas of your site use which themes be careful with it though as the theme developer causes the views edit page to break also this feature will only work properly with drupal 63 and later prior to drupal 63 this patch will be required  ',0),(118,'help',' using views templates views theme templates are straightforward to use with the drupal theming system if you are unfamiliar with the theming system at all you should probably at least read drupalorg theming documentation  that said these are the important things you need to know copy a base views template to one of the names provided from the theme information section of the view copy this template right into your theme directory clear the theme registry see the instructions for how to do this your new template should now operate assuming you picked a nicely named template that includes the view name that template should now be active for your view a good example is viewsviewlistfoobartplphp which would work for a view named foobar you can now modify this template all you like for any template that uses fields the fields will be in array in order to use this effectively you will need to understand enough php to fetch data from an array this is a place where the devel module can really help you because you can use its dsm function right in your template to see what variables it uses there is an alternative to dsm that works without devel module but it s a bit longer to use for example i placed the following code inside a loop in viewsviewtablephpphp php drupalsetmessage pre varexport row true pre and it produced this output array nid 97 title scisco ideo vicis feugiat qui name luwrepuslan my view had three fields node nid node title user name the contents of the row variable included these fields in precisely the order that i had arranged them to using the views rearrange link also worth noting though is that each field also has an identifier so it can easily be pulled out of the row should i want to display it differently using php print row title would print just the title for that row please remember that i m doing this inside the loop so this will get repeated for every row of the view the ids used to fetch items from the array id  row title  can be quickly and easily looked up on the theme information page once a field has been added to the view its id will not change but note that if there are two title fields in a view one will be title and the other will be title1 in order to prevent namespace collisions the important thing here is that views does provide ids views doesn t tell you what these ids are but it s easy to get them by dumping the row data and doing a simple visual inspection views does guarantee that these ids will not change unless you actually add a new field and remove the existing one in which case title above would become title1  the basic fields template the most common template people will need to rewrite is the simple viewsviewfieldstplphp which is the template used by the fields row style and all it does is display a simple list of fields however it is not that simple to the user because the template can t inherently know what the fields are it has to go through an array in a loop this loop isn t very handy when you really want to have fine control over the template by placing your fields precisely where and how you want relax though if you know what your fields are you can rewrite this if you end up writing your own html the only part that is really important is the content for each field we know from above that you can get the id for each field on the theme information page from the view in the header for the template we can see that the fields are all in the fields array and each field is an object that leads us to this php print fields someid content assuming you replace someid with an id found on the theme information page this code will print the content for that field you can also get the label and some other data about the field as well as the raw information complete details for what is available are documented directly in viewsviewfieldstplphp keep in mind that if you rewrite your templates using this you ll need to maintain this template whenever changes are made to the fields of the view while this isn t generally recommend sometimes it s necessary to get the kind of control you might ultimately need  ',0),(119,'help',' using css with views views uses a wide array of css classes on all of its content to ensure that you can easily and accurately select exactly the content you need in order to manipulate it with css typically every view is wrapped in a div with the name of the view as part of its class for all these examples we will assume the name of the view is myview  as well as the generic class view div class view viewmyview div in your css you can modify all views divview border 1px solid black or just your view divviewmyview background yellow by default the general view template also provides the following classes to easily style other areas of the view viewheader viewfilters viewcontent viewempty if an empty text is used when the view has no results viewfooter feedicon attachmentbefore if using an attachment display attachmentafter if using an attachment display so for example divviewmyview divviewheader make the header stand out fontsize 120 fontweight bold divviewmyview divviewfooter make the footer less important fontsize 80 fontstyle italic color ccc in the above example we whimsically made the header bold and in a bigger font and the footer smaller italicized and greyish views with fields if your view has fields each field is uniquely tagged with its id a field s id may be gleaned from the theme information page note that due to css rules any in the id will be converted to automatically so if you have a field whose id is editnode this is the field used to provide an edit link to a node it will be editnode additionally to make sure that the view ids don t conflict with other css classes in the system they will be pretended with viewsfield thus the final css class for the field with the id editnode will be viewsfieldeditnode  exactly how this appears is going to depend upon the style you re using for example the unformatted style uses divviewsfieldeditnode and divviewslabeleditnode to access that particular field but a table would use tdviewsfieldeditnode and thviewsfieldeditnode to access the table header or just viewsfieldeditnode to affect both viewmyview th color red make all headers red viewmyview viewsfieldtitle fontweight bold make the title field bold viewmyview tdviewsfieldbody fontsize 60 make the text in the body field small  ',0),(120,'help',' what are overrides  if an item is using defaults then it is using values from the default display  important note  if you modify this value you are modifying the default display and thus modifying for all displays that are using default values if that is not what you intend you must click the override button once overridden that display now has its own version of the value modifying it will not modify it for other displays for relationships   arguments   fields   sort criteria  and filters  each of these must be overridden as a group in other words you cannot override a single filter but instead must override all filters a message will appear on the item to let you know what its status is but you can only change the status by clicking on the header or the rearrange button for that item  ',0),(121,'help',' embedding a view into other parts of your site you can easily embed the results of a view into other parts of your site either with code as a module or in nodes or blocks as snippets the easiest way is to use the function viewsembedview   embed a view using a php snippet this function is meant to be called from php snippets should one wish to embed a view in a node or something it s meant to provide the simplest solution and doesn t really offer a lot of options but breaking the function apart is pretty easy and this provides a worthwhile guide to doing so param name the name of the view to embed param displayid the display id to embed if unsure use default as it will always be valid but things like page or block should work here param any additional parameters will be passed as arguments function viewsembedview name displayid default to figure out the id of a display hover your mouse over the tab to select that display everything after the viewstab is the id of that display this id is guaranteed never to change unless you delete the display and create a new one  ',0),(122,'help',' what s new in views 2 views 2 is the newest major release of views and it is specifically coded for drupal 6 views 2 retains all of the core functionality of views 1 together with a completely revamped user interface and a large set of new features which greatly expand upon the original featureset of views 1 this document is a sidebyside comparison of views 1 versus views 2 from a user s perspective detailing the ui changes some new ways to perform old tasks the cool new features of views 2 and how these features can be used to address some of the shortcomings of views 1 admin interface the first thing that pops out after you install views 2 is the radically different admin interface  views 2 admin interface compared to the old comfy views 1 interface  views 1 admin interface the new admin interface performs the same functions as the old listing all the views in the system providing links to add or import views and a link to views tools but has been compacted with each view displayed as a paragraph stylerow compared to the table of views 1 and set of filters on top to ease locating views among a large list contexthelp is available by clicking the small blue questionmark icon contexthelp in views 2 is provided by the advanced help module so make sure to install that together with installing views 2 the small blue help icons will be available in various parts of the views ui in particular look for them as part of the description of a display  when setting style options and in various editing sections such as path   menu and the like several new attributes of each view are visible in the filter header  tag  this is just another label for organizing and sorting views tags can be any text views that are provided by modules will often be tagged together to make it easy to find them display  in views 1 each view query was tied to its display in other words your fields sorts filters and arguments could only be displayed in the single page or block display provided in the view definition in views 2 view displays have been decoupled from view queries it is now possible to have multiple page block and feed displays from a single view more on view displays later type  views 2 view types are radically different from views 1 types views 1 types basically defined how the node list displays were styled  you had full nodes teaser list table view and so on in views 2 view display styles have been broken out into the separate style attribute view types now refer to the primary table on which information for the query will be retrieved which controls what arguments fields sort criteria and filters are available views 2 view types are discussed later adding a view so let s jump in and add a view for this example we re going to create a user view which will display a list of users adding a view the first step in adding a view is simply entering a name only alphanumeric characters no spaces a description tag and the view type to get the user view we selected the user radio button configuring the new view this might be the 2nd whoa moment as the interface here is also completely revamped from views 1x the best way to summarize is to say all the pieces from the views 1x interface are still therejust in different places fields arguments sort critera and filters are all still there there just in new ajaxyflavours let s start by adding some fields  adding fields clicking on the icon next to the word fields unfurls a section beneath the view information with all the available fields grouped by comment file node node revision taxonomy and user and probably a few others this is a general paradigm for the views 2 interface clicking on a widget or link unfurls a section beneath the view information with the relevant interface usually what is being edited will be hilited in yellow as well when adding items you can use the groups dropdown box to show only a subset of the fields available according to the above groups or select all to see all fields available which is what was selected when the section unfurled for our example we re selecting the user group and adding the user email   user name and user picture fields adding fields once we add our fields they show up in the fields section of the interface we will be walked through each field we added so keep clicking update  even if you don t make changes to the field and you will see the next one the fields we added can be rearranged by clicking the up down icon right next to the add icon we used earlier we can also remove a field using the same interface rearranging fields from here the fields can be dragged up and down by grabbing the little drag handle on the left and moving them where you like making a change to any part of the view by clicking update usually triggers a refresh of the view preview which is conveniently located right below the main interface views preview now that we have some fields set up we can turn our attention to basic settings for the view it s important to note that all the interface elements pertain to the current display selected for the view as mentioned before a view can have multiple displays the first time you create a view you ll be manipulating the default display you can add displays using the add display button whose basic settings are completely different from each other this lets you have as many displays of a view as you would like all sharing items such as sort criteria filters and arguments but different display settings like title style fields and pager settings also any display you add automatically inherits display settings from the default display initially so you can keep a core of common settings in your default display and add additional settings for every other display adding a page display let s stick with the default display and twiddle some settings we can set the title to user view 1 and the style to table as mentioned earlier view styles in views 2 correspond more to view types in views 1 remember list table teasers full nodes  selecting a views 1 view type in views 2 view styles control how a view display looks these styles are significantly different from the types in views 1 in particular types have been broken up there is now the style as well as the row style which focus on different parts of the output a breakdown of view output we change the style by clicking on the current style on the left hand side of the view information area selecting a views 2 display style we re given the style options of grid   list   table and unformatted  additional display styles can be added by modules which have views style plugins  choosing a style reveals a settings button which you can click to configure the style you ve chosen in the shot below we ve selected and are configuring the table style which we re using to produce a more compact output than we had earlier selecting and configuring the table style  todo finish this document  ',0),(123,'help',' updating your views from views 1 to views 2 todo this document needs to be fleshed out  ',0),(124,'help',' views api views allows modules to describe their tables relationships to each other as well as fields filters sort criteria and arguments via hookviewsdata   whenever views deems it necessary this hook is called the data aggregated together and cached hookviewsdataalter  may also be used to modify existing data changing other module s handlers or adding handlers to other module s tables views also allows modules to create new display types style types row styles argument default handlers and argument validators via hookviewshandlers  and hookviewsplugins   these hooks are kept in a file named modulenameviewsinc this file is automatically included upon need so there is no need to try and include this in hookinit or any other method of including inc files this file should store hookviewsdata hookviewsdataalter hookviewsplugins hookviewshandlers as well as any other hooks and subsidiary data that will only be used by your module when views is active all handlers and plugins provided by your module should be in separate inc files there are two similar files modulenameviewsdefaultinc and modulenameviewsconvertinc which contain default views and views 1 to views 2 convert helpers respectively hookviewsapi  in order for your files to be included your module must first implement hookviewsapi  in the main module file this module should return array of information the following items may be returned  api this must appear it should be the oldest api version that your module can work with if views is currently running an older version of the api it will ignore your module s views integration this is a good thing as it will prevent code crashes at the expense of your module s functionality disappearing you may find the current views api version by calling viewsapiversion  which is implemented at the top of viewsmodule this version numbering starts at 20 every time changes are made to the views handlers and plugins or other aspects of the views api the number will tick up by either 001 01 1 or 1 depending upon how major the changes are note that viewsapiversion  was introduced in views 20rc2 and may not exist prior to that version you may use functionexists to test to see if this function is there often these versions are basically compatible with each other and views won t care if your module implements 2000 2001 2002 etc your module can request that it won t work with any version older than a given version however views will determine itself if a newer version will work path if your views inc files are not in the same directory as the module file then return the full path here you should probably use something like drupalgetpath module yourmodulename includepath  ',0),(125,'help',' describing tables to views tables are described to views via hookviewsdata which returns an array of table information keyed by the name of the table for example if your module is describing three tables foo bar and baz your array will look like this data array foo array info here bar array info here baz array info here the key should be the actual database name of the table not including prefix but it can be an alias as long as the join information explained later contains the real name of the table each item in the array should be a field in the table with the exception of a special information section called table example data foo array table array info about the table described later bar array info about the field named bar ie foobar baz array info about the field named baz ie foobaz once you get down to an array that contains actual data that piece of the array will often be referred to as the definition the table section each table should have a table section in it which is used to set default information for the table such as the group as well as the very important joins and whether or not this is a base table first there are several items that are actually for fields but can be placed here so that all fields within the table inherit them group the name of the group this item will be with in the ui this is displayed as group title for example node node id taxonomy term description etc it is important to be consistent with groups because the ui sorts by group and allows filtering by group to find fields as well title the actual name of the field it should be concise and descriptive help a longer description to help describe what the field is or does it should try to be only a line or two so as not to clutter the ui in general having title and help at the table level doesn t make a lot of sense but usually every item in a table is in the same group thus it is very common to define the group data foo table group t foo  base table if your table is a base table meaning it can be the primary central table for a view to use you can declare it to be a base table this primarily provides ui information so that it can be selected for example advertise this table as a possible base table data node table base array field nid title t node help t nodes are a drupal site s primary content weight 10 the following tags are available in the field the primary key field for this table for views to treat any table as a base table it must have a primary field for node this is the nid for users this is the uid etc without a single primary key field ie not a composite key views will not be able to utilize the table as a base table if your table does not have a primary key field it is not too difficult to just add a serial field to it usually title the title of this table in the ui it should be singular and describe the object that this table contains from the perspective of the user help a short piece of text to describe what object this table contains database if this table is held in a different database from your drupal database specify it as a string in the exact same format as the settingsphp file this is a special purpose variable that will probably be only used in site specific code and it must be the same database type as your drupal database  also don t try to join it to any table that isn t in the same database that ll just create all kinds of silly errors for example in settingsphp for your site your drupal site database needs to be called default dburl default mysqli user pass host drupaldb dburl budget mysqli user pass host otherdb then when you are describing the external database in your base table you would write something like this data table table base array field primary key title t field name help t field description database budget weight 10  linking your table to existing base tables for views to use your table it has to either be a base table or know how to link to an existing base table or sometimes both views uses this information to create a path to the base table when the table is added to the query views will walk along this path adding all tables required into the query how termdata joins to node in the above example to use these with node as the base table both termdata and termnode need to be defined and they each need a join handler for node data termdata table join node array lefttable termnode leftfield tid field tid the above can be read as in order to join to the node table the termdata table must first link to the termnode table and they join on the tid field when adding this table to the query for a node view views will look at this and then look for the termnode table data termnode table join node array leftfield nid field nid above the fact that lefttable is left out lets us know that termnode links directly to the node table using the nid field on both sides of the join quite a few more fields are available in this definition handler the name of the handler object to use defaults to viewsjoin you may create custom join handlers that may or may not use any of the data below as they see fit table table to join this is optional and should only be used if the table being referenced is an alias field field to join on this is required lefttable the next step toward the final destination if this is the final destination it may be omitted leftfield the field to join to on the left side this is required type either left default or inner extra either a string that s directly added or an array of items each item is itself an array field field or formula operator similar to filters this is the operator such as etc defaults to or in value must be set if an array operator will be defaulted to in numeric if true the value will not be surrounded in quotes and d will be used for its placeholder extra type how all the extras will be combined either and or or defaults to and describing fields on tables aside from the special table tag each table can also have an unlimited number of field designations these correspond roughly to fields on the table though it is very common to use nonfields to display data that isn t directly in a field such as data arrived from formulae or special links related to the object the table is part of each field is described in the view data with an array keyed to the database name of the field this array may contain some information fields plus an entry in each of the five types of items views has per field argument field filter relationship sort for example data node nid array title t nid help t the node id of the node the help that appears on the ui information for displaying the nid field array handler viewshandlerfieldnode click sortable true information for accepting a nid as an argument argument array handler viewshandlerargumentnodenid name field title the field to display in the summary numeric true validate type nid information for accepting a nid as a filter filter array handler viewshandlerfilternumeric information for sorting on a nid sort array handler viewshandlersort the above example describes the nid field on the node table providing 4 of the 5 handlers note that while field is normally expected to be the database name of the field it doesn t have to be you can use an alias which is how you get multiple handlers per field or something completely made up for items that aren t tied to the database for example data node editnode array field array title t edit link help t provide a simple link to edit the node handler viewshandlerfieldnodelinkedit the above handler definition an edit link to a node but this isn t a field in and of itself for aliased fields here is another example data users uidcurrent array real field uid title t current help t filter the view to the currently logged in user filter array handler viewshandlerfilterusercurrent the above definition provides an alternate filter handler on the uid field for the current user the following items are allowed in the field definition group title help as above these fields are for the ui if placed here any of these fields will override a setting on the base table real field if this field is an alias the real field may be placed here and the handler will never know the difference field a handler definition for the field section which is a field that may be displayed in a view the definition is an array the contents of the array are completely up to the handler other than the handler definition if omitted handler will default to viewshandlerfield filter a handler definition for the filters section which will be used to apply where clauses to the view the definition is an array the contents of the array are completely up to the handler other than the handler definition if omitted handler will default to viewshandlerfilter sort a handler definition for the sort criteria section which will be used to add an order by clause to the view the definition is an array the contents of the array are completely up to the handler other than the handler definition if omitted handler will default to viewshandlersort relationship a handler definition for the field section which is a way to bring in new or alternative base tables in the view the definition is an array the contents of the array are completely up to the handler other than the handler definition if omitted handler will default to viewshandlerrelationship the basic relationship handler requires base and base field to be set base and base field represent the right half of the join that will use this field as the left side argument a handler definition for the field section which is method of accepting user input from the url or some other source the definition is an array the contents of the array are completely up to the handler other than the handler definition if omitted handler will default to viewshandlerargument for more information about what handlers need use what data visit the views api site and check out the available handlers  ',0),(126,'help',' using default views in your module views can be stored in the database which is typical of smaller sites and hobby sites however views may also be stored directly in the code as default views which simply means they re available by default modules often come with views that are specific to the module data but it s also possible and highly recommended that sites which have separate development and production sites export their views into default views in a sitespecific module this makes it very easy to transfer views from dev to production without making database changes creating a module first create a directory in sites all modules for your new module call it whatever you like but for this example we will call it mymodule  in this directory create a mymodulemodule file it can be empty for now but it should at least contain an opening php tag php id it should not contain a closing tag as the closing tag is not required and anything after the closing tag such as a space or a linefeed will be displayed directly to the browser and can potentially cause problems the module file will contain functions and drupal hooks hooks are specially named functions that drupal will call in order to get your module s response at certain times while generating pages the only function you will need for this exercise is the viewsapi hook that tells views that this module supports the views api and what version function mymoduleviewsapi return array api 20 for other uses you may well add additional functions second you need to create a mymoduleinfo file id name my module description my site specific module core 6x once you have these two files set up you should be able to activate your new module at the administer site building modules page exporting your views the easiest way to do this is to activate the viewsexport module and navigate to administer views tools bulk export place a check next to each view that you want in your module type the module name into the text field and click export this will create the entire hookviewsdefaultviews  function for you you can also export individual views if you do this keep in mind that this export does not include the line that adds the exported view into the larger views array views view name view to place this into your hookviewsdefaultviews  you will need to place that after the view and make sure the function returns views at the end placing your exported views into your module cut and paste the entire output of the bulk export tool into mymoduleviewsdefaultinc and be sure to put a php at the top of the file so that the webserver knows that it s php code then visit the views tools page and clear the views cache your views should now be listed as overridden on the view list page if you revert these views they will be removed from the database but will remain in code theming your views in your module you can theme these views in the module and not need to rely on the theme to do this at all and in fact the theme can continue to override these just like it ordinarily would even if your module provides a theme this is very useful for distributing a module where the view needs to look just so to do this you need to implement hooktheme  in your module function mymoduletheme existing return array viewsviewviewnamedisplayid array arguments array view null template viewsviewviewnamedisplayid original hook viewsview path drupalgetpath module mymodule there are a small number of gotchas in doing this that you must be aware of when referring to a template filename you always use dashes in the name ie  viewsviewviewnamedisplayidtplphp  however when referring to the hook or function names you use underscores instead of dashes ie  viewsview and viewsviewviewnamedisplayid the arguments change based upon which of the 3 types you re overriding there s the display the style and the row style the above code is assuming the display which is usually just viewsview  here are the possibilities display array view null style array view null options null rows null title null row style array view null options null row null be sure to use the right arguments line or the theme system will not properly translate the template line should never include the extension so drop the tplphp from it you need to make sure that the views preprocess functions get registered the original hook line in the definition does that but it can only do it if it comes after the views registration which actually happens very late in theme building 99 of the time your module will come before views you have two choices to deal with this set your module s weight to 11 or higher in the database views weight is 10 you can make this happen automatically when the module is first installed by creating a mymoduleinstall file and using this code function mymoduleinstall dbquery update system set weight 11 where name mymodule if you use this method the original hook should be set to the name of the original template being used ie if this is a variate of viewsviewlisttplphp this should be viewsviewlist you can also just force it to list the preprocessors without actually having to detect them this doesn t require modifying your module s weight which is not always possible you can insert this code into the array preprocess functions array templatepreprocess templatepreprocessviewsview mymodulepreprocessviewsviewviewnamedisplayid the first one is the global templatepreprocess function which all templates utilize it does some basic things such as setting up zebra and a few other items see apidrupalorg for specifics the second one is the plugin specific preprocess like original hook it should conform to the name used by the original template ie if the original template was viewsviewlisttplphp then that preprocess function would be named templatepreprocessviewsviewlist  the third one is your module s preprocess function if it needs one in general you probably will not need one and you should only attempt to use one if you are reasonably familiar with the concept of preprocess functions and drupal s theme system in general see drupal s theme documentation for more information if you leave the path blank the template file will be searched for in which is the drupal install base path  ',0),(127,'help',' how views handlers work in views a handler is an object that is part of the view and is part of the query building flow handlers are objects much of the time the base handlers will work but often you ll need to override the handler for something one typical handler override will be viewshandlerfilteroperatorin which allows you to have a filter select from a list of options you ll need to override this to provide your list handlers have two distint code flows the ui flow and the view building flow for the query flow handler construct create the initial handler at this time it is not yet attached to a view it is here that you can set basic defaults if needed but there will be no knowledge of the environment yet handler setdefinition set the data from hookviewsdata relevant to the handler handler init attach the handler to a view and usually provides the options from the display handler prequery run prior to the query stage to do early processing handler query do the bulk of the work this handler needs to do to add itself to the query fields being the only handlers concerned with output also have an extended piece of the flow handler prerender called prior to the actual rendering this allows handlers to query for extra data the entire resultset is available here and this is where items that have multiple values per record can do their extra query for all of the records available there are several examples of this at work in the code handler render this does the actual work of rendering the field most handlers are just extensions of existing classes with a few tweaks that are specific to the field in question for example filter by node type class viewshandlerfilternodetype extends viewshandlerfilterinoperator function getvalueoptions if isset this valueoptions this valuetitle t node type types nodegettypes foreach types as type info options type info name this valueoptions options  viewshandlerfilterinoperator provides a simple mechanism to set the list used and the rest of the handler is perfectly fine for this handlers are stored in their own files for these files to be loaded by views on demand they must first be registered since views core handlers are also loaded this way it s imperative that your module also implement this pattern in order to prevent code crashes when your handler s parent class is not yet available to register handlers you must implement hookviewshandlers   this hook returns an array with two keys the first key is info which contains the modulename which is only necessary if you re registering handlers on behalf of another module such as what views does and path  which is the search path to find the files this path is only necessary if your files will not be stored in the same directory as the module file the other key is handlers which contains a full array of handlers and the information for each handler the key to each handler array is the name of the handler class it can contain  parent the class that this handler extends this is important to make sure that the parent class is included before your handler class without this you may cause people s sites to crash in a difficult to recover state be sure you get this right  file the filename the handler is in by default this will be classnameinc however you can have multiple similar handlers together in one file however because there is only one parent please be sure that the parentage on these handlers matches otherwise you will run into whitescreens as not all parents will be loaded you can see examples of this function in any of the various moduleviewsinc files in the views modules directory the best place to learn more about handlers and how they work is to explore the views api site and use existing handlers as a guide and a model understanding how viewshandler and its child classes work is handy but you can do a lot just following these models you can also explore the views module directory particularly nodeviewsinc please note that while all handler names in views are prefixed with views you should use your own module s name to prefix your handler names in order to ensure namespace safety note that the basic pattern for handler naming goes like this module handler type tablename fieldname sometimes table and fieldname are not appropriate but something that resembles what the table field would be can be used ',0),(128,'help',' how views plugins work in views a plugin is a bit like a handler but plugins are not directly responsible for building the query instead they are objects that are used to display the view or make other modifications there are 6 types of plugins in views display display plugins are responsible for controlling where a view lives page and block are the most common displays as well as the ubiquitous default display which is likely what will be embedded style style plugins control how a view is displayed for the most part they are object wrappers around theme templates row style row styles handle each individual record from a node argument default argument default plugins allow pluggable ways of providing arguments for blocks views includes plugins to extract node and user ids from the url additional plugins could be used for a wide variety of tasks argument validator validator plugins can ensure arguments are valid and even do transformations on the arguments access access plugins are responsible for controlling access to the view plugins are registered by implementing hookviewsplugins  in your modulenameviewsinc file and returning an array of data the array will look something like this return array display array list of display plugins style array list of style plugins row array list of row style plugins argument default array list of argument default plugins argument validator array list of argument validator plugins access array list of access plugins each plugin will be registered with an identifier for the plugin plus a fairly lengthy list of items that can define how and where the plugin is used here is an example from views core node array title t node help t display the node with standard node view handler viewspluginrownodeview path drupalgetpath module views modules node not necessary for most modules theme viewsviewrownode base array node only works with node as base uses options true type normal of particular interest is the path directive which works a little differently from handler registration each plugin must define its own path rather than relying on a global info for the paths also there is an optional parent directive which is automatically filled in to be the base parent for the plugin type usually this is enough but if your plugin derives from something other than the base it must be filled in for example feed array title t feed help t display the view as a feed such as an rss feed handler viewsplugindisplayfeed parent page so it knows to load the page plugin inc file uses hook menu true use ajax false use pager false accept attachments false admin t feed help topic displayfeed note that unlike handler registration where parentage is referred to by object name with plugins it is referred to by the unique plugin identifier please be sure to prefix your plugin identifiers with your module name to ensure namespace safety after all two different modules could try to implement the grid2 plugin and that would cause one plugin to completely fail todo finish this document  ',0),(129,'help',' integrating the node example module for the new table defined by the node example module to be understood by the views module you need to create a nodeexampleviewsinc file that describes the table and its relationships to the rest of the database in order for views to know that this file is to be loaded you need to implement hookviewsapi this is done by adding the following function into your nodeexamplemodule file php implementation of hookviewsapi this tells drupal that there is views integration file named modulenameviewsinc function nodeexampleviewsapi note that you can include path in this array so that your viewsinc file can be stored in a different location return array api 20 below is the contents of a simple nodeexampleviewsinc file that allows you to create views that include the new color and quantity information php id apiexamplehtml v 12 20090915 154414 merlinofchaos exp this file is used to tell the views module about the new nodeexample table database definition code create table nodeexample vid int 10 unsigned not null default 0 nid int 10 unsigned not null default 0 color varchar 255 not null default quantity int 10 unsigned not null default 0 primary key vid nid key nodeexamplenid nid endcode function nodeexampleviewsdata basic table information nodeexample table new group within views called example the group will appear in the ui in the dropdown tha allows you to narrow down which fields and filters are available data array data nodeexample table group t example let views know that our example table joins to the node base table this means it will be available when listing nodes and automatically make its fields appear we also show up for node revisions data nodeexample table join array noderevisions array leftfield vid field vid node array leftfield vid field vid quantity data nodeexample quantity array title t quantity help t quantity of items field array handler viewshandlerfieldnumeric click sortable true filter array handler viewshandlerfilternumeric sort array handler viewshandlersort color data nodeexample color array title t color help t color of item field array handler viewshandlerfield click sortable true filter array handler viewshandlerfilterstring argument array handler viewshandlerargumentstring sort array handler viewshandlersort return data some notes on usage within views click on the add tab you have a number of type options here normally you would select either node if you only want to display information on current nodes or node revision if you want to display information on all revisions of the nodes with this configuration you always pull out of the database data for every single node whether or not it has color and quantity information to display information on just those nodes that have color and quantity information you can use a filter so that only nodes which don t have a null color or a null quantity are displayed type relationship extension when your tables have first class data you will often need to have own view types and view relationships defined with the current nodeexample table this isn t required although i try to justify it below on an efficiency basis see http groupsdrupalorg node 17236 comment58980 this discussion as to why it isn t justified pulling data out of the database for every node when you only want data for the new example node type is inefficient to reduce the initial data extraction to just that relating to the new example nodes requires that you make the nodeexample table the base table this can be done by adding the following code into the nodeexampleviewsinc file just before the return data php begin optional extra for type and relationships use nodeexample as a new base table by creating a new views type called node example this allows it to be selected as the view type when you initially add a new view data nodeexample table base array field vid title t node example help t node example type with color and quantity information weight 9 when using the new node example type you need to use relationships to access fields in other tables relationship to the node revision table data nodeexample vid array title t node revision help t the particular node revision the color and quantity is attached to relationship array label t node revision base noderevisions base field vid this allows us to not show this relationship if the base is already noderevisions so users won t create circular relationships skip base array node noderevisions relationship to the node table data nodeexample nid array title t node help t the particular node the color and quantity is attached to relationship array label t node base node base field nid this allows us to not show this relationship if the base is already node so users won t create circular relationships skip base array node noderevisions end optional extra for type and relationships the above code adds a new node example to the view types that can be selected within the add tab window of views selecting this sets the nodeexample table to be the base table if you select node example as view type when you initially go into the edit window of views you will find the only fields available are the color and quantity fields to get fields from other tables you need to add a relationship relationships may be found at the top in the same column as the fields  ',0),(130,'help',' readme readmetxt a module containing helper functions for drupal developers and inquisitive admins this module can print a log of all database queries for each page request at the bottom of each page the summary includes how many times each query was executed on a page and how long each query took it also a block for running custom php on a page a block for quickly accessing devel pages a block for masquerading as other users useful for testing reports memory usage at bottom of page more this module is safe to use on a production site just be sure to only grant access development information permission to developers also a dpr function is provided which pretty prints arrays and strings useful during development many other nice functions like dpm dvm ajax developers in particular ought to install firephp core from http wwwfirephporg and put it in the devel directory your path to fbphp should looks like devel firephpcore lib firephpcore fbphp you can use svn checkout http firephpgooglecodecom svn trunk trunk libraries firephpcore then you can log php variables to the firebug console is quite useful included in this package is also develthemermodule which outputs deep information related to all theme calls on a page develnodeaccess module which prints out the nodeaccess records for a given node also offers hooknodeaccessexplain for all node access modules to implement handy develgeneratemodule which bulk creates nodes users comment terms for development macro module has moved to http drupalorg project macro compatibility notes modules that use ahah may have incompatibility with the query log and other footer info consider setting globals develshutdown false in order to avoid issues modules that use ajax should idenify their response as contenttype text javascript the easiest way to do that is run your reply through drupaljson author maintainer moshe weitzman weitzman at tejasa dot com  ',0),(131,'help',' readmedevelnodeaccess readme this module contains tools for developers using access control modules to restrict access to some nodes it is intended to help catch some common mistakes and provide feedback to confirm that restricted nodes are in fact visible only to the intended users provides a summary page which queries the nodeaccess table and reports common mistakes such as the presence of drupal s default entry which grants all users read access to all nodes also reports the presence of nodes not represented in nodeaccess table this may occur when an access control module is installed after nodes have already been created provides a block which shows all nodeaccess entries for the nodes shown on a given page this gives developers a quick check to see that grants are provided as they should be this block autoenables to the footer region you may move it as desired if you enable dba debug mode on the devel settings page you will get more information provides a second block that shows and explains the crud access rights of the 10 most recently active users this block is disabled by default because it has a huge overhead if views module is installed allows browsing of nodes by realm including those nodes not in the nodeaccess table null realm wishlist things i d like to see but haven t had time to do automatically solve common problems ie delete the all realm entry and automatically save all nodes not in the nodeaccess table nicer feedback indicating whether nodes are visible to the public or not ie use color coding or icons summary does not differentiate between view grants and other types of grants i personally use nodeaccess only for view grants so i m not sure exactly what else it should show staff original author dave cohen aka yogadex on drupalorg current maintainer hans salvisberg aka salvis on drupalorg  ',0),(132,'help',' about page manager the page manager module creates and manages pages in your drupal site pages are defined as items that have a path and provide output to the user it is a complete round trip from getting user input to providing user output there are two types of pages that the page manager currently supports custom pages custom pages are defined completely by the administrator their path access control and visible menu characteristics are completely arbitrary system pages system pages are defined by drupal and drupal modules they primarily override preexisting pages to provide different functionality they often do not allow such features as access control in favor of what already exists and they will usually fall back to default drupal behavior both types of pages figure out what to show the user by using variants  variants are output handlers and every page should have at least one most pages will simply have only one pages with multiple variants will choose one and only one variant to display content to the user and will use the selection rules to figure out which variant to display ',0),(133,'help',' getting started note this page is currently very preliminary please visit http drupalorg node 528034 to help provide this documentation page this is a quick summary visit administer site building pages to get to the primary page manager interface you can add custom pages for your basic landing pages front pages whatever you like for normal content display you can use the system pages to create finer control of how taxonomy vocabularies nodes and user profiles are displayed when you add your first custom page do not bother with the optional features you will not need these until you get to more advanced tasks the selection rules are the key to creating node displays for just one node type everything in this system is pluggable a little php knowledge and exploration of the plugins directories can take you a long way  ',0),(134,'help',' the page list please visit http drupalorg node 528036 to help provide this documentation page ',0),(135,'help',' creating a page please visit http drupalorg node 528038 to help provide this documentation page ',0),(136,'help',' tutorial make a page that looks different for members please visit http drupalorg node 528040 to help provide this documentation page ',0),(137,'help',' tutorial customize the look of a single node type please visit http drupalorg node 528044 to help provide this documentation page ',0),(138,'help',' tutorial customize the look of a single taxonomy vocabulary please visit http drupalorg node 528046 to help provide this documentation page ',0),(139,'help',' custom pages please visit http drupalorg node 528050 to help provide this documentation page ',0),(140,'help',' arguments please visit http drupalorg node 528058 to help provide this documentation page ',0),(141,'help',' access control please visit http drupalorg node 528072 to help provide this documentation page ',0),(142,'help',' menu items please visit http drupalorg node 528078 to help provide this documentation page ',0),(143,'help',' variants please visit http drupalorg node 528078 to help provide this documentation page ',0),(144,'help',' readme  id readmetxt v 1526 20100909 030434 sun exp summary jquery ui http uijquerycom is a set of cool widgets and effects that developers can use to add some pizazz to their modules this module is moreorless a utility module that should simply be required by other modules that depend on jquery ui being available it doesn t do anything on its own for a full description of the module visit the project page http drupalorg project jqueryui to submit bug reports and feature suggestions or to track changes http drupalorg project issues jqueryui requirements the jquery ui library installation copy the jqueryui module directory to your sites all modules directory so it is located in sites all modules jqueryui download the jquery ui 16 release from http codegooglecom p jqueryui downloads list q 16 put the downloaded archive into the module directory sites all modules jqueryui jqueryui16zip extract the archive this will create the following subdirectory sites all modules jqueryui jqueryui16 rename the subdirectory into jqueryui within the jqueryui module folder sites all modules jqueryui jqueryui so the actual jquery ui javascript files are located in sites all modules jqueryui jqueryui ui js enable the module at administer site building modules jquery ui 17 the jquery ui module uses jquery ui 16 because jquery ui 17 requires at least jquery 13 which is not shipped with drupal 6 if you absolutely need to move to jquery ui 17 you can get around this by doing the following download and install the corresponding jquery update module from http drupalorg project jqueryupdate download the latest jquery ui 17 release from http codegooglecom p jqueryui downloads list q 17 put the downloaded archive into the module directory sites all modules jqueryui jqueryui17zip extract the archive this will create the following subdirectory sites all modules jqueryui jqueryui17 rename the subdirectory into jqueryui within the jqueryui module folder sites all modules jqueryui jqueryui so the actual jquery ui javascript files are located in sites all modules jqueryui jqueryui ui js enable the module at administer site building modules api developers who wish to use jquery ui effects in their modules need only make the following changes in your module s info file add the following line dependencies jqueryui this will force users to have the jquery ui module installed before they can enable your module in your module call the following function jqueryuiadd files for example jqueryuiadd array uidraggable uidroppable uisortable jqueryuiadd uisortable for a single file see the contents of the jqueryuixx subdirectory for a list of available files that may be included and see http uijquerycom docs for details on how to use them the required uicore file is automatically included as is effectscore if you include any effects files contact current maintainers jeff robbins jjeff angela byron webchick addison berry add1sun daniel f kudwien sun http drupalorg user 54136  ',0),(6,'node',' about us who we are the community reinvestment association of north carolina s mission is to promote and protect community wealth we advocate for change in the lending practices of financial institutions to promote wealth building of underserved communities and to end predatory lending practices that strip wealth committed to creative advocacy cranc uses research education mobilization media litigation regulatory changes legislative advocacy and stockholder actions to initiate change a cranc action  street theater protest in the narrative format of the perils of pauline dudley doright or in this case delaware doright to speak out against payday lending in delaware  a creative approach to advocacy cranc has a longstanding tradition of advocacy for social justice we are well known for our creative theatrical approach to community mobilization and protesting in the usually humdrum financial world we have waged several memorable campaigns over the years which have each produced positive impact both in north carolina and across the united states defaultcranclog0png ',0),(5,'node',' contact us community reinvestment association of north carolina mailing address  post office box 1929 durham nc 27701 physical address  110 e geer street suite 3 durham nc 27701 telephone   919 6671557 fax number   919 6671558  please drop us a line  name email comment question  ',0),(48,'node',' asset building cranc has joined with many groups across the country in framing in social policy through the lens of assets asset policies acknowledge the protective effect that wealth confers upon a family assets form a kind of moat against emergencies accountants define an asset as something with worth in the future this interpretation goes beyond just financial vehicles and includes housing education and other social goods cranc participates in the north carolina ida and asset building collaborative  this partnership of nonprofits government and university researchers seek to develop policies that encourage savings and asset accumulation in north carolina families north carolina ranks in the bottom tier of states according to the latest assets and opportunities scorecard published by cfed  this owes to north carolina s lagging performance in several areas we rank 48th in per pupil spending we rank last in the percentage of children in poverty who are in head start we rank 43rd in the percentage of households with noninterest bearing checking accounts asset policy is often buttressed by some of the same findings that underpin the need for better access to housing they both turn on research that shows that turning america into an opportunity society depends upon addressing inequalities in access to many of the regular institutions that make up everyday life consider a few facts 70 percent of lowincome neighborhoods do not have a single bank or credit union  there is more of gap among races in terms of assets than in terms of income the average white family in north carolina earns 18 times more than the average africanamerican family but has ten 10 times more in assets  almost one in three of north carolina s children live in a home with fewer than three months of savings defaultcranclog0png  educationmedia  ',0),(37,'node',' foreclosure prevention loan modifications foreclosure prevention loan modifications content foreclosure prevention loan modifications  educationmedia  ',0),(23,'node',' media advocacy media advocacy is the strategic use of media as a resource for advancing social or public policy initiatives our particular focus is video advocacy the use of video to advocate for a cause or express a viewpoint video can be more effective than brochures billboards and newsletters in communicating with your target audience unlike written formats video can provide both verbal and nonverbal messages visual and paralinguistic that are informative and persuasive cranc s media advocacy services has the ability to create videos that are not as expensive as many other video companies we offer creativity and affordability we use digital video which is far less expensive than traditional formats we believe educational videos should be engaging and entertaining as well as informative people need to remember the information conveyed and they can only do so if the program offers some sense of memory recall something that sticks in folks minds we are not a production company we produce videos and use them to advance a particular set of social issues or messages reportersjpg  educationmedia  ',0),(24,'node',' education media ',0),(26,'node',' prepaid debit cards prepaid debit cards content to add defaultcranclog0png ',0),(27,'node',' about bank talk blog visit the bank talk website read blogfeed from bank talk on crancorg about bank talk bank talk is a blog about the alternative financial products that serve the unbanked population in america there are more households out there without access to bank accounts that one might assume from a first glance the fdic says that about 40 million americans live in households without a bank account industry estimated are even higher ranging from 70 million to 110 million depending upon how the unbanked and underbanked are defined these consumers use check cashers regularly many get credit from unusual sources refund anticipation loans payday loans pawn shops and their friendly uncle the alternative financial services industry is changing rapidly bank executives indicate that they plan to cut back on free checking in the near future increasingly the unbanked use prepaid cards for many of the basic services offered to holders of checking accounts they keep deposits on these cards use them at atms or point of purchase kiosks and even access them for credit it s fun to talk about behavioral economics and the bank talk blog certainly does some of that bank talk s main focus though is going to be how money intersects with the lives of regular people it s more empirical than theoretical more concrete than abstract more country than city more sonny than cher bank talk returns to a few favorites time and time again some of the hot topics include the unbanked refund anticipation loans the community reinvestment act the earned income tax credit subprime lending credit cards the big banks bank of america wells fargo citigroup and jp morgan chase bank talk is written by adam rust  the research director here at the community reinvestment association of north carolina adam earned a master s degree in city planning from the university of north carolinachapel hill and a master s degree in journalism from the university of missouricolumbia email adam defaultcranclog0png  advocacyresearch  ',0),(28,'node',' home mortgage lending one of the research links for this page  paying more for the american dream iii when the community reinvestment act is in force consumers get fewer high cost loans from banks and thrifts when it is not in force the frequency parallels those of independent mortgage companies picture1png  advocacyresearch  ',0),(29,'node',' small business lending small business lending content to add  advocacyresearch  ',0),(30,'node',' student loans the cost of education continues to increase often students incur so much debt that it limits their career choices in some cases it blocks them from the path of building savings and buying a home cranc supports the application of the community reinvestment act cra to private student lending read our comments to the federal reserve  see our papers on how cra impacts historically black colleges and universities  hbcus and their students  defaultcranclog0png  advocacyresearch  ',0),(31,'node',' corporate advocacy content to add for corporate advocacy  advocacyresearch  ',0),(32,'node',' cranc books books books http wwwcrancorg bookshelfhtml defaultcranclog0png  educationmedia  ',0),(33,'node',' archive archive content defaultcranclog0png  educationmedia  ',0),(36,'node',' community reinvestment act trainings community reinvestment act trainings content content community reinvestment act trainings  educationmedia  ',0),(10,'node',' current happenings lorem ipsum dolor sit amet consectetuer adipiscing elit sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat ut wisi enim ad minim veniam quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum typi non habent claritatem insitam est usus legentis in iis qui facit eorum claritatem investigationes demonstraverunt lectores legere me lius quod ii legunt saepius claritas est etiam processus dynamicus qui sequitur mutationem consuetudium lectorum mirum est notare quam littera gothica quam nunc putamus parum claram anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima eodem modo typi qui nunc nobis videntur parum clari fiant sollemnes in futurum  ',0),(145,'help',' readme  id readmetxt v 1721 20100911 174253 katbailey exp quicktabs description this module provides a form for admins to create a block of tabbed content by selecting first the desired number of tabs and then selecting either an existing view or an existing block as the content of each tab arguments can be passed if a view is selected installation use 1 enable module in module list located at administer build modules 2 go to admin settings quicktabs to select a style for your tabs 3 go to admin build quicktabs and click on the new qt block local task tab 4 add a title for your block and start entering information for your tabs 5 use the add another tab button to add more tabs 6 use the drag handles on the left to rearrange tabs 7 once you have defined all the tabs click next 8 you will be taken to the admin build block screen where you should see yor new tabbed block listed 9 configure enable it as required note because quicktabs allows your tabbed content to be pulled via ajax it has its own menu callback for getting this content and returning it in json format for node content it uses the standard nodeaccess check to make sure the user has access to this content it is important to note that any node can be viewed from this menu callback if you go to it directly at quicktabs ajax node nid it will return a json text string of the node information if there are certain fields in any of your nodes that are supposed to be private these must be controlled at admin content nodetype mynodetype display by setting them to be excluded on teaser and node view setting them as private through some other mechanism eg panels will not affect their being displayed in an ajax quicktab author katherine bailey http drupalorg user 172987 tab styles provided by hubert florin and steve krueger  ',0),(146,'help',' readme  id readmetxt v 12 20080521 050445 webchick exp contents of this file introduction installation introduction authors jeff robbins jjeff angela byron webchick addison berry add1sun this module made by robots http wwwlullabotcom jquery update module upgrades drupal s stable version of jquery in order to support the most current jquery version available once a stable release of drupal comes out only minor bugfix changes may be added to it so drupal s version of jquery will often lag behind the most recent release offered by the jquery project the jquery community tends to only support the most recent version so this module ensures that your drupal installation can run the most uptodate jquery plugins installation 1 copy the jqueryupdate directory to your sites sitename modules directory 2 enable the module at administer site building modules 3 that s it thanks to the new theme system in drupal 6x you no longer need to copy files around hooray  ',0),(11,'node',' cranc board of directors cranc is a 501 c 3 nonprofit its board is selfselecting with an emphasis on diversity and a commitment to advocacy the board represents minority and lowincome communities nonprofit community developers housing service agencies credit counseling agencies and fair housing and legal services cranc s board members play roles at the local state regional and national levels 2010 board officers kate rumely president  executive director brick capital cdc anthony clark president  executive director uhuru cdc james carl manning vice president  executive director kingdom cdc peter laroche treasurer  president and ceo consumer credit counseling service of forsyth county  2010 board members luis collazo city of fayetteville human relations chris estes executive director  north carolina housing coalition dan kornelis director of housing forsyth county north carolina victor galloway north carolina institute for minority economic development ncimed  lenora jarvis mackey executive committee  executive director  river city cdc resea willis executive director countywide cdc craig white center for participatory change helen mcinnis senior associate  north carolina rural center ',0),(13,'node',' our funders cranc works on behalf of the community because of support from foundations and other funders we receive funding for specific projects as well as to support our general operating mission cranc is a 501 3 organization and believes in conducting its affairs with transparency all financial records are available for public review here are our most recent annual report and audited financial statements  thank you to our 2010 funders  the z smith reynolds foundation the fb heron foundation the national consumer law center innovest strategic value advisors fee for service  cranc is partnering with innovest to develop tools for socially responsible investors cranc utilizes a datadriven approach to gauge risks associated with subprime lending  ',0),(38,'node',' for press press contact info info here info info defaultcranclog0png ',0),(14,'node',' cranc staff peter skillern executive director read peter s bio or email peter   dilsey davis media advocacy director read dilsey s bio or email dilsey   adam rust research director read adam s bio or email peter   cara williams business services administrator email cara   michael de los santos community organizer read michael s bio or email michael defaultcranclog0png ',0),(39,'node',' the unbanked rapid change in basic financial services while there has been plenty of attention surrounding tarp and hamp this year has witnessed extensive disruption in alternative financial services the fdic has estimated that almost 1 in 4 adults lacks access to basic bank services we believe that this is a significant issue for financial justice follow news on the unbanked at bank talk  defaultcranclog0png  advocacyresearch  ',0),(19,'node',' volunteer income tax assistance defaultcranclog0png  taxpayerassistancecenter  ',0),(18,'node',' community reinvestment act the community reinvestment act compels financial institutions to make capital available to borrowers throughout the community we engage in discussions with banks and communities to realize the spirit of this law read more  defaultcranclog0png  advocacyresearch  ',0),(22,'node',' socially responsible investing cranc has developed a set of investment metrics for the community investment index fund a project of the fb heron foundation in conjunction with innovest strategic value advisors the community investment index is a positively screened socially responsible investment fund cranc provides an evaluation of financial institutions based on public data and secondary sources to measure the extent of mortgage small business and community development funding to lowincome rural and minority communities in the united states cranc owns stock in 53 financial institutions our shareholder advocacy includes dialogue and resolutions to address the negative business and social impacts of subprime lending payday lending and refund anticipation loans socially responsible investing sri seeks to link social values with equity investment in publicly traded companies   construction of sri indices cranc works with the fb heron foundation and innovest strategic value advisors to create a section of the community investing index the effort serves as a longterm real world demonstration of the performance of a quantitatively designed sri instrument a copy of our latest analysis is available here pdf    advocacy through ownership cranc owns a portfolio of more than fifty financial stocks we have utilized those positions to support our advocacy we have filed shareholder resolutions with wells fargo cease the funding of payday lending and h r block against refund anticipation loans in january 2008 we used our shares to speak at a first charter shareholder s meeting against the pending merger with fifth third bank we have developed some financial analysis tools for sri investors please contact us for more details   sri groups calvert group kld research and analytics trillium asset management citizens advisers inc christian brothers investment services domini social investments defaultcranclogopng  advocacyresearch  ',0),(40,'node',' disclaimer and linking policy disclaimer although we try to keep information on this site up to date some information may not be current cranc linking policy cranc aims to be a storehouse of valuable information to individuals and organizations seeking to protect and promote community wealth we receive many requests to both provide resource links on our site as well as have other sites link to ours in considering these requests cranc evaluates whether or not such arrangements are beneficial each decision is made on a casebycase basis cranc reserves the right to remove edit or reject existing or potential content at its sole discretion questions comments or suggestions about our website policies should be directed to the webmaster defaultcranclog0png ',0),(147,'help',' readme  id readmetxt v 114227 20100823 171500 yhahn exp context 3x for drupal 6x context allows you to manage contextual conditions and reactions for different portions of your site you can think of each context as representing a section of your site for each context you can choose the conditions that trigger this context to be active and choose different aspects of drupal that should react to this active context think of conditions as a set of rules that are checked during page load to see what context is active any reactions that are associated with active contexts are then fired installation context can be installed like any other drupal module place it in the modules directory for your site and enable it and its requirement ctools on the admin build modules page you will probably also want to install context ui which provides a way for you to edit contexts through the drupal admin interface example you want to create a pressroom section of your site you have a press room view that displays press release nodes but you also want to tie a book with media resources tightly to this section you would also like a contact block you ve made to appear whenever a user is in the pressroom section 1 add a new context on admin build context 2 under conditions associate the pressroom nodetype the pressroom view and the media kit book with the context 3 under reactions menu choose the pressroom menu item to be set active 4 under reactions blocks add the contact block to a region 5 save the context for a more indepth overview of the ui components see the context ui readmetxt upgrading from context 2x for drupal 6x download latest context 3x and latest ctools release and place in modules directory make sure to remove the existing context 2x directory before unpacking context 3x there are stale files in the 2x branch that need to be removed run updatephp or drush updatedb if your site contains contexts defined in code they will be overridden reexport them to code again if you are using any custom conditions or reactions you may need to upgrade or reconfigure them by hand see apitxt for instructions on adding and extending plugins in context hooks see contextapiphp for the hooks made available by context and apitxt for usage examples maintainers yhahn young hahn jmiccolis jeff miccolis steven jones contributors alexb alex barth dmitrig01 dmitri gaskin pasqualle csuthy bálint  ',0),(148,'help',' readme  id readmetxt v 1121 20100209 190259 yhahn exp context layouts context layouts provides a formalized way for themes to declare and switch between page templates using context it is a continuation of an old drupal themer s trick to switch to something besides the standard pagetplphp file for a variety of specialcase pages like the site frontpage login page admin section etc requirements in order to use context layouts your site must meet a few conditions context and context layouts modules are enabled admin build modules you are using a theme which provides and has declared multiple layouts see example themes for themes you can try basic usage once you have layouts enabled you can have a context trigger the usage of a particular layout in either the admin interface admin build context or inline context editor different layouts may have fewer or greater regions than the default page template so adjust your blocks accordingly supporting context layouts in your theme you can add layouts support to your theme by declaring additional layouts in your theme s info file here is an example exampleinfo name example description example theme core 6x engine phptemplate regions left left sidebar regions right right sidebar regions content content regions footer footer layout default layouts default name default layouts default description simple two column page layouts default template page layouts default regions content layouts default regions right layout columns layouts columns name 3 columns layouts columns description three column page layouts columns stylesheet layoutcolumnscss layouts columns template layoutcolumns layouts columns regions left layouts columns regions content layouts columns regions right layouts columns regions footer each layout is declared under layouts with the key as the identifier that will be used by context for this layout you may use any reasonable machine name for each layout but note that default is special it will be the default layout for your theme if no other layout is specified the following keys can be declared for each layout name the human readable name for this layout shown in the admin ui description a short description of your layout same as above stylesheet a stylesheet to be included with the layout optional template the name of the template file for this layout without the tplphp extension region an array of regions supported by this layout note that any of the regions listed here must also be declared in the standard theme regions array example themes cube a subtheme included with rubik 1 provides a variety of layouts ginkgo 2 the default theme included with open atrium 1 http githubcom developmentseed rubik downloads 2 http githubcom developmentseed ginkgo downloads  ',0),(149,'help',' readme  id readmetxt v 1143 20100209 202019 yhahn exp context ui context ui provides an administrative interface for managing and editing contexts it is not necessary for the proper functioning of contexts once they are built and can be turned off on most production sites requirements context context ui modules enabled admin build modules jquery ui 1x 1 and admin 2x 2 to use the inline context editor optional basic usage as a site administrator you can manage your site s contexts at admin build context the main page will show you a list of the contexts on the site and give you some options for managing each context when editing or adding a new context you will be presented with a form to manage some basic information about the context and then alter its conditions and reactions name the name of your context this is the main identifier for your context and cannot be changed after you ve created it description a description or humanreadable name for your context this is displayed in the inline editor if available instead of the name tag a category for organizing contexts in the administrative context listing optional conditions when certain conditions are true your context will be made active you can customize the conditions that trigger the activation of your context condition mode you can choose to have your context triggered if any conditions are met or only active when all conditions are met adding removing conditions you can add or remove to the conditions on your context using the conditions dropdown individual settings most conditions provide a simple form for selecting individual settings for that condition for example the node type condition allows you to choose which node types activate the context reactions whenever a particular context is active all of its reactions will be run like conditions reactions can be added or removed and have settings that can be configured using the inline editor if you have installed jquery ui and admin you can enable the inline context editor 1 as an administrative user go to admin settings admin 2 check the context editor block and save 3 when viewing a page with one or more active contexts you will see the context editor in the admin toolbar 4 you can use the context editor to adjust the conditions under which each context is active and alter its reactions 1 http drupalorg project jqueryui 2 http drupalorg project admin  ',0),(150,'help',' create a slideshow of rotating page nodes advancedhelptopic img border 1px solid  how to create a singleframe slideshow of page nodes this tutorial requires views slideshow and views slideshow singleframe modules to be enabled it also assumes you already have some page nodes create the view go to http yoursitecom admin build views click add enter in the view name slideshow click next select the page display click add display click the next to fields under groups choose node select node body and node title click add select trim this field to a maximum length under maximum length enter 100 click update default display twice click the up down arrows next to fields move node title to the top click update click the next to filters under groups choose node select node published and node type click add select yes for published click update default display under node type select page click update default display click none next to path under page settings add a path slideshow click update click save click view page and verify it is listing out the images correctly set up the slideshow edit the view under basic settings click unformatted next to style choose slideshow click update default display under slideshow mode choose singleframe click update default display click save view the page and verify the slideshow is working  ',0),(151,'help',' create a slideshow of rotating images advancedhelptopic img border 1px solid  how to create a singleframe slideshow of images this tutorial requires these modules to be enabled  views slideshow and views slideshow singleframe cck content  filefield imagefield create the content type go to http yoursitecom admin content types click add content type enter a name slideshow item enter a type slideshowitem click the submission form settings fieldset clear the body text from the body field label field click the workflow settings fieldset uncheck promote to frontpage click the comment settings fieldset set default comment setting to disabled click save content type next to your new content type click manage fields under new field enter a label slideshow image enter a field name fieldslideshowimage select the file field type select the image form element drag the new field using the cross handle to below the title field click save under global settings check required click save field settings create some slideshow items create the view go to http yoursitecom admin build views click add enter in the view name slideshow click next select the page display click add display click the next to fields under groups choose content select the image field you created content slideshow image click add under label choose none under format choose image click update default display click the next to filters under groups choose node select node published and node type click add select yes for published click update default display under node type select the content type you created slideshow item click update default display click none next to path under page settings add a path slideshow click update click save click view page and verify it is listing out the images correctly set up the slideshow edit the view under basic settings click unformatted next to style choose slideshow click update default display under slideshow mode choose singleframe click update default display click save view the page and verify the slideshow is working  ',0),(152,'help',' readme  id readmetxt v 112121 20100223 230704 psynaptic exp views slideshow thumbnailhover this mode allows full nodes and node teasers to be used as both the slideshow and the control for advancing the slideshow it is the original alternative slideshow mode for views slideshow description the views slideshow thumbnailhover adds two parts to the view a series of items displayed as a list and either full nodes or node teasers as the controls the slide show will synchronize the two so that the active item will correspond to the single full teaser item the slide show can be set to automatically advance on mouse hover or click  ',0),(153,'help',' readme  id readmetxt v 1441 20100223 230704 psynaptic exp views slideshow the views slideshow module is a views style plugin that can be used to output views in a jquery slideshow there are currently 2 modes singleframe in singleframe mode slideshows are output as single elements and controls can be displayed as numbered links or thumbnails of individual fields thumbnailhover in thumbnailhover mode slideshows are output as node teasers or full nodes the controls for advancing the slideshow are nodes too further details about each can be found within their respective directories requirements views 2 is required for this module to be of any use description this module will create a view type of slideshow that will display nodes in a jquery slideshow settings are available for fade timing mode and more authors maintainers original author aaron winborn winborn at advomatic dot com http drupalorg user 33420 comaintainers redndahead http drupalorg user 160320 psynaptic http drupalorg user 93429 support issues should be posted in the issue queue on drupalorg http drupalorg project issues viewsslideshow  ',0),(16,'node',' refund anticipation loans rals  rals are highcost loans on tax refunds targeted at lowincome families refund anticipation loans drain the assets of those least able to afford high fees what s more most rals go hand in hand with the earned income tax credit the eitc is an excellent program but rals thwart its inspired and wellimplemented mission to reward work and support lowincome households  fast cash less filling refund anticipation loans in north carolina march 24 2009  this report documents the impact of rals in north carolina we show the most affected zip codes in the state the communities with the highest rates of ral usage both in terms of all residents and lowincome households as well as the impact of the eitc our paper includes a set of easily actionable policy ideas that would alter the scourge of rals in our state read the full report here  read the executive summary here   more cranc research on rals  mystery shopper test exposes refund anticipation loan abuses in durham and philadelphia 2006 ral report 2009 ral report 2010 ral report cranc comment letter ral usage prevalent in low income zones map  refund anticipation loan offices in north carolina map  ral usage often highest in minority zip codes map    latest news on rals jp morgan chase exited the refund anticipation loan ral business this springchase supplied refund anticipation loans to approximately 13000 independent tax prep firms junk fees where the tax preparer adds their own additional charges on to the price of the ral itself mean that those consumers pay a high price to file their taxes chase partners included mo money taxes cranc s advocacy ultimately led the north carolina attorney general to force mo money to withdraw their refund anticipation loan license the occ asked pacific capital to cease its funding for refund loans in january 2010 the eitc often sapped by rals can be an effective means for savings cranc supports the split refund  a new rule by the irs that allows filers to allocate portions of their refund to different accounts deceptive marketing  would you get medical advice from a baseball player no  don t let a basketball player tell you where to get your taxes done especially if that player is more worried about tax treatment on his hedge fund investing  tarp funding for rals  msnbc calls out pacific capital bancorp pcbc   having found that tarp funds will provide liquidity for its refund anticipation loans rals    our partners in the fight  national consumer law center nc justice and community development center americans for fairness in lending california reinvestment coalition the ida and asset building collaborative of north carolina   eitc carolinas nc naacp north carolina department of labor the city of durham the county of durham defaultcranclogopng  advocacyresearch  ',0),(43,'node',' nuestro barrio nuestro barrio delivers demonstrable results in financial literacy  according to a new study from uncchapel hill s kenanflagler school of business read about the nuestro barrio senior fraud campaign  read about the nuestro barrio homebuyer education campaign  nuestro barrio  a television series about hispanic life in the united states is in the forefront of the new trend of edutainment programming with characterdriven dramatic storylines rooted in real life issues the show uses the popular telenovela or soap opera format to address financial literacy and human relations issues including home ownership credit and the dangers of predatory lending funded by freddie mac the project is used by bank partners to market their banking services and to provide financial literacy along with the commercial broadcast the banks work with branches and nonprofit partners todistribute the series on dvds which are accompanied by a photonovela providing financial literacy nuestro barrio is the foremost financial literacy media tool for hispanics in the united states it is also the first us produced spanish language program to air on english language broadcast television in the united states the show has aired in all media markets in north and south carolina and is currently airing in miami austin dallas houston and phoenix we anticipate distributing nuestro barrio into the top latino media markets across the country nuestro barrio will be promoted as a main feature of the station we anticipate availability in 50 percent of latino households in the united states this makes nuestro barrio the most widely distributed financial literacy program in the country the show has received press coverage in more than 250 different media outlets including national public radio visit the nuestro barrio site purchase the nuestro barrio dvd on our bookstore page nuestrobarriojpg ',0),(44,'node',' 2007 calendar parade of north carolina s abandoned mobile homes approximately 40000 abandoned manufactured homes populate north carolina s landscape they are here to stay because local governments have no tools to condemn them or funding to remove them this calendar highlights some of our state s many abandoned beauties these abandoned homes won t go away by themselves cleanup legislation proposed in the nc general assembly offers a solution if nothing is done north carolina can look forward to a future of more abandoned homes every year  buy it here   15 bookparadeofabandonedhomesjpg ',0),(45,'node',' this is my home the challenges and opportunities of manufactured housing housing of choice or housing of last resort manufactured housing is both importantly it is home for millions of americans through photos and interviews with residents in landlease communities this is my home shares the stories of people who live in manufactured housing this book acknowledges that problems confront manufactured housing it suggests that hope lies in the examples made by the work of innovative nonprofits across the country it will leave a reader with a new sense for how manufactured housing can be an asset in combating our nation s affordable housing crisis buy it now on carolina academic press   25 bookmyhomejpg book cover this is my home ',0),(46,'node',' nuestro barrio 3disc set  this is a 13episode dvd set of our television series about hispanic life in the united states this program is in the forefront of the new trend of edutainment programming with characterdriven dramatic storylines rooted in real life issues the show uses the popular telenovela or soap opera format to address financial literacy and human relations issues including home ownership credit and the dangers of predatory lending buy it now on paypal   20 booknuestrobarriojpg nuestro barrio set ',0),(15,'node',' awards we ve recieved this page is still being built thank you for your patience  defaultcranclog0png ',0),(12,'node',' our history formed in 1986 as a project of north carolina legal services  cranc has played a key role in shaping the attitudes and policies of north carolina s banks toward cra and community development through challenges of bank mergers cranc has secured agreements totaling more than 40 billion in mortgages small business lending and community development investments for low wealth communities these agreements have led to countless partnerships between banks and nonprofits defaultcranclog0png ',0),(51,'node',' recent press recent press hits recent press hits recent press hits recent press hits recent press hits defaultcranclog0png ',0),(34,'node',' nuestro barrio senior fraud campaign nuesto barrio senior fraud campaign content content nuesto barrio senior fraud campaign  nuestro barrio senior fraud campaign   educationmedia  ',0),(35,'node',' nuestro barrio homebuyer education campaign nuestro barrio homebuyer education campaign content content nuestro barrio homebuyer education campaign  nuestro barrio homebuyer education campaign   educationmedia  ',0),(1,'node',' cranc home advocacy research lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed diam voluptua read more  education media lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed diam voluptua read more  taxpayer assistance center lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed diam voluptua read more  community development lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy eirmod empor invidunt ut labore et dolore magna aliquyam erat sed diam voluptua lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt read more  defaultcranclog0png ',0),(41,'node',' homepage video slideshow ',0),(17,'node',' manufactured housing reform advocating for better homes and neighborhoods cranc is seeking to promote reinvestment in manufactured housing this is a popular form of housing at affordable prices one in six north carolinians lives in manufactured housing there are issues from lack of consumer protections to issues around asset building but also plenty of opportunities  the burnsville land community has been redeveloped as a nonprofit controlled by residents and community leaders to provide affordable and secure housing for fourteen families in yancey county north carolina legislative advocacy cranc participated in several legislative efforts to help residents of manufactured housing two bills passed in the north carolina general assembly in 2008 rep phillip haire s bill on abandoned homes h1134  was passed in the appropriations act rep susan fisher s bill to prevent the displacement of manufactured homes h1700  passed giving park owners that sell their communities to residents through a coop or a nonprofit a 5 percent deduction  park acquisition and rehabilitation cranc has partnered with two other groups to create the first nonprofit owned manufactured housing park in north carolina through funding from bb t and grants from several sources the park provides affordable housing for fourteen families in burnsville north carolina view a slideshow of the park in burnsville make sure to turn your sound on and click on small  control the land control your destiny we are articulating a wider political agenda through research on manufactured housing cranc believes that manufactured housing can become a significant tool within the housing stock that is affordable to working familiesour agenda seeks to address the systemic shortcomings of the landlease park by giving residents more control over the land where their homes are located this can be achieved through a variety of strucures nonprofit owned parks are oneway residentowned cooperatives are another to get there we need more actors to participate in manufactured housing this includes foundations county governments state housing finance agencies planners and banks  media cranc s work is highlighted in bob geary s profile of a park threatened by closure in raleigh north carolina subsequently a rezoning application is denied and the park is saved  research and policy cranc is developing policy materials to articulate the pathways to reform in this sector the myths and realities of manufactured housing  published by the federal reserve looks at the financing market for manufactured homes  transforming trailers into assets  published by the university of north carolina s school of government outlines how nonprofit ownership can create opportunities for the revitalization of distressed parks this is my home the challenges and opportunities of manufactured housing  is a resource for groups interested in understanding the issues that surround manufactured housing policy burnsville96colorbjpg  advocacyresearch  ',0),(49,'node',' earned income tax credit north carolina passes a refundable earned income tax credit for workers  nonetheless at least 15 percent and perhaps as much as 25 percent of those eligible for the eitc fail to claim it  this results in the loss of 135 million in relief for north carolina twenty percent of that money goes to pay for health care  ultimately that amounts to an estimated  ',0),(50,'node',' payday lending our success in creating access to wealthbuilding credit was being undone by predatory mortgage lending to end this destructive practice cranc has played a leadership role in fighting abusive corporate practices and promoting legislative and regulatory solutions at the state and national level with the publication of our book  payday lending too much month at the end of the paycheck  in 2001 cranc again provided leadership in a fiveyear campaign to oppose this highcost shortterm credit that erodes families financial stability we are glad to celebrate the end of payday lending for north carolina defaultcranclog0png  advocacyresearch  ',0);

--
