-- MySQL dump 10.11 -- -- Host: db1085.perfora.net Database: db214044920 -- ------------------------------------------------------ -- Server version 4.0.27-standard-log /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `modx_active_users` -- DROP TABLE IF EXISTS `modx_active_users`; CREATE TABLE `modx_active_users` ( `internalKey` int(9) NOT NULL default '0', `username` varchar(50) NOT NULL default '', `lasthit` int(20) NOT NULL default '0', `id` int(10) default NULL, `action` varchar(10) NOT NULL default '', `ip` varchar(20) NOT NULL default '', PRIMARY KEY (`internalKey`) ) TYPE=MyISAM COMMENT='Contains data about active users.'; -- -- Dumping data for table `modx_active_users` -- LOCK TABLES `modx_active_users` WRITE; /*!40000 ALTER TABLE `modx_active_users` DISABLE KEYS */; INSERT INTO `modx_active_users` VALUES (1,'admin',1198791593,NULL,'2','195.20.247.86'); /*!40000 ALTER TABLE `modx_active_users` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_categories` -- DROP TABLE IF EXISTS `modx_categories`; CREATE TABLE `modx_categories` ( `id` int(11) NOT NULL auto_increment, `category` varchar(45) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Categories to be used snippets,tv,chunks, etc'; -- -- Dumping data for table `modx_categories` -- LOCK TABLES `modx_categories` WRITE; /*!40000 ALTER TABLE `modx_categories` DISABLE KEYS */; INSERT INTO `modx_categories` VALUES (1,'MODx default templates'),(2,'User Management'),(3,'News, Blogs and Catalogs'),(4,'Navigation'),(5,'Forms and Mail'),(6,'Core and Manager'),(7,'Frontend'),(8,'MODxHost Menu'),(9,'Demo Content'),(10,'Search'); /*!40000 ALTER TABLE `modx_categories` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_document_groups` -- DROP TABLE IF EXISTS `modx_document_groups`; CREATE TABLE `modx_document_groups` ( `id` int(10) NOT NULL auto_increment, `document_group` int(10) NOT NULL default '0', `document` int(10) NOT NULL default '0', PRIMARY KEY (`id`), KEY `document` (`document`), KEY `document_group` (`document_group`) ) TYPE=MyISAM COMMENT='Contains data used for access permissions.'; -- -- Dumping data for table `modx_document_groups` -- LOCK TABLES `modx_document_groups` WRITE; /*!40000 ALTER TABLE `modx_document_groups` DISABLE KEYS */; INSERT INTO `modx_document_groups` VALUES (1,1,3); /*!40000 ALTER TABLE `modx_document_groups` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_documentgroup_names` -- DROP TABLE IF EXISTS `modx_documentgroup_names`; CREATE TABLE `modx_documentgroup_names` ( `id` int(10) NOT NULL auto_increment, `name` varchar(255) NOT NULL default '', `private_memgroup` tinyint(4) default '0', `private_webgroup` tinyint(4) default '0', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) TYPE=MyISAM COMMENT='Contains data used for access permissions.'; -- -- Dumping data for table `modx_documentgroup_names` -- LOCK TABLES `modx_documentgroup_names` WRITE; /*!40000 ALTER TABLE `modx_documentgroup_names` DISABLE KEYS */; INSERT INTO `modx_documentgroup_names` VALUES (1,'Site Admin Pages',0,0); /*!40000 ALTER TABLE `modx_documentgroup_names` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_event_log` -- DROP TABLE IF EXISTS `modx_event_log`; CREATE TABLE `modx_event_log` ( `id` int(11) NOT NULL auto_increment, `eventid` int(11) default '0', `createdon` int(11) NOT NULL default '0', `type` tinyint(4) NOT NULL default '1', `user` int(11) NOT NULL default '0', `usertype` tinyint(4) NOT NULL default '0', `source` varchar(50) NOT NULL default '', `description` text, PRIMARY KEY (`id`), KEY `user` (`user`) ) TYPE=MyISAM COMMENT='Stores event and error logs'; -- -- Dumping data for table `modx_event_log` -- LOCK TABLES `modx_event_log` WRITE; /*!40000 ALTER TABLE `modx_event_log` DISABLE KEYS */; INSERT INTO `modx_event_log` VALUES (1,0,1191569009,3,0,0,'Parser','\n MODx Content Manager » \n \n \n \n

« MODx Parse Error »

\n \n \n
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
 
PHP error debug
  Error: preg_match() [function.preg-match]: Unknown modifier \'/\' 
  Error type/ Nr.: Warning - 2 
  File: /homepages/12/d198769686/htdocs/modx-0.9.6/manager/includes/document.parser.class.inc.php(766) : eval()\'d code 
  Line: 443 
 
Parser timing
  MySQL: 0.1518 s(15 Requests)
  PHP: 0.2333 s 
  Total: 0.3850 s 
'),(2,0,1191644367,3,0,0,'Parser','\n MODx Content Manager » \n \n \n \n

« MODx Parse Error »

\n \n \n
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
 
PHP error debug
  Error: preg_match() [function.preg-match]: Unknown modifier \'/\' 
  Error type/ Nr.: Warning - 2 
  File: /homepages/12/d198769686/htdocs/modx-0.9.6/manager/includes/document.parser.class.inc.php(766) : eval()\'d code 
  Line: 443 
 
Parser timing
  MySQL: 0.0309 s(15 Requests)
  PHP: 0.0770 s 
  Total: 0.1079 s 
'),(3,0,1191725771,3,0,0,'Parser','\n MODx Content Manager » \n \n \n \n

« MODx Parse Error »

\n \n \n
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
 
PHP error debug
  Error: preg_match() [function.preg-match]: Unknown modifier \'/\' 
  Error type/ Nr.: Warning - 2 
  File: /homepages/12/d198769686/htdocs/modx-0.9.6/manager/includes/document.parser.class.inc.php(766) : eval()\'d code 
  Line: 443 
 
Parser timing
  MySQL: 0.0308 s(15 Requests)
  PHP: 0.2387 s 
  Total: 0.2695 s 
'),(4,0,1191726929,3,0,0,'Parser','\n MODx Content Manager » \n \n \n \n

« MODx Parse Error »

\n \n \n
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
 
PHP error debug
  Error: preg_match() [function.preg-match]: Unknown modifier \'/\' 
  Error type/ Nr.: Warning - 2 
  File: /homepages/12/d198769686/htdocs/modx-0.9.6/manager/includes/document.parser.class.inc.php(766) : eval()\'d code 
  Line: 443 
 
Parser timing
  MySQL: 0.0379 s(15 Requests)
  PHP: 0.0604 s 
  Total: 0.0982 s 
'),(5,0,1191734012,3,0,0,'Parser','\n MODx Content Manager » \n \n \n \n

« MODx Parse Error »

\n \n \n
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
 
PHP error debug
  Error: preg_match() [function.preg-match]: Unknown modifier \'/\' 
  Error type/ Nr.: Warning - 2 
  File: /homepages/12/d198769686/htdocs/modx-0.9.6/manager/includes/document.parser.class.inc.php(766) : eval()\'d code 
  Line: 443 
 
Parser timing
  MySQL: 0.0302 s(15 Requests)
  PHP: 0.2209 s 
  Total: 0.2511 s 
'),(6,0,1191737133,3,0,0,'Parser','\n MODx Content Manager » \n \n \n \n

« MODx Parse Error »

\n \n \n
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
 
PHP error debug
  Error: preg_match() [function.preg-match]: Unknown modifier \'/\' 
  Error type/ Nr.: Warning - 2 
  File: /homepages/12/d198769686/htdocs/modx-0.9.6/manager/includes/document.parser.class.inc.php(766) : eval()\'d code 
  Line: 443 
 
Parser timing
  MySQL: 0.0257 s(15 Requests)
  PHP: 0.0578 s 
  Total: 0.0835 s 
'),(7,0,1191768409,3,0,0,'Parser','\n MODx Content Manager » \n \n \n \n

« MODx Parse Error »

\n \n \n
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
 
PHP error debug
  Error: preg_match() [function.preg-match]: Unknown modifier \'/\' 
  Error type/ Nr.: Warning - 2 
  File: /homepages/12/d198769686/htdocs/modx-0.9.6/manager/includes/document.parser.class.inc.php(766) : eval()\'d code 
  Line: 443 
 
Parser timing
  MySQL: 0.0310 s(15 Requests)
  PHP: 0.0644 s 
  Total: 0.0954 s 
'),(8,0,1191971256,3,0,0,'Parser','\n MODx Content Manager » \n \n \n \n

« MODx Parse Error »

\n \n \n
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
 
PHP error debug
  Error: preg_match() [function.preg-match]: Unknown modifier \'/\' 
  Error type/ Nr.: Warning - 2 
  File: /homepages/12/d198769686/htdocs/modx-0.9.6/manager/includes/document.parser.class.inc.php(766) : eval()\'d code 
  Line: 443 
 
Parser timing
  MySQL: 0.0404 s(15 Requests)
  PHP: 0.2298 s 
  Total: 0.2702 s 
'),(9,0,1192015057,3,0,0,'Parser','\n MODx Content Manager » \n \n \n \n

« MODx Parse Error »

\n \n \n
MODx encountered the following error while attempting to parse the requested resource:
« PHP Parse Error »
 
PHP error debug
  Error: preg_match() [function.preg-match]: Unknown modifier \'/\' 
  Error type/ Nr.: Warning - 2 
  File: /homepages/12/d198769686/htdocs/modx-0.9.6/manager/includes/document.parser.class.inc.php(766) : eval()\'d code 
  Line: 443 
 
Parser timing
  MySQL: 0.0276 s(15 Requests)
  PHP: 0.0597 s 
  Total: 0.0873 s 
'); /*!40000 ALTER TABLE `modx_event_log` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_jot_content` -- DROP TABLE IF EXISTS `modx_jot_content`; CREATE TABLE `modx_jot_content` ( `id` int(10) NOT NULL auto_increment, `title` varchar(255) default NULL, `tagid` varchar(50) default NULL, `published` int(1) NOT NULL default '0', `uparent` int(10) NOT NULL default '0', `parent` int(10) NOT NULL default '0', `flags` varchar(25) default NULL, `secip` varchar(32) default NULL, `sechash` varchar(32) default NULL, `content` mediumtext, `customfields` mediumtext, `mode` int(1) NOT NULL default '1', `createdby` int(10) NOT NULL default '0', `createdon` int(20) NOT NULL default '0', `editedby` int(10) NOT NULL default '0', `editedon` int(20) NOT NULL default '0', `deleted` int(1) NOT NULL default '0', `deletedon` int(20) NOT NULL default '0', `deletedby` int(10) NOT NULL default '0', `publishedon` int(20) NOT NULL default '0', `publishedby` int(10) NOT NULL default '0', PRIMARY KEY (`id`), KEY `parent` (`parent`), KEY `secip` (`secip`), KEY `tagidx` (`tagid`), KEY `uparent` (`uparent`) ) TYPE=MyISAM; -- -- Dumping data for table `modx_jot_content` -- LOCK TABLES `modx_jot_content` WRITE; /*!40000 ALTER TABLE `modx_jot_content` DISABLE KEYS */; INSERT INTO `modx_jot_content` VALUES (9,'The first comment','',1,9,0,'','87.211.130.14','edb75dab198ff302efbf2f60e548c0b3','This is the first comment.','',0,0,1160420310,0,0,0,0,0,0,0),(10,'Second comment','',1,9,0,'','87.211.130.14','edb75dab198ff302efbf2f60e548c0b3','This is the second comment and uses an alternate row color. I also supplied a name, but i\'m not logged in.','Armand',0,0,1160420453,0,0,0,0,0,0,0),(11,'No abuse','',1,9,0,'','87.211.130.14','edb75dab198ff302efbf2f60e548c0b3','Notice that I can\'t abuse html, , or [+placeholder+] tags.\r\n\r\nA new line also doesn\'t come unnoticed.','Armand',0,0,1160420681,0,0,0,0,0,0,0),(12,'Posting when logged in','',1,9,0,'','87.211.130.14','58fade927c1df50ba6131f2b0e53c120','When you are logged in your own posts have a special color so you can easily spot them from the comment view. \r\n\r\nThe form also does not display any guest fields when logged in.','',0,-1,1160421310,0,0,0,0,0,0,0),(13,'Managers','',1,9,0,'','87.211.130.14','91e230cf219e3ade10f32d6a41d0bd4d','Comments posted when only logged in as a manager user will use your manager name.\r\n\r\nModerators options are always shown when you are logged in as manager user.','',0,1,1160421487,0,0,0,0,0,0,0),(14,'Moderation','',1,9,0,'','87.211.130.14','58fade927c1df50ba6131f2b0e53c120','In this setup the Site Admins group is defined as being the moderator for this particular comment view. These users will have extra moderation options \r\n\r\nManager users, Moderators or Trusted users can post bad words like: dotNet.','',0,-1,1160422081,0,0,0,0,0,0,0),(15,'I\'m untrusted','',0,9,0,'','87.211.130.14','edb75dab198ff302efbf2f60e548c0b3','Untrusted users however can NOT post bad words like: dotNet. When they do the posts will be unpublished.','',0,0,1160422167,0,0,0,0,0,0,0); /*!40000 ALTER TABLE `modx_jot_content` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_jot_fields` -- DROP TABLE IF EXISTS `modx_jot_fields`; CREATE TABLE `modx_jot_fields` ( `id` mediumint(10) NOT NULL default '0', `label` varchar(50) NOT NULL default '', `content` text, KEY `id` (`id`), KEY `label` (`label`) ) TYPE=MyISAM; -- -- Dumping data for table `modx_jot_fields` -- LOCK TABLES `modx_jot_fields` WRITE; /*!40000 ALTER TABLE `modx_jot_fields` DISABLE KEYS */; /*!40000 ALTER TABLE `modx_jot_fields` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_jot_subscriptions` -- DROP TABLE IF EXISTS `modx_jot_subscriptions`; CREATE TABLE `modx_jot_subscriptions` ( `id` mediumint(10) NOT NULL auto_increment, `uparent` mediumint(10) NOT NULL default '0', `tagid` varchar(50) NOT NULL default '', `userid` mediumint(10) NOT NULL default '0', PRIMARY KEY (`id`), KEY `uparent` (`uparent`), KEY `tagid` (`tagid`), KEY `userid` (`userid`) ) TYPE=MyISAM; -- -- Dumping data for table `modx_jot_subscriptions` -- LOCK TABLES `modx_jot_subscriptions` WRITE; /*!40000 ALTER TABLE `modx_jot_subscriptions` DISABLE KEYS */; /*!40000 ALTER TABLE `modx_jot_subscriptions` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_keyword_xref` -- DROP TABLE IF EXISTS `modx_keyword_xref`; CREATE TABLE `modx_keyword_xref` ( `content_id` int(11) NOT NULL default '0', `keyword_id` int(11) NOT NULL default '0', KEY `content_id` (`content_id`), KEY `keyword_id` (`keyword_id`) ) TYPE=MyISAM COMMENT='Cross reference bewteen keywords and content'; -- -- Dumping data for table `modx_keyword_xref` -- LOCK TABLES `modx_keyword_xref` WRITE; /*!40000 ALTER TABLE `modx_keyword_xref` DISABLE KEYS */; INSERT INTO `modx_keyword_xref` VALUES (3,1),(4,1); /*!40000 ALTER TABLE `modx_keyword_xref` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_manager_log` -- DROP TABLE IF EXISTS `modx_manager_log`; CREATE TABLE `modx_manager_log` ( `id` int(10) NOT NULL auto_increment, `timestamp` int(20) NOT NULL default '0', `internalKey` int(10) NOT NULL default '0', `username` varchar(255) default NULL, `action` int(10) NOT NULL default '0', `itemid` varchar(10) default '0', `itemname` varchar(255) default NULL, `message` varchar(255) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Contains a record of user interaction.'; -- -- Dumping data for table `modx_manager_log` -- LOCK TABLES `modx_manager_log` WRITE; /*!40000 ALTER TABLE `modx_manager_log` DISABLE KEYS */; INSERT INTO `modx_manager_log` VALUES (1,1187972533,1,'admin',58,'-','MODx','Logged in'),(2,1187972675,1,'admin',3,'1','Home','Viewing data for document 1'),(3,1187974468,1,'admin',27,'1','-','Editing document 1'),(4,1187975282,1,'admin',3,'5','Request an Account','Viewing data for document 5'),(5,1187975332,1,'admin',53,'-','-','Viewing system info'),(6,1187980031,1,'admin',3,'2','Blog','Viewing data for document 2'),(7,1187980051,1,'admin',3,'1','Home','Viewing data for document 1'),(8,1187980060,1,'admin',27,'1','-','Editing document 1'),(9,1187980073,1,'admin',3,'11','RSS Feed','Viewing data for document 11'),(10,1187980079,1,'admin',27,'11','-','Editing document 11'),(11,1187980112,1,'admin',3,'33','Getting Help','Viewing data for document 33'),(12,1187980237,1,'admin',3,'1','Home','Viewing data for document 1'),(13,1187980240,1,'admin',3,'32','Design','Viewing data for document 32'),(14,1187980247,1,'admin',3,'1','Home','Viewing data for document 1'),(15,1187980259,1,'admin',27,'1','-','Editing document 1'),(16,1187980271,1,'admin',3,'5','Request an Account','Viewing data for document 5'),(17,1187980281,1,'admin',27,'5','-','Editing document 5'),(18,1187980296,1,'admin',3,'46','Thank You','Viewing data for document 46'),(19,1187980304,1,'admin',3,'1','Home','Viewing data for document 1'),(20,1187980328,1,'admin',3,'2','Blog','Viewing data for document 2'),(21,1187980708,1,'admin',3,'1','Home','Viewing data for document 1'),(22,1187980733,1,'admin',27,'1','-','Editing document 1'),(23,1187980781,1,'admin',106,'-','-','Viewing Modules -'),(24,1187980803,1,'admin',17,'-','-','Editing settings'),(25,1187980843,1,'admin',30,'-','-','Saving settings'),(26,1187980866,1,'admin',17,'-','-','Editing settings'),(27,1187980914,1,'admin',30,'-','-','Saving settings'),(28,1187980934,1,'admin',17,'-','-','Editing settings'),(29,1187980962,1,'admin',30,'-','-','Saving settings'),(30,1187981030,1,'admin',17,'-','-','Editing settings'),(31,1187981060,1,'admin',30,'-','-','Saving settings'),(32,1187981138,1,'admin',17,'-','-','Editing settings'),(33,1187981148,1,'admin',30,'-','-','Saving settings'),(34,1187982716,1,'admin',17,'-','-','Editing settings'),(35,1187984735,1,'admin',30,'-','-','Saving settings'),(36,1187984808,1,'admin',76,'-','-','Reource management'),(37,1187984862,1,'admin',3,'1','Home','Viewing data for document 1'),(38,1187985088,1,'admin',27,'1','-','Editing document 1'),(39,1187992668,1,'admin',3,'15','MODx Features','Viewing data for document 15'),(40,1187992684,1,'admin',27,'15','-','Editing document 15'),(41,1187992709,1,'admin',3,'15','MODx Features','Viewing data for document 15'),(42,1187992729,1,'admin',4,'-','-','Creating a document'),(43,1187992747,1,'admin',5,'-','-','Saving document -'),(44,1187992762,1,'admin',3,'47','test','Viewing data for document 47'),(45,1187992792,1,'admin',61,'47','-','Publishing a document'),(46,1187992887,1,'admin',3,'15','MODx Features','Viewing data for document 15'),(47,1187992893,1,'admin',27,'15','-','Editing document 15'),(48,1187992935,1,'admin',5,'15','-','Saving document 15'),(49,1187992938,1,'admin',3,'15','MODx Features','Viewing data for document 15'),(50,1187992951,1,'admin',27,'15','-','Editing document 15'),(51,1187992966,1,'admin',5,'15','-','Saving document 15'),(52,1187992971,1,'admin',3,'15','MODx Features','Viewing data for document 15'),(53,1187993081,1,'admin',62,'33','-','Un-publishing a document'),(54,1187993110,1,'admin',3,'33','Getting Help','Viewing data for document 33'),(55,1187993114,1,'admin',61,'33','-','Publishing a document'),(56,1187993132,1,'admin',3,'33','Getting Help','Viewing data for document 33'),(57,1187993142,1,'admin',51,'33','-','Moving document 33'),(58,1187993228,1,'admin',3,'33','Getting Help','Viewing data for document 33'),(59,1187993235,1,'admin',27,'33','-','Editing document 33'),(60,1187993253,1,'admin',5,'33','-','Saving document 33'),(61,1187993257,1,'admin',3,'33','Getting Help','Viewing data for document 33'),(62,1187993259,1,'admin',3,'32','Design','Viewing data for document 32'),(63,1187993263,1,'admin',27,'32','-','Editing document 32'),(64,1187993286,1,'admin',5,'32','-','Saving document 32'),(65,1187993289,1,'admin',3,'32','Design','Viewing data for document 32'),(66,1187993303,1,'admin',3,'33','Getting Help','Viewing data for document 33'),(67,1187993306,1,'admin',27,'33','-','Editing document 33'),(68,1187993322,1,'admin',5,'33','-','Saving document 33'),(69,1187993325,1,'admin',3,'33','My projects','Viewing data for document 33'),(70,1187993328,1,'admin',3,'32','Design','Viewing data for document 32'),(71,1187993330,1,'admin',27,'32','-','Editing document 32'),(72,1187993358,1,'admin',5,'32','-','Saving document 32'),(73,1187993362,1,'admin',3,'32','Favortie sites','Viewing data for document 32'),(74,1187993364,1,'admin',3,'39','Template Examples','Viewing data for document 39'),(75,1187993367,1,'admin',27,'39','-','Editing document 39'),(76,1187993402,1,'admin',3,'32','Favortie sites','Viewing data for document 32'),(77,1187993405,1,'admin',27,'32','-','Editing document 32'),(78,1187993428,1,'admin',5,'32','-','Saving document 32'),(79,1187993432,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(80,1187993502,1,'admin',3,'33','My projects','Viewing data for document 33'),(81,1187993505,1,'admin',27,'33','-','Editing document 33'),(82,1187993513,1,'admin',3,'33','My projects','Viewing data for document 33'),(83,1187993517,1,'admin',4,'-','-','Creating a document'),(84,1187993537,1,'admin',5,'-','-','Saving document -'),(85,1187993563,1,'admin',3,'33','My projects','Viewing data for document 33'),(86,1187993569,1,'admin',61,'48','-','Publishing a document'),(87,1187993593,1,'admin',3,'39','Template Examples','Viewing data for document 39'),(88,1187993598,1,'admin',27,'39','-','Editing document 39'),(89,1187993630,1,'admin',5,'39','-','Saving document 39'),(90,1187993634,1,'admin',3,'39','Favorite sites','Viewing data for document 39'),(91,1187993699,1,'admin',3,'1','Home','Viewing data for document 1'),(92,1187993705,1,'admin',27,'1','-','Editing document 1'),(93,1187993840,1,'admin',17,'-','-','Editing settings'),(94,1187993851,1,'admin',30,'-','-','Saving settings'),(95,1187993883,1,'admin',3,'1','Home','Viewing data for document 1'),(96,1187993885,1,'admin',27,'1','-','Editing document 1'),(97,1187993930,1,'admin',27,'1','-','Editing document 1'),(98,1187993936,1,'admin',5,'1','-','Saving document 1'),(99,1187993940,1,'admin',3,'1','Home','Viewing data for document 1'),(100,1187993965,1,'admin',3,'1','Home','Viewing data for document 1'),(101,1187993968,1,'admin',27,'1','-','Editing document 1'),(102,1187993978,1,'admin',27,'1','-','Editing document 1'),(103,1187993985,1,'admin',5,'1','-','Saving document 1'),(104,1187993989,1,'admin',3,'1','Home','Viewing data for document 1'),(105,1187994053,1,'admin',27,'1','-','Editing document 1'),(106,1187994062,1,'admin',27,'1','-','Editing document 1'),(107,1187994071,1,'admin',5,'1','-','Saving document 1'),(108,1187994075,1,'admin',3,'1','Home','Viewing data for document 1'),(109,1187994208,1,'admin',8,'-','-','Logged out'),(110,1187994247,1,'admin',58,'-','MODx','Logged in'),(111,1188057469,1,'admin',58,'-','MODx','Logged in'),(112,1188064532,1,'admin',58,'-','MODx','Logged in'),(113,1188065227,1,'admin',3,'1','Home','Viewing data for document 1'),(114,1188065300,1,'admin',27,'1','-','Editing document 1'),(115,1188066365,1,'admin',5,'1','-','Saving document 1'),(116,1188066368,1,'admin',3,'1','Home','Viewing data for document 1'),(117,1188066389,1,'admin',27,'1','-','Editing document 1'),(118,1188066466,1,'admin',5,'1','-','Saving document 1'),(119,1188066470,1,'admin',3,'1','Home','Viewing data for document 1'),(120,1188066501,1,'admin',27,'1','-','Editing document 1'),(121,1188066522,1,'admin',5,'1','-','Saving document 1'),(122,1188066525,1,'admin',3,'1','Home','Viewing data for document 1'),(123,1188066663,1,'admin',27,'1','-','Editing document 1'),(124,1188066904,1,'admin',5,'1','-','Saving document 1'),(125,1188066908,1,'admin',3,'1','Home','Viewing data for document 1'),(126,1188067237,1,'admin',27,'1','-','Editing document 1'),(127,1188067251,1,'admin',5,'1','-','Saving document 1'),(128,1188067254,1,'admin',3,'1','Home','Viewing data for document 1'),(129,1188067568,1,'admin',3,'2','Blog','Viewing data for document 2'),(130,1188067645,1,'admin',27,'2','-','Editing document 2'),(131,1188067669,1,'admin',3,'18','Just a pretend, older post','Viewing data for document 18'),(132,1188067673,1,'admin',27,'18','-','Editing document 18'),(133,1188068103,1,'admin',5,'18','-','Saving document 18'),(134,1188068106,1,'admin',3,'18','the first post','Viewing data for document 18'),(135,1188068114,1,'admin',3,'3','Add a Blog Entry','Viewing data for document 3'),(136,1188068120,1,'admin',6,'3','-','Deleting document 3'),(137,1188068128,1,'admin',3,'9','Mini-Blog HOWTO','Viewing data for document 9'),(138,1188068132,1,'admin',6,'9','-','Deleting document 9'),(139,1188068160,1,'admin',3,'18','the first post','Viewing data for document 18'),(140,1188068163,1,'admin',27,'18','-','Editing document 18'),(141,1188068193,1,'admin',5,'18','-','Saving document 18'),(142,1188068197,1,'admin',3,'18','The first post','Viewing data for document 18'),(143,1188068718,1,'admin',3,'1','Home','Viewing data for document 1'),(144,1188068721,1,'admin',27,'1','-','Editing document 1'),(145,1188068748,1,'admin',5,'1','-','Saving document 1'),(146,1188068752,1,'admin',3,'1','Home','Viewing data for document 1'),(147,1188068963,1,'admin',3,'5','Request an Account','Viewing data for document 5'),(148,1188068975,1,'admin',27,'5','-','Editing document 5'),(149,1188068986,1,'admin',61,'5','-','Publishing a document'),(150,1188069045,1,'admin',61,'5','-','Publishing a document'),(151,1188069085,1,'admin',3,'5','Request an Account','Viewing data for document 5'),(152,1188069452,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(153,1188069463,1,'admin',27,'32','-','Editing document 32'),(154,1188069614,1,'admin',27,'32','-','Editing document 32'),(155,1188069653,1,'admin',27,'32','-','Editing document 32'),(156,1188069785,1,'admin',5,'32','-','Saving document 32'),(157,1188069850,1,'admin',5,'32','-','Saving document 32'),(158,1188069854,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(159,1188069901,1,'admin',27,'32','-','Editing document 32'),(160,1188069940,1,'admin',5,'32','-','Saving document 32'),(161,1188069943,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(162,1188070164,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(163,1188071068,1,'admin',27,'32','-','Editing document 32'),(164,1188071194,1,'admin',5,'32','-','Saving document 32'),(165,1188071197,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(166,1188071243,1,'admin',27,'32','-','Editing document 32'),(167,1188071285,1,'admin',5,'32','-','Saving document 32'),(168,1188071288,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(169,1188071335,1,'admin',27,'32','-','Editing document 32'),(170,1188071384,1,'admin',5,'32','-','Saving document 32'),(171,1188071388,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(172,1188071405,1,'admin',27,'32','-','Editing document 32'),(173,1188071441,1,'admin',5,'32','-','Saving document 32'),(174,1188071444,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(175,1188071477,1,'admin',27,'32','-','Editing document 32'),(176,1188071737,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(177,1188071741,1,'admin',3,'39','Favorite sites','Viewing data for document 39'),(178,1188071768,1,'admin',27,'39','-','Editing document 39'),(179,1188071802,1,'admin',5,'39','-','Saving document 39'),(180,1188071806,1,'admin',3,'39','Favorite sites','Viewing data for document 39'),(181,1188072070,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(182,1188072073,1,'admin',27,'32','-','Editing document 32'),(183,1188072099,1,'admin',5,'32','-','Saving document 32'),(184,1188072103,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(185,1188072113,1,'admin',27,'32','-','Editing document 32'),(186,1188072187,1,'admin',5,'32','-','Saving document 32'),(187,1188072191,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(188,1188072221,1,'admin',27,'32','-','Editing document 32'),(189,1188075245,1,'admin',3,'6','Contact Us','Viewing data for document 6'),(190,1188075249,1,'admin',27,'6','-','Editing document 6'),(191,1188075305,1,'admin',5,'6','-','Saving document 6'),(192,1188075308,1,'admin',3,'6','Games','Viewing data for document 6'),(193,1188077681,1,'admin',3,'6','Games','Viewing data for document 6'),(194,1188077685,1,'admin',27,'6','-','Editing document 6'),(195,1188077706,1,'admin',5,'6','-','Saving document 6'),(196,1188077709,1,'admin',3,'6','Games','Viewing data for document 6'),(197,1188077711,1,'admin',3,'32','Chat Online','Viewing data for document 32'),(198,1188077714,1,'admin',27,'32','-','Editing document 32'),(199,1188077862,1,'admin',5,'32','-','Saving document 32'),(200,1188077866,1,'admin',3,'32','Mga videos/music na payter','Viewing data for document 32'),(201,1188077873,1,'admin',3,'6','Games','Viewing data for document 6'),(202,1188077876,1,'admin',27,'6','-','Editing document 6'),(203,1188077892,1,'admin',5,'6','-','Saving document 6'),(204,1188077896,1,'admin',3,'6','Mga games na amo duwaon samtang sa office','Viewing data for document 6'),(205,1188078044,1,'admin',3,'2','Blog','Viewing data for document 2'),(206,1188078047,1,'admin',27,'2','-','Editing document 2'),(207,1188078089,1,'admin',5,'2','-','Saving document 2'),(208,1188078094,1,'admin',3,'2','akong mga way sense na post','Viewing data for document 2'),(209,1188078102,1,'admin',27,'2','-','Editing document 2'),(210,1188078126,1,'admin',5,'2','-','Saving document 2'),(211,1188078130,1,'admin',3,'2','Mga post na nonsense','Viewing data for document 2'),(212,1188078134,1,'admin',3,'39','Favorite sites','Viewing data for document 39'),(213,1188078187,1,'admin',27,'39','-','Editing document 39'),(214,1188078228,1,'admin',5,'39','-','Saving document 39'),(215,1188078231,1,'admin',3,'39','Mga sites na akong paborito','Viewing data for document 39'),(216,1188078245,1,'admin',3,'33','My projects','Viewing data for document 33'),(217,1188078249,1,'admin',27,'33','-','Editing document 33'),(218,1188078275,1,'admin',5,'33','-','Saving document 33'),(219,1188078278,1,'admin',3,'33','Mga projects nko ky way lingaw','Viewing data for document 33'),(220,1188078280,1,'admin',3,'15','MODx Features','Viewing data for document 15'),(221,1188078290,1,'admin',27,'15','-','Editing document 15'),(222,1188078325,1,'admin',5,'15','-','Saving document 15'),(223,1188078330,1,'admin',3,'15','Mga dagway ug uban pa','Viewing data for document 15'),(224,1188078363,1,'admin',3,'6','Mga games na amo duwaon samtang sa office','Viewing data for document 6'),(225,1188078379,1,'admin',27,'6','-','Editing document 6'),(226,1188078405,1,'admin',5,'6','-','Saving document 6'),(227,1188078409,1,'admin',3,'6','Mga games na amo duwaon sa office','Viewing data for document 6'),(228,1188079113,1,'admin',3,'1','Home','Viewing data for document 1'),(229,1188080011,1,'admin',27,'1','-','Editing document 1'),(230,1188080056,1,'admin',5,'1','-','Saving document 1'),(231,1188080060,1,'admin',3,'1','Home','Viewing data for document 1'),(232,1188080069,1,'admin',27,'1','-','Editing document 1'),(233,1188081161,1,'admin',5,'1','-','Saving document 1'),(234,1188081169,1,'admin',3,'1','Home','Viewing data for document 1'),(235,1188081253,1,'admin',3,'1','Home','Viewing data for document 1'),(236,1188081256,1,'admin',27,'1','-','Editing document 1'),(237,1188081882,1,'admin',5,'1','-','Saving document 1'),(238,1188081887,1,'admin',3,'1','Home','Viewing data for document 1'),(239,1188081908,1,'admin',27,'1','-','Editing document 1'),(240,1188082173,1,'admin',5,'1','-','Saving document 1'),(241,1188082178,1,'admin',3,'1','Home','Viewing data for document 1'),(242,1188083258,1,'admin',3,'1','Home','Viewing data for document 1'),(243,1188083307,1,'admin',27,'1','-','Editing document 1'),(244,1188083385,1,'admin',5,'1','-','Saving document 1'),(245,1188083389,1,'admin',3,'1','Home','Viewing data for document 1'),(246,1188825534,1,'admin',58,'-','MODx','Logged in'),(247,1188847815,1,'admin',17,'-','-','Editing settings'),(248,1188847831,1,'admin',30,'-','-','Saving settings'),(249,1198791554,1,'admin',58,'-','MODx','Logged in'),(250,1198791589,1,'admin',58,'-','MODx','Logged in'); /*!40000 ALTER TABLE `modx_manager_log` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_manager_users` -- DROP TABLE IF EXISTS `modx_manager_users`; CREATE TABLE `modx_manager_users` ( `id` int(10) NOT NULL auto_increment, `username` varchar(100) NOT NULL default '', `password` varchar(100) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`) ) TYPE=MyISAM COMMENT='Contains login information for backend users.'; -- -- Dumping data for table `modx_manager_users` -- LOCK TABLES `modx_manager_users` WRITE; /*!40000 ALTER TABLE `modx_manager_users` DISABLE KEYS */; INSERT INTO `modx_manager_users` VALUES (1,'admin','5528770f4bce9c9b0ce9bbb8645aef45'); /*!40000 ALTER TABLE `modx_manager_users` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_member_groups` -- DROP TABLE IF EXISTS `modx_member_groups`; CREATE TABLE `modx_member_groups` ( `id` int(10) NOT NULL auto_increment, `user_group` int(10) NOT NULL default '0', `member` int(10) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Contains data used for access permissions.'; -- -- Dumping data for table `modx_member_groups` -- LOCK TABLES `modx_member_groups` WRITE; /*!40000 ALTER TABLE `modx_member_groups` DISABLE KEYS */; /*!40000 ALTER TABLE `modx_member_groups` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_membergroup_access` -- DROP TABLE IF EXISTS `modx_membergroup_access`; CREATE TABLE `modx_membergroup_access` ( `id` int(10) NOT NULL auto_increment, `membergroup` int(10) NOT NULL default '0', `documentgroup` int(10) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Contains data used for access permissions.'; -- -- Dumping data for table `modx_membergroup_access` -- LOCK TABLES `modx_membergroup_access` WRITE; /*!40000 ALTER TABLE `modx_membergroup_access` DISABLE KEYS */; /*!40000 ALTER TABLE `modx_membergroup_access` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_membergroup_names` -- DROP TABLE IF EXISTS `modx_membergroup_names`; CREATE TABLE `modx_membergroup_names` ( `id` int(10) NOT NULL auto_increment, `name` varchar(255) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) TYPE=MyISAM COMMENT='Contains data used for access permissions.'; -- -- Dumping data for table `modx_membergroup_names` -- LOCK TABLES `modx_membergroup_names` WRITE; /*!40000 ALTER TABLE `modx_membergroup_names` DISABLE KEYS */; /*!40000 ALTER TABLE `modx_membergroup_names` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_content` -- DROP TABLE IF EXISTS `modx_site_content`; CREATE TABLE `modx_site_content` ( `id` int(10) NOT NULL auto_increment, `type` varchar(20) NOT NULL default 'document', `contentType` varchar(50) NOT NULL default 'text/html', `pagetitle` varchar(255) NOT NULL default '', `longtitle` varchar(255) NOT NULL default '', `description` varchar(255) NOT NULL default '', `alias` varchar(255) default '', `link_attributes` varchar(255) NOT NULL default '', `published` int(1) NOT NULL default '0', `pub_date` int(20) NOT NULL default '0', `unpub_date` int(20) NOT NULL default '0', `parent` int(10) NOT NULL default '0', `isfolder` int(1) NOT NULL default '0', `introtext` text, `content` mediumtext, `richtext` tinyint(1) NOT NULL default '1', `template` int(10) NOT NULL default '1', `menuindex` int(10) NOT NULL default '0', `searchable` int(1) NOT NULL default '1', `cacheable` int(1) NOT NULL default '1', `createdby` int(10) NOT NULL default '0', `createdon` int(20) NOT NULL default '0', `editedby` int(10) NOT NULL default '0', `editedon` int(20) NOT NULL default '0', `deleted` int(1) NOT NULL default '0', `deletedon` int(20) NOT NULL default '0', `deletedby` int(10) NOT NULL default '0', `publishedon` int(20) NOT NULL default '0', `publishedby` int(10) NOT NULL default '0', `menutitle` varchar(255) NOT NULL default '', `donthit` tinyint(1) NOT NULL default '0', `haskeywords` tinyint(1) NOT NULL default '0', `hasmetatags` tinyint(1) NOT NULL default '0', `privateweb` tinyint(1) NOT NULL default '0', `privatemgr` tinyint(1) NOT NULL default '0', `content_dispo` tinyint(1) NOT NULL default '0', `hidemenu` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`), KEY `id` (`id`), KEY `parent` (`parent`), KEY `aliasidx` (`alias`), FULLTEXT KEY `content_ft_idx` (`pagetitle`,`description`,`content`) ) TYPE=MyISAM COMMENT='Contains the site document tree.'; -- -- Dumping data for table `modx_site_content` -- LOCK TABLES `modx_site_content` WRITE; /*!40000 ALTER TABLE `modx_site_content` DISABLE KEYS */; INSERT INTO `modx_site_content` VALUES (1,'document','text/html','Home','Welcome to killerlooks.org','Introduction to MODx','index','',1,0,0,0,0,'Create and do amazing things with MODx','

Got killerlooks?
\r\n

\r\n

\r\nWhat is killerlooks?\r\n

\r\n

\r\nHonestly, I dont have an idea on what\'s the purpose for this domain. blog, photo gallery, forum, social network, etc..whatever. \r\n

\r\n

\r\nWhy killerlooks? \r\n

\r\n

\r\nI saw this girl and damn she has looks I would kill for. bwahahahaha\r\n

\r\n

\r\nWho is that girl? \r\n

\r\n

\r\nShe is the mixture of reality and fantacy. \r\n

\r\n

\r\nWho are you?\r\n

\r\n

\r\nThat\'s a good question. Will have to think about that first.\r\n

\r\n

\r\nIs your site worth our time?\r\n

\r\n\r\n

\r\nI dont claim professional ideologies or comments on whatever i post. Contents mentioned or posted here are property of their respective owners, provided for educational or for entertainment purposes only.\r\n

\r\n

\r\nIf you get killed, accidentally mutiliated, or depressed and will commit suicide or any violent reaction due to whatever you read from here will not be my responsibilty.  \r\n

\r\n

\r\n\r\nI hate you, can I send you hate mail?\r\n

\r\n

\r\nYes, of course. Send it to pugrit@gmail.com\r\n

\r\n',1,4,1,1,1,1,1144904400,1,1188083385,0,0,0,0,0,'Home',0,0,0,0,0,0,0),(2,'document','text/html','Mga post na nonsense','Blog','','blog','',1,0,0,0,1,'','[[Ditto? &startID=`2` &summarize=`2` &removeChunk=`Comments` &tpl=`ditto_blog` &paginate=`1` &extenders=`summary,dateFilter` &paginateAlwaysShowLinks=`1` &tagData=`documentTags`]]\r\n

\r\nShowing [+start+] - [+stop+] of [+total+] Articles\r\n

\r\n
\r\n[+previous+] [+pages+] [+next+] \r\n
\r\n
\r\n \r\n
\r\n[[Reflect? &dittoSnippetParameters=`startID:2` &groupByYears=`0` &showItems=0` &tplMonth=`reflect_month_tpl`]]\r\n',1,4,2,0,0,1,1144904400,1,1188078126,0,0,0,0,0,'Blog',0,0,0,0,0,0,0),(3,'document','text/html','Add a Blog Entry','Add a Blog Entry','','add-a-blog-entry','',1,0,0,2,0,'','[!NewsPublisher? &folder=`2` &canpost=`Site Admins` &formtpl=`FormBlog` &footertpl=`Comments` &makefolder=`1` &rtcontent=`tvblogContent`!]',0,4,2,0,0,1,1144904400,3,1144904400,1,1188068120,1,0,0,'Add Blog Entry',1,0,0,1,0,0,0),(4,'document','text/html','[*loginName*]','Login to Enable to Comments','','login','',1,0,0,0,0,'','

In order to comment on blog entries, you must be a registered user of [(site_name)]. If you haven\'t already registered, you can request an account.

\r\n
[!WebLogin? &tpl=`FormLogin` &loginhomeid=`2`!]
',1,4,11,0,0,1,1144904400,1,1144904400,0,0,0,0,0,'[*loginName*]',0,0,0,0,0,0,1),(5,'document','text/html','Request an Account','Sign Up for Full Site Privileges','','request-an-account','',1,0,0,0,0,'','[[WebSignup? &tpl=`FormSignup` &groups=`Registered Users`]]',1,4,3,0,0,1,1144904400,1,1188069045,0,0,0,1188069045,1,'',0,0,0,0,0,0,1),(6,'document','text/html','Mga games na amo duwaon sa office','Games','','games','',1,0,0,0,0,'','[!eForm? &formid=`ContactForm` &subject=`[+subject+]` &to=`[(email_sender)]` &ccsender=`1` &tpl=`ContactForm` &report=`ContactFormReport` &invalidClass=`invalidValue` &requiredClass=`requiredValue` &cssStyle=`ContactStyles` &gotoid=`46` !]\r\n',0,4,14,1,0,1,1144904400,1,1188078405,0,0,0,0,0,'Games',0,0,0,0,0,0,0),(7,'document','text/html','404 - Document Not Found','Uh oh ... it\'s a 404! (Page Not Found)','','doc-not-found','',1,0,0,0,0,'','

Looks like you tried to go somewhere that does not exist... perhaps you need to login or you\'d like one of the following pages instead:

\r\n\r\n[[Wayfinder? &startId=`0` &showDescription=`1`]]\r\n\r\n

Want to find it the old fashioned way? Use the site search at the top of this site to find what you seek.

\r\n\r\n',1,4,4,0,1,1,1144904400,1,1159301173,0,0,0,0,0,'',0,0,0,0,0,0,1),(8,'document','text/html','Search Results','Your Search Results','','search-results','',1,0,0,0,0,'','[!AjaxSearch? &AS_showForm=`0` &ajaxSearch=`0`!]',0,4,5,0,0,1,1144904400,1,1158613055,0,0,0,0,0,'',1,0,0,0,0,0,1),(9,'document','text/html','Mini-Blog HOWTO','How to Start Posting with MODx Mini-Blogs','','article-1126081344','',1,0,0,2,1,'','

Setting up a mini-blog is relatively simple. Here\'s what you need to do to get started with making new posts:

\r\n
    \r\n
  1. Login to the MODx Control Panel.
  2. \r\n
  3. Create a new Webuser by clicking the Users > Manage web users link.
  4. \r\n
  5. Make sure to check the Site Admins Webuser Group at the bottom of the page.
  6. \r\n \r\n
  7. Go to the login page and login using this newly created Webuser information.
  8. \r\n
  9. You should now notice a new Add a Blog Entry menu item that automatically appeared under the Blog Page link in the right column.
  10. \r\n
\r\n{{Comments}}',1,4,0,1,1,-1,1144904400,1,1160171764,1,1188068132,1,0,0,'',0,0,0,0,0,0,1),(11,'document','text/xml','RSS Feed','[(site_name)] RSS Feed','','feed.rss','',1,0,0,0,0,'','[[Ditto? &startID=`2` &format=`rss` &summarize=`20` &total=`20` &commentschunk=`Comments`]]',0,0,6,0,0,1,1144904400,1,1160062859,0,0,0,0,0,'',0,0,0,0,0,0,1),(14,'document','text/html','Content Management','Ways to manage content','','cms','',1,0,0,15,0,'','

Manage your content in the backend

\r\n

The Manager is a skinnable feature-packed tool for admin users. You can add extra users and limit what functions they can access. MODx\'s Manager makes creating content and managing templates and reusable elements easy. Modules can be added to work with other datasets or make management tasks easier.

\r\n

Manage your content in the frontend

\r\n

The QuickEdit bar lets manager users edit content whilst browsing the site. Most content fields and template variables can be edited quickly and easily.

\r\n

Enable web users to add content

\r\n

Custom data entry is easy to code using the MODx API - so you can design forms and collect whatever information you need.

',0,4,3,1,1,1,1144904400,1,1158331927,0,0,0,0,0,'Manage Content',0,0,0,0,0,0,0),(15,'document','text/html','Mga dagway ug uban pa','Photo Gallery','','Gallery','',1,0,0,0,1,'','[!Wayfinder?startId=`[*id*]` &outerClass=`topnav`!]\r\n',1,4,7,1,1,1,1144904400,1,1188078325,0,0,0,1144777367,1,'Gallery',0,0,0,0,0,0,0),(16,'document','text/html','Ajax','Ajax and Web 2.0 ready','','ajax','',1,1159264800,0,15,0,'','Ajax ready out-of-the-box\r\n

MODx empowers users to build engaging sites today, with its pre-integrated Mootools javascript library.

\r\n\r\n

Check out the Ajax-powered search in this example site. The libraries are also used with QuickEdit, our front-end editing tool.

\r\n\r\n

Smart integration means the scripts are only included in the document head when needed - no unnecessary bloat on simple pages!

\r\n\r\nWeb 2.0 today\r\n

MODx makes child\'s play of building content managed sites with validating, accessible CSS layouts - so web standards compliance is easy. (You can create a site with excessively nested tables too, if you really want to).

\r\n',1,4,1,1,1,1,1144904400,1,1159307504,0,0,0,0,0,'Ajax',0,0,0,0,0,0,0),(18,'document','text/html','The first post','the first nonsense','','article-1128398162','',1,0,0,2,0,'','

\r\nok, the first post.\r\n

\r\n

\r\nhmmm... its 2:52 AM 5 more hours of work, so sleepy, no calls in queue, and my head is aching.\r\n

\r\n

\r\ni think this is it. \r\n

\r\n

\r\n \r\n

\r\n

\r\n \r\n

\r\n',1,4,2,1,1,-1,1144904400,1,1188068193,0,0,0,0,0,'',0,0,0,0,0,0,1),(22,'document','text/html','Menus and Lists','Flexible Menus and Lists','','menus','',1,1159178400,0,15,0,'','

Your documents - listed how you want them

\r\n

MODx\'s document data structure has been designed to allow many different routines to redisplay the information in ways that suit your needs, such as a dynamic menu in your template.

\r\n

Since the last release of MODx, the community has produced many great snippets - reusable functions that you can call in your content or template. Two of the most widely useful are Ditto and Wayfinder.

\r\n

Wayfinder - the menu builder

\r\n

Allows you to template every part of the menu. On this site, Wayfinder is being used to generate the drop-down menus, but many types of menus and sitemaps are possible. Wayfinder updates and support.

\r\n

Ditto - the document lister

\r\n

Uses include listing the most recent blog posts, producing a site map, listing related documents (using a TV filter) and generating an RSS feed. You could even write a menu with it. On this site, Ditto is being used for the blog posts list on the Blog page, and the list on the right of some templates. Ditto updates and support.

\r\n

Unlimited Customization

\r\n

If you can\'t quite get your desired effect using templating and the many options of Ditto and Wayfinder, you can write your own routine, or look for other snippets in the MODx repository. MODx\'s fields for Menu Title, summaries, menu position etc can be used via the API to produce anything you can imagine.

',1,4,2,1,1,1,1144904400,1,1160148522,0,0,0,0,0,'Menus and Lists',0,0,0,0,0,0,0),(24,'document','text/html','Extendable by design','Extendable by design','','extendable','',1,1159092732,0,15,0,'','

The MODx community has created many add-ons which can be found in the Repository, from image galleries and e-commerce to smaller utilities.

\r\n\r\n

Template Variables with Bindings

\r\n

TVs - Template Variables - are powerful extra fields that you can use with your documents. As an example of an advanced template element that returns a different thing dependent on code or data, we created an @BINDING for the name of the Login menu item. This changes the menu name from Login to Logout based on your logged in state. The @BINDING as follows was placed in the default value as:\r\n@EVAL if ($modx->getLoginUserID()) return \'Logout\'; else return \'Login\';

\r\n\r\n

Using Scriptaculous

\r\n

We used some simple effects to highlight various things on the front/home page to demonstrate how easy it is to create a useful way to draw attention to things. To see them in action on the home page, click the Integrated Site Search, Related Links or Newest Documents headers.

\r\n\r\n

Custom Forms

\r\n

To demonstrate how to link to custom forms, we customized the calls to the Webuser Registration system and the Login system.

\r\n\r\n

And more

\r\n

Rich Text Editor for blog entries. To make it easier to format blog posts with simple text formatting, we modified the blog to use a custom RTE-enabled Template Variable (TV).

\r\n\r\n

Smart-Summary logic. When splitting the full blog/news posts you simply insert a \"<!-- splitter -->\" where you want the break to occur. In addition, if that leaves any important tags open, it will try to match them and close them so it doesn\'t mess up your site layout with unclosed OL, UL or DIV tags.

',1,4,4,1,1,2,1144904400,1,1159309971,0,0,0,0,0,'Extendability',0,0,0,0,0,0,0),(32,'document','text/html','Mga videos/music na payter','Music and Videos','','design','',1,0,0,0,0,'','
\r\n
\r\n
\r\n

\r\n "This is a blockquote. Use this for quotes and references to texts from other places. You can also use the class .box to create a similar boxed effect..."\r\n

\r\n
\r\n

Heading 1 Consect etuer adipisci ngon.

\r\n

Heading 2 Consect etuer adipisci ngon.

\r\n

Heading 3 Consect etuer adipisci ngon.

\r\n

Heading 4 Consect etuer adipisci ngon.

\r\n
Heading 5 Consect etuer adipisci ngon.
\r\n
Heading 6 Consect etuer adipisci ngon.
\r\n\r\n
    \r\n
  1. Ordered list, option 1
  2. \r\n
  3. Ordered list, option 2
  4. \r\n
  5. Ordered list, option 3\r\n
      \r\n
    1. Sub-option 3:1
    2. \r\n
    3. Sub-option 3:2
    4. \r\n
    5. Sub-option 3:3
    6. \r\n
    \r\n
  6. \r\n
  7. Unordered list, option 4
    \r\n d
  8. \r\n
\r\n

\r\nThis is a regular link.\r\n

\r\n

\r\nThis is strong text, left-aligned.\r\n

\r\n

\r\nThis is text with the class .important, centered.\r\n

\r\n

\r\nThis is emphasized text, right-aligned.\r\n

\r\n

\r\nThis is text styled with the class .big.\r\n

\r\n

\r\nThis is small text, using the class .small. Also available is the class .green.\r\n

\r\n
\r\n',1,4,10,1,1,2,1144904400,1,1188077862,0,0,0,1144912754,1,'Music/Videos',0,0,0,0,0,0,0),(48,'document','text/html','Projects1','','','','',1,0,0,33,0,'','test\r\n',1,4,0,1,1,1,1187993537,1,1187993569,0,0,0,1187993569,1,'test',0,0,0,0,0,0,0),(33,'document','text/html','Mga projects nko ky way lingaw','Projects','','geting-help','',1,0,0,0,1,'','

\r\nThe team behind MODx strives to contantly add to and refine the documentation to help you get up to speed with MODx:\r\n

\r\n\r\n

\r\nAnd don\'t forget, you can always learn and ask questions at the MODx forums. \r\n

\r\n',1,4,8,1,1,2,1144904400,1,1188078274,0,0,0,1187993114,1,'Projects',0,0,0,0,0,0,0),(37,'document','text/html','[*loginName*]','The page you\'re trying to reach requires a login','','blog-login','',1,0,0,0,0,'','

In order to add a blog entry, you must be logged in as a Site Admin webuser. Also, commenting on posts requires a login. Contact the site owner for permissions to create new post, or create a web user account to automatically receive commenting privileges. If you already have an account, please login below.

\r\n\r\n[!WebLogin? &tpl=`FormLogin` &loginhomeid=`3`!]',1,4,12,0,0,1,1144904400,1,1158599931,0,0,0,0,0,'',0,0,0,0,0,0,1),(39,'document','text/html','Mga sites na akong paborito','Affiliates','Templates','templates','',1,0,0,0,1,'','

\r\nThis page provides a simple way to explore alternate layouts and stylesheets. To change the overall template, use the first set of links. To alter the stylesheets, use the second set of options.\r\n

\r\n

Change Layout Templates:

\r\n[!Wayfinder?startId=`[*id*]` &outerClass=`topnav`!]
\r\n

Switch CSS Themes:

\r\n{{styles}}\r\n',1,4,9,1,0,1,1144904400,1,1188078228,0,0,0,1144628721,1,'Affiliates',0,0,0,0,0,0,0),(42,'document','text/html','MODxCSS Wide','MODxCSS Wide','MODxCSS Wide','modxcss_wide','',1,0,0,39,0,'','

This page provides a simple way to explore alternate layouts and stylesheets. To change the overall template, use the first set of links. To alter the stylesheets, use the second set of options.

\r\n\r\n

Change Layout Templates:

\r\n[!Wayfinder?startId=`[*parent*]` &outerClass=`topnav`!]
\r\n\r\n

Switch CSS Themes:

\r\n{{styles}}',1,3,9,1,0,1,1144904400,1,1159978559,0,0,0,1144628721,1,'MODxCSS Wide',0,0,0,0,0,0,0),(43,'document','text/html','MODxCSS','MODxCSS','MODxCSS','modxcss','',1,0,0,39,0,'','

This page provides a simple way to explore alternate layouts and stylesheets. To change the overall template, use the first set of links. To alter the stylesheets, use the second set of options.

\r\n\r\n

Change Layout Templates:

\r\n[!Wayfinder?startId=`[*parent*]` &outerClass=`topnav`!]
\r\n\r\n

Switch CSS Themes:

\r\n{{styles}}',1,1,9,1,0,1,1144904400,1,1159978559,0,0,0,1144628721,1,'MODxCSS',0,0,0,0,0,0,0),(44,'reference','text/html','MODxHost','MODxHost','MODxHost','modxhost_tpl','',1,0,0,39,0,'','index.php?id=39',0,0,1,1,0,1,1144904400,1,1158505455,0,0,0,1144967650,1,'MODxHost',0,0,0,0,0,0,0),(46,'document','text/html','Thank You','','','thank-you','',1,0,0,0,0,'','

Thank You!

\r\n

We do appreciate your feedback. Your comments have been submitted to our office and hopefully someone will bother to actually read it. You should also receive a copy of the message in your inbox.

\r\n

Please be assured that we will do our best not to ignore you, but if today\'s a Monday please try again in a few days.

\r\n',1,4,13,1,1,1,1159302141,1,1159302892,0,0,0,1159302182,1,'',0,0,0,0,0,0,1),(47,'document','text/html','test','','','','',1,0,0,15,0,'','test\r\n',1,4,4,1,1,1,1187992747,1,1187992792,0,0,0,1187992792,1,'',0,0,0,0,0,0,0); /*!40000 ALTER TABLE `modx_site_content` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_content_metatags` -- DROP TABLE IF EXISTS `modx_site_content_metatags`; CREATE TABLE `modx_site_content_metatags` ( `content_id` int(11) NOT NULL default '0', `metatag_id` int(11) NOT NULL default '0', KEY `content_id` (`content_id`), KEY `metatag_id` (`metatag_id`) ) TYPE=MyISAM COMMENT='Reference table between meta tags and content'; -- -- Dumping data for table `modx_site_content_metatags` -- LOCK TABLES `modx_site_content_metatags` WRITE; /*!40000 ALTER TABLE `modx_site_content_metatags` DISABLE KEYS */; /*!40000 ALTER TABLE `modx_site_content_metatags` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_htmlsnippets` -- DROP TABLE IF EXISTS `modx_site_htmlsnippets`; CREATE TABLE `modx_site_htmlsnippets` ( `id` int(10) NOT NULL auto_increment, `name` varchar(50) NOT NULL default '', `description` varchar(255) NOT NULL default 'Chunk', `editor_type` int(11) NOT NULL default '0', `category` int(11) NOT NULL default '0', `cache_type` tinyint(1) NOT NULL default '0', `snippet` mediumtext, `locked` tinyint(4) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Contains the site chunks.'; -- -- Dumping data for table `modx_site_htmlsnippets` -- LOCK TABLES `modx_site_htmlsnippets` WRITE; /*!40000 ALTER TABLE `modx_site_htmlsnippets` DISABLE KEYS */; INSERT INTO `modx_site_htmlsnippets` VALUES (1,'WebLoginSideBar','WebLogin Sidebar Template',0,2,0,' \n\n
\n \n\n\n\n\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
User:
Password:
\n \n \n \n \n \n
\n
\n
Forget Password?
\n
\n
\n
\n\n[+logouttext+]\n
\n\n
\n\n\n \n \n \n \n \n \n \n \n \n
Enter the email address of your account
below to receive your password:
\n
\n
\n\n',0),(2,'FormBlog','Input Form for creating new blog entries',0,3,0,'
\r\n
\r\n

Publishing Details

\r\n

Note: Leaving the Publish Date empty will immediately publish your blog entry.

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n

The Content

\r\n

The Summary field is optional, but is used as a short version for RSS feeds and summary views on the main blog page.

\r\n
\r\n \r\n
\r\n \r\n
\r\n

You\'re Done

\r\n \r\n \r\n
\r\n
\r\n\r\n',0),(3,'FormLogin','Custom login form for Weblogins',0,2,0,' \r\n\r\n
\r\n \r\n
\r\n

Your Login Details

\r\n \r\n \r\n \r\n \r\n Forget Your Password?\r\n
\r\n
\r\n
\r\n\r\n

You\'re already logged in

\r\nDo you wish to [+logouttext+]?\r\n
\r\n\r\n
\r\n
\r\n

It happens to everyone...

\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n',0),(4,'FormSignup','For the weblogin signup',0,2,0,' \r\n\r\n
\r\n
\r\n

User Details

\r\n

Items marked by * are required

\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

Password

\r\n \r\n \r\n
\r\n \r\n
\r\n

Optional Account Profile Info

\r\n \r\n \r\n
\r\n \r\n
\r\n

Bot-Patrol

\r\n

Enter the word/number combination shown in the image below.

\r\n \r\n \"If\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n

Signup completed successfully!
\r\nYour account was created. A copy of your signup information was sent to your email address.

\r\n',0),(5,'FormBlogComments','Comment to show up beneath a blog for registered user comments',0,3,0,'\r\n

Enter your comments in the space below (registered site users only):

\r\n[!UserComments? &canpost=`Registered Users, Site Admins` &makefolder=`0` &postcss=`comment` &titlecss=`commentTitle` &numbercss=`commentNum` &altrowcss=`commentAlt` &authorcss=`commentAuthor` &ownercss=`commentMe` &sortorder=`0`!]',0),(6,'nl_sidebar','Default Template TPL for Ditto',0,3,0,'[+title+]
\r\n[+longtitle+]

',0),(7,'styles','Stylesheet switcher list',0,1,0,'
The CSS Themes can only be used on the MODxCSS and MODxCSSW Layouts
\r\n\r\n',0),(8,'ditto_blog','Blog Template',0,3,0,'
\r\n

[+title+]

\r\n
By [+author+] on [+date+]. Comments\r\n ([!Jot?&docid=`[+id+]`&action=`count-comments`!])
Tags: [+tagLinks+]
\r\n [+summary+]\r\n

[+link+]

\r\n
',0),(9,'footer','Site Template Footer',0,1,0,'[(site_name)] is powered by MODx CMS |\r\n Design by Andreas Viklund\r\nDesigned by ziworks\r\n\r\n\r\n\r\n
MODx - The XHTML, CSS and Ajax CMS and PHP Application Framework
',0),(10,'meta','Site Template Meta',0,1,0,'

Valid XHTML

Valid css

MODx

',0),(11,'mh.InnerRowTpl','Inner row template for ModxHost top menu',0,8,0,'[+wf.linktext+][+wf.wrapper+]',0),(12,'mh.InnerTpl','Inner nesting template for ModxHost top menu',0,8,0,'',0),(13,'mh.OuterTpl','Outer nesting template for ModxHost top menu',0,8,0,' ',0),(14,'mh.RowTpl','Row template for ModxHost top menu',0,8,0,'
  • [+wf.linktext+][+wf.wrapper+]
  • ',0),(15,'Comments','Comments (Jot) showing beneath a blog entry.',0,3,0,'
    \r\n[!Jot? &customfields=`name,email` &subscribe=`1` &pagination=`4` &badwords=`dotNet` &canmoderate=`Site Admins` !]\r\n
    ',0),(16,'ContactForm','',0,5,0,'

    [+validationmessage+]

    \r\n\r\n
    \r\n\r\n
    \r\n

    Contact Form

    \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n
    \r\n\r\n
    \r\n',0),(17,'ContactFormReport','',0,5,0,'

    This is a response sent by [+name+] using the feedback form on the website. The details of the message follow below:

    \r\n\r\n\r\n

    Name: [+name+]

    \r\n

    Email: [+email+]

    \r\n

    Regarding: [+subject+]

    \r\n

    comments:
    [+message+]

    \r\n\r\n

    You can use this link to reply: [+email+]

    \r\n',0),(18,'reflect_month_tpl','For the yearly archive. Use with Ditto.',0,3,0,'[+month+] [+year+]',0),(19,'ContactStyles','Styles for form validation',0,5,0,'',0); /*!40000 ALTER TABLE `modx_site_htmlsnippets` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_keywords` -- DROP TABLE IF EXISTS `modx_site_keywords`; CREATE TABLE `modx_site_keywords` ( `id` int(11) NOT NULL auto_increment, `keyword` varchar(40) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `keyword` (`keyword`) ) TYPE=MyISAM COMMENT='Site keyword list'; -- -- Dumping data for table `modx_site_keywords` -- LOCK TABLES `modx_site_keywords` WRITE; /*!40000 ALTER TABLE `modx_site_keywords` DISABLE KEYS */; INSERT INTO `modx_site_keywords` VALUES (1,'MODx'),(2,'content management system'),(3,'Front End Editing'),(4,'login'); /*!40000 ALTER TABLE `modx_site_keywords` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_metatags` -- DROP TABLE IF EXISTS `modx_site_metatags`; CREATE TABLE `modx_site_metatags` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) NOT NULL default '', `tag` varchar(50) NOT NULL default '', `tagvalue` varchar(255) NOT NULL default '', `http_equiv` tinyint(4) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Site meta tags'; -- -- Dumping data for table `modx_site_metatags` -- LOCK TABLES `modx_site_metatags` WRITE; /*!40000 ALTER TABLE `modx_site_metatags` DISABLE KEYS */; /*!40000 ALTER TABLE `modx_site_metatags` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_module_access` -- DROP TABLE IF EXISTS `modx_site_module_access`; CREATE TABLE `modx_site_module_access` ( `id` int(10) unsigned NOT NULL auto_increment, `module` int(11) NOT NULL default '0', `usergroup` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Module users group access permission'; -- -- Dumping data for table `modx_site_module_access` -- LOCK TABLES `modx_site_module_access` WRITE; /*!40000 ALTER TABLE `modx_site_module_access` DISABLE KEYS */; /*!40000 ALTER TABLE `modx_site_module_access` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_module_depobj` -- DROP TABLE IF EXISTS `modx_site_module_depobj`; CREATE TABLE `modx_site_module_depobj` ( `id` int(11) NOT NULL auto_increment, `module` int(11) NOT NULL default '0', `resource` int(11) NOT NULL default '0', `type` int(2) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Module Dependencies'; -- -- Dumping data for table `modx_site_module_depobj` -- LOCK TABLES `modx_site_module_depobj` WRITE; /*!40000 ALTER TABLE `modx_site_module_depobj` DISABLE KEYS */; INSERT INTO `modx_site_module_depobj` VALUES (1,2,4,30); /*!40000 ALTER TABLE `modx_site_module_depobj` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_modules` -- DROP TABLE IF EXISTS `modx_site_modules`; CREATE TABLE `modx_site_modules` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) NOT NULL default '', `description` varchar(255) NOT NULL default '0', `editor_type` int(11) NOT NULL default '0', `disabled` tinyint(4) NOT NULL default '0', `category` int(11) NOT NULL default '0', `wrap` tinyint(4) NOT NULL default '0', `locked` tinyint(4) NOT NULL default '0', `icon` varchar(255) NOT NULL default '', `enable_resource` tinyint(4) NOT NULL default '0', `resourcefile` varchar(255) NOT NULL default '', `createdon` int(11) NOT NULL default '0', `editedon` int(11) NOT NULL default '0', `guid` varchar(32) NOT NULL default '', `enable_sharedparams` tinyint(4) NOT NULL default '0', `properties` text, `modulecode` mediumtext, PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Site Modules'; -- -- Dumping data for table `modx_site_modules` -- LOCK TABLES `modx_site_modules` WRITE; /*!40000 ALTER TABLE `modx_site_modules` DISABLE KEYS */; INSERT INTO `modx_site_modules` VALUES (1,'Doc Manager','Quickly perform bulk updates to the Documents in your site including templates, publishing details, and permissions.',0,0,0,0,0,'',0,'',0,0,'',1,'','/**\n * Document Manager Module\n * \n * Purpose: Allows for the bulk management of key document settings.\n * Author: Garry Nutting (Mark Kaplan - Menu Index functionalty, Luke Stokes - Document Permissions concept)\n * For: MODx CMS (www.modxcms.com)\n * Date:29/09/2006 Version: 1.6\n *\n */\n\nglobal $theme;\nglobal $table;\nglobal $_lang;\nglobal $siteURL;\n\n$basePath = $modx->config[\'base_path\'];\n$siteURL = $modx->config[\'site_url\'];\n\n/** CONFIGURATION SETTINGS **/\n\n//-- set to false to hide the \'Select Tree\' option\n$showTree = false;\n\n/** END CONFIGURATION SETTINGS **/\n\n//-- include language file\n$manager_language = $modx->config[\'manager_language\'];\n$sql = \"SELECT setting_name, setting_value FROM \".$modx->getFullTableName(\'user_settings\').\" WHERE setting_name=\'manager_language\' AND user=\" . $modx->getLoginUserID();\n$rs = $modx->db->query($sql);\nif ($modx->db->getRecordCount($rs) > 0) {\n $row = $modx->db->getRow($rs);\n $manager_language = $row[\'setting_value\'];\n}\ninclude_once $basePath.\'assets/modules/docmanager/lang/english.inc.php\';\nif($manager_language!=\"english\") {\nif (file_exists($basePath.\'assets/modules/docmanager/lang/\'.$manager_language.\'.inc.php\')) {\n include_once $basePath.\'assets/modules/docmanager/lang/\'.$manager_language.\'.inc.php\';\n}\n}\n\n//-- get theme\n$tb_prefix = $modx->db->config[\'table_prefix\'];\n$theme = $modx->db->select(\'setting_value\', \'`\' . $tb_prefix . \'system_settings`\', \'setting_name=\\\'manager_theme\\\'\', \'\');\n$theme = $modx->db->getRow($theme);\n$theme = ($theme[\'setting_value\'] <> \'\') ? \'/\' . $theme[\'setting_value\'] : \'\';\n\n//-- setup initial vars\n$table = $modx->getFullTableName(\'site_content\');\n$output = \'\';\n$error = \'\';\n\n//-- include php files\ninclude_once $basePath.\'manager/includes/controls/datagrid.class.php\';\ninclude_once $basePath.\'assets/modules/docmanager/includes/interaction.inc.php\';\ninclude_once $basePath.\'assets/modules/docmanager/includes/process.inc.php\';\n\n//-- get POST vars\n$tabAction = (isset ($_POST[\'tabAction\'])) ? $_POST[\'tabAction\'] : \'\'; // get action for active tab\n$intType = (isset($_POST[\'opcode\']) && $_POST[\'opcode\'] == \'range\') ? \'range\' : \'tree\'; // get interaction type\n\n//-- Menu Index\nif ($tabAction == \'sortMenu\' || isset($_POST[\'sortableListsSubmitted\'])) {\n$id= isset($_POST[\'new_parent\'])? $_POST[\'new_parent\']: 0;\n$actionkey = isset($_POST[\'actionkey\'])? $_POST[\'actionkey\']: 0;\nif(isset($_POST[\'sortableListsSubmitted\'])) {$actionkey =1;}\n\ninclude_once $basePath.\'assets/modules/docmanager/includes/SLLists.class.php\';\n\n}\n\n//-- process POST actions if required\nif ($tabAction == \'change_template\') {\n $output .= changeTemplate($intType, $_POST[\'pids\'], $_POST[\'newvalue\']);\n return $output;\n} elseif($tabAction == \'change_tv\') {\n $output .= changeTemplateVariables($intType, $_POST[\'pids\']);\n return $output;\n} elseif ($tabAction == \'pushDocGroup\' || $tabAction == \'pullDocGroup\' ) {\n $output.=changeDocGroups($intType, $_POST[\'pids\'],$_POST[\'newvalue\'],$tabAction);\n return $output;\n} elseif ((isset($_POST[\'actionkey\'])) && $tabAction == \'sortMenu\' || isset($_POST[\'sortableListsSubmitted\']) ) {\n $output .= \' \nconfig[\'manager_direction\'] == \'rtl\' ? \'dir=\"rtl\"\' : \'\').\' lang=\"\'.$modx->config[\'manager_lang_attribute\'].\'\" xml:lang=\"\'.$modx->config[\'manager_lang_attribute\'].\'\">\n\n \n \n \';\n\n $output.= sortMenu($id);\n return $output;\n} elseif ($tabAction == \'changeOther\') {\n $output.= changeOther($intType, $_POST[\'pids\']);\n return $output;\n}\n\n//-- render tabbed output\n//--- HEAD\n$output .= \' \nconfig[\'manager_direction\'] == \'rtl\' ? \'dir=\"rtl\"\' : \'\').\' lang=\"\'.$modx->config[\'manager_lang_attribute\'].\'\" xml:lang=\"\'.$modx->config[\'manager_lang_attribute\'].\'\"> \n \n \'.$_lang[\'DM_module_title\'].\' \n\n \n \n \n \n \n \n \n \n \n \n \';\n$output.= buttonCSS();\n$output.=\'\n \n \n
    \n \"\"
    \' . $_lang[\'DM_module_title\'] . \'
    \n \n
    \n
    \n \';\n \n//--- TABS\n$output.= \'
     \' . $_lang[\'DM_action_title\'] . \'
    \n
    \n
    \n \';\n\n//--- template \n$output.= \'
    \n

    \' . $_lang[\'DM_change_template\'] . \'

    \n \n \';\n$output.=showTemplate();\n$output.=\'
    \';\n\n//--- template variables \n$output.= \'
    \n

    \' . $_lang[\'DM_template_variables\']. \'

    \n \n \';\n$output.=showTemplateVariables(); \n$output.=\'
    \';\n\n//--- document permissions \n$output.= \'
    \n

    \' . $_lang[\'DM_doc_permissions\']. \'

    \n \n \';\n$output.=showDocGroups(); \n$output.=\'
    \';\n\n//--- sort menu \n$output.= \'
    \n

    \' . $_lang[\'DM_sort_menu\'] . \'

    \n \n \';\n$output.= showSortMenu();\n$output.=\'
    \';\n\n//--- show Other \n$output.= \'
    \n

    \' . $_lang[\'DM_other\'] . \'

    \n \n \';\n$output.= showOther();\n$output.= showAdjustDates();\n$output.= showAdjustAuthors();\n \n$output.=\'
    \';\n\n$output.= showInteraction($showTree);\n\n//-- send output\n$output.=\'\';\nreturn $output;'),(2,'QuickEdit','Renders QuickEdit links in the frontend',0,0,0,0,0,'',0,'',0,0,'f888bac76e1537ca8e0cbec772b4624a',1,'&mod_path=Module Path (from site root);string;assets/modules/quick_edit &show_manager_link=Show Manager Link;int;1 &show_help_link=Show Help Link;int;1 &editable=Editable Fields;string;pagetitle,longtitle,description,content,alias,introtext,menutitle,published,hidemenu,menuindex,searchable,cacheable,template','/*\n * Written by: Adam Crownoble\n * Contact: adam@obledesign.com\n * Created: 8/14/2005\n * Updated: 8/20/2005 - Added documentation page support\n * Updated: 11/27/2005 - Added show Manager & Help link options and apply (AJAX saving)\n * Updated: 12/05/2005 - Added editable fields as configuration option\n * For: MODx cms (modxcms.com)\n * Name: QuickEdit\n * Description: Edit pages from the frontend of the site\n * Parameters: &mod_path=Module Path (from site root);string;assets/modules/quick_edit &show_manager_link=Show Manager Link;int;1 &show_help_link=Show Help Link;int;1 &editable=Editable Fields;string;pagetitle,longtitle,description,content,alias,introtext,menutitle,published,hidemenu,menuindex,searchable,cacheable\n * Parameter sharing: enabled\n * Dependencies: QuickEdit plugin\n */\n\n/*\n License\n\nQuickEdit - A MODx module which allows the editing of content via\n the frontent of the site\nCopyright (C) 2005 Adam Crownoble\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n\n*/\n\n// Set configuration variables if not already set\nif(!isset($mod_path)) { $mod_path = \'assets/modules/quick_edit\'; }\nif(!isset($show_manager_link)) { $show_manager_link = 1; }\nif(!isset($show_help_link)) { $show_help_link = 1; }\nif(!isset($editable)) { $editable = \'pagetitle,longtitle,description,content,alias,introtext,menutitle,published,hidemenu,menuindex,searchable,cacheable,template\'; }\n\n$basePath = $modx->config[\'base_path\'];\n\n// If we cant\'t find the module files...\nif(!file_exists($basePath.$mod_path)) {\n\n // Log an error\n $error_message = \'QuickEdit module not found!

    Edit the QuickEdit module, click the Configuration tab and change the Module Path to point to the module.

    \';\n $modx->Event->alert($error_message);\n $modx->logEvent(0, 3, $error_message, \'QuickEditor\');\n\n} else {\n\n $GLOBALS[\'qe_editable\'] = $editable;\n $GLOBALS[\'quick_edit_path\'] = $mod_path;\n include($basePath.$mod_path.\'/editor.class.inc.php\');\n\n $qe = new QuickEditor;\n $html = \'\';\n $doc_id = 0;\n $var_id = 0;\n $mod_id = 0;\n $save = 0;\n $ajax = 0;\n $apply = 0;\n\n if(isset($_REQUEST[\'doc\'])) $doc_id = $_REQUEST[\'doc\'];\n if(isset($_REQUEST[\'var\'])) $var_id = $_REQUEST[\'var\'];\n if(isset($_REQUEST[\'id\'])) $mod_id = $_REQUEST[\'id\'];\n if(isset($_REQUEST[\'save\'])) $save = $_REQUEST[\'save\'];\n if(isset($_REQUEST[\'ajax\'])) $ajax = $_REQUEST[\'ajax\'];\n\n if($doc_id && $var_id && $save && $ajax) {\n\n $qe->save($doc_id, $var_id);\n\n } elseif($doc_id && $var_id && $save) {\n\n $qe->save($doc_id, $var_id);\n $qe->renderSaveAndCloseHTML();\n\n } elseif($doc_id && $var_id) {\n\n $qe->renderEditorHTML($doc_id, $var_id, $mod_id);\n\n } else {\n\n include($basePath.$mod_path.\'/documentation.php\');\n\n }\n\n}\n'); /*!40000 ALTER TABLE `modx_site_modules` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_plugin_events` -- DROP TABLE IF EXISTS `modx_site_plugin_events`; CREATE TABLE `modx_site_plugin_events` ( `pluginid` int(10) NOT NULL default '0', `evtid` int(10) NOT NULL default '0', `priority` int(10) NOT NULL default '0' ) TYPE=MyISAM COMMENT='Links to system events'; -- -- Dumping data for table `modx_site_plugin_events` -- LOCK TABLES `modx_site_plugin_events` WRITE; /*!40000 ALTER TABLE `modx_site_plugin_events` DISABLE KEYS */; INSERT INTO `modx_site_plugin_events` VALUES (1,23,0),(1,29,0),(1,35,0),(1,41,0),(1,47,0),(1,53,0),(1,59,0),(1,65,0),(1,73,0),(2,80,0),(2,81,0),(2,93,0),(3,28,0),(4,3,0),(4,92,0),(5,85,0),(5,87,0),(5,88,0),(6,3,0); /*!40000 ALTER TABLE `modx_site_plugin_events` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_plugins` -- DROP TABLE IF EXISTS `modx_site_plugins`; CREATE TABLE `modx_site_plugins` ( `id` int(10) NOT NULL auto_increment, `name` varchar(50) NOT NULL default '', `description` varchar(255) NOT NULL default 'Plugin', `editor_type` int(11) NOT NULL default '0', `category` int(11) NOT NULL default '0', `cache_type` tinyint(1) NOT NULL default '0', `plugincode` mediumtext, `locked` tinyint(4) NOT NULL default '0', `properties` text, `disabled` tinyint(4) NOT NULL default '0', `moduleguid` varchar(32) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Contains the site plugins.'; -- -- Dumping data for table `modx_site_plugins` -- LOCK TABLES `modx_site_plugins` WRITE; /*!40000 ALTER TABLE `modx_site_plugins` DISABLE KEYS */; INSERT INTO `modx_site_plugins` VALUES (1,'Bottom Button Bar','Adds a set of buttons to the bottom of all manager pages',0,6,0,'/* BottomButtonBar v1.0 (by Mitch)\n *\n * I just got tired of scrolling up after editing a document/snippet/etc... \n * to save it. The GoUp plugin improved it a bit, but I was not completely \n * satisfied. So I wrote this plugin that will add the complete buttonbar \n * at the bottom of the edit screen. Also there is a GoUp link in the bottombar.\n *\n * To use the plugin you have to enable the following events:\n *\n * OnChunkFormRender\n * OnDocFormRender\n * OnModFormRender\n * OnPluginFormRender\n * OnSnipFormRender\n * OnTVFormRender\n * OnTempFormRender\n * OnUserFormRender\n * OnWUsrFormRender\n *\n * Hope you like it as much as I do.\n * \n */\n\n\n// I know the code looks messy, but that is mainly because of the copy/pasting.\n\n// Load the language file\ninclude $modx->config[\'base_path\'].\'manager/includes/lang/\'.$modx->config[\'manager_language\'].\'.inc.php\';\n\n//Get Manager Theme - added by garryn\n$manager_theme = $modx->config[\'manager_theme\'] ? $modx->config[\'manager_theme\'] : \'\';\n\n// Get a reference to the event\n$e = & $modx->Event;\n\n// For every form basicially the code is just copied from the appropriate\n// mutate_XXXXXX.dynamic.action.php file. Then the CSS id\'s are updated so they\n// are unique. I just added __ after it.\n\nswitch ($e->name) {\n\n//-------------------------------------------------------------------\n case \"OnDocFormRender\":\n\n// From mutate_content.dynamic.action.php\nob_start();\n?>\n
    \n images/_tx_.gif\" width=\"1\" height=\"5\" />
    \"\"
    \n\n \n \n \n \n \n \n \n
    images/icons/save.gif\" align=\"absmiddle\" /> images/icons/delete.gif\" align=\"absmiddle\" /> \">images/icons/cancel.gif\" align=\"absmiddle\" />
    \n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n images/_tx_.gif\" width=\"1\" height=\"5\" />
    \"\"
    \n\n \n \n \n \n \n \n \n \n \n
    images/icons/save.gif\" align=\"absmiddle\" /> images/icons/delete.gif\" align=\"absmiddle\" /> images/icons/cancel.gif\" align=\"absmiddle\" />
    \n
    \n\n
    \n images/_tx_.gif\" width=\"1\" height=\"5\" />
    \"\"
    \n\n \n \n \n \n \n \n \n \n \n
    images/icons/save.gif\" align=\"absmiddle\" /> images/icons/delete.gif\" align=\"absmiddle\" /> images/icons/cancel.gif\" align=\"absmiddle\" />
    \n
    \noutput($output);\n',0,'',0,''),(2,'Forgot Manager Login','Resets your manager login when you forget your password.',0,6,0,'\nif(!class_exists(\'ForgotManagerPassword\')) {\nclass ForgotManagerPassword{\n\n function ForgotManagerPassword(){\n \n $this->errors = array();\n \n $this->checkLang();\n\n }\n\n function getLink() {\n \n global $_lang;\n \n$link = <<{$_lang[\'forgot_your_password\']}\nEOD;\n\n return $link;\n\n }\n\n function getForm() {\n\n global $_lang;\n\n$form = <<{$_lang[\'account_email\']}:\n\n\nEOD;\n\n return $form;\n\n }\n\n // Get user info including a hash unique to this user, password, and day\n function getUser($user_id=0, $username=\'\', $email=\'\', $hash=\'\') {\n\n global $modx, $_lang;\n \n $user_id = $modx->db->escape($user_id);\n $username = $modx->db->escape($username);\n $email = $modx->db->escape($email);\n $emaail = $modx->db->escape($hash);\n \n $pre = $modx->db->config[\'table_prefix\'];\n $site_id = $modx->config[\'site_id\'];\n $today = date(\'Yz\'); // Year and day of the year\n $wheres = array();\n $where = \'\';\n $user = array(\'id\'=>0, \'username\'=>\'\', \'email\'=>\'\', \'hash\'=>\'\');\n \n if(!empty($user_id)) { $wheres[] = \"id = \'{$user_id}\'\"; }\n if(!empty($username)) { $wheres[] = \"username = \'{$username}\'\"; }\n if(!empty($email)) { $wheres[] = \"email = \'{$email}\'\"; }\n if(!empty($hash)) { $wheres[] = \"MD5(CONCAT(usr.username,usr.password,\'{$site_id}\',\'{$today}\')) = \'{$hash}\'\"; }\n \n if($wheres) {\n \n $where = \' WHERE \'.implode(\' AND \',$wheres);\n $sql = \"SELECT usr.id, usr.username, attr.email, MD5(CONCAT(usr.username,usr.password,\'{$site_id}\',\'{$today}\')) AS hash\n FROM `{$pre}manager_users` usr\n INNER JOIN `{$pre}user_attributes` attr ON usr.id = attr.internalKey\n {$where};\";\n \n if($result = $modx->db->query($sql)){\n if($modx->db->getRecordCount($result)==1) {\n $user = $modx->db->getRow($result);\n }\n }\n \n }\n \n if(!$user[\'id\']) { $this->errors[] = $_lang[\'could_not_find_user\']; }\n\n return $user;\n\n }\n\n // Send an email with a link to login\n function sendEmail($to) {\n\n global $modx, $_lang;\n\n $subject = $_lang[\'password_change_request\'];\n $headers = \"MIME-Version: 1.0\\n\".\n \"Content-type: text/html; charset=iso-8859-1\\n\".\n \"From: MODx\\n\".\n \"Reply-To: no-reply@{$_SERVER[\'HTTP_HOST\']}\\n\".\n \"X-Mailer: PHP/\".phpversion();\n \n $user = $this->getUser(0, \'\', $to);\n\n if($user[\'username\']) {\n\n$body = <<{$_lang[\'forgot_password_email_intro\']} config[\'site_url\']}manager/processors/login.processor.php?username={$user[\'username\']}&hash={$user[\'hash\']}\">{$_lang[\'forgot_password_email_link\']}

    \n\n

    {$_lang[\'forgot_password_email_instructions\']}

    \n\n

    {$_lang[\'forgot_password_email_fine_print\']}

    \nEOD;\n\n $mail = mail($to, $subject, $body, $headers);\n \n if(!$mail) { $this->errors[] = $_lang[\'error_sending_email\']; }\n \n return $mail;\n \n }\n\n }\n \n function unblockUser($user_id) {\n \n global $modx, $_lang;\n $pre = $modx->db->config[\'table_prefix\'];\n \n $modx->db->update(array(\'blocked\'=>\'\', \'blockeduntil\'=>\'\'), \"`{$pre}user_attributes`\", \"internalKey = \'{$user_id}\'\");\n \n if(!$modx->db->getAffectedRows()) { $this->errors[] = $_lang[\'user_doesnt_exist\']; return; }\n \n return true;\n \n }\n \n function checkLang() {\n \n global $_lang;\n $eng = array();\n \n $eng[\'forgot_your_password\'] = \'Forgot your password?\';\n $eng[\'account_email\'] = \'Account email\';\n $eng[\'send\'] = \'Send\';\n $eng[\'password_change_request\'] = \'Password change request\';\n $eng[\'forgot_password_email_intro\'] = \'A request has been made to change the password on your account.\';\n $eng[\'forgot_password_email_link\'] = \'Click here to complete the process.\';\n $eng[\'forgot_password_email_instructions\'] = \'From there you will be able to change your password from the My Account menu.\';\n $eng[\'forgot_password_email_fine_print\'] = \'* The URL above will expire once you change your password or after today.\';\n $eng[\'error_sending_email\'] = \'Error sending email\';\n $eng[\'could_not_find_user\'] = \'Could not find user\';\n $eng[\'user_doesnt_exist\'] = \'User does not exist\';\n $eng[\'email_sent\'] = \'Email sent\';\n \n foreach($eng as $key=>$value) {\n if(empty($_lang[$key])) { $_lang[$key] = $value; }\n }\n \n }\n \n function getErrorOutput() {\n \n $outptut = \'\';\n \n if($this->errors) {\n $output = \'\'.implode(\'\', $this->errors).\'\';\n }\n \n return $output;\n \n }\n \n}\n}\n\nglobal $_lang;\n\n$output = \'\';\n$event_name = $modx->Event->name;\n$action = (empty($_GET[\'action\']) ? \'\' : $_GET[\'action\']);\n$username = (empty($_GET[\'username\']) ? \'\' : $_GET[\'username\']);\n$to = (empty($_GET[\'email\']) ? \'\' : $_GET[\'email\']);\n$hash = (empty($_GET[\'hash\']) ? \'\' : $_GET[\'hash\']);\n$forgot = new ForgotManagerPassword();\n\nif($event_name == \'OnManagerLoginFormRender\') {\n\n switch($action) {\n\n case \'show_form\':\n $output = $forgot->getForm();\n break;\n \n case \'send_email\':\n if($forgot->sendEmail($to)) { $output = $_lang[\'email_sent\']; }\n break;\n \n default:\n $output = $forgot->getLink();\n\n }\n \n if($forgot->errors) { $output = $forgot->getErrorOutput() . $forgot->getLink(); }\n \n}\n\nif($event_name == \'OnBeforeManagerLogin\') {\n $user = $forgot->getUser(0, $username, \'\', $hash);\n if($user[\'id\'] && !$forgot->errors) {\n $forgot->unblockUser($user[\'id\']);\n }\n}\n\nif($event_name == \'OnManagerAuthentication\' && $hash) {\n $user = $forgot->getUser(0, \'\', \'\', $hash);\n $output = ($user[\'id\'] > 0 && !$forgot->errors);\n}\n\n$modx->Event->output($output);\n',0,'',0,''),(3,'Inherit Parent Template','New docs automatically select template of parent folder',0,6,0,'/*\n * Inherit Template from Parent\n * Written By Raymond Irving - 12 Oct 2006\n *\n * Simply results in new documents inherriting the template \n * of their parent folder upon creating a new document\n *\n * Configuration:\n * check the OnDocFormPrerender event\n *\n * Version 1.0\n *\n */\n\nglobal $content;\n$e = &$modx->Event;\n\nswitch($e->name) {\n case \'OnDocFormPrerender\':\n if(($_REQUEST[\'pid\'] > 0) && ($id == 0)) {\n if($parent = $modx->getPageInfo($_REQUEST[\'pid\'],0,\'template\')) {\n $content[\'template\'] = $parent[\'template\'];\n }\n }\n break;\n\n default:\n return;\n break;\n}\n',0,'',0,''),(4,'QuickEdit','Front-end Content Editor.',0,6,0,'/*\n * Written by: Adam Crownoble\n * Contact: adam@obledesign.com\n * Created: 8/14/2005\n * Updated: 11/27/2005 - Added support for show Manager & Help links option\n * Updated: 12/05/2005 - Added support for editable fields as a module configuration option\n * For: MODx cms (modxcms.com)\n * Name: QuickEdit\n * Description: Renders QuickEdit links in the frontend\n * Shared parameters from: QuickEdit module\n * Events: OnParseDocument, OnWebPagePrerender\n */\n\n/*\n License\n\nQuickEdit - A MODx module which allows the editing of content via\n the frontent of the site\nCopyright (C) 2005 Adam Crownoble\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation; either version 2 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program; if not, write to the Free Software\nFoundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n\n*/\n\n// Don\'t do anything if we aren\'t logged in\nif(isset($_SESSION[\'mgrValidated\']) && $_SESSION[\'mgrValidated\']) {\n\n // Set configuration variables if not already set\n if(!isset($mod_path)) { $mod_path = $modx->config[\'base_path\'].\'assets/modules/quick_edit\'; }\n if(!isset($show_manager_link)) { $show_manager_link = 1; }\n if(!isset($show_help_link)) { $show_help_link = 1; }\n if(!isset($editable)) { $editable = \'pagetitle,longtitle,description,content,alias,introtext,menutitle,published,hidemenu,menuindex,searchable,cacheable\'; }\n\n // If we can\'t find the module files...\n if(!file_exists($mod_path)) {\n\n // Only log the error if we haven\'t already logged it...\n if(!isset($GLOBALS[\'quick_edit_not_found_sent\'])) {\n\n // Set a global variable so that we can only log this once\n $GLOBALS[\'quick_edit_not_found_sent\'] = true;\n\n // Log an error\n $error_message = \'QuickEdit module not found!

    Edit the QuickEdit module, click the Configuration tab and change the Module Path to point to the module.

    \';\n $modx->logEvent(0, 3, $error_message, \'QuickEditor\');\n\n }\n\n } else {\n\n // Set globals from QE Module\'s shared paramaters so we can get them from the frontend\n $GLOBALS[\'qe_show_manager_link\'] = $show_manager_link;\n $GLOBALS[\'qe_show_help_link\'] = $show_help_link;\n $GLOBALS[\'qe_editable\'] = $editable;\n\n // Set the mod_path as a global variable\n $GLOBALS[\'quick_edit_path\'] = $mod_path;\n if (!class_exists(\'Output\')) include_once($mod_path.\'/output.class.inc.php\');\n\n $outputObject = new Output;\n\n switch($modx->Event->name) {\n\n case \'OnParseDocument\' :\n\n $outputObject->output = $modx->documentOutput;\n\n // Merge QuickEdit comment into the output\n $outputObject->mergeTags();\n\n break;\n\n case \'OnWebPagePrerender\' :\n\n $outputObject->output = &$modx->documentOutput;\n\n include_once($mod_path.\'/module.class.inc.php\');\n $module = new Module;\n $module->getIdFromDependentPluginName($modx->Event->activePlugin);\n\n // Replace QuickEdit comments with QuickEdit links\n $outputObject->mergeLinks($module->id);\n\n break;\n\n }\n\n // Set the event output\n $modx->documentOutput = $outputObject->output;\n\n // Logout ?\n $qe_logout= (isset($_GET[\'QuickEdit_logout\'])? $_GET[\'QuickEdit_logout\']: \'\');\n if($qe_logout == \'logout\') {\n $_SESSION = array();\n }\n\n }\n\n}\n',0,'',0,'f888bac76e1537ca8e0cbec772b4624a'),(5,'TinyMCE','2.1.1.1: TinyMCE RichText Editor Plugin',0,6,0,'/*\n * TinyMCE RichText Editor Plugin \n * Written By Jeff Whitfield - September 9, 2005\n * Modified On - February 1, 2007\n *\n * Version 2.1.1.1\n *\n * Events: OnRichTextEditorInit, OnRichTextEditorRegister, OnInterfaceSettingsRender\n *\n */\n\ninclude_once $modx->config[\'base_path\'].\'assets/plugins/tinymce2111/tinymce.lang.php\';\ninclude_once $modx->config[\'base_path\'].\'assets/plugins/tinymce2111/tinymce.functions.php\';\n\n// Set path and base setting variables\nif(!isset($tinyPath)) { \n global $tinyPath;\n $tinyPath = $modx->config[\'base_path\'].\'assets/plugins/tinymce2111\'; \n}\n$base_url = $modx->config[\'base_url\'];\n$displayStyle = ( ($_SESSION[\'browser\']==\'mz\') || ($_SESSION[\'browser\']==\'op\') ) ? \"table-row\" : \"block\" ;\n\n// Handle event\n$e = &$modx->Event; \nswitch ($e->name) { \n case \"OnRichTextEditorRegister\": // register only for backend\n $e->output(\"TinyMCE\");\n break;\n\n case \"OnRichTextEditorInit\": \n if($editor==\"TinyMCE\") {\n $elementList = implode(\",\", $elements);\n if(isset($forfrontend)||$modx->isFrontend()){\n $frontend = \'true\';\n $frontend_language = isset($modx->config[\'fe_editor_lang\']) ? $modx->config[\'fe_editor_lang\']:\"\";\n $tinymce_language = getTinyMCELang($frontend_language);\n $html = getTinyMCEScript($elementList,$webtheme,$width,$height,$tinymce_language,$frontend,$base_url, $webPlugins, $webButtons1, $webButtons2, $webButtons3, $webButtons4, $disabledButtons, $tinyFormats, $entity_encoding, $entities, $tinyPathOptions, $tinyCleanup, $tinyResizing, $modx->config[\'editor_css_path\'], $modx->config[\'tinymce_css_selectors\'], $modx->config[\'use_browser\'], $webAlign, null, null, $tinyLinkList);\n } else {\n $frontend = \'false\';\n $manager_language = $modx->config[\'manager_language\'];\n $tinymce_language = getTinyMCELang($manager_language);\n $html = getTinyMCEScript($elementList, $modx->config[\'tinymce_editor_theme\'], $width=\'100%\', $height=\'400px\', $tinymce_language, $frontend, $modx->config[\'base_url\'], $modx->config[\'tinymce_custom_plugins\'], $modx->config[\'tinymce_custom_buttons1\'], $modx->config[\'tinymce_custom_buttons2\'], $modx->config[\'tinymce_custom_buttons3\'], $modx->config[\'tinymce_custom_buttons4\'], $disabledButtons, $tinyFormats, $entity_encoding, $entities, $tinyPathOptions, $tinyCleanup, $tinyResizing, $modx->config[\'editor_css_path\'], $modx->config[\'tinymce_css_selectors\'], $modx->config[\'use_browser\'], $modx->config[\'manager_direction\'], $advimage_styles, $advlink_styles, $tinyLinkList);\n }\n $e->output($html);\n } \n break;\n\n case \"OnInterfaceSettingsRender\":\n $manager_language = $modx->config[\'manager_language\'];\n $html = getTinyMCESettings($_lang, $tinyPath, $modx->config[\'manager_language\'], $modx->config[\'use_editor\'], $modx->config[\'tinymce_editor_theme\'], $modx->config[\'tinymce_css_selectors\'], $modx->config[\'tinymce_custom_plugins\'], $modx->config[\'tinymce_custom_buttons1\'], $modx->config[\'tinymce_custom_buttons2\'], $modx->config[\'tinymce_custom_buttons3\'], $modx->config[\'tinymce_custom_buttons4\'], $displayStyle);\n $e->output($html);\n break;\n\n default : \n return; // stop here - this is very important. \n break; \n}\n',0,'&tinyFormats=Block Formats;text;p,h1,h2,h3,h4,h5,h6,div,blockquote,code,pre,address &entity_encoding=Entity Encoding;list;named,numeric,raw;named &entities=Entities;text; &tinyPathOptions=Path Options;list;rootrelative,docrelative,fullpathurl;docrelative &tinyCleanup=Cleanup;list;enabled,disabled;enabled &tinyResizing=Advanced Resizing;list;true,false;false &advimage_styles=Advanced Image Styles;text; &advlink_styles=Advanced Link Styles;text; &disabledButtons=Disabled Buttons;text; &tinyLinkList=Link List;list;enabled,disabled;disabled &webtheme=Web Theme;list;simple,advanced,editor,custom;simple &webPlugins=Web Plugins;text;style,advimage,advlink,searchreplace,print,contextmenu,paste,fullscreen,nonbreaking,xhtmlxtras,visualchars,media &webButtons1=Web Buttons 1;text;undo,redo,selectall,separator,pastetext,pasteword,separator,search,replace,separator,nonbreaking,hr,charmap,separator,image,link,unlink,anchor,media,separator,cleanup,removeformat,separator,fullscreen,print,code,help &webButtons2=Web Buttons 2;text;bold,italic,underline,strikethrough,sub,sup,separator,bullist,numlist,outdent,indent,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,styleselect,formatselect,separator,styleprops &webButtons3=Web Buttons 3;text; &webButtons4=Web Buttons 4;text; &webAlign=Web Toolbar Alignment;list;ltr,rtl;ltr',0,''),(6,'Search Highlighting','Show search terms highlighted on page linked from search results. (Requires AjaxSearch snippet)',0,10,0,'/*\n ------------------------------------------------------------------------\n Plugin: Search_Highlight v1.2\n ------------------------------------------------------------------------\n Changes:\n 01/03/07 - Added fies/updates from forum from users mikkelwe/identity\n (better highlight replacement, additional div around term/removal message)\n ------------------------------------------------------------------------\n Description: When a user clicks on the link from the AjaxSearch results\n the target page will have the terms highlighted.\n ------------------------------------------------------------------------\n Created By: Susan Ottwell (sottwell@sottwell.com)\n Kyle Jaebker (kjaebker@muddydogpaws.com)\n ------------------------------------------------------------------------\n Based off the the code by Susan Ottwell (www.sottwell.com)\n http://modxcms.com/forums/index.php/topic,1237.0.html\n ------------------------------------------------------------------------\n CSS:\n The classes used for the highlighting are the same as the AjaxSearch\n ------------------------------------------------------------------------\n Notes:\n To add a link to remove the highlighting and to show the searchterms\n put the following on your page where you would like this to appear:\n \n \n \n Example output for this:\n \n Search Terms: the, template\n Remove Highlighting\n \n Set the following variables to change the text:\n \n $termText - the text before the search terms\n $removeText - the text for the remove link\n ------------------------------------------------------------------------\n*/\n\nif(isset($_GET[\'searched\']) && isset($_GET[\'highlight\'])) {\n\n // Set these to customize the text for the highlighting key\n // --------------------------------------------------------\n $termText = \'
    Search Terms: \';\n $removeText = \'Remove Highlighting\';\n // --------------------------------------------------------\n\n $highlightText = $termText;\n\n $searched = urldecode($_GET[\'searched\']);\n $highlight = urldecode($_GET[\'highlight\']);\n $output = $modx->documentOutput; // get the parsed document\n\n $body = explode(\"\", $output); // break out the head\n\n $searchArray = explode(\' \', $searched); // break apart the search terms\n\n $highlightClass = explode(\' \',$highlight); // break out the highlight classes\n\n $i = 0; // for individual class names\n\n foreach($searchArray as $word) {\n $i++;\n $class = $highlightClass[0].\' \'.$highlightClass[$i];\n\n $highlightText .= ($i > 1) ? \', \' : \'\';\n $highlightText .= \'\'.$word.\'\';\n\n $pattern = \'/\' . preg_quote($word) . \'(?=[^>]*<)/i\';\n $replacement = \'${0}\';\n $body[1] = preg_replace($pattern, $replacement, $body[1]);\n }\n\n $output = implode(\"\", $body);\n\n $removeUrl = $modx->makeUrl($modx->documentIdentifier);\n $highlightText .= \'
    \'.$removeText.\'
    \';\n\n $output = str_replace(\'\',$highlightText,$output);\n\n $modx->documentOutput = $output;\n}',0,'',0,''); /*!40000 ALTER TABLE `modx_site_plugins` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_snippets` -- DROP TABLE IF EXISTS `modx_site_snippets`; CREATE TABLE `modx_site_snippets` ( `id` int(10) NOT NULL auto_increment, `name` varchar(50) NOT NULL default '', `description` varchar(255) NOT NULL default 'Snippet', `editor_type` int(11) NOT NULL default '0', `category` int(11) NOT NULL default '0', `cache_type` tinyint(1) NOT NULL default '0', `snippet` mediumtext, `locked` tinyint(4) NOT NULL default '0', `properties` text, `moduleguid` varchar(32) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Contains the site snippets.'; -- -- Dumping data for table `modx_site_snippets` -- LOCK TABLES `modx_site_snippets` WRITE; /*!40000 ALTER TABLE `modx_site_snippets` DISABLE KEYS */; INSERT INTO `modx_site_snippets` VALUES (1,'AjaxSearch','1.5 Ajax enabled search form with results highlighting.',0,10,0,'/* -------------------------------------------------------------\n:: Snippet: Ajax Search\n----------------------------------------------------------------\n Short Description: \n Ajax-driven search form\n\n Version:\n 1.6\n\n Created by:\n Jason Coward (opengeek - jason@opengeek.com)\n Kyle Jaebker (kylej - kjaebker@muddydogpaws.com)\n Ryan Thrash (rthrash - ryan@vertexworks.com)\n \n Live Search by Thomas (Shadock)\n Fixes & Additions by identity/Perrine/mikkelwe\n\n Date:\n 02/18/2007\n\n Required Usage:\n [!AjaxSearch!]\n\n Changelog:\n 22-Jan-07 \n -- Added templating support (includes/templates.inc.php)\n -- Added language support\n -- Switched from prototype/scriptaculous to Mootools\n 03-Jan-07 -- Added many bugfixes/additions from AjaxSearch forum\n 18-Sep-06 -- Added code to only show results for allowed pages\n 05-May-06 -- Added liveSearch functionality and new parameter\n 21-Apr-06 -- Added code to make it compatible with tagcloud snippet\n 20-Apr-06 -- Added code from eastbind & japanese community for other language searching\n 4-Apr-06 -- Added search term highlighting\n 1-Apr-06 -- initial commit into SVN\n 30-Mar-06 -- initial work based on FSF_ajax from KyleJ\n\n----------------------------------------------------------------\n:: Description\n----------------------------------------------------------------\n Ajax search form that degrades (works without JS enabled), and that provides for either live search or click-to-submit. Results returned to the current page without reloading.\n\n----------------------------------------------------------------\n:: Parameters\n----------------------------------------------------------------\n\n &AS_showForm [1 | 0] (optional)\n Show the search form with the results. Default is 1 (true)\n \n &AS_landing [int] (optional)\n Document id you would like the search to show on. (For non-ajax search)\n \n &AS_showResults [1 | 0] (optional)\n Show the results with the snippet. (For non-ajax search)\n \n &extract [1 | 0] (optional)\n Show the search words highlighting.\n \n &ajaxSearch [1 | 0] (optional)\n Use the ajaxSearch. Default is 1 (true)\n\n &ajaxSearchType [1 | 0] (optional)\n There are two forms of the ajaxSearch.\n 0 - The form button is displayed and searching does not start until the button is pressed by the user.\n 1 - There is no form button, the search is started automatically as the user types\n\n &ajaxMax [int] (optional)\n The number of results you would like returned from the ajax search.\n \n &grabMax [int] (optional)\n The number of results per page returned for non-ajax search and for the more results page.\n \n &showMoreResults [1 | 0] (optional)\n If you want a link to show all of the results from the ajax search.\n \n &moreResultsPage [int] (optional)\n Page you want the more results link to point to. This page should contain another call to this snippet for displaying results.\n \n &addJscript [1 | 0] (Default: 1)\n If you want the prototype and the scriptaculous libraries added to the header of your pages automatically set this to 1. Set to\n 0 if you do not want them inculded automatically.\n\n\n----------------------------------------------------------------\n:: CSS \n----------------------------------------------------------------\n The following items are used to style the starting form and\n ajax result container.\n\n #ajaxSearch_form - id of the search form\n #ajaxSearch_input - id of the input box on the form\n #ajaxSearch_submit - id of the submit button\n #ajaxSearch_output - id of the div that the ajax results are returned in\n \n The following items are used to style the reults when the user does not have javascript or they have clicked the more results link\n \n #ajaxSearch_resultListContainer - id of the results container\n .ajaxSearch_paging - class for span of result pages listing\n .ajaxSearch_pagination - class for pagination paragraph\n .ajaxSearch_result - class for result container div\n .ajaxSearch_resultLink - class for result link\n .ajaxSearch_resultDescription - class for result description span\n .ajaxSearch_extract - class for content extract div (for highlighting)\n .ajaxSearch_highlight1,2,3 - classes for result highlighting. You need to\n create as many classes as terms you think a user will search for.\n .ajaxSearch_resultsIntroFailure - class for no results paragraph\n .ajaxSearch_intro - class for intro paragraph\n\n The following items are used to style the results returned by the ajax request.\n\n .AS_ajax_result - class for the result container div\n .AS_ajax_resultLink - class for the result link\n .AS_ajax_resultDescription - class for the result description span\n .AS_ajax_extract - class for the content extract div (for highlighting)\n .AS_ajax_hightlight1,2,3 - classes for result highlighting. You need to create as many classes as terms you think a user will search for.\n .AS_ajax_more - class for more search results div\n .AS_ajax_resultsIntroFailure - class for no results paragraph\n\n\n----------------------------------------------------------------\n:: Example Calls \n----------------------------------------------------------------\n[!AjaxSearch!]\n A basic default call that renders a search form with the default images and parametes\n\n[!AjaxSearch? &showMoreResults=`1` &moreResultsPage=`25`!]\n Allows a link to a full-page search to go to another page.\n \n[!AjaxSearch? &ajaxMax=`10` &extract=`0`!]\n Overrides the number of maximum results returned and removes search term highlighting.\n \n\n----------------------------------------------------------------\n:: Credits\n----------------------------------------------------------------\n Based on Flex Search Form (FSF) by jardc@honeydewdsign.com \n as modified by KyleJ (kjaebker@muddydogpaws.com).\n \n Also based on degradible live search demos at:\n http://orderedlist.com/articles/howto-animated-live-search/\n http://www.gizax.it/experiments/AHAH/degradabile/test/liveSearch.html\n \n The search highlighting was based off of the original FSF\n modification by Marc (MadeMyDay).\n------------------------------------------------------------- */\n\n// CONFIGURE\n\n // MAIN SNIPPET SETUP OPTIONS\n // --------------------------\n\n // $searchStyle [ \'relevance\' | \'partial\' ]\n // This option allows you to decide to use a faster, relevance sorted search (\'relevance\') which WILL NOT inlclude partial matches. Or use a slower, but more inclusive search (\'partial\') that will include partial matches. Results will NOT be sorted based on relevance.\n // This option contributed by Rich from Snappy Graffix Media to allow partial matching and LIKE matching of the search term. sam@snappygraffix.com\n $searchStyle = \'partial\';\n\n // $useAllWords [ true | false ]\n // If you want only documents which contain ALL words in the search string, set to true. Otherwise, the search will return all pages with ONE or more of the search words (which can be a LOT more pages).\n $useAllWords = false;\n\n // $showSearchWithResults [1 | 0]\n // If you would like to turn off the search form when showing results you can set this to false. Can also be set in template by using the snippet variable: AS_showForm like this (1=true, 0=false):\n // [[AjaxSearch? AS_showForm=0]]\n $showSearchWithResults = 1;\n\n // $resultsPage [int]\n // The default behavior is to show the results on the current page, but you may define the results page any way you like. The priority is:\n // 1- snippet variable - set in page template like this:\n // [[AjaxSearch? AS_landing=int]]\n // where int is the page id number of the page you want your results on\n // 2- querystring variable AS_form\n // 3- variable set here\n // 4- use current page\n // This is VERY handy when you want to put the search form in a discrete and/or small place on your page- like a side column, but don\'t want all your results to show up there!\n // Set to results page or leave 0 as default\n $resultsPage = 0;\n\n // $grabMax [ int ]\n // Set to the max number of records you would like on each page. Set to 0 if unlimited.\n $grabMax = (isset($grabMax))? $grabMax : 10;\n\n // $pageLinkSeparator [ string ]\n // What you want, if anything, between your page link numbers\n $pageLinkSeparator = \" | \";\n\n // $stripHTML [ true | false ]\n // Allow HTML characters in the search? Probably not.\n $stripHTML = true;\n\n // $stripSnip [ true | false ]\n // Strip out snippet calls etc from the search string?\n $stripSnip = true;\n\n // $stripSnippets [ true | false ]\n // Strip out snippet names so users will not be able to \"search\" to see what snippets are used in your content. This is a security benefit, as users will not be able to search for what pages use specific snippets.\n $stripSnippets = true;\n\n // $minChars [ int ]\n // Minimum number of characters to require for a word to be valid for searching. MySQL will typically NOT search for words with less than 4 characters (relevance mode). If you have $useAllWords = true and a three or fewer word appears in the search string, the results will always be 0. Setting this drops those words from the search in THAT CIRCUMSTANCE ONLY (relevance mode, useAllWords=true).\n $minChars = 4;\n\n // $extract [1 | 0]\n // show the search terms highlighted in a little extract (like Google)\n $extract = (isset($extract))? $extract : 1;\n \n // $highlightResult [1 | 0]\n // create links so that search terms will be highlighted when linked page clicked\n $highlightResult = (isset($highlightResult)) ? $highlightResult : 1;\n\n // $ajaxSearch [1 | 0] (as passed in snippet variable ONLY)\n // Use this to display the search results using ajax You must include the Mootools library in your template\n $ajaxSearch = (isset($ajaxSearch))? $ajaxSearch : 1;\n\n // $ajaxSearchType [1 | 0] (as passed in snippet variable ONLY)\n // Use this to display the search results using ajax\n $ajaxSearchType = (isset($ajaxSearchType))? $ajaxSearchType : 0;\n\n // $ajaxMax [int] - The maximum number of results to show for the ajaxsearch\n $ajaxMax = (isset($ajaxMax))? $ajaxMax : 6;\n\n // $showMoreResults [1 | 0]\n // Set this to 1 if you would like a link to show all of the search results\n $showMoreResults = (isset($showMoreResults))? $showMoreResults : 0;\n \n // $moreResultsPage [int]\n // The document id of the page you want the more results link to point to\n $moreResultsPage = (isset($moreResultsPage ))? $moreResultsPage : 0;\n\n // $addJscript [1 | 0]\n // Set this to 1 if you would like to include the javascript libraries in the\n // header of your pages automatically.\n $addJscript = (isset($addJscript ))? $addJscript : 1;\n \n //Location of the ajaxsearch, prototype, and scriptaculous libraries\n //These will be set in the page head if they are not included in the template\n $jsInclude = \'assets/snippets/AjaxSearch/AjaxSearch.js\';\n $jsMooTools = \'manager/media/script/mootools/mootools.js\';\n\n // establish whether to show the form or not\n $showSearchWithResults = (isset($AS_showForm))? $AS_showForm : $showSearchWithResults;\n\n // establish whether to show the results or not\n $showResults = (isset($AS_showResults))? $AS_showResults : true;\n\n/* -------------\n End configure\n -------------- */\n\n// Set Snippet Paths\n$snipPath = $modx->config[\'base_path\'] . \"assets/snippets/\";\n\ninclude_once $snipPath.\"AjaxSearch/includes/AjaxSearch.inc.php\";\ninclude $snipPath.\"AjaxSearch/includes/templates.inc.php\";\n\n#include default language file\ninclude($snipPath.\"AjaxSearch/lang/english.inc.php\");\n\n#include other language file if set.\n$as_language = isset($language) ? $language : $modx->config[\'manager_language\'];\nif($as_language!=\"english\" && $as_language != \'\') {\n if(file_exists($snipPath .\"AjaxSearch/lang/\".$as_language.\".inc.php\"))\n include $snipPath .\"AjaxSearch/lang/\".$as_language.\".inc.php\";\n}\n\n$liveSearch = $ajaxSearchType;\n\n// establish results page\nif (isset($AS_landing)) { // set in snippet\n $searchAction = \"[~\".$AS_landing.\"~]\";\n} elseif ($resultsPage > 0) { // locally set\n $searchAction = \"[~\".$resultsPage.\"~]\";\n} else { //otherwise\n $searchAction = \"[~\".$modx->documentIdentifier.\"~]\";\n}\n\n// Set newline variable\n$newline = \"\\n\";\n\n// Initialize search string\n$searchString = \'\';\n\n// CLEAN SEARCH STRING\nif ( isset($_POST[\'search\']) || isset($_GET[\'AS_search\']) || isset($_GET[\'FSF_search\'])) {\n // Prefer post to get\n if (isset($_POST[\'search\'])) {\n $searchString = $_POST[\'search\'];\n } elseif (isset($_GET[\'AS_search\'])) {\n $searchString = urldecode($_GET[\'AS_search\']);\n } else {\n // Code to make tag cloud snippet work with this search\n $searchString = urldecode($_GET[\'FSF_search\']);\n }\n\n //**********************************************************************************************************************\n $searchString = initSearchString($searchString,$stripHTML,$stripSnip,$stripSnippets,$useAllWords,$searchStyle,$minChars,$ajaxSearch);\n //**********************************************************************************************************************\n} // End cleansing search string\n\n// check querystring\n$validSearch = ($searchString != \'\')? true : false ;\n\n//check for offset\n$offset = (isset($_GET[\'AS_offset\']))? $_GET[\'AS_offset\'] : 0;\n\n// initialize output\n$SearchForm = \'\';\n$introMessage = \'\';\n$useAllWords = ($useAllWords) ? 1 : 0;\n\nif ($docgrp = $modx->getUserDocGroups()) {\n $docgrp = implode(\",\", $docgrp);\n}\n\nif ($ajaxSearch) {\n $searchFormId = \'id=\"ajaxSearch_form\" \';\n //Adding the javascript libraries to the header\n if ($addJscript) {\n $modx->regClientStartupScript($jsMooTools);\n }\n \n $modx->regClientStartupScript($jsInclude);\n \n $jsVars = <<\n \n \nEOD;\n\n $modx->regClientStartupScript($jsVars);\n} else {\n $searchFormId = \'\';\n}\n\n// establish form\nif (($validSearch && ($showSearchWithResults)) || $showSearchWithResults){\n $formPlaceholders = array(\n \'[+as.formId+]\' => $searchFormId,\n \'[+as.formAction+]\' => $searchAction,\n \'[+as.inputValue+]\' => ($searchString == \'\' && $_lang[\'as_boxText\'] != \'\') ? $_lang[\'as_boxText\'] : $searchString,\n \'[+as.inputOptions+]\' => ($_lang[\'as_boxText\']) ? \' onfocus=\"this.value=(this.value==\\\'\'.$_lang[\'as_boxText\'].\'\\\')? \\\'\\\' : this.value ;\"\' : \'\',\n \'[+as.submitText+]\' => $_lang[\'as_searchButtonText\'],\n );\n \n $finalSearchForm = str_replace( array_keys( $formPlaceholders ), array_values( $formPlaceholders ), $asTemplates[\'form\'] );\n} else {\n $finalSearchForm = \'\';\n}\n\n$finalResults = \'\';\nif ($showResults) {\n if($validSearch) {\n //**********************************************************************************************************************\n $rs = doSearch($searchString,$searchStyle,$useAllWords,$ajaxSearch,$docgrp);\n //**********************************************************************************************************************\n $limit = $modx->recordCount($rs);\n $search = explode(\" \", $searchString);\n if($limit>0) {\n // pagination\n if ($grabMax > 0){\n $numResultPages = ceil($limit/$grabMax);\n $resultPagingText = ($limit>$grabMax) ? $_lang[\'as_paginationTextMultiplePages\'] : $_lang[\'as_paginationTextSinglePage\'] ;\n $resultPageLinkNumber = 1;\n $resultPageLinks = \'\';\n for ( $nrp = 0; $nrp < $limit && $limit > $grabMax; $nrp += $grabMax ){\n if($offset == ($resultPageLinkNumber-1)*$grabMax){\n $resultPageUrl = $resultPageLinkNumber;\n $usePageTemplate = \'pagingLinksCurrent\';\n } else {\n $resultPageUrl = $modx->makeUrl($modx->documentIdentifier, \'\', \'AS_offset=\' . $nrp . \'&AS_search=\' . urlencode($searchString));\n $usePageTemplate = \'pagingLinks\';\n }\n \n $useSeperator = ($nrp + $grabMax < $limit) ? $pageLinkSeparator : \'\' ;\n \n $pageLinkPlaceholders = array(\n \'[+as.pagingLink+]\' => $resultPageUrl,\n \'[+as.pagingText+]\' => $resultPageLinkNumber,\n \'[+as.pagingSeperator+]\' => $useSeperator,\n );\n \n $resultPageLinks .= str_replace(array_keys($pageLinkPlaceholders),array_values($pageLinkPlaceholders),$asTemplates[$usePageTemplate]);\n $resultPageLinkNumber++;\n }\n \n $pageLinkPlaceholders = array(\n \'[+as.pagingText+]\' => $resultPagingText,\n \'[+as.pagingLinks+]\' => $resultPageLinks,\n );\n \n $resultPageLinksFinal = str_replace(array_keys($pageLinkPlaceholders),array_values($pageLinkPlaceholders),$asTemplates[\'pagingLinksOuter\']);\n \n $resultsFoundText = ($limit > 1)? $_lang[\'as_resultsFoundTextMultiple\'] : $_lang[\'as_resultsFoundTextSingle\'] ;\n if ($extract) {\n $hits=1;\n $searchwords=\'\';\n foreach ($search as $words) {\n $searchwords .= \'\'.$words.\' \';\n $hits++;\n }\n // Remove trailing \' \'\n $searchwords = substr($searchwords, 0, strlen($searchwords) -6);\n $resultsFoundText = sprintf($resultsFoundText,$limit,$searchwords);\n } else {\n $resultsFoundText = sprintf($resultsFoundText,$limit,$searchString);\n }\n \n $resultInfoPlaceholders = array(\n \'[+as.resultInfoText+]\' => $resultsFoundText,\n );\n \n $resultInfo = str_replace(array_keys($resultInfoPlaceholders),array_values($resultInfoPlaceholders),$asTemplates[\'resultsInfo\']); \n } // end if grabMax\n\n // search results\n $useLimit = ($grabMax > 0)? $offset+$grabMax : $limit;\n $allResults = \'\';\n for ($y = $offset; ($y < $useLimit) && ($y<$limit); $y++) {\n $moveToRow = mysql_data_seek($rs,$y);\n $SearchFormsrc=$modx->fetchRow($rs);\n if ($extract) {\n $highlightClass = \'ajaxSearch_highlight\';\n $text=$SearchFormsrc[\'content\'];\n $count=1;\n $summary=\'\';\n $toAdd = PrepareSearchContent( $text, $length=200, $search[0] );\n strip_tags( $text );\n foreach ($search as $searchTerm) {\n if (preg_match(\'/\' . preg_quote($searchTerm) . \'/i\', $text)) {\n if ($count > 1) { // The first summary was already extracted above\n $toAdd = SmartSubstr( $text , $length=200, $searchTerm );\n }\n $summary .= preg_replace( \'/\' . preg_quote( $searchTerm, \'/\' ) . \'/i\', \'\\0\', $toAdd ) . \' \';\n }\n $highlightClass .= \' ajaxSearch_highlight\'.$count;\n $count++;\n }\n $text=$summary;\n }\n \n if ($highlightResult) {\n if (!$extract) {\n $highlightClass = \'ajaxSearch_highlight\';\n $count=1;\n foreach ($search as $searchTerm) {\n $highlightClass .= \' ajaxSearch_highlight\'.$count;\n $count++;\n }\n }\n \n $searchFormLink = $modx->makeUrl($SearchFormsrc[\'id\'],\'\',\'searched=\'.urlencode($searchString).\'&highlight=\'.urlencode($highlightClass));\n } else {\n $searchFormLink = $modx->makeUrl($SearchFormsrc[\'id\']);\n }\n \n if ($extract) {\n $extractPlaceholders = array(\n \'[+as.extractClass+]\' => \'ajaxSearch_extract\',\n \'[+as.extract+]\' => $text,\n );\n $resultExtract = str_replace(array_keys($extractPlaceholders),array_values($extractPlaceholders),$asTemplates[\'extractWrapper\']);\n } else {\n $resultExtract = \'\';\n }\n \n if ($SearchFormsrc[\'description\'] != \'\') {\n $descPlaceholders = array(\n \'[+as.descriptionClass+]\' => \'ajaxSearch_resultDescription\',\n \'[+as.description+]\' => $SearchFormsrc[\'description\'],\n );\n $resultDesc = str_replace(array_keys($descPlaceholders),array_values($descPlaceholders),$asTemplates[\'descriptionWrapper\']);\n } else {\n $resultDesc = \'\';\n }\n \n $resultPlaceholders = array(\n \'[+as.resultClass+]\' => \'ajaxSearch_result\',\n \'[+as.resultLinkClass+]\' => \'ajaxSearch_resultLink\',\n \'[+as.resultLink+]\' => $searchFormLink,\n \'[+as.longtitle+]\' => $SearchFormsrc[\'longtitle\'],\n \'[+as.pagetitle+]\' => $SearchFormsrc[\'pagetitle\'],\n \'[+as.description+]\' => $resultDesc,\n \'[+as.extract+]\' => $resultExtract,\n );\n \n $allResults .= str_replace(array_keys($resultPlaceholders),array_values($resultPlaceholders),$asTemplates[\'result\']);\n }\n \n $finalPlaceholders = array(\n \'[+as.results+]\' => $allResults,\n \'[+as.paging+]\' => $resultPageLinksFinal,\n \'[+as.resultInfo+]\' => $resultInfo,\n );\n \n $finalResults .= str_replace(array_keys($finalPlaceholders),array_values($finalPlaceholders),$asTemplates[\'no_ajax_outer\']);\n } else {\n $noResultsPlaceholder = array(\n \'[+as.noResultClass+]\' => \'ajaxSearch_resultsIntroFailure\',\n \'[+as.noResultText+]\' => $_lang[\'as_resultsIntroFailure\'],\n );\n $finalResults .= str_replace(array_keys($noResultsPlaceholder),array_values($noResultsPlaceholder),$asTemplates[\'noResults\']);\n } // end if records found\n } else if (!$validSearch && isset($_POST[\'sub\'])) {\n // message to show if search was performed but for something invalid\n $noResultsPlaceholder = array(\n \'[+as.noResultClass+]\' => \'ajaxSearch_resultsIntroFailure\',\n \'[+as.noResultText+]\' => $_lang[\'as_resultsIntroFailure\'],\n );\n $finalResults .= str_replace(array_keys($noResultsPlaceholder),array_values($noResultsPlaceholder),$asTemplates[\'noResults\']);\n } else { // end if validSearch\n $introMessage = str_replace(\'[+as.introMessage+]\',$_lang[\'as_introMessage\'],$asTemplates[\'introMessage\']);\n } // end if not validSearch\n} // end if showResults\n\nif ($ajaxSearch) {\n $finalResults = \'
    \';\n $introMessage = \'\';\n}\n\n$finalPlaceholders = array(\n \'[+as.form+]\' => $finalSearchForm,\n \'[+as.intro+]\' => $introMessage,\n \'[+as.results+]\' => $finalResults,\n);\n\n$SearchForm .= str_replace(array_keys($finalPlaceholders),array_values($finalPlaceholders),$asTemplates[\'layout\']);\n\nreturn $SearchForm;',0,'',''),(2,'Breadcrumbs','0.9d Configurable breadcrumb page trail navigation.',0,4,0,'// --------------------\n// Snippet: Breadcrumbs\n// --------------------\n// Version: 0.9d\n// Date: 2006.06.12\n// jaredc@honeydewdesign.com\n// Honorable mentions:\n// - Bill Wilson\n// - wendy@djamoer.net\n// - grad\n//\n// This snippet was designed to show the path through the various\n// levels of site structure back to the root. It is NOT necessarily\n// the path the user took to arrive at a given page.\n\n// Configuration Settings\n\n // $maxCrumbs [number]\n // Max number of elements to have in a path.\n // 100 is an arbitrary high number.\n // If you make it smaller, like say 2, but you\n // you are 5 levels deep, it will appear as:\n // Home > ... > Level 4 > Level 5\n // It should be noted that \"Home\" and the current\n // page do not count. Each of these are configured\n // separately.\n (isset($maxCrumbs)) ? $maxCrumbs : $maxCrumbs = 100;\n\n // $pathThruUnPub [ 1 | 0 ]\n // When your path includes an unpublished folder, setting this to \n // 1 will show all documents in path EXCEPT the unpublished.\n // Example path (unpublished in caps)\n // home > news > CURRENT > SPORTS > skiiing > article\n // $pathThruUnPub = true would give you this:\n // home > news > skiiing > article\n // $pathThruUnPub = false would give you this:\n // home > skiiing > article (assuming you have home crumb turned on)\n (isset($pathThruUnPub)) ? $pathThruUnPub : $pathThruUnPub = 1;\n \n // $respectHidemenu [ 1 | 0 ]\n // Setting this to 1 will hide items in the breadcrumb list that\n // are set to be hidden in menus.\n (isset($respectHidemenu)) ? $respectHidemenu : $respectHidemenu = 1;\n\n // $showHomeCrumb [ 1 | 0 ]\n // Would you like your crumb string to start\n // with a link to home? Some would not because\n // a home link is usually found in the site logo\n // or elsewhere in the navigation scheme.\n (isset($showHomeCrumb)) ? $showHomeCrumb : $showHomeCrumb = 1;\n\n // $showCrumbsAtHome [ 1 | 0 ]\n // You can use this to turn off the breadcrumbs on the\n // home page with 1.\n // grad: actually \'1\' shows and \'0\' hides crumbs at homepage\n (isset($showCrumbsAtHome)) ? $showCrumbsAtHome : $showCrumbsAtHome = 0;\n\n // $showCurrentCrumb [ 1 | 0 ]\n // Show the current page in path with 1 or not with 0.\n (isset($showCurrentCrumb)) ? $showCurrentCrumb : $showCurrentCrumb = 1;\n\n // $currentAsLink [ 1 | 0]\n // If you want the current page crumb to be a\n // link (to itself) then set to 1.\n (isset($currentAsLink)) ? $currentAsLink : $currentAsLink = 0;\n\n // $crumbSeparator [string]\n // Define what you want between the crumbs\n (isset($crumbSeparator)) ? $crumbSeparator : $crumbSeparator = \"»\";\n\n // $homeCrumbTitle [string]\n // Just in case you want to have a home link,\n // but want to call it something else\n (isset($homeCrumbTitle)) ? $homeCrumbTitle : $homeCrumbTitle = \'Home\';\n\n // $homeCrumbDescription [string]\n // In case you want to have a custom description of the home link\n // Defaults to title of home link\n (isset($homeCrumbDescription)) ? $homeCrumbDescription : $homeCrumbDescription = $homeCrumbTitle; \n\n // $titleField [string]\n // To change default page field to be used as\n // a breadcrumb title, default is pagetitle\n (isset($titleField)) ? $titleField : $titleField = \'pagetitle\';\n\n // $descField [string]\n // To change default page field to be used as\n // a breadcrumb description, default is description (GA: falls back to pagetitle if description is empty)\n (isset($descField)) ? $descField : $descField = \'description\';\n\n // Included classes\n // .B_crumbBox Span that surrounds all crumb output\n // .B_hideCrumb Span surrounding the \"...\" if there are more crumbs than will be shown\n // .B_currentCrumb Span or A tag surrounding the current crumb\n // .B_firstCrumb Span that always surrounds the first crumb, whether it is \"home\" or not\n // .B_lastCrumb Span surrounding last crumb, whether it is the current page or not\n // .B_crumb Class given to each A tag surrounding the intermediate crumbs (not home, or hide)\n // .B_homeCrumb Class given to the home crumb\n \n\n// ***********************************\n// END CONFIG SETTINGS\n// THE REST SHOULD TAKE CARE OF ITSELF\n// ***********************************\n\n// Check for home page\nif ($showCrumbsAtHome || (!$showCrumbsAtHome && ($modx->documentIdentifier != $modx->config[\'site_start\'])) ){\n\n //initialize crumb array\n $ptarr = array();\n // get current page parent info\n $docInfo = $modx->getDocument($modx->documentIdentifier,\'id,pagetitle,menutitle,published,deleted,parent,hidemenu,description,longtitle,introtext\');\n $pid = $docInfo[\'parent\'];\n // show current page, as link or not\n if ($showCurrentCrumb){\n $titleToShow = ($docInfo[$titleField])? $docInfo[$titleField] : $docInfo[\'pagetitle\'] ;\n if ($currentAsLink && (!$respectHidemenu || ($respectHidemenu && $docInfo[\'hidemenu\'] != 1 ))){\n $descriptionToUse = ($docInfo[$descField]) ? $docInfo[$descField] : $docInfo[\'pagetitle\'] ;\n $ptarr[] = \'documentIdentifier.\'~]\" title=\"\'.$descriptionToUse.\'\">\'.$titleToShow.\'\';\n } else {\n $ptarr[] = \'\'.$docInfo[\'pagetitle\'].\'\';\n }\n }\n // assemble intermediate crumbs\n $crumbCount = 0;\n //$activeOnly = ($pathThruUnPub)? 0 : 1;\n //while (($parent=$modx->getPageInfo($pid,$activeOnly,\"id,pagetitle,menutitle,published,deleted,parent,hidemenu,description,longtitle,introtext\")) && ($crumbCount < $maxCrumbs)) {\n while (($parent=$modx->getPageInfo($pid,!$pathThruUnPub,\"id,pagetitle,menutitle,published,deleted,parent,hidemenu,description,longtitle,introtext\")) && ($crumbCount < $maxCrumbs)) {\n if ($parent[\'published\'] && !$parent[\'deleted\'] && $parent[\'id\'] != $modx->config[\'site_start\']){\n if (!$respectHidemenu || ($respectHidemenu && $parent[\'hidemenu\'] != 1 )){\n $titleToShow = ($parent[$titleField])? $parent[$titleField] : $parent[\'pagetitle\'] ;\n $descriptionToUse = ($parent[$descField]) ? $parent[$descField] : $parent[\'pagetitle\'] ;\n $ptarr[] = \'\'.$titleToShow.\'\';\n }\n } // end if \n $pid = $parent[\'parent\'];\n $crumbCount++;\n } // end while\n\n // insert \'...\' if maximum number of crumbs exceded\n if ($parent != 0){\n $ptarr[] = \'...\';\n }\n\n // add home link if desired\n if ($showHomeCrumb && ($modx->documentIdentifier != $modx->config[\'site_start\'])){\n $ptarr[] = \'config[\'site_start\'].\'~]\" title=\"\'.$homeCrumbDescription.\'\">\'.$homeCrumbTitle.\'\';\n }\n\n $ptarr = array_reverse($ptarr);\n $ptarr[0] = \'\'.$ptarr[0].\'\';\n $ptarr[count($ptarr)-1] = \'\'.$ptarr[count($ptarr)-1].\'\';\n return \'\'. join($ptarr, \" $crumbSeparator \").\'\';\n\n}',0,'',''),(3,'Ditto','2.0.2 Summarizes and lists pages to create blogs, catalogs, PR archives, bio listings and more.',0,3,0,'/*\n * Title: Ditto Snippet\n * \n * Description:\n * Aggregates documents to create blogs, article/news\n * collections, and more,with full support for templating.\n * \n * Author: \n * Mark Kaplan for MODx CMF\n * \n * Version: \n * 2.0.2\n*/\n\n//---Core Settings---------------------------------------------------- //\n\n$ditto_version = \"2.0.2\";\n // Ditto version being executed\n\n$ditto_base = isset($ditto_base) ? $modx->config[\'base_path\'].$ditto_base : $modx->config[\'base_path\'].\"assets/snippets/ditto/\";\n/*\n Param: ditto_base\n \n Purpose:\n Location of Ditto files\n\n Options:\n Any valid folder location containing the Ditto source code with a trailing slash\n\n Default:\n [(base_path)]assets/snippets/ditto/\n*/\n$dittoID = (!isset($id)) ? \"\" : $id.\"_\";\n$GLOBALS[\"dittoID\"] = $dittoID;\n/*\n Param: id\n\n Purpose:\n Unique ID for this Ditto instance for connection with other scripts (like Reflect) and unique URL parameters\n\n Options:\n Any combination of characters a-z, underscores, and numbers 0-9\n \n Note:\n This is case sensitive\n\n Default:\n \"\" - blank\n*/ \n$language = (isset($language))? $language : \"english\";\n/*\n Param: language\n\n Purpose:\n language for defaults, debug, and error messages\n\n Options:\n Any language name with a corresponding file in the &ditto_base/lang folder\n\n Default:\n \"english\"\n*/\n$format = (isset($format)) ? strtolower($format) : \"html\" ;\n/*\n Param: format\n\n Purpose:\n Output format to use\n\n Options:\n - \"html\"\n - \"json\"\n - \"xml\"\n - \"atom\"\n - \"rss\"\n\n Default:\n \"html\"\n*/\n$config = (isset($config)) ? $config : \"default\";\n/*\n Param: config\n\n Purpose:\n Load a custom configuration\n\n Options:\n \"default\" - default blank config file\n CONFIG_NAME - Other configs installed in the configs folder or in any folder within the MODx base path via @FILE\n\n Default:\n \"default\"\n \n Related:\n - \n*/\n$debug = isset($debug)? $debug : 0;\n/*\n Param: debug\n\n Purpose:\n Output debugging information\n\n Options:\n 0 - off\n 1 - on\n \n Default:\n 0 - off\n \n Related:\n - \n*/\n$phx = (isset($phx))? $phx : 1;\n/*\n Param: phx\n\n Purpose:\n Use PHx formatting\n\n Options:\n 0 - off\n 1 - on\n \n Default:\n 1 - on\n*/ \n$extenders = isset($extenders) ? explode(\",\",$extenders) : array();\n/*\n Param: extenders\n\n Purpose:\n Load an extender which adds functionality to Ditto\n\n Options:\n Any extender in the extenders folder or in any folder within the MODx base path via @FILE\n\n Default:\n [NULL]\n\n Related:\n - \n*/\n // Variable: extenders\n // Array that can be added to by configs or formats to load that extender\n \n$placeholders = array();\n // Variable: placeholders\n // Initialize custom placeholders array for configs or extenders to add to\n\n$filters = array(\"custom\"=>array(),\"parsed\"=>array());\n // Variable: filters\n // Holds both the custom filters array for configs or extenders to add to \n // and the parsed filters array. To add to this array, use the following format\n // (code)\n // $filters[\"parsed\"][] = array(\"name\" => array(\"source\"=>$source,\"value\"=>$value,\"mode\"=>$mode));\n // $filters[\"custom\"][] = array(\"source\",\"callback_function\");\n \n//---Includes-------------------------------------------------------- //\n\n$files = array (\n \"language\" => $ditto_base.\"lang/$language.inc.php\",\n \"main_class\" => $ditto_base.\"classes/ditto.class.inc.php\",\n \"template_class\" => $ditto_base.\"classes/template.class.inc.php\",\n \"filter_class\" => $ditto_base.\"classes/filter.class.inc.php\",\n \"format\" => $ditto_base.\"formats/$format.format.inc.php\",\n \"config\" => (substr($config, 0, 5) != \"@FILE\") ? $ditto_base.\"configs/$config.config.php\" : $modx->config[\'base_path\'].trim(substr($config, 5))\n);\nif ($phx == 1) {\n $files[\"prePHx_class\"] = $ditto_base.\"classes/phx.pre.class.inc.php\";\n}\nif (isset($randomize)) {\n $files[\"randomize_class\"] = $ditto_base.\"classes/random.class.inc.php\";\n}\nif ($debug == 1) {\n $files[\"modx_debug_class\"] = $ditto_base.\"debug/modxDebugConsole.class.php\";\n $files[\"debug_class\"] = $ditto_base.\"classes/debug.class.inc.php\";\n $files[\"debug_templates\"] = $ditto_base.\"debug/debug.templates.php\";\n}\n\nforeach ($files as $filename => $filevalue) {\n if (file_exists($filevalue) && strpos($filename,\"class\")) {\n include_once($filevalue);\n } else if (file_exists($filevalue)) {\n include($filevalue);\n } else if ($filename == \"language\") {\n $modx->logEvent(1, 3, \"Language file does not exist Please check: \" . $filevalue, \"Ditto \" . $ditto_version);\n return \"Language file does not exist Please check: \" . $filevalue;\n } else {\n $modx->logEvent(1, 3, $filevalue . \" \" . $_lang[\'file_does_not_exist\'], \"Ditto \" . $ditto_version);\n return $filevalue . \" \" . $_lang[\'file_does_not_exist\'];\n }\n}\n\n//---Initiate Class-------------------------------------------------- //\nif (class_exists(\'ditto\')) {\n $ditto = new ditto($dittoID,$format,$_lang,$dbg_templates);\n // create a new Ditto instance in the specified format and language with the requested debug level\n} else {\n $modx->logEvent(1,3,$_lang[\'invalid_class\'],\"Ditto \".$ditto_version);\n return $_lang[\'invalid_class\'];\n}\n\n//---Initiate Extenders---------------------------------------------- //\nif (isset($tagData)) {\n $extenders[] = \"tagging\";\n}\nif(count($extenders) > 0) {\n $extenders = array_unique($extenders);\n foreach ($extenders as $extender) {\n if(substr($extender, 0, 5) != \"@FILE\") {\n $extender_path = $ditto_base.\"extenders/\".$extender.\".extender.inc.php\"; \n } else {\n $extender_path = $modx->config[\'base_path\'].trim(substr($extender, 5));\n }\n \n if (file_exists($extender_path)){\n include($extender_path);\n } else {\n $modx->logEvent(1, 3, $extender . \" \" . $_lang[\'extender_does_not_exist\'], \"Ditto \".$ditto_version);\n return $extender . \" \" . $_lang[\'extender_does_not_exist\'];\n } \n } \n}\n\n//---Parameters------------------------------------------------------- /*\n\nif (isset($startID)) {$parents = $startID;}\nif (isset($summarize)) {$display = $summarize;}\nif (isset($limit)) {$queryLimit = $limit;}\n // Allow backwards compatibility\n\n$idType = isset($documents) ? \"documents\" : \"parents\";\n // Variable: idType\n // type of IDs provided; can be either parents or documents\n\n$parents = isset($parents) ? $ditto->cleanIDs($parents) : $modx->documentIdentifier;\n\n/*\n Param: parents\n\n Purpose:\n IDs of containers for Ditto to retrieve their children to &depth depth\n\n Options:\n Any valid MODx document marked as a container\n\n Default:\n Current MODx Document\n\n Related:\n - \n - \n*/\n$documents = isset($documents) ? $ditto->cleanIDs($documents) : false;\n/*\n Param: documents\n\n Purpose:\n IDs of documents for Ditto to retrieve\n\n Options:\n Any valid MODx document marked as a container\n\n Default:\n None\n\n Related:\n - \n*/\n\n$IDs = ($idType == \"parents\") ? $parents : $documents;\n // Variable: IDs\n // Internal variable which holds the set of IDs for Ditto to fetch\n\n$depth = isset($depth) ? $depth : 1;\n/*\n Param: depth\n\n Purpose:\n Number of levels deep to retrieve documents\n\n Options:\n Any number greater than or equal to 1\n\n Default:\n 1\n\n Related:\n - \n*/\n$paginate = isset($paginate)? $paginate : 0;\n/*\n Param: paginate\n\n Purpose:\n Paginate the results set into pages of &show lenght\n\n Options:\n 0 - off\n 1 - on\n \n Default:\n 0 - off\n \n Related:\n - \n - \n - \n*/\n$dateSource = isset($dateSource) ? $dateSource : \"createdon\";\n/*\n Param: dateSource\n\n Purpose:\n Source of the [+date+] placeholder\n\n Options:\n # - Any UNIX timestamp from MODx fields or TVs such as createdon, pub_date, or editedon\n \n Default:\n \"createdon\"\n \n Related:\n - \n*/\n$dateFormat = isset($dateFormat)? $dateFormat : $_lang[\"dateFormat\"];\n/*\n Param: dateFormat\n\n Purpose:\n Format the [+date+] placeholder in human readable form\n\n Options:\n Any PHP valid strftime option\n\n Default:\n [LANG]\n \n Related:\n - \n*/\n$display = isset($display) ? $display : 3;\n/*\n Param: display\n\n Purpose:\n Number of documents to display in the results\n\n Options:\n # - Any number\n \"all\" - All documents found\n\n Default:\n 3\n \n Related:\n - \n - \n*/\n$total = isset($total) ? $total : \"all\";\n/*\n Param: total\n\n Purpose:\n Number of documents to retrieve\n \n Options:\n # - Any number\n \"all\" - All documents found\n\n Default:\n \"all\" - All documents found\n \n Related:\n - \n - \n*/\n$showPublishedOnly = isset($showPublishedOnly) ? $showPublishedOnly : 1;\n/*\n Param: showPublishedOnly\n\n Purpose:\n Show only published documents\n\n Options:\n 0 - show only unpublished documents\n 1 - show only published documents\n \n Default:\n 1 - show only published documents\n \n Related:\n - \n - \n - \n - \n \n Todo:\n - Allow when set to 0 show both published and unpublished documents\n*/\n\n$showInMenuOnly = isset($showInMenuOnly) ? $showInMenuOnly : 0;\n/*\n Param: showInMenuOnly\n\n Purpose:\n Show only documents visible in the menu\n\n Options:\n 0 - show all documents\n 1 - show only documents with the show in menu flag checked\n \n Default:\n 0 - show all documents\n \n Related:\n - \n - \n - \n*/\n\n$hideFolders = isset($hideFolders)? $hideFolders : 0;\n/*\n Param: hideFolders\n\n Purpose:\n Don\'t show folders in the returned results\n\n Options:\n 0 - keep folders\n 1 - remove folders\n \n Default:\n 0 - keep folders\n \n Related:\n - \n - \n - \n*/\n$seeThruUnpub = (isset($seeThruUnpub))? $seeThruUnpub : 1 ;\n/*\n Param: seeThruUnpub\n\n Purpose:\n See through unpublished folders to retrive their children\n Used when depth is greater than 1\n\n Options:\n 0 - off\n 1 - on\n \n Default:\n 0 - off\n \n Related:\n - \n - \n - \n*/\n$queryLimit = (isset($queryLimit))? $queryLimit : 0;\n/*\n Param: queryLimit\n\n Purpose:\n Number of documents to retrieve from the database, same as MySQL LIMIT\n\n Options:\n # - Any number\n 0 - automatic\n\n Default:\n 0 - automatic\n \n Related:\n - \n*/\n$where = (isset($where))? $where : \"\";\n/*\n Param: where\n\n Purpose:\n Custom MySQL WHERE statement\n\n Options:\n A valid MySQL WHERE statement using only document object items (no TVs)\n\n Default:\n [NULL]\n \n Related:\n - \n*/\n$noResults = isset($noResults)? $ditto->getParam($noResults,\"no_documents\") : $_lang[\'no_documents\'];\n/*\n Param: noResults\n\n Purpose:\n Text or chunk to display when there are no results\n\n Options:\n Any valid chunk name or text\n\n Default:\n [LANG]\n*/\n$removeChunk = isset($removeChunk) ? explode(\",\",$removeChunk) : false;\n/*\n Param: removeChunk\n\n Purpose:\n Name of chunks to be stripped from content separated by commas\n - Commonly used to remove comments\n\n Options:\n Any valid chunkname that appears in the output\n\n Default:\n [NULL]\n*/\n$hiddenFields = isset($hiddenFields) ? explode(\",\",$hiddenFields) : false;\n/*\n Param: hiddenFields\n\n Purpose:\n Allow Ditto to retrieve fields its template parser cannot handle such as nested placeholders and [*fields*]\n\n Options:\n Any valid MODx fieldnames or TVs comma separated\n\n Default:\n [NULL]\n*/\n$sortDir = isset($sortDir) ? strtoupper($sortDir) : \'DESC\';\n/*\n Param: sortDir\n\n Purpose:\n Direction to sort documents\n\n Options:\n ASC - ascending\n DESC - descending\n\n Default:\n \"DESC\"\n \n Related:\n - \n*/\n$sortBy = isset($sortBy) ? $ditto->parseSort($sortBy, $randomize) : \"createdon\";\n/*\n Param: sortBy\n\n Purpose:\n Field to sort documents by\n\n Options:\n Any document object field or TV\n\n Default:\n \"createdon\"\n \n Related:\n - \n*/\n$offset = isset($start) ? $start : 0;\n$start = (isset($_GET[$dittoID.\'start\'])) ? intval($_GET[$dittoID.\'start\']) : 0;\n/*\n Param: start\n\n Purpose:\n Number of documents to skip in the results\n \n Options:\n Any number\n\n Default:\n 0\n*/\n$globalFilterDelimiter = isset($globalFilterDelimiter) ? $globalFilterDelimiter : \"|\";\n/*\n Param: globalFilterDelimiter\n\n Purpose:\n Filter delimiter used to separate filters in the filter string\n \n Options:\n Any character not used in the filters\n\n Default:\n \"|\"\n \n Related:\n - \n - \n - \n*/\n \n$localFilterDelimiter = isset($localFilterDelimiter) ? $localFilterDelimiter : \",\";\n/*\n Param: localFilterDelimiter\n\n Purpose:\n Delimiter used to separate individual parameters within each filter string\n \n Options:\n Any character not used in the filter itself\n\n Default:\n \",\"\n \n Related:\n - \n - \n - \n*/\n$filters[\"custom\"] = isset($cFilters) ? array_merge($filters[\"custom\"],$cFilters) : $filters[\"custom\"];\n$filters[\"parsed\"] = isset($parsedFilters) ? array_merge($filters[\"parsed\"],$parsedFilters) : $filters[\"parsed\"];\n // handle 2.0.0 compatibility\n$filter = (isset($filter) || ($filters[\"custom\"] != false) || ($filters[\"parsed\"] != false)) ? $ditto->parseFilters($filter,$filters[\"custom\"],$filters[\"parsed\"],$globalFilterDelimiter,$localFilterDelimiter) : false;\n/*\n Param: filter\n\n Purpose:\n Only show items meeting a criteria\n Use in the format field,criteria,mode with the comma being the local delimiter\n\n *Mode* *Meaning*\n \n 1 - !=\n 2 - ==\n 3 - <\n 4 - >\n 5 - <=\n 6 - >=\n 7 - Text not in field value\n 8 - Text in field value\n \n @EVAL:\n @EVAL in filters works the same as it does in MODx exect it can only be used \n with basic filtering, not custom filtering (tagging, etc). Make sure that\n you return the value you wish Ditto to filter by and that the code is valid PHP.\n\n Default:\n [NULL]\n \n Related:\n - \n - \n - \n*/\n$keywords = (isset($keywords))? $keywords : 0;\n/* \n Param: keywords\n \n Purpose: \n Enable fetching of associated keywords for each document\n Can be used as [+keywords+] or as a tagData source\n \n Options:\n 0 - off\n 1 - on\n \n Default:\n 0 - off\n*/\n\n$randomize = (isset($randomize))? $randomize : 0;\n/* \n Param: randomize\n \n Purpose: \n Randomize the order of the output\n \n Options:\n 0 - off\n 1 - on\n Any MODx field or TV for weighted random\n \n Default:\n 0 - off\n*/\n$save = (isset($save))? $save : 0;\n/*\n Param: save\n\n Purpose:\n Saves the ditto object and results set to placeholders\n for use by other snippets\n\n Options:\n 0 - off; returns output\n 1 - remaining; returns output\n 2 - all;\n 3 - all; returns ph only\n\n Default:\n 0 - off; returns output\n*/\n$templates = array(\n \"default\" => \"@CODE\".$_lang[\'default_template\'],\n \"base\" => $tpl,\n \"alt\" => $tplAlt,\n \"first\" => $tplFirst,\n \"last\" => $tplLast,\n \"current\" => $tplCurrentDocument\n);\n/*\n Param: tpl\n\n Purpose:\n User defined chunk to format the documents \n\n Options:\n - Any valid chunk name\n - Code via @CODE\n - File via @FILE\n\n Default:\n [LANG]\n*/\n/*\n Param: tplAlt\n\n Purpose:\n User defined chunk to format every other document\n\n Options:\n - Any valid chunk name\n - Code via @CODE\n - File via @FILE\n\n Default:\n &tpl\n*/\n/*\n Param: tplFirst\n\n Purpose:\n User defined chunk to format the first document \n\n Options:\n - Any valid chunk name\n - Code via @CODE\n - File via @FILE\n\n Default:\n &tpl\n*/\n/*\n Param: tplLast\n\n Purpose:\n User defined chunk to format the last document \n\n Options:\n - Any valid chunk name\n - Code via @CODE\n - File via @FILE\n\n Default:\n &tpl\n*/\n/*\n Param: tplCurrentDocument\n\n Purpose:\n User defined chunk to format the current document\n\n Options:\n - Any valid chunk name\n - Code via @CODE\n - File via @FILE\n\n Default:\n &tpl\n*/\n\n//-------------------------------------------------------------------- */\n \n$templates = $ditto->template->process($templates);\n // parse the templates for TV\'s and store them for later use\n\n$ditto->setDisplayFields($ditto->template->fields,$hiddenFields);\n // parse hidden fields\n \n$ditto->parseFields($placeholders,$seeThruUnpub,$dateSource,$randomize);\n // parse the fields into the field array\n \n$documentIDs = $ditto->determineIDs($IDs, $idType, $ditto->fields[\"backend\"][\"tv\"], $sortBy, $sortDir, $depth, $showPublishedOnly, $seeThruUnpub, $hideFolders, $showInMenuOnly, $where, $keywords, $queryLimit, $display, $filter,$paginate, $randomize);\n // retrieves a list of document IDs that meet the criteria and populates the $resources array with them\n$count = count($documentIDs);\n // count the number of documents to be retrieved\n$count = $count-$offset;\n // handle the offset\nif ($count > 0) {\n // if documents are returned continue with execution\n \n $total = ($total == \"all\") ? $count : min($total,$count);\n // set total equal to count if all documents are to be included\n \n $display = ($display == \"all\") ? min($count,$total) : min($display,$total);\n // allow show to use all option\n\n $stop = ($save != \"1\") ? min($total-$start,$display) : min($count,$total);\n // set initial stop count\n\n if($paginate == 1) {\n $paginateAlwaysShowLinks = isset($paginateAlwaysShowLinks)? $paginateAlwaysShowLinks : 0;\n /*\n Param: paginateAlwaysShowLinks\n\n Purpose:\n Determine whether or not to always show previous next links\n\n Options:\n 0 - off\n 1 - on\n\n Default:\n 0 - off\n \n Related:\n - \n - \n */\n $paginateSplitterCharacter = isset($paginateSplitterCharacter)? $paginateSplitterCharacter : $_lang[\'button_splitter\'];\n /*\n Param: paginateSplitterCharacter\n\n Purpose:\n Splitter to use if always show is disabled\n\n Options:\n Any valid character\n\n Default:\n [LANG]\n \n Related:\n - \n - \n */\n $tplPaginatePrevious = isset($tplPaginatePrevious)? $ditto->template->fetch($tplPaginatePrevious) : $_lang[\'prev\'];\n /*\n Param: tplPaginatePrevious\n\n Purpose:\n Template for the inside of the previous link\n\n Options:\n - Any valid chunk name\n - Code via @CODE\n - File via @FILE\n\n Default:\n [LANG]\n \n Related:\n - \n - \n */\n $tplPaginateNext = isset($tplPaginateNext)? $ditto->template->fetch($tplPaginateNext) : $_lang[\'next\'];\n /*\n Param: tplPaginateNext\n\n Purpose:\n Template for the inside of the next link\n\n Options:\n - Any valid chunk name\n - Code via @CODE\n - File via @FILE\n\n Default:\n [LANG]\n \n Related:\n - \n - \n */\n $ditto->paginate($start, $stop, $total, $display, $tplPaginateNext, $tplPaginatePrevious, $paginateAlwaysShowLinks, $paginateSplitterCharacter);\n // generate the pagination placeholders\n }\n\n $dbFields = $ditto->fields[\"display\"][\"db\"];\n // get the database fields\n $TVs = $ditto->fields[\"display\"][\"tv\"];\n // get the TVs\n \n switch($sortDir) {\n case \"DESC\":\n $stop = ($ditto->prefetch === false) ? $stop + $start + $offset : $stop + $offset; \n $start += $offset;\n break;\n case \"ASC\":\n $start += $offset;\n $stop += $start;\n break;\n }\n\n if ($ditto->prefetch !== false) {\n $documentIDs = array_slice($documentIDs,$start,$stop);\n // set the document IDs equal to the trimmed array\n $dbFields = array_diff($dbFields,$ditto->prefetch[\"fields\"][\"db\"]);\n // calculate the difference between the database fields and those already prefetched\n $dbFields[] = \"id\";\n // append id to the db fields array\n $TVs = array_diff($TVs,$ditto->prefetch[\"fields\"][\"tv\"]);\n // calculate the difference between the tv fields and those already prefetched\n $start = 0;\n $stop = min($display,count($documentIDs));\n } else {\n $queryLimit = ($queryLimit == 0) ? \"\" : $queryLimit;\n }\n\n $resource = $ditto->getDocuments($documentIDs, $dbFields, $TVs, $keywords, $showPublishedOnly, 0, $where, $queryLimit, $sortBy, $sortDir,$randomize);\n // retrieves documents\n $output = $header;\n // initialize the output variable and send the header\n\n if ($resource) {\n if ($randomize != \"0\" && $randomize != \"1\") {\n $resource = $ditto->weightedRandom($resource,$randomize,$stop);\n // randomize the documents\n }\n \n $resource = array_values($resource);\n\n for ($x=$start;$x<$stop;$x++) {\n $template = $ditto->template->determine($templates,$x,0,$stop,$resource[$x][\"id\"]);\n // choose the template to use and set the code of that template to the template variable\n $renderedOutput = $ditto->render($resource[$x], $template, $removeChunk, $dateSource, $dateFormat, $placeholders,$phx);\n // render the output using the correct template, in the correct format and language\n $modx->setPlaceholder($dittoID.\"item[\".abs($start-$x).\"]\",$renderedOutput);\n /*\n Placeholder: item[x]\n\n Content:\n Individual items rendered output\n */\n $output .= $renderedOutput;\n // send the rendered output to the buffer\n }\n } else {\n $output .= $noResults;\n // if no documents are found return a no documents found string\n }\n $output .= $footer;\n // send the footer\n\n // ---------------------------------------------------\n // Save Object\n // ---------------------------------------------------\n\n if($save) {\n $modx->setPlaceholder($dittoID.\"ditto_object\", $ditto);\n $modx->setPlaceholder($dittoID.\"ditto_resource\", ($save == \"1\") ? array_slice($resource,$display) : $resource);\n }\n} else {\n $output = $header.$noResults.$footer;\n}\n// ---------------------------------------------------\n// Handle Debugging\n// ---------------------------------------------------\n\nif ($debug == 1) {\n $ditto_params = func_get_args();\n if (!isset($_GET[\"ditto_\".$dittoID.\"debug\"])) {\n $_SESSION[\"ditto_debug_$dittoID\"] = $ditto->debug->render_popup($ditto, $ditto_base, $ditto_version, $ditto_params[1], $documentIDs, array(\"db\"=>$dbFields,\"tv\"=>$TVs), $display, $templates, $sortBy, $sortDir, $start, $stop, $total,$filter,$resource);\n }\n if (isset($_GET[\"ditto_\".$dittoID.\"debug\"])) {\n switch ($_GET[\"ditto_\".$dittoID.\"debug\"]) {\n case \"open\" :\n exit($_SESSION[\"ditto_debug_$dittoID\"]);\n break;\n case \"save\" :\n $ditto->debug->save($_SESSION[\"ditto_debug_$dittoID\"],\"ditto\".strtolower($ditto_version).\"_debug_doc\".$modx->documentIdentifier.\".html\");\n break;\n }\n } else {\n $output = $ditto->debug->render_link($dittoID,$ditto_base).$output;\n }\n}\n\nreturn ($save != 3) ? $output : \"\";\n',0,'',''),(4,'eForm','1.4.4 Robust form parser/processor with validation, multiple sending options, chunk/page support for forms and reports, and file uploads.',0,5,0,'# eForm 1.4.4 - Electronic Form Snippet\n# Original created by Raymond Irving 15-Dec-2004.\n# Version 1.3+ extended by Jelle Jager (TobyL) September 2006\n# -----------------------------------------------------\n# local version: $Id: eform.snippet.tpl,v 1.2 2006/11/22 14:53:38 jelle Exp $\n# Captcha image support - thanks to Djamoer\n# Multi checkbox, radio, select support - thanks to Djamoer\n# Form Parser and extened validation - by Jelle Jager\n#\n# see eform/docs/eform.htm for history, usage and examples\n#\n\n# Set Snippet Paths\n#new in 1.4.4 - sub-folder set by parameter\n$snipFolder = isset($snipFolder)?$snipFolder:\'eform\';\n$snipPath = $modx->config[\"base_path\"].\'assets/snippets/\'.$snipFolder.\'/\';\n\n\n# check if inside manager\nif ($modx->isBackend()) {\nreturn \'\'; # don\'t go any further when inside manager\n}\n\n//tidying up some casing errors in parameters\nif(isset($eformOnValidate)) $eFormOnValidate = $eformOnValidate;\nif(isset($eformOnBeforeMailSent)) $eFormOnBeforeMailSent = $eformOnBeforeMailSent;\nif(isset($eformOnMailSent)) $eFormOnMailSent = $eformOnMailSent;\nif(isset($eformOnValidate)) $eFormOnValidate = $eformOnValidate;\nif(isset($eformOnBeforeFormMerge)) $eFormOnBeforeFormMerge = $eformOnBeforeFormMerge;\nif(isset($eformOnBeforeFormParse)) $eFormOnBeforeFormParse = $eformOnBeforeFormParse;\n//for sottwell :)\nif(isset($eFormCSS)) $cssStyle = $eFormCSS;\n\n# Snippet customize settings\n$params = array (\n // Snippet Path\n \'snipPath\' => $snipPath, //includes $snipFolder\n \'snipFolder\' => $snipFolder,\n\n// eForm Params\n \'vericode\' => isset($vericode)? $vericode:\"\",\n \'formid\' => isset($formid)? $formid:\"\",\n \'from\' => isset($from)? $from:$modx->config[\'emailsender\'],\n \'fromname\' => isset($fromname)? $fromname:$modx->config[\'site_name\'],\n \'to\' => isset($to)? $to:$modx->config[\'emailsender\'],\n \'cc\' => isset($cc)? $cc:\"\",\n \'bcc\' => isset($bcc)? $bcc:\"\",\n \'subject\' => isset($subject)? $subject:\"\",\n \'ccsender\' => isset($ccsender)? 1:0,\n \'sendirect\' => isset($sendirect)? 1:0,\n \'mselector\' => isset($mailselector)? $mailselector:0,\n \'mobile\' => isset($mobile)? $mobile:\'\',\n \'mobiletext\' => isset($mobiletext)? $mobiletext:\'\',\n \'autosender\' => isset($autosender)? $autosender:$from,\n \'autotext\' => isset($automessage)? $automessage:\"\",\n \'category\' => isset($category)? $category:0,\n \'keywords\' => isset($keywords)? $keywords:\"\",\n \'gid\' => isset($gotoid)? $gotoid:$modx->documentIdentifier,\n \'noemail\' => isset($noemail)? ($noemail):false,\n \'saveform\' => isset($saveform)? ($saveform? true:false):true,\n \'tpl\' => isset($tpl)? $tpl:\"\",\n \'report\' => isset($report)? $report:\"\",\n \'allowhtml\' => isset($allowhtml)? 1:0,\n //Added by JJ\n \'replyto\' => isset($replyto)? $replyto:\"\",\n \'language\' => isset($language)? $language:$modx->config[\'manager_language\'],\n \'thankyou\' => isset($thankyou)? $thankyou:\"\",\n \'isDebug\' => isset($debug)? $debug:0,\n \'reportAbuse\' => isset($reportAbuse)? $reportAbuse:false,\n \'disclaimer\' => isset($disclaimer)?$disclaimer:\'\',\n \'sendAsHtml\' => isset($sendAsHtml)?$sendAsHtml:false,\n \'sendAsText\' => isset($sendAsText)?$sendAsText:false,\n \'sessionVars\' => isset($sessionVars)?$sessionVars:false,\n \'postOverides\' => isset($postOverides)?$postOverides:0,\n \'eFormOnBeforeMailSent\' => isset($eFormOnBeforeMailSent)?$eFormOnBeforeMailSent:\'\',\n \'eFormOnMailSent\' => isset($eFormOnMailSent)?$eFormOnMailSent:\'\',\n \'eFormOnValidate\' => isset($eFormOnValidate)?$eFormOnValidate:\'\',\n \'eFormOnBeforeFormMerge\' => isset($eFormOnBeforeFormMerge)?$eFormOnBeforeFormMerge:\'\',\n \'eFormOnBeforeFormParse\' => isset($eFormOnBeforeFormParse)?$eFormOnBeforeFormParse:\'\',\n \'cssStyle\' => isset($cssStyle)?$cssStyle:\'\',\n \'jScript\' => isset($jScript)?$jScript:\'\',\n \'submitLimit\' => (isset($submitLimit) && is_numeric($submitLimit))?$submitLimit*60:0,\n \'protectSubmit\' => isset($protectSubmit)?$protectSubmit:1,\n \'requiredClass\' => isset($requiredClass)?$requiredClass:\"required\",\n \'invalidClass\' => isset($invalidClass)?$invalidClass:\"invalid\",\n \'runSnippet\' => ( isset($runSnippet) && !is_numeric($runSnippet) )?$runSnippet:\'\',\n \'autoSenderName\' => isset($autoSenderName)?$autoSenderName:\'\',\n \'version\' => \'1.4.4\'\n);\n\n# Start processing\n\ninclude_once ($snipPath.\"eform.inc.php\");\n\n$output = eForm($modx,$params);\n\n# Return\nreturn $output;',0,'',''),(5,'FirstChildRedirect','1.0 Automatically redirects to the first child of a folder document.',0,4,0,'/**\n * @name FirstChildRedirect\n * @author Jason Coward \n * @modified-by Ryan Thrash \n * @license Public Domain\n * @version 1.0\n * \n * This snippet redirects to the first child document of a folder in which this\n * snippet is included within the content (e.g. [!FirstChildRedirect!]). This\n * allows MODx folders to emulate the behavior of real folders since MODx\n * usually treats folders as actual documents with their own content.\n * \n * Modified to make Doc ID a required parameter... now defaults to the current \n * Page/Folder you call the snippet from.\n * \n * &docid=`12` \n * Use the docid parameter to have this snippet redirect to the\n * first child document of the specified document.\n */\n\n$docid = (isset($docid))? $docid: $modx->documentIdentifier;\n\n$children= $modx->getActiveChildren($docid, \'menuindex\', \'ASC\');\nif (!$children === false) {\n $firstChild= $children[0];\n $firstChildUrl= $modx->makeUrl($firstChild[\'id\']);\n} else {\n $firstChildUrl= $modx->makeUrl($modx->config[\'site_start\']);\n}\nreturn $modx->sendRedirect($firstChildUrl);\n',0,'',''),(6,'Jot','1.1.2 User comments with moderation and email subscription.',0,3,0,'/*####\n#\n# Name: Jot\n# Version: 1.1.2\n# Author: Armand \"bS\" Pondman (apondman@zerobarrier.nl)\n# Date: Feb 19, 2006 15:26 CET\n#\n# Latest Version: http://modxcms.com/Jot-998.html\n# Jot Demo Site: http://projects.zerobarrier.nl/modx/\n# Documentation: http://wiki.modxcms.com/index.php/Jot (wiki)\n#\n####*/\n\n$jotPath = $modx->config[\'base_path\']. \'assets/snippets/jot/\';\ninclude_once($jotPath.\'jot.class.inc.php\');\n\n$Jot = new CJot;\n$Jot->VersionCheck(\"1.1.2\");\n$Jot->Set(\"path\",$jotPath);\n$Jot->Set(\"action\", $action);\n$Jot->Set(\"postdelay\", $postdelay);\n$Jot->Set(\"docid\", $docid);\n$Jot->Set(\"tagid\", $tagid);\n$Jot->Set(\"subscribe\", $subscribe);\n$Jot->Set(\"moderated\", $moderated);\n$Jot->Set(\"captcha\", $captcha);\n$Jot->Set(\"badwords\", $badwords);\n$Jot->Set(\"bw\", $bw);\n$Jot->Set(\"sortby\", $sortby);\n$Jot->Set(\"numdir\", $numdir);\n$Jot->Set(\"customfields\", $customfields);\n$Jot->Set(\"guestname\", $guestname);\n$Jot->Set(\"canpost\", $canpost);\n$Jot->Set(\"canview\", $canview);\n$Jot->Set(\"canedit\", $canedit);\n$Jot->Set(\"canmoderate\", $canmoderate);\n$Jot->Set(\"trusted\", $trusted);\n$Jot->Set(\"pagination\", $pagination);\n$Jot->Set(\"placeholders\", $placeholders);\n$Jot->Set(\"subjectSubscribe\", $subjectSubscribe);\n$Jot->Set(\"subjectModerate\", $subjectModerate);\n$Jot->Set(\"notify\", $notify);\n$Jot->Set(\"validate\", $validate);\n$Jot->Set(\"title\", $title);\n$Jot->Set(\"authorid\", $authorid);\n$Jot->Set(\"css\", $css);\n$Jot->Set(\"cssFile\", $cssFile);\n$Jot->Set(\"cssRowAlt\", $cssRowAlt);\n$Jot->Set(\"cssRowMe\", $cssRowMe);\n$Jot->Set(\"cssRowAuthor\", $cssRowAuthor);\n$Jot->Set(\"tplForm\", $tplForm);\n$Jot->Set(\"tplComments\", $tplComments);\n$Jot->Set(\"tplModerate\", $tplModerate);\n$Jot->Set(\"tplNav\", $tplNav);\n$Jot->Set(\"tplNotify\", $tplNotify);\n$Jot->Set(\"tplNotifyModerator\", $tplNotifyModerator);\n$Jot->Set(\"tplSubscribe\", $tplSubscribe);\n$Jot->Set(\"debug\", $debug);\n$Jot->Set(\"output\", $output);\nreturn $Jot->Run();',0,'',''),(7,'ListIndexer','1.0 Shows the most recent documents, highly flexible.',0,3,0,'// --------------------\n// Snippet: ListIndexer\n// --------------------\n// Version: 1.0\n// Date: 10 Oct 2005\n//\n// Derived from ListIndex 0.6j by jaredc@honeydewdesign.com\n// Now supports Show In Menu\n//\n// This snippet was designed to be a VERY flexible way\n// of showing what has been recently added. You can use\n// this snippet to show news from one folder, or what has\n// been recently added site wide. You can even show what\'s\n// new in a \'section\' (everything under a defined folder)!\n//\n\n// Configuration Settings\n\n // Set the following snippet defaults the way you would normally\n // use this snippet, then use snippet variables in other situations\n // to override the default behaviors.\n\n // GENERAL OPTIONS\n\n // $rootFolder [ NULL | string (comma separated page id\'s) ]\n // Decide which folder to pull recent documents from.\n // If you want to specify a few folders, comma separate them.\n // The default NULL will set current page as root. Using 0\n // would search site wide. Can be set with snippet parameter\n // $LIn_root like:\n // [[ListIndexer?LIn_root=3,6,88]] \n $rootFolder = NULL;\n\n // $descendentDepth [ int ]\n // How many levels below the root folder(s) do you want to\n // include? Can be overridden in snippet call with LIn_depth:\n // [[ListIndexer?LIn_depth=2]]\n // Uncomment one of these common two or create your own:\n // $descendentDepth = 1; // just children of root folder(s)\n $descendentDepth = 0; // all decendents of root folder(s)\n\n // $seeThruUnpub [ true | false ]\n // When using descendents, do you want to consider files below\n // an unpublished (hidden) folder? Usually no. But you decide.\n // Snippet parameter: LIn_seeThru\n // [[ListIndexer?LIn_seeThru=1]]\n $seeThruUnpub = false;\n\n // $seeShowInMenu [ true | false ]\n // When using descendents, do you want to consider files flagged\n // to be hidden from the menus? Usually no. But you decide.\n // Snippet parameter: LIn_seeShowInMenu\n // [[ListIndexer?LIn_seeShowInMenu=1]]\n $seeShowInMenu = false;\n\n // $mode [ \'short\' | \'full\' ]\n // Defines whether this list should be a full, paged\n // list of all documents, or a short list of the most\n // recent few (how many will be defined next). Can be\n // overridden in snippet call with $LIn_mode:\n // [[ListIndexer?LIn_mode=full]]\n $mode = \'short\';\n \n // $sortBy [ \'alpha\' | \'date\' | \'menuindex\' ]\n // The default date will sort by most recent items first, but\n // by using the \'alpha\' option, and using full mode, you could\n // use this to create an index, or directory.\n // Settable with snippet call $LIn_sort:\n // [[ListIndexer?LIn_sort=alpha]]\n $sortBy = \'date\';\n \n // $sortDir [ \'ASC\' | \'DESC\' ]\n // Sort direction ascending or descending. Is applied to whatever $sortBy\n // field you have chosen above. If left blank, menuindex and alpha will sort\n // ASC and date DESC.\n // $LIn_dir in snippet call:\n // [[ListIndexer?LIn_dir=ASC&LIn_sortBy=menuindex]]\n $sortDir = \'\';\n\n // WHAT TO DISPLAY\n\n // $defaultTitle [ string ]\n // If you want a default title for your list\n // you can declare it here. Or use an empty\n // string to leave this off. This can be overridden\n // in the snippet call with the variable $LIn_title:\n // [[ListIndexer?LIn_title=Some new title]]\n $defaultTitle = \'\';\n\n // $shortDesc [ true | false ]\n // Show the description on the short list, or not. Snippet\n // parameter $LIn_sDesc:\n // [[ListIndexer?LIn_sDesc=0]]\n $shortDesc = true;\n\n // $fullDesc [ true | false ]\n // Show the description on the full list, or not. Snippet\n // parameter $LIn_fDesc:\n // [[ListIndexer?LIn_fDesc=0]]\n $fullDesc = true;\n\n // $linkToIndex [ int ]\n // If you have a page set up as an \'index\' for all the \n // documents in this list, you can link to it by specifying \n // its id- can also be set in snippet call with LIn_link:\n // [[ListIndexer?LIn_link=8]]\n // The default 0 will eliminate this link\n $linkToIndex = 0;\n\n // $indexText [ string ]\n // If you want a link to an index (probably a page running this\n // snippet in \"full\" mode), you can declare what you want that\n // link to say here. Or in the snippet call with LIn_indexText:\n // [[ListIndexer?LIn_indexText=Financial News Index]]\n $indexText = \'Index\';\n\n // $showCreationDate [ true | false ]\n // Decide to include date of creation in output or not. From\n // snippet call $LIn_showDate use 1 (true) or 0 (false)\n // [[ListIndexer?LIn_showDate=1]]\n $showCreationDate = true;\n\n // $dateFormat [ string ]\n // Used to define how date will be displayed (if using date)\n // Y = 4 digit year y = 2 digit year\n // M = Jan - Dec m = 01 - 12\n // D = Sun - Sat d = 01 -31\n // Other standard PHP characters may be used\n $dateFormat = \'Y.m.d\';\n\n // $shortQty [ int ]\n // Number of entries to list in the short list. Can be\n // overridden in snippet call with $LIn_sQty:\n //[[ListIndexer?LIn_sQty=3]]\n $shortQty = 3;\n\n // PAGING\n\n // $fullQty [ int ]\n // Number of entries PER PAGE to list in the full list\n // Can be overridden in snippet call with $LIn_fQty:\n // [[ListIndexer?LIn_fQty=20]]\n // To show all set to 0 here or in snippet call\n $fullQty = 10;\n \n // $pageSeparator [ string ]\n // What you want your page number links to be separated by.\n // You NEED to include spaces if you want them. They are NOT\n // created automatically to facilitate styling ability.\n // For instance, \" | \" will render links like:\n // 1 | 2 | 3 | 4\n $pageSeparator = \" | \";\n \n // $pgPosition [ \'top\' | \'bottom\' | \'both\']\n // Pick where you want your pagination links to appear.\n $pgPosition = \'both\';\n\n // PERFORMANCE\n\n // $useFastUrls [ true | false ]\n // IMPORTANT- using fast urls will reduce database queries\n // and improve performance WHEN IN FULL MODE ONLY and \n // should NOT be used when multiple instances of this snippet\n // appear on the same page. With snippet call LIn_fast use 1\n // (true) or 0 (false)\n // [[ListIndexer?LIn_fast=0]]\n $useFastUrls = false;\n\n // $newLinesForLists [ true | false ]\n // Depending on how you want to style your list, you may\n // or may not want your
  • s on new lines. Generally, if you\n // are displaying then inline (horizontal, you do not want new\n // lines, but standard vertical block styling you do. This is\n // for IE, real browsers don\'t care.\n $newLinesForLists = true;\n\n// Styles\n//\n// The following are the styles included in this snippet. It is up\n// to you to include these styles in your stylesheet to get them to\n// look the way you want.\n\n // div.LIn_title {} List title div\n // ul.LIn_fullMode {} UL class\n // ul.LIn_shortMode {} UL class\n // span.LIn_date {} Span surrounding pub/created date\n // span.LIn_desc {} Span surrounding description\n // div.LIn_pagination Div surrounding pagination links\n // span.LIn_currentPage {} Span surrounding current page of\n // pagination (which wouldn\'t be css-able\n // by virtue of its tag)\n\n\n// **********************************************************************\n// END CONFIG SETTINGS\n// THE REST SHOULD TAKE CARE OF ITSELF\n// **********************************************************************\n\n// Take care of IE list issue\n$ie = ($newLinesForLists)? \"\\n\" : \'\' ;\n\n// Use snippet call defined variables if set\n$activeTitle = (isset($LIn_title))? $LIn_title : $defaultTitle ;\n$mode = (isset($LIn_mode))? $LIn_mode : $mode ;\n$descendentDepth = (isset($LIn_depth))? $LIn_depth : $descendentDepth ;\n$seeThruUnpub = (isset($LIn_seeThru))? $LIn_seeThru : $seeThruUnpub ;\n$seeShowInMenu = (isset($LIn_seeShowInMenu))? $LIn_seeShowInMenu : $seeShowInMenu ;\n$linkToIndex = (isset($LIn_link))? $LIn_link : $linkToIndex ;\n$rootFolder = (isset($LIn_root))? $LIn_root : $rootFolder ;\n$shortQty = (isset($LIn_sQty))? $LIn_sQty : $shortQty ;\n$fullQty = (isset($LIn_fQty))? $LIn_fQty : $fullQty ;\n$showCreationDate = (isset($LIn_showDate))? $LIn_showDate : $showCreationDate ;\n$indexText = (isset($LIn_indexText))? $LIn_indexText : $indexText ;\n$useFastUrls = (isset($LIn_fast))? $LIn_fast : $useFastUrls ;\n$sortBy = (isset($LIn_sort))? $LIn_sort : $sortBy;\n$shortDesc = (isset($LIn_sDesc))? $LIn_sDesc : $shortDesc ;\n$fullDesc = (isset($LIn_fDesc))? $LIn_fDesc : $fullDesc ;\n$sortDir = (isset($LIn_dir))? $LIn_dir : $sortDir ;\nif ($sortDir == \'\') $sortDir = ($sortBy == \'date\')? \'DESC\' : \'ASC\' ;\n\n\n// Make useful variable shortcut for the content table\n$tbl = $modx->dbConfig[\'dbase\'] . \".`\" . $modx->dbConfig[\'table_prefix\'] . \"site_content`\";\n\n// Initialize output\n$output = \'\';\n\n// ---------------------------------------------------\n// ---------------------------------------------------\n// Query db for parent folders, or not. First check to\n// see if a querystring cheat has been provided- this\n// should speed things up considerably when using this\n// in full mode. (a.k.a. fastUrls)\n// ---------------------------------------------------\n// ---------------------------------------------------\n$inFolder= isset($_GET[\'LIn_f\'])? $_GET[\'LIn_f\']: 0;\nif ((!$inFolder && $useFastUrls) || !$useFastUrls ){\n // Only run all the database queries if we don\'t already\n // know the folders AND fastUrls are desired.\n\n // ---------------------------------------------------\n // Seed list of viable parents\n // ---------------------------------------------------\n\n if ($rootFolder == NULL){\n $rootFolder = $modx->documentIdentifier;\n }\n // Set root level parent array\n $seedArray = explode(\',\',$rootFolder);\n $parentsArray = array();\n foreach($seedArray AS $seed){\n $parentsArray[\'level_0\'][] = $seed;\n }\n\n // ---------------------------------------------------\n // Make array of all allowed parents\n // ---------------------------------------------------\n\n // Process valid parents\n $levelCounter = 1;\n\n while (((count($parentsArray) < $descendentDepth) || ($descendentDepth == 0)) && ($levelCounter <= count($parentsArray)) && ($levelCounter < 10)){\n\n // Find all decendant parents for this level\n $pLevel = \'level_\'.($levelCounter - 1);\n $tempLevelArray = $parentsArray[$pLevel];\n\n foreach($tempLevelArray AS $p){\n\n // Get children who are parents (isfolder = 1)\n $validParentSql = \"\";\n $validParentSql .= \"SELECT id FROM $tbl WHERE \";\n $validParentSql .= \"isfolder = 1 AND parent = $p \";\n $validParentSql .= \"AND $tbl.deleted=0 \";\n $validParentSql .= ($seeThruUnpub)? \";\" : \"AND $tbl.published = 1;\";\n\n // Run statement\n $rsTempParents = $modx->dbQuery($validParentSql);\n // Get number of results\n $countTempParents = $modx->recordCount($rsTempParents);\n\n // If there are results, put them in an array\n $tempValidArray = false;\n if ($countTempParents){\n for ($i=0;$i<$countTempParents;$i++){\n $tempId = $modx->fetchRow($rsTempParents);\n $tempValidArray[] = $tempId[\'id\'];\n } // end while\n } // end if\n\n // populate next level of array \n if ($tempValidArray){\n foreach($tempValidArray AS $kid){\n $kidLevel = \'level_\'.$levelCounter;\n $parentsArray[$kidLevel][] = $kid;\n } // end foreach\n\n } // end if\n } // end foreach\n\n // Do next level\n $levelCounter++;\n\n } // end while\n\n // Finalize list of parents\n $validParents = \'\';\n foreach ($parentsArray AS $level){\n foreach ($level AS $validP){\n $validParents .= $validP . \',\';\n }\n }\n\n // Remove trailing comma\n $validParents = substr($validParents,0,strlen($validParents)-1);\n\n} else {\n $validParents = $_GET[\'LIn_f\'];\n}\n\n// ---------------------------------------------------\n// Make appropriate SQL statement to pull recent items\n// ---------------------------------------------------\n\n// Initialize\n$recentSql = \"\";\n$recentSql .= \"SELECT id, pagetitle, description\";\n// Include pub_date or createdon date if date is desired\n$recentSql .= ($showCreationDate)? \", IF(pub_date > 0, pub_date, createdon) AS pubDate \": \" \" ;\n$recentSql .= \"FROM $tbl \";\n$recentSql .= \"WHERE \";\n// Look everywhere, or just under valid parents\n$recentSql .= (($rootFolder == 0) && $seeThruUnpub && ($descendentDepth == 0))? \"\" : \"parent IN ($validParents) AND \" ;\n// Published\n$recentSql .= \"$tbl.published = 1 \";\n// Show In Menu\n$recentSql .= ($seeShowInMenu)? \" \" : \" AND $tbl.hidemenu=0 \" ;\n// Not deleted\n$recentSql .= \"AND $tbl.deleted=0 \";\n// Choose sort method\nswitch ($sortBy){\n case \'alpha\':\n $recentSql .= \"ORDER BY pagetitle \";\n break;\n case \'menuindex\':\n $recentSql .= \"ORDER BY menuindex \";\n break;\n default:\n $recentSql .= \"ORDER BY IF(pub_date>0, pub_date, createdon) \";\n break;\n}\n// Provide a sort direction\n$recentSql .= $sortDir;\n\n// If this is a short list, just pull a limited number\n$recentSql .= ($mode == \'short\')? \" LIMIT $shortQty;\" : \";\" ;\n\n// Run statement\n$rsRecent = $modx->dbQuery($recentSql);\n// Count records\n$recentLimit = $modx->recordCount($rsRecent);\n\n// ---------------------------------------------------\n// Generate pagination string if needed\n// ---------------------------------------------------\n$offsetParam = isset($_GET[\'LIn_o\'])? $_GET[\'LIn_o\']: 0;\n$offset = ($offsetParam && ($mode == \'full\'))? $offsetParam : 0 ;\n$pagination = \'\';\n\n// Don\'t bother unless there are enough records to justify it\nif ( ($mode == \'full\') && ($recentLimit > $fullQty) && ($fullQty) ){\n $fullUrl = $_SERVER[\'REQUEST_URI\'];\n $urlPieces = parse_url($fullUrl);\n $urlPath = $urlPieces[\'path\'];\n $otherQs = \'\';\n\n if ($urlPieces[\'query\']){\n foreach($_GET AS $qsKey=>$qsValue){\n if (($qsKey != \'LIn_o\') && ($qsKey != \'LIn_f\')){\n $otherQs .= \'&\'.$qsKey.\'=\'.$qsValue;\n }\n }\n } \n \n $fastUrl = $urlPath.\'?LIn_f=\'.$validParents.$otherQs;\n\n // Determine number of pages needed to show results\n $totalPages = ceil($recentLimit/$fullQty);\n \n // Make links\n for ($j = 0 ; $j < $totalPages; $j++){\n // only include links to OTHER pages, not current page\n if($offset == $j*$fullQty){\n $pagination .= \'\'.($j+1) .\'\';\n } else {\n $pagination .= \'\'.($j+1) .\'\';\n }\n if ($j < $totalPages-1){\n $pagination .= $pageSeparator;\n }\n }\n \n // Make final pagination link set in it\'s own div\n $pagination = \'
    \'.\"\\n\".$pagination.\"\\n
    \\n\";\n \n}\n\n\n// ---------------------------------------------------\n// Create title if wanted\n// ---------------------------------------------------\n\nif ($activeTitle){\n $output .= \'
    \'.$activeTitle.\'
    \'.\"\\n\";\n}\n\n// ---------------------------------------------------\n// Create list of recent items\n// ---------------------------------------------------\n\n// Include pagination\n$output .= ($pgPosition == \'top\' || $pgPosition == \'both\')? $pagination : \'\' ;\n\n$output .= \'
      \' . $ie;\n\n$recentCounter = $offset;\nif ($mode == \'short\') {\n $recentCounterLimit = min($shortQty,$recentLimit);\n} else {\n $recentCounterLimit = ($fullQty)? min(($fullQty+$offset),$recentLimit) : $recentLimit ;\n}\n\nwhile (($recentCounter < $recentCounterLimit) && $rsRecent && ($recentLimit > 0)){\n mysql_data_seek($rsRecent,$recentCounter);\n $recentRecord = $modx->fetchRow($rsRecent);\n $output .= \'
    • \';\n // Link to page\n $output .= \'\'.$recentRecord[\'pagetitle\'].\' \';\n // Date if desired\n if ($showCreationDate){\n $output .= \'\'.date($dateFormat,$recentRecord[\'pubDate\']).\' \';\n }\n // Description if desired\n if ((($mode == \'short\') && ($shortDesc)) || (($mode == \'full\') && ($fullDesc))){\n $output .= \'\'.$recentRecord[\'description\'].\'\';\n }\n // wrap it up\n $output .= \'
    • \' . $ie;\n $recentCounter ++;\n}\n\n$output .= \'
    \' . $ie;\n\n$output .= ($pgPosition == \'bottom\' || $pgPosition == \'both\')? $pagination : \'\' ;\n\n// ---------------------------------------------------\n// Link to index\n// ---------------------------------------------------\n\nif ($linkToIndex) {\n\n $output .= \'
    \';\n $output .= \'\'.$indexText.\'\';\n $output .= \'
    \';\n\n}\n\n// ---------------------------------------------------\n// Send to browser\n// ---------------------------------------------------\n\nreturn $output;',0,'',''),(8,'MemberCheck','1.0 Selectively show chunks based on logged in Web User\' group memberships.',0,2,0,'#::::::::::::::::::::::::::::::::::::::::\n# Snippet name: MemberCheck \n# Short Desc: checks logged in groups and displays a chunk\n# Version: 1.0\n# Created By Ryan Thrash (vertexworks.com)\n# Sanitized By Jason Coward (opengeek.com)\n#\n# Date: November 29, 2005\n#\n# Changelog: \n# Nov 29, 05 -- initial release\n# Jul 13, 06 -- adjusted Singleton to work under PHP4, added placeholder code (by: garryn)\n#\n#::::::::::::::::::::::::::::::::::::::::\n# Description: \n# Checks to see if users belong to a certain group and \n# displays the specified chunk if they do. Performs several\n# sanity checks and allows to be used multiple times on a page.\n#\n# Params:\n# &groups [array] (REQUIRED)\n# array of webuser group-names to check against\n#\n# &chunk [string] (REQUIRED)\n# name of the chunk to use if passes the check\n#\n# &ph [string] (optional)\n# name of the placeholder to set instead of directly retuning chunk\n#\n# &debug [boolean] (optional | false) \n# turn on debug mode for extra troubleshooting\n#\n# Example Usage:\n#\n# [[MemberCheck? &groups=`siteadmin, registered users` &chunk=`privateSiteNav` &ph=`MemberMenu` &debug=`true`]]\n#\n# This would place the \'members-only\' navigation store in the chunk \'privateSiteNav\'\n# into a placeholder (called \'MemberMenu\'). It will only do this as long as the user \n# is logged in as a webuser and is a member of the \'siteadmin\' or the \'registered users\'\n# groups. The optional debug parameter can be used to display informative error messages \n# when configuring this snippet for your site. For example, if the developer had \n# mistakenly typed \'siteowners\' for the first group, and none existed with debug mode on, \n# it would have returned the error message: The group siteowners could not be found....\n#\n#::::::::::::::::::::::::::::::::::::::::\n\n# debug parameter\n$debug = isset ($debug) ? $debug : false;\n\n# check if inside manager\nif ($m = $modx->insideManager()) {\n return \'\'; # don\'t go any further when inside manager\n}\n\nif (!isset ($groups)) {\n return $debug ? \'

    Error: No Group Specified

    \' : \'\';\n}\n\nif (!isset ($chunk)) {\n return $debug ? \'

    Error: No Chunk Specified

    \' : \'\';\n}\n\n# turn comma-delimited list of groups into an array\n$groups = explode(\',\', $groups);\n\nif (!class_exists(\'MemberCheck\')) {\n class MemberCheck {\n var $allGroups = NULL;\n var $debug;\n\n function getInstance($debug) {\n static $instance;\n if (!isset ($instance)) {\n $instance = new MemberCheck($debug);\n }\n return $instance;\n }\n\n function MemberCheck($debug = false) {\n global $modx;\n\n $this->debug = $debug;\n if ($debug) {\n $this->allGroups = array ();\n $tableName = $modx->getFullTableName(\'webgroup_names\');\n $sql = \"SELECT name FROM $tableName\";\n if ($rs = $modx->db->query($sql)) {\n while ($row = $modx->db->getRow($rs)) {\n array_push($this->allGroups, stripslashes($row[\'name\']));\n }\n }\n }\n }\n\n function isValidGroup($groupName) {\n $isValid = !(array_search($groupName, $this->allGroups) === false);\n return $isValid;\n }\n\n function getMemberChunk(& $groups, $chunk) {\n global $modx;\n $o = \'\';\n if (is_array($groups)) {\n for ($i = 0; $i < count($groups); $i++) {\n $groups[$i] = trim($groups[$i]);\n if ($this->debug) {\n if (!$this->isValidGroup($groups[$i])) {\n return \"

    The group \" . $groups[$i] . \" could not be found...

    \";\n }\n }\n }\n\n $check = $modx->isMemberOfWebGroup($groups);\n\n $chunkcheck = $modx->getChunk($chunk);\n\n $o .= ($check && $chunkcheck) ? $chunkcheck : \'\';\n if (!$chunkcheck)\n $o .= $this->debug ? \"

    The chunk $chunk not found...

    \" : \'\';\n } else {\n $o .= \"

    No valid group names were specified!

    \";\n }\n\n return $o;\n }\n }\n}\n\n$memberCheck = MemberCheck :: getInstance($debug);\n\nif (!isset ($ph)) {\n return $memberCheck->getMemberChunk($groups, $chunk);\n} else {\n $modx->setPlaceholder($ph, $memberCheck->getMemberChunk($groups, $chunk));\n return \'\';\n}',0,'',''),(9,'NewsPublisher','1.4 Publish news articles directly from the web.',0,3,0,'#::::::::::::::::::::::::::::::::::::::::\n#\n# Snippet Name: NewsPublisher \n# Short Desc: Create articles directly from front end (news, blogs, PR, etc.)\n# Created By: Raymond Irving (xwisdom@yahoo.com), August 2005\n#\n# Version: 1.4\n# Modified: December 13, 2005\n#\n# Changelog: \n# Mar 05, 06 -- modx_ prefix removed [Mark]\n# Dec 13, 05 -- Now inherrits web/manager docgroups thanks to Jared Carlow\n#\n#::::::::::::::::::::::::::::::::::::::::\n# Description: \n# Checks to see if users belong to a certain group and \n# displays the specified chunk if they do. Performs several\n# sanity checks and allows to be used multiple times on a page.\n# Only meant to be used once per page.\n#::::::::::::::::::::::::::::::::::::::::\n# \n# Parameters:\n# &folder - folder id where comments are stored\n# &makefolder - set to 1 to automatically convert the parent document to a folder. Defaults to 0\n# &postid - document id to load after posting news item. Defaults to the page created\n# &canpost - comma delimitted web groups that can post comments. leave blank for public posting\n# &badwords - comma delimited list of words not allowed in post\n# &template - name of template to use for news post\n# &headertpl - header template (chunk name) to be inserted at the begining of the news content\n# &footertpl - footer template (chunk name) to be inserted at the end of the news content\n# &formtpl - form template (chunk name)\n# &rtcontent - name of a richtext content form field \n# &rtsummary - name of a richtext summary form field \n# &showinmenu - sets the flag to true or false (1|0) as to whether or not it shows in the menu. defaults to false (0)\n# &aliastitle - set to 1 to use page title as alias suffix. Defaults to 0 - date created.\n# &clearcache - when set to 1 the system will automatically clear the site cache after publishing an article.\n# \n#::::::::::::::::::::::::::::::::::::::::\n\n// get user groups that can post articles\n$postgrp = isset($canpost) ? explode(\",\",$canpost):array();\n$allowAnyPost = count($postgrp)==0 ? true : false;\n\n// get clear cache\n$clearcache = isset($clearcache) ? 1:0;\n\n// get alias title\n$aliastitle = isset($aliastitle) ? 1:0;\n\n// get folder id where we should store articles\n// else store in current document\n$folder = isset($folder) ? intval($folder):$modx->documentIdentifier;\n\n// set rich text content field\n$rtcontent = isset($rtcontent) ? $rtcontent:\'content\';\n\n// set rich text summary field\n$rtsummary = isset($rtsummary) ? $rtsummary:\'introtext\';\n\n// get header\n$header = isset($headertpl) ? \"{{\".$headertpl.\"}}\":\'\';\n\n// get footer\n$footer = isset($footertpl) ? \"{{\".$footertpl.\"}}\":\'\';\n\n// get postback status\n$isPostBack = isset($_POST[\'NewsPublisherForm\']) ? true:false;\n\n// get badwords\nif(isset($badwords)) {\n $badwords = str_replace(\' \',\'\', $badwords);\n $badwords = \"/\".str_replace(\',\',\'|\', $badwords).\"/i\";\n}\n\n// get menu status\n$hidemenu = isset($showinmenu) && $showinmenu==1 ? 0 : 1;\n\n// get template\n$template = isset($template) ? $modx->db->getValue(\'SELECT id FROM \'.$modx->getFullTableName(\'site_templates\').\' WHERE templatename=\\\'\'.mysql_escape_string($template).\'\\\'\'):$modx->config[\'default_template\'];\n\n$message = \'\';\n\n// get form template\nif(isset($formtpl)) $formTpl = $modx->getChunk($formtpl);\nif(empty($formTpl)) $formTpl = \'\n
    \n \n Page title:

    \n Long title:

    \n Description:

    \n Published date:
    \n \"Select\n \"Remove
    \n Unpublished date:
    \n \"Select\n \"Remove
    \n Summary:

    \n Content:

    \n \n
    \n \n \';\n\n\n// switch block\nswitch ($isPostBack) {\n case true:\n // process post back\n // remove magic quotes from POST\n if(get_magic_quotes_gpc()){\n $_POST = array_map(\"stripslashes\", $_POST);\n } \n if(trim($_POST[\'pagetitle\'])==\'\') $modx->webAlert(\'Missing page title.\');\n elseif($_POST[$rtcontent]==\'\') $modx->webAlert(\'Missing news content.\');\n else {\n // get created date\n $createdon = time();\n\n // set alias name of document used to store articles\n if(!$aliastitle) $alias = \'article-\'.$createdon;\n else {\n $alias = $modx->stripTags($_POST[\'pagetitle\']);\n $alias = strtolower($alias);\n $alias = preg_replace(\'/&.+?;/\', \'\', $alias); // kill entities\n $alias = preg_replace(\'/[^\\.%a-z0-9 _-]/\', \'\', $alias);\n $alias = preg_replace(\'/\\s+/\', \'-\', $alias);\n $alias = preg_replace(\'|-+|\', \'-\', $alias);\n $alias = trim($alias, \'-\'); \n $alias = \'article-\'.$modx->db->escape($alias);\n }\n\n $user = $modx->getLoginUserName();\n $userid = $modx->getLoginUserID();\n if(!$user && $allowAnyPost) $user = \'anonymous\';\n\n // check if user has rights\n if(!$allowAnyPost && !$modx->isMemberOfWebGroup($postgrp)) {\n return \'You are not allowed to publish articles\';\n }\n\n $allowedTags = \'


      1. \';\n\n // format content\n $content = $modx->stripTags($_POST[$rtcontent],$allowedTags);\n $content = str_replace(\'[+user+]\',$user,$content);\n $content = str_replace(\'[+createdon+]\',strftime(\'%d-%b-%Y %H:%M\',$createdon),$content);\n foreach($_POST as $n=>$v) {\n if(!empty($badwords)) $v = preg_replace($badwords,\'[Filtered]\',$v); // remove badwords\n $v = $modx->stripTags(htmlspecialchars($v));\n $v = str_replace(\"\\n\",\'
        \',$v);\n $content = str_replace(\'[+\'.$n.\'+]\',$v,$content);\n }\n\n $title = mysql_escape_string($modx->stripTags($_POST[\'pagetitle\']));\n $longtitle = mysql_escape_string($modx->stripTags($_POST[\'longtitle\']));\n $description = mysql_escape_string($modx->stripTags($_POST[\'description\']));\n $introtext = mysql_escape_string($modx->stripTags($_POST[$rtsummary],$allowedTags));\n $pub_date = $_POST[\'pub_date\'];\n $unpub_date = $_POST[\'unpub_date\'];\n $published = 1;\n\n // check published date\n if($pub_date==\"\") {\n $pub_date=\"0\";\n } else {\n list($d, $m, $Y, $H, $M, $S) = sscanf($pub_date, \"%2d-%2d-%4d %2d:%2d:%2d\");\n $pub_date = strtotime(\"$m/$d/$Y $H:$M:$S\");\n\n if($pub_date < $createdon) {\n $published = 1;\n } elseif($pub_date > $createdon) {\n $published = 0; \n }\n }\n\n // check unpublished date\n if($unpub_date==\"\") {\n $unpub_date=\"0\";\n } else {\n list($d, $m, $Y, $H, $M, $S) = sscanf($unpub_date, \"%2d-%2d-%4d %2d:%2d:%2d\");\n $unpub_date = strtotime(\"$m/$d/$Y $H:$M:$S\");\n if($unpub_date < $createdon) {\n $published = 0;\n }\n }\n\n // set menu index\n $mnuidx = $modx->db->getValue(\'SELECT MAX(menuindex)+1 as \\\'mnuidx\\\' FROM \'.$modx->getFullTableName(\'site_content\').\' WHERE parent=\\\'\'.$folder.\'\\\'\');\n if($mnuidx<1) $mnuidx = 0;\n\n // post news content\n $flds = array(\n \'pagetitle\' => $title,\n \'longtitle\' => $longtitle,\n \'description\' => $description,\n \'introtext\' => $introtext,\n \'alias\' => $alias,\n \'parent\' => $folder, \n \'createdon\' => $createdon,\n \'createdby\' => ($userid>0 ? $userid * -1:0),\n \'editedon\' => \'0\',\n \'editedby\' => \'0\',\n \'published\' => $published,\n \'pub_date\' => $pub_date,\n \'unpub_date\' => $unpub_date,\n \'deleted\' => \'0\',\n \'hidemenu\' => $hidemenu,\n \'menuindex\' => $mnuidx,\n \'template\' => $template,\n \'content\' => mysql_escape_string($header.$content.$footer)\n );\n $redirectid = $modx->db->insert($flds,$modx->getFullTableName(\'site_content\'));\n\n // Doc group thing\n // look in save_content.processor.php for tips (or below)\n $lastInsertId = $modx->db->getInsertId();\n\n // Get doc groups based on $folder (parent id)\n $parentDocGroupsSql = \"SELECT * FROM \" . $modx->getFullTableName(\'document_groups\'). \" where document=\".$folder;\n $parentDocGroupsRs = $modx->db->query($parentDocGroupsSql);\n $parentDocGroupsLimit = $modx->db->getRecordCount($parentDocGroupsRs);\n for ($pdgi = 0; $pdgi < $parentDocGroupsLimit; $pdgi++) { \n $currentDocGroup = $modx->db->getRow($parentDocGroupsRs);\n $parentDocGroupsArray[$pdgi] = $currentDocGroup[\'document_group\'];\n }\n\n // put the document in the document_groups it should be in\n // check that up_perms are switched on!\n if($modx->config[\'use_udperms\']==1) {\n if(is_array($parentDocGroupsArray)) {\n foreach ($parentDocGroupsArray as $dgKey=>$dgValue) {\n $insertDocSql = \"INSERT INTO \".$modx->getFullTableName(\'document_groups\').\"(document_group, document) values(\".stripslashes($dgValue).\", $lastInsertId)\";\n $insertDocRs = $modx->db->query($insertDocSql);\n if(!$insertDocRs){\n exit;\n }\n } // end foreach\n } // end if doc group array exists\n } // end if perms are used\n\n // Handle privateweb\n $modx->db->query(\"UPDATE \".$modx->getFullTableName(\"site_content\").\" SET privateweb = 0 WHERE id=\'$lastInsertId\';\");\n $privatewebSql = \"\n SELECT DISTINCT \".$modx->getFullTableName(\'document_groups\').\".document_group \n FROM \".$modx->getFullTableName(\'document_groups\').\", \".$modx->getFullTableName(\'webgroup_access\').\" \n WHERE \n \".$modx->getFullTableName(\'document_groups\').\".document_group = \".$modx->getFullTableName(\'webgroup_access\').\".documentgroup \n AND \n \".$modx->getFullTableName(\'document_groups\').\".document = $lastInsertId;\";\n $privatewebIds = $modx->db->getColumn(\"document_group\",$privatewebSql);\n if(count($privatewebIds)>0) {\n $modx->db->query(\"UPDATE \".$modx->getFullTableName(\"site_content\").\" SET privateweb = 1 WHERE id = $lastInsertId;\"); \n }\n\n // And privatemgr\n $modx->db->query(\"UPDATE \".$modx->getFullTableName(\"site_content\").\" SET privatemgr = 0 WHERE id=\'$lastInsertId\';\");\n $privatemgrSql = \"\n SELECT DISTINCT \".$modx->getFullTableName(\'document_groups\').\".document_group \n FROM \".$modx->getFullTableName(\'document_groups\').\", \".$modx->getFullTableName(\'membergroup_access\').\" \n WHERE \n \".$modx->getFullTableName(\'document_groups\').\".document_group = \".$modx->getFullTableName(\'membergroup_access\').\" .documentgroup \n AND \n \".$modx->getFullTableName(\'document_groups\').\".document = $lastInsertId;\";\n $privatemgrIds = $modx->db->getColumn(\"document_group\",$privatemgrSql);\n if(count($privatemgrIds)>0) {\n $modx->db->query(\"UPDATE \".$modx->getFullTableName(\"site_content\").\" SET privatemgr = 1 WHERE id = $lastInsertId;\"); \n }\n // end of document_groups stuff!\n\n if(!empty($makefolder)) {\n // convert parent into folder\n $modx->db->update(array(\'isfolder\'=>\'1\'),$modx->getFullTableName(\'site_content\'),\'id=\\\'\'.$folder.\'\\\'\');\n }\n\n // empty cache\n if($clearcache==1){\n include_once $modx->config[\'base_path\'].\"manager/processors/cache_sync.class.processor.php\";\n $sync = new synccache();\n $sync->setCachepath(\"assets/cache/\");\n $sync->setReport(false);\n $sync->emptyCache(); // first empty the cache \n }\n\n // get redirect/post id\n $redirectid = $modx->db->getValue(\'SELECT id as \\\'redirectid\\\' FROM \'.$modx->getFullTableName(\'site_content\').\' WHERE createdon=\\\'\'.$createdon.\'\\\'\');\n $postid = isset($postid) ? $postid:$redirectid;\n\n // redirect to post id\n $modx->sendRedirect($modx->makeUrl($postid));\n }\n\n default: \n // display news form\n // check if user has rights to post comments\n if(!$allowAnyPost && !$modx->isMemberOfWebGroup($postgrp)) {\n $formTpl = \'\';\n } else {\n foreach($_POST as $n=>$v) {\n $formTpl = str_replace(\'[+\'.$n.\'+]\',$v,$formTpl);\n }\n }\n // return form\n return $message.$formTpl;\n break;\n}',0,'',''),(10,'Personalize','2.0 Basic personalization for web users.',0,2,0,'#::::::::::::::::::::::::::::::::::::::::\n# Snippet Name: Personalize \n# Short Desc: calls a chunk if the user is logged in, otherwise calls another\n# Version: 2.0\n# Created By: Ryan Thrash (modx@vertexworks.com), and then\n# powered up by kudo (kudo@kudolink.com)\n#\n# Date: Aug 03, 2006\n#\n# Changelog: \n# Dec 01, 05 -- initial release\n# Jun 19, 06 -- updated description\n# Jul 19, 06 -- hacked by kudo to output chunks\n# Aug 03, 06 -- added placeholder for username\n#\n#::::::::::::::::::::::::::::::::::::::::\n# Description: \n# Checks to see if webusers are logged in and displays yesChunk if the user\n# is logged or noChunk if user is not logged. Insert only the chunk name as\n# param, without {{}}. Can use a placeholder to output the username.\n# TESTED: can be used more than once per page.\n# TESTED: chunks can contain snippets.\n# \n# \n# Params:\n# &yesChunk [string] [REQUIRED]\n# Output for LOGGED users\n#\n# &noChunk [string] [REQUIRED] \n# Output for NOT logged users\n#\n# &ph [string] (optional) \n# Placeholder for placing the username\n# ATTENTION!: place this ph only in yesChunk!\n# \n#\n# Example Usage:\n#\n# [[LoggedOrNot? &yesChunk=`Link` &noChunk=`Register` &ph=`name`]]\n#\n# Having Chunks named {{Link}} and another {{Register}}, the first will be\n# published to registered user, the second to non-registered users.\n#\n#::::::::::::::::::::::::::::::::::::::::\n\n# prepare params and variables\n$o = \'\';\n$yesChunk = (isset($yesChunk))? $yesChunk : \'\';\n$noChunk = (isset($noChunk))? $noChunk : \'\';\n\n# do the work\n$test = $modx->getLoginUserName();\nif ($test) {\n $o = $modx->getChunk($yesChunk);\n } else {\n $o = $modx->getChunk($noChunk);\n}\n\nif (isset($ph)) {\n $modx->setPlaceholder($ph,$test);\n return $o;\n} else {\n return $o;\n}\n',0,'',''),(11,'Reflect','1.0.2 Used with Ditto, creates archives of articles, blog entries, image galleries and more.',0,3,0,'/*\n * Title: Reflect Snippet\n * \n * Description: \n * Generates date based archives using Ditto\n * \n * Author: \n * Mark Kaplan for MODx CMF\n * \n * Version: \n * 1.0.2\n * \n * Note: \n * If Reflect is not retrieving its own documents, make sure that the\n * Ditto call feeding it has all of the fields in it that you plan on\n * calling in your Reflect template. Furthermore, Reflect will ONLY\n * show what is currently in the Ditto result set.\n * Thus, if pagination is on it will ONLY show that page\'s items.\n*/\n \n// ---------------------------------------------------\n// Includes\n// ---------------------------------------------------\n\n$reflect_base = isset($reflect_base) ? $modx->config[\'base_path\'].$reflect_base : $modx->config[\'base_path\'].\"assets/snippets/reflect/\";\n/*\n Param: ditto_base\n \n Purpose:\n Location of Ditto files\n\n Options:\n Any valid folder location containing the Ditto source code with a trailing slash\n\n Default:\n [(base_path)]assets/snippets/ditto/\n*/\n\n$config = (isset($config)) ? $config : \"default\";\n/*\n Param: config\n\n Purpose:\n Load a custom configuration\n\n Options:\n \"default\" - default blank config file\n CONFIG_NAME - Other configs installed in the configs folder or in any folder within the MODx base path via @FILE\n\n Default:\n \"default\"\n \n Related:\n - \n*/\n\nrequire((substr($config, 0, 5) != \"@FILE\") ? $reflect_base.\"configs/$config.config.php\" : $modx->config[\'base_path\'].trim(substr($config, 5)));\n\n\n\n// ---------------------------------------------------\n// Parameters\n// ---------------------------------------------------\n\n$id = isset($id) ? $id.\"_\" : false;\n/*\n Param: id\n \n Purpose:\n Unique ID for this Ditto instance for connection with other scripts (like Reflect) and unique URL parameters\n\n Options:\n Any valid folder location containing the Ditto source code with a trailing slash\n\n Default:\n \"\" - blank\n*/\n$getDocuments = isset($getDocuments) ? $getDocuments : 0;\n/*\n Param: getDocuments\n\n Purpose:\n Force Reflect to get documents\n\n Options:\n 0 - off\n 1 - on\n \n Default:\n 0 - off\n*/\n$showItems = isset($showItems) ? $showItems : 1;\n/*\n Param: showItems\n\n Purpose:\n Show individual items in the archive\n\n Options:\n 0 - off\n 1 - on\n \n Default:\n 1 - on\n*/\n$groupByYears = isset($groupByYears)? $groupByYears : 1;\n/*\n Param: groupByYears\n\n Purpose:\n Group the archive by years\n\n Options:\n 0 - off\n 1 - on\n \n Default:\n 1 - on\n*/\n$targetID = isset($targetID) ? $targetID : $modx->documentObject[\'id\'];\n/*\n Param: targetID\n\n Purpose:\n ID for archive links to point to\n\n Options:\n Any MODx document with a Ditto call setup with extenders=`dateFilter`\n \n Default:\n Current MODx Document\n*/\n$dateSource = isset($dateSource) ? $dateSource : \"createdon\";\n/*\n Param: dateSource\n\n Purpose:\n Date source to display for archive items\n\n Options:\n # - Any UNIX timestamp from MODx fields or TVs such as createdon, pub_date, or editedon\n \n Default:\n \"createdon\"\n \n Related:\n - \n*/\n$dateFormat = isset($dateFormat) ? $dateFormat : \"%d-%b-%y %H:%M\"; \n/*\n Param: dateFormat\n \n Purpose:\n Format the [+date+] placeholder in human readable form\n\n Options:\n Any PHP valid strftime option\n\n Default:\n \"%d-%b-%y %H:%M\"\n \n Related:\n - \n*/\n$yearSortDir = isset($yearSortDir) ? $yearSortDir : \"DESC\";\n/*\n Param: yearSortDir\n\n Purpose:\n Direction to sort documents\n\n Options:\n ASC - ascending\n DESC - descending\n\n Default:\n \"DESC\"\n \n Related:\n - \n*/\n$monthSortDir = isset($monthSortDir) ? $monthSortDir : \"ASC\";\n/*\n Param: monthSortDir\n\n Purpose:\n Direction to sort the months\n\n Options:\n ASC - ascending\n DESC - descending\n\n Default:\n \"ASC\"\n \n Related:\n - \n*/\n$start = isset($start)? intval($start) : 0;\n/*\n Param: start\n\n Purpose:\n Number of documents to skip in the results\n\n Options:\n Any number\n\n Default:\n 0\n*/ \n$phx = (isset($phx))? $phx : 1;\n/*\n Param: phx\n\n Purpose:\n Use PHx formatting\n\n Options:\n 0 - off\n 1 - on\n \n Default:\n 1 - on\n*/\n\n// ---------------------------------------------------\n// Default Templates\n// ---------------------------------------------------\n\n$defaultTemplates[\'tpl\'] = <<Archives
    \n
    \n [+archive_items+]\n
    \nTPL;\n\n$defaultTemplates[\'year\'] = <<[+year+]
    \nTPL;\n\n$defaultTemplates[\'month\'] = <<[+month+]\nTPL;\n\n$defaultTemplates[\'item\'] = <<[+pagetitle+] ([+date+])\nTPL;\n\n// ---------------------------------------------------\n// Initialize Ditto\n// ---------------------------------------------------\n$placeholder = ($id != false && $getDocuments == 0) ? true : false;\nif ($placeholder === false) {\n $rID = \"reflect_\".rand(1,1000);\n $itemTemplate = isset($tplItem) ? $tplItem: \"@CODE:\".$defaultTemplates[\'item\'];\n $dParams = array(\n \"id\" => \"$rID\",\n \"save\" => \"3\", \n \"summarize\" => \"all\",\n \"dateFormat\" => $dateFormat,\n \"dateSource\" => $dateSource,\n \"tpl\" => $itemTemplate,\n );\n\n if (isset($dittoSnippetParameters)) {\n $givenParams = explode(\"|\",$dittoSnippetParameters);\n\n foreach ($givenParams as $parameter) {\n $p = explode(\":\",$parameter);\n $dParams[$p[0]] = $p[1];\n }\n }\n /*\n Param: dittoSnippetParameters\n\n Purpose:\n Pass parameters to the Ditto instance used to retreive the documents\n \n Options:\n Any valid ditto parameters in the format name:value \n with multiple parameters separated by a pipe (|)\n\n Default:\n [NULL]\n */\n $dittoSnippetName = isset($dittoSnippetName) ? $dittoSnippetName : \"Ditto\";\n /*\n Param: dittoSnippetName\n\n Purpose:\n Name of the Ditto snippet to use\n\n Options:\n Any valid snippet name\n\n Default:\n \"Ditto\"\n */\n $modx->runSnippet($dittoSnippetName,$dParams);\n $ditto = $modx->getPlaceholder($rID.\"_ditto_object\");\n $resource = $modx->getPlaceholder($rID.\"_ditto_resource\");\n} else {\n $ditto = $modx->getPlaceholder($id.\"ditto_object\");\n $resource = $modx->getPlaceholder($id.\"ditto_resource\");\n}\n\nif (!is_object($ditto) || !isset($ditto) || !isset($resource)) {\n return \"The Ditto object is invalid. Please check it.\";\n}\n\n// ---------------------------------------------------\n// Templates\n// ---------------------------------------------------\n\n$templates[\'tpl\'] = isset($tplContainer) ? $ditto->template->fetch($tplContainer): $defaultTemplates[\'tpl\'];\n/*\n Param: tplContainer\n\n Purpose:\n Container template for the archive\n\n Options:\n - Any valid chunk name\n - Code via @CODE:\n - File via @FILE:\n\n Default:\n (code)\n

    Archives

    \n
    \n [+archive_items+]\n
    \n*/\n$templates[\'year\'] = isset($tplYear) ? $ditto->template->fetch($tplYear): $defaultTemplates[\'year\'];\n/*\n Param: tplYear\n\n Purpose:\n Template for the year item (inside of li)\n\n Options:\n - Any valid chunk name\n - Code via @CODE:\n - File via @FILE:\n\n Default:\n (code)\n [+year+]\n*/\n$templates[\'month\'] = isset($tplMonth) ? $ditto->template->fetch($tplMonth): $defaultTemplates[\'month\'];\n/*\n Param: tplMonth\n\n Purpose:\n Template for the month item (inside of li)\n\n Options:\n - Any valid chunk name\n - Code via @CODE:\n - File via @FILE:\n\n Default:\n (code)\n [+month+]\n*/\n$templates[\'item\'] = isset($tplItem) ? $ditto->template->fetch($tplItem): $defaultTemplates[\'item\'];\n/*\n Param: tplItem\n\n Purpose:\n Template for the individual item (inside of li)\n\n Options:\n - Any valid chunk name\n - Code via @CODE:\n - File via @FILE:\n\n Default:\n (code)\n [+pagetitle+] ([+date+])\n*/\n\n$ditto->addField(\"date\",\"display\",\"custom\");\n // force add the date field if receiving data from a Ditto instance\n\n// ---------------------------------------------------\n// Reflect\n// ---------------------------------------------------\nif (function_exists(\"reflect\") === FALSE) {\nfunction reflect($archiveDocumentID, $showItems, $groupByYears, $resource, $archiveDateSource, $dateFormat, $ditto, $archive,$id,$start,$yearSortDir,$monthSortDir) {\n global $modx;\n $cal = array();\n $output = \'\';\n $build = array();\n $stop = count($resource);\n\n // loop and fetch all the results\n for ($i = $start; $i < $stop; $i++) {\n $date = getdate($resource[$i][$archiveDateSource]);\n $year = $date[\"year\"];\n $month = $date[\"mon\"];\n $cal[$year][$month][] = $resource[$i];\n }\n if ($yearSortDir == \"DESC\") {\n krsort($cal);\n } else {\n ksort($cal);\n }\n foreach ($cal as $year=>$months) {\n if ($monthSortDir == \"ASC\") {\n ksort($months);\n } else {\n krsort($months);\n }\n $build[$year] = $months;\n }\n $output .= \'
      \';\n foreach ($build as $year=>$months) {\n $year_url = $ditto->buildURL(\"year=\".$year.\"&month=false&day=false&start=0\",$archiveDocumentID,$id);\n if ($groupByYears) $output .= \'
    • \'.str_replace(array(\"[+year+]\",\"[+url+]\"),array($year,$year_url),$archive[\'year\']).\"\\n\\n\"; \n foreach ($months as $mon=>$month) {\n $month_text = $ditto->formatDate(mktime(10, 10, 10, $mon, 10, $year),\"%B\");\n $month_url = $ditto->buildURL(\"month=\".$mon.\"&year=\".$year.\"&day=false&start=0\",$archiveDocumentID,$id);\n if ($groupByYears) $output .= \'
        \';\n $output .= \'
      • \'.str_replace(array(\"[+year+]\",\"[+month+]\",\"[+url+]\"),array($year,$month_text,$month_url),$archive[\'month\']).\"\\n\";\n if ($showItems) {\n $output .= \'
          \'.\"\\n\";\n foreach ($month as $resource) {\n $output .= \'
        • \'.$ditto->render($resource, $archive[\'item\'], false, $archiveDateSource, $dateFormat, array(),$phx).\'
        • \';\n }\n $output .= \'
        \';\n }\n $output .= \'
      • \';\n if ($groupByYears) $output .= \'
      \';\n }\n if ($groupByYears) $output .= \'
    • \';\n }\n $output .= \'
    \';\nreturn str_replace(\"[+archive_items+]\",$output, $archive[\'tpl\']);\n \n}\n}\n\nreturn reflect($targetID, $showItems, $groupByYears, $resource, $dateSource, $dateFormat, $ditto, $templates,$id,$start,$yearSortDir,$monthSortDir);',0,'',''),(12,'UltimateParent','2.0 beta - Travels up the document tree from a specified document and returns the \"ultimate\" parent.',0,4,0,'/**\n * @name UltimateParent\n * @version 2.0 beta (requires MODx 0.9.5+)\n * @author Jason Coward \n * \n * @param &id The id of the document whose parent you want to find.\n * @param &top The top node for the search.\n * @param &topLevel The top level node for the search (root = level 1)\n * \n * @license Public Domain, use as you like.\n * \n * @example [[UltimateParent? &id=`45` &top=`6`]] \n * Will find the ultimate parent of document 45 if it is a child of document 6;\n * otherwise it will return 45.\n * \n * @example [[UltimateParent? &topLevel=`2`]]\n * Will find the ultimate parent of the current document at a depth of 2 levels\n * in the document hierarchy, with the root level being level 1.\n * \n * This snippet travels up the document tree from a specified document and\n * returns the \"ultimate\" parent. Version 2.0 was rewritten to use the new\n * getParentIds function features available only in MODx 0.9.5 or later.\n * \n * Based on the original UltimateParent 1.x snippet by Susan Ottwell\n * . The topLevel parameter was introduced by staed and\n * adopted here.\n */\n$top= isset ($top) && intval($top) ? $top : 0;\n$id= isset ($id) && intval($id) ? intval($id) : $modx->documentIdentifier;\n$topLevel= isset ($topLevel) && intval($topLevel) ? intval($topLevel) : 0;\nif ($id && $id != $top) {\n $pid= $id;\n if (!$topLevel || count($modx->getParentIds($id)) >= $topLevel) {\n while ($parentIds= $modx->getParentIds($id, 1)) {\n $pid= array_pop($parentIds);\n if ($pid == $top) {\n break;\n }\n $id= $pid;\n if ($topLevel && count($modx->getParentIds($id)) < $topLevel) {\n break;\n }\n }\n }\n}\nreturn $id;',0,'',''),(13,'Wayfinder','2.0 Completely template-driven menu builder that\'s simple and fast to configure.',0,4,0,'/*\n::::::::::::::::::::::::::::::::::::::::\n Snippet name: Wayfinder\n Short Desc: builds site navigation\n Version: 2.0\n Authors: \n Kyle Jaebker (muddydogpaws.com)\n Ryan Thrash (vertexworks.com)\n Date: February 27, 2006\n::::::::::::::::::::::::::::::::::::::::\nDescription:\n Totally refactored from original DropMenu nav builder to make it easier to\n create custom navigation by using chunks as output templates. By using templates,\n many of the paramaters are no longer needed for flexible output including tables,\n unordered- or ordered-lists (ULs or OLs), definition lists (DLs) or in any other\n format you desire.\n::::::::::::::::::::::::::::::::::::::::\nExample Usage:\n [[Wayfinder? &startId=`0`]]\n::::::::::::::::::::::::::::::::::::::::\n*/\n\n$wayfinder_base = $modx->config[\'base_path\'].\"assets/snippets/wayfinder/\";\n\n//Include a custom config file if specified\n$config = (isset($config)) ? \"{$wayfinder_base}configs/{$config}.config.php\" : \"{$wayfinder_base}configs/default.config.php\";\nif (file_exists($config)) {\n include_once(\"$config\");\n}\n\ninclude_once(\"{$wayfinder_base}wayfinder.inc.php\");\n\nif (class_exists(\'Wayfinder\')) {\n $wf = new Wayfinder();\n} else {\n return \'error: Wayfinder class not found\';\n}\n\n$wf->_config = array(\n \'id\' => isset($startId) ? $startId : $modx->documentIdentifier,\n \'level\' => isset($level) ? $level : 0,\n \'includeDocs\' => isset($includeDocs) ? $includeDocs : 0,\n \'excludeDocs\' => isset($excludeDocs) ? $excludeDocs : 0,\n \'ph\' => isset($ph) ? $ph : FALSE,\n \'debug\' => isset($debug) ? TRUE : FALSE,\n \'ignoreHidden\' => isset($ignoreHidden) ? $ignoreHidden : FALSE,\n \'hideSubMenus\' => isset($hideSubMenus) ? $hideSubMenus : FALSE,\n \'useWeblinkUrl\' => isset($useWeblinkUrl) ? $useWeblinkUrl : TRUE,\n \'fullLink\' => isset($fullLink) ? $fullLink : FALSE,\n \'nl\' => isset($removeNewLines) ? \'\' : \"\\n\",\n \'sortOrder\' => isset($sortOrder) ? strtoupper($sortOrder) : \'ASC\',\n \'sortBy\' => isset($sortBy) ? $sortBy : \'menuindex\',\n \'limit\' => isset($limit) ? $limit : 0,\n \'cssTpl\' => isset($cssTpl) ? $cssTpl : FALSE,\n \'jsTpl\' => isset($jsTpl) ? $jsTpl : FALSE,\n \'rowIdPrefix\' => isset($rowIdPrefix) ? $rowIdPrefix : FALSE,\n \'textOfLinks\' => isset($textOfLinks) ? $textOfLinks : \'menutitle\',\n \'titleOfLinks\' => isset($titleOfLinks) ? $titleOfLinks : \'pagetitle\',\n \'displayStart\' => isset($displayStart) ? $displayStart : FALSE,\n);\n\n//get user class definitions\n$wf->_css = array(\n \'first\' => isset($firstClass) ? $firstClass : \'\',\n \'last\' => isset($lastClass) ? $lastClass : \'last\',\n \'here\' => isset($hereClass) ? $hereClass : \'active\',\n \'parent\' => isset($parentClass) ? $parentClass : \'\',\n \'row\' => isset($rowClass) ? $rowClass : \'\',\n \'outer\' => isset($outerClass) ? $outerClass : \'\',\n \'inner\' => isset($innerClass) ? $innerClass : \'\',\n \'level\' => isset($levelClass) ? $levelClass: \'\',\n \'self\' => isset($selfClass) ? $selfClass : \'\',\n \'weblink\' => isset($webLinkClass) ? $webLinkClass : \'\',\n);\n\n//get user templates\n$wf->_templates = array(\n \'outerTpl\' => isset($outerTpl) ? $outerTpl : \'\',\n \'rowTpl\' => isset($rowTpl) ? $rowTpl : \'\',\n \'parentRowTpl\' => isset($parentRowTpl) ? $parentRowTpl : \'\',\n \'parentRowHereTpl\' => isset($parentRowHereTpl) ? $parentRowHereTpl : \'\',\n \'hereTpl\' => isset($hereTpl) ? $hereTpl : \'\',\n \'innerTpl\' => isset($innerTpl) ? $innerTpl : \'\',\n \'innerRowTpl\' => isset($innerRowTpl) ? $innerRowTpl : \'\',\n \'innerHereTpl\' => isset($innerHereTpl) ? $innerHereTpl : \'\',\n \'activeParentRowTpl\' => isset($activeParentRowTpl) ? $activeParentRowTpl : \'\',\n \'categoryFoldersTpl\' => isset($categoryFoldersTpl) ? $categoryFoldersTpl : \'\',\n \'startItemTpl\' => isset($startItemTpl) ? $startItemTpl : \'\',\n);\n\n//Process Wayfinder\n$output = $wf->run();\n\nif ($wf->_config[\'debug\']) {\n $output .= $wf->renderDebugOutput();\n}\n\n//Ouput Results\nif ($wf->_config[\'ph\']) {\n $modx->setPlaceholder($wf->_config[\'ph\'],$output);\n} else {\n return $output;\n}',0,'',''),(14,'WebChangePwd','1.0 Web User Change Password Snippet.',0,2,0,'# WebChangePwd 1.0\n# Created By Raymond Irving April, 2005\n#::::::::::::::::::::::::::::::::::::::::\n# Usage: \n# Allows a web user to change his/her password from the website\n#\n# Params: \n#\n# &tpl - (Optional)\n# Chunk name or document id to use as a template\n# \n# Note: Templats design:\n# section 1: change pwd template\n# section 2: notification template \n#\n# Examples:\n#\n# [[WebChangePwd? &tpl=`ChangePwd`]] \n\n# Set Snippet Paths \n$snipPath = (($modx->insideManager())? \"../\":\"\");\n$snipPath .= \"assets/snippets/\";\n\n# check if inside manager\nif ($m = $modx->insideManager()) {\n return \'\'; # don\'t go any further when inside manager\n}\n\n\n# Snippet customize settings\n$tpl = isset($tpl)? $tpl:\"\";\n\n# System settings\n$isPostBack = count($_POST) && isset($_POST[\'cmdwebchngpwd\']);\n\n# Start processing\ninclude_once $snipPath.\"weblogin/weblogin.common.inc.php\";\ninclude_once $snipPath.\"weblogin/webchangepwd.inc.php\";\n\n# Return\nreturn $output;\n\n\n\n',0,'&tpl=Template;string;',''),(15,'WebLogin','1.0 Web User Login Snippet.',0,2,0,'# WebLogin 1.0\n# Created By Raymond Irving 2004\n#::::::::::::::::::::::::::::::::::::::::\n# Usage: \n# Allows a web user to login to the website\n#\n# Params: \n# &loginhomeid - (Optional)\n# redirects the user to first authorized page in the list.\n# If no id was specified then the login home page id or \n# the current document id will be used\n#\n# &logouthomeid - (Optional)\n# document id to load when user logs out \n#\n# &pwdreqid - (Optional)\n# document id to load after the user has submited\n# a request for a new password\n#\n# &pwdactid - (Optional)\n# document id to load when the after the user has activated\n# their new password\n#\n# &logintext - (Optional) \n# Text to be displayed inside login button (for built-in form)\n#\n# &logouttext - (Optional)\n# Text to be displayed inside logout link (for built-in form)\n# \n# &tpl - (Optional)\n# Chunk name or document id to as a template\n# \n# Note: Templats design:\n# section 1: login template\n# section 2: logout template \n# section 3: password reminder template \n#\n# See weblogin.tpl for more information\n#\n# Examples:\n#\n# [[WebLogin? &loginhomeid=`8` &logouthomeid=`1`]] \n#\n# [[WebLogin? &loginhomeid=`8,18,7,5` &tpl=`Login`]] \n\n# Set Snippet Paths \n$snipPath = $modx->config[\'base_path\'] . \"assets/snippets/\";\n\n# check if inside manager\nif ($m = $modx->insideManager()) {\n return \'\'; # don\'t go any further when inside manager\n}\n\n# deprecated params - only for backward compatibility\nif(isset($loginid)) $loginhomeid=$loginid;\nif(isset($logoutid)) $logouthomeid = $logoutid;\nif(isset($template)) $tpl = $template;\n\n# Snippet customize settings\n$liHomeId = isset($loginhomeid)? explode(\",\",$loginhomeid):array($modx->config[\'login_home\'],$modx->documentIdentifier);\n$loHomeId = isset($logouthomeid)? $logouthomeid:$modx->documentIdentifier;\n$pwdReqId = isset($pwdreqid)? $pwdreqid:0;\n$pwdActId = isset($pwdactid)? $pwdactid:0;\n$loginText = isset($logintext)? $logintext:\'Login\';\n$logoutText = isset($logouttext)? $logouttext:\'Logout\';\n$tpl = isset($tpl)? $tpl:\"\";\n\n# System settings\n$webLoginMode = isset($_REQUEST[\'webloginmode\'])? $_REQUEST[\'webloginmode\']: \'\';\n$isLogOut = $webLoginMode==\'lo\' ? 1:0;\n$isPWDActivate = $webLoginMode==\'actp\' ? 1:0;\n$isPostBack = count($_POST) && (isset($_POST[\'cmdweblogin\']) || isset($_POST[\'cmdweblogin_x\']));\n$txtPwdRem = isset($_REQUEST[\'txtpwdrem\'])? $_REQUEST[\'txtpwdrem\']: 0;\n$isPWDReminder = $isPostBack && $txtPwdRem==\'1\' ? 1:0;\n\n$site_id = isset($site_id)? $site_id: \'\';\n$cookieKey = substr(md5($site_id.\"Web-User\"),0,15);\n\n# Start processing\ninclude_once $snipPath.\"weblogin/weblogin.common.inc.php\";\ninclude_once ($modx->config[\'base_path\'] . \"manager/includes/crypt.class.inc.php\");\n\nif ($isPWDActivate || $isPWDReminder || $isLogOut || $isPostBack) {\n # include the logger class\n include_once $modx->config[\'base_path\'] . \"manager/includes/log.class.inc.php\";\n include_once $snipPath.\"weblogin/weblogin.processor.inc.php\";\n}\n\ninclude_once $snipPath.\"weblogin/weblogin.inc.php\";\n\n# Return\nreturn $output;\n',0,'&loginhomeid=Login Home Id;string; &logouthomeid=Logout Home Id;string; &logintext=Login Button Text;string; &logouttext=Logout Button Text;string; &tpl=Template;string;',''),(16,'WebSignup','1.1 Web User Signup Snippet.',0,2,0,'# WebSignup 1.1\n# Created By Raymond Irving April, 2005\n#::::::::::::::::::::::::::::::::::::::::\n# Usage: \n# Allows a web user to signup for a new web account from the website\n# This snippet provides a basic set of form fields for the signup form\n# You can customize this snippet to create your own signup form\n#\n# Params: \n#\n# &tpl - (Optional) Chunk name or document id to use as a template\n# &groups - Web users groups to be assigned to users\n# &useCaptcha - (Optional) Determine to use (1) or not to use (0) captcha\n# on signup form - if not defined, will default to system\n# setting. GD is required for this feature. If GD is not \n# available, useCaptcha will automatically be set to false;\n# \n# Note: Templats design:\n# section 1: signup template\n# section 2: notification template \n#\n# Examples:\n#\n# [[WebSignup? &tpl=`SignupForm` &groups=`NewsReaders,WebUsers`]] \n\n# Set Snippet Paths \n$snipPath = $modx->config[\'base_path\'] . \"assets/snippets/\";\n\n# check if inside manager\nif ($m = $modx->insideManager()) {\n return \'\'; # don\'t go any further when inside manager\n}\n\n\n# Snippet customize settings\n$tpl = isset($tpl)? $tpl:\"\";\n$useCaptcha = isset($useCaptcha)? $useCaptcha : $modx->config[\'use_captcha\'] ;\n// Override captcha if no GD\nif ($useCaptcha && !gd_info()) $useCaptcha = 0;\n\n# setup web groups\n$groups = isset($groups) ? explode(\',\',$groups):array();\nfor($i=0;$i\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n[(site_name)] | [*pagetitle*]\r\n\r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n

    [(site_name)]

    \r\n

    {{slogan}}

    \r\n
    \r\n

    Main menu

    \r\n
    [!Wayfinder?startId=`0` &hereClass=`current` &level=`1` &outerClass=`topnav`!]
    \r\n
    \r\n
    \r\n
    \r\n

    [*longtitle*]

    \r\n [*#content*]
    \r\n
    \r\n

    {{footer}}

    \r\n

    MySQL: [^qt^], [^q^] request(s), PHP: [^p^], total: [^t^], document retrieved\r\n from [^s^].

    \r\n
    \r\n
    \r\n\r\n\r\n',0),(1,'MODxCSS','MODx CSS template',0,1,'',0,'\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n[(site_name)] | [*pagetitle*]\r\n\r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n

    [(site_name)]

    \r\n

    {{slogan}}

    \r\n
    \r\n

    Main menu

    \r\n
    [!Wayfinder?startId=`0` &hereClass=`current` &level=`1` &outerClass=`topnav`!]
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Menu

    \r\n [!Wayfinder?startId=`0` &hereClass=`` &selfClass=`current` &outerClass=`sidemenu`!]\r\n
    \r\n

    Search

    \r\n [[AjaxSearch? &AS_landing=`8` &moreResultsPage=`8` &showMoreResults=`1` &addJscript=`0` &extract=`0` &AS_showResults=`0`]]\r\n

    News

    \r\n [[Ditto? &startID=`2` &summarize=`1` &total=`1` &commentschunk=`Comments` &tpl=`nl_sidebar` &showarch=`0` &truncLen=`100` &truncSplit=`0`]]\r\n

    Login

    \r\n
    [!WebLogin? &tpl=`FormLogin` &loginhomeid=`[(site_start)]`!]
    \r\n

    Styles

    \r\n {{styles}}
    \r\n
    \r\n

    [*longtitle*]

    \r\n [*#content*]
    \r\n
    \r\n

    {{footer}}

    \r\n

    MySQL: [^qt^], [^q^] request(s), PHP: [^p^], total: [^t^], document retrieved\r\n from [^s^].

    \r\n
    \r\n
    \r\n\r\n\r\n',0),(4,'MODxHost','MODxHost Template',0,1,'',0,'\r\n\r\n\r\n\r\n [(site_name)] | [*pagetitle*]\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    [(site_name)]

    \r\n
    \r\n

    News:

    \r\n [[Ditto? &startID=`2` &summarize=`2` &total=`20` &commentschunk=`Comments` &tpl=`nl_sidebar` &showarch=`0` &truncLen=`100` &truncSplit=`0`]]\r\n
    \r\n

    Most Recent:

    \r\n [[ListIndexer?LIn_root=0]]
    \r\n

    Login:

    \r\n
    [!WebLogin? &tpl=`FormLogin` &loginhomeid=`[(site_start)]`!]
    \r\n

    Meta:

    \r\n

    Valid XHTML

    \r\n

    Valid css

    \r\n

    MODx

    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    [*longtitle*]

    \r\n [*#content*]
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    [(site_name)]

    \r\n
    SEARCH[!AjaxSearch? ajaxSearch=`1` &AS_landing=`8` &moreResultsPage=`8` &showMoreResults=`1` &addJscript=`0` &extract=`0` &AS_showResults=`0`!]
    \r\n
    [[Wayfinder?startId=`0` &outerTpl=`mh.OuterTpl` &innerTpl=`mh.InnerTpl` &rowTpl=`mh.RowTpl` &innerRowTpl=`mh.InnerRowTpl` &firstClass=`first` &hereClass=``]]
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Powered\r\n by MODx  Template © 2006\r\n modXhost.com
    \r\n MySQL: [^qt^], [^q^] request(s), PHP: [^p^], total: [^t^], document retrieved\r\n from [^s^].

    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n\r\n\r\n',0),(5,'MODxHostWithComments','MODxHost Template with comments',0,3,'',0,'\r\n\r\n\r\n\r\n [(site_name)] | [*pagetitle*]\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    [(site_name)]

    \r\n
    \r\n

    News:

    \r\n [[Ditto? &startID=`2` &summarize=`2` &total=`20` &commentschunk=`Comments` &tpl=`nl_sidebar` &showarch=`0` &truncLen=`100` &truncSplit=`0`]]\r\n
    \r\n

    Most Recent:

    \r\n [[ListIndexer?LIn_root=0]]
    \r\n

    Login:

    \r\n
    [!WebLogin? &tpl=`FormLogin` &loginhomeid=`[(site_start)]`!]
    \r\n

    Meta:

    \r\n

    Valid XHTML

    \r\n

    Valid css

    \r\n

    MODx

    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    [*longtitle*]

    \r\n [*#content*]\r\n
    \r\n \r\n[!Jot? &customfields=`name,email` &subscribe=`1` &pagination=`10`!]\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    [(site_name)]

    \r\n
    SEARCH[!AjaxSearch? ajaxSearch=`1` &AS_landing=`8` &moreResultsPage=`8` &showMoreResults=`1` &addJscript=`0` &extract=`0` &AS_showResults=`0`!]
    \r\n
    [[Wayfinder?startId=`0` &outerTpl=`mh.OuterTpl` &innerTpl=`mh.InnerTpl` &rowTpl=`mh.RowTpl` &innerRowTpl=`mh.InnerRowTpl` &firstClass=`first` &hereClass=``]]
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    Powered\r\n by MODx  Template © 2006\r\n modXhost.com
    \r\n MySQL: [^qt^], [^q^] request(s), PHP: [^p^], total: [^t^], document retrieved\r\n from [^s^].

    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n\r\n\r\n',0); /*!40000 ALTER TABLE `modx_site_templates` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_tmplvar_access` -- DROP TABLE IF EXISTS `modx_site_tmplvar_access`; CREATE TABLE `modx_site_tmplvar_access` ( `id` int(10) NOT NULL auto_increment, `tmplvarid` int(10) NOT NULL default '0', `documentgroup` int(10) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Contains data used for template variable access permissions.'; -- -- Dumping data for table `modx_site_tmplvar_access` -- LOCK TABLES `modx_site_tmplvar_access` WRITE; /*!40000 ALTER TABLE `modx_site_tmplvar_access` DISABLE KEYS */; /*!40000 ALTER TABLE `modx_site_tmplvar_access` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_tmplvar_contentvalues` -- DROP TABLE IF EXISTS `modx_site_tmplvar_contentvalues`; CREATE TABLE `modx_site_tmplvar_contentvalues` ( `id` int(11) NOT NULL auto_increment, `tmplvarid` int(10) NOT NULL default '0', `contentid` int(10) NOT NULL default '0', `value` text, PRIMARY KEY (`id`), KEY `idx_tmplvarid` (`tmplvarid`), KEY `idx_id` (`contentid`) ) TYPE=MyISAM COMMENT='Site Template Variables Content Values Link Table'; -- -- Dumping data for table `modx_site_tmplvar_contentvalues` -- LOCK TABLES `modx_site_tmplvar_contentvalues` WRITE; /*!40000 ALTER TABLE `modx_site_tmplvar_contentvalues` DISABLE KEYS */; INSERT INTO `modx_site_tmplvar_contentvalues` VALUES (1,3,9,'demo miniblog howto tutorial posting'),(2,3,18,'demo older posting'); /*!40000 ALTER TABLE `modx_site_tmplvar_contentvalues` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_tmplvar_templates` -- DROP TABLE IF EXISTS `modx_site_tmplvar_templates`; CREATE TABLE `modx_site_tmplvar_templates` ( `tmplvarid` int(10) NOT NULL default '0', `templateid` int(11) NOT NULL default '0', `rank` int(11) NOT NULL default '0', PRIMARY KEY (`tmplvarid`,`templateid`) ) TYPE=MyISAM COMMENT='Site Template Variables Templates Link Table'; -- -- Dumping data for table `modx_site_tmplvar_templates` -- LOCK TABLES `modx_site_tmplvar_templates` WRITE; /*!40000 ALTER TABLE `modx_site_tmplvar_templates` DISABLE KEYS */; INSERT INTO `modx_site_tmplvar_templates` VALUES (1,1,1),(1,3,2),(1,4,3),(2,1,1),(2,3,2),(2,4,3),(3,3,0),(3,4,0),(3,1,0),(3,5,0); /*!40000 ALTER TABLE `modx_site_tmplvar_templates` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_site_tmplvars` -- DROP TABLE IF EXISTS `modx_site_tmplvars`; CREATE TABLE `modx_site_tmplvars` ( `id` int(11) NOT NULL auto_increment, `type` varchar(20) NOT NULL default '', `name` varchar(50) NOT NULL default '', `caption` varchar(80) NOT NULL default '', `description` varchar(255) NOT NULL default '', `editor_type` int(11) NOT NULL default '0', `category` int(11) NOT NULL default '0', `locked` tinyint(4) NOT NULL default '0', `elements` text, `rank` int(11) NOT NULL default '0', `display` varchar(20) NOT NULL default '', `display_params` text, `default_text` text, PRIMARY KEY (`id`), KEY `indx_rank` (`rank`) ) TYPE=MyISAM COMMENT='Site Template Variables'; -- -- Dumping data for table `modx_site_tmplvars` -- LOCK TABLES `modx_site_tmplvars` WRITE; /*!40000 ALTER TABLE `modx_site_tmplvars` DISABLE KEYS */; INSERT INTO `modx_site_tmplvars` VALUES (1,'richtext','blogContent','blogContent','RTE for the new blog entries',0,9,0,'',0,'richtext','&w=383px&h=450px&edt=TinyMCE',''),(2,'text','loginName','loginName','Conditional name for the Login menu item',0,9,0,'',0,'','','@EVAL if ($modx->getLoginUserID()) return \'Logout\'; else return \'Login\';'),(3,'text','documentTags','Tags','Space delimited tags for the current document',0,3,0,'',0,'','',''); /*!40000 ALTER TABLE `modx_site_tmplvars` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_system_eventnames` -- DROP TABLE IF EXISTS `modx_system_eventnames`; CREATE TABLE `modx_system_eventnames` ( `id` int(10) NOT NULL auto_increment, `name` varchar(50) NOT NULL default '', `service` tinyint(4) NOT NULL default '0', `groupname` varchar(20) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='System Event Names.'; -- -- Dumping data for table `modx_system_eventnames` -- LOCK TABLES `modx_system_eventnames` WRITE; /*!40000 ALTER TABLE `modx_system_eventnames` DISABLE KEYS */; INSERT INTO `modx_system_eventnames` VALUES (1,'OnDocPublished',5,''),(2,'OnDocUnPublished',5,''),(3,'OnWebPagePrerender',5,''),(4,'OnWebLogin',3,''),(5,'OnBeforeWebLogout',3,''),(6,'OnWebLogout',3,''),(7,'OnWebSaveUser',3,''),(8,'OnWebDeleteUser',3,''),(9,'OnWebChangePassword',3,''),(10,'OnWebCreateGroup',3,''),(11,'OnManagerLogin',2,''),(12,'OnBeforeManagerLogout',2,''),(13,'OnManagerLogout',2,''),(14,'OnManagerSaveUser',2,''),(15,'OnManagerDeleteUser',2,''),(16,'OnManagerChangePassword',2,''),(17,'OnManagerCreateGroup',2,''),(18,'OnBeforeCacheUpdate',4,''),(19,'OnCacheUpdate',4,''),(20,'OnLoadWebPageCache',4,''),(21,'OnBeforeSaveWebPageCache',4,''),(22,'OnChunkFormPrerender',1,'Chunks'),(23,'OnChunkFormRender',1,'Chunks'),(24,'OnBeforeChunkFormSave',1,'Chunks'),(25,'OnChunkFormSave',1,'Chunks'),(26,'OnBeforeChunkFormDelete',1,'Chunks'),(27,'OnChunkFormDelete',1,'Chunks'),(28,'OnDocFormPrerender',1,'Documents'),(29,'OnDocFormRender',1,'Documents'),(30,'OnBeforeDocFormSave',1,'Documents'),(31,'OnDocFormSave',1,'Documents'),(32,'OnBeforeDocFormDelete',1,'Documents'),(33,'OnDocFormDelete',1,'Documents'),(34,'OnPluginFormPrerender',1,'Plugins'),(35,'OnPluginFormRender',1,'Plugins'),(36,'OnBeforePluginFormSave',1,'Plugins'),(37,'OnPluginFormSave',1,'Plugins'),(38,'OnBeforePluginFormDelete',1,'Plugins'),(39,'OnPluginFormDelete',1,'Plugins'),(40,'OnSnipFormPrerender',1,'Snippets'),(41,'OnSnipFormRender',1,'Snippets'),(42,'OnBeforeSnipFormSave',1,'Snippets'),(43,'OnSnipFormSave',1,'Snippets'),(44,'OnBeforeSnipFormDelete',1,'Snippets'),(45,'OnSnipFormDelete',1,'Snippets'),(46,'OnTempFormPrerender',1,'Templates'),(47,'OnTempFormRender',1,'Templates'),(48,'OnBeforeTempFormSave',1,'Templates'),(49,'OnTempFormSave',1,'Templates'),(50,'OnBeforeTempFormDelete',1,'Templates'),(51,'OnTempFormDelete',1,'Templates'),(52,'OnTVFormPrerender',1,'Template Variables'),(53,'OnTVFormRender',1,'Template Variables'),(54,'OnBeforeTVFormSave',1,'Template Variables'),(55,'OnTVFormSave',1,'Template Variables'),(56,'OnBeforeTVFormDelete',1,'Template Variables'),(57,'OnTVFormDelete',1,'Template Variables'),(58,'OnUserFormPrerender',1,'Users'),(59,'OnUserFormRender',1,'Users'),(60,'OnBeforeUserFormSave',1,'Users'),(61,'OnUserFormSave',1,'Users'),(62,'OnBeforeUserFormDelete',1,'Users'),(63,'OnUserFormDelete',1,'Users'),(64,'OnWUsrFormPrerender',1,'Web Users'),(65,'OnWUsrFormRender',1,'Web Users'),(66,'OnBeforeWUsrFormSave',1,'Web Users'),(67,'OnWUsrFormSave',1,'Web Users'),(68,'OnBeforeWUsrFormDelete',1,'Web Users'),(69,'OnWUsrFormDelete',1,'Web Users'),(70,'OnSiteRefresh',1,''),(71,'OnFileManagerUpload',1,''),(72,'OnModFormPrerender',1,'Modules'),(73,'OnModFormRender',1,'Modules'),(74,'OnBeforeModFormDelete',1,'Modules'),(75,'OnModFormDelete',1,'Modules'),(76,'OnBeforeModFormSave',1,'Modules'),(77,'OnModFormSave',1,'Modules'),(78,'OnBeforeWebLogin',3,''),(79,'OnWebAuthentication',3,''),(80,'OnBeforeManagerLogin',2,''),(81,'OnManagerAuthentication',2,''),(82,'OnSiteSettingsRender',1,'System Settings'),(83,'OnFriendlyURLSettingsRender',1,'System Settings'),(84,'OnUserSettingsRender',1,'System Settings'),(85,'OnInterfaceSettingsRender',1,'System Settings'),(86,'OnMiscSettingsRender',1,'System Settings'),(87,'OnRichTextEditorRegister',1,'RichText Editor'),(88,'OnRichTextEditorInit',1,'RichText Editor'),(89,'OnManagerPageInit',2,''),(90,'OnWebPageInit',5,''),(91,'OnLoadWebDocument',5,''),(92,'OnParseDocument',5,''),(93,'OnManagerLoginFormRender',2,''),(94,'OnWebPageComplete',5,''),(95,'OnLogPageHit',5,''),(96,'OnBeforeManagerPageInit',2,''),(97,'OnBeforeEmptyTrash',1,'Documents'),(98,'OnEmptyTrash',1,'Documents'),(99,'OnManagerLoginFormPrerender',2,''),(200,'OnCreateDocGroup',1,'Documents'),(999,'OnPageUnauthorized',1,''),(1000,'OnPageNotFound',1,''); /*!40000 ALTER TABLE `modx_system_eventnames` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_system_settings` -- DROP TABLE IF EXISTS `modx_system_settings`; CREATE TABLE `modx_system_settings` ( `setting_name` varchar(50) NOT NULL default '', `setting_value` text, UNIQUE KEY `setting_name` (`setting_name`) ) TYPE=MyISAM COMMENT='Contains Content Manager settings.'; -- -- Dumping data for table `modx_system_settings` -- LOCK TABLES `modx_system_settings` WRITE; /*!40000 ALTER TABLE `modx_system_settings` DISABLE KEYS */; INSERT INTO `modx_system_settings` VALUES ('manager_theme','MODxLight'),('settings_version','0.9.6'),('server_offset_time','0'),('server_protocol','http'),('manager_language','english'),('modx_charset','UTF-8'),('site_name','Where looks can kill!'),('site_start','1'),('error_page','7'),('unauthorized_page','4'),('site_status','1'),('site_unavailable_message','The site is currently unavailable'),('track_visitors','0'),('resolve_hostnames','0'),('top_howmany','10'),('default_template','1'),('old_template','1'),('publish_default','0'),('cache_default','1'),('search_default','1'),('friendly_urls','0'),('friendly_url_prefix',''),('friendly_url_suffix','.html'),('friendly_alias_urls','1'),('use_alias_path','0'),('use_udperms','1'),('udperms_allowroot','0'),('failed_login_attempts','3'),('blocked_minutes','60'),('use_captcha','0'),('captcha_words','MODx,Access,Better,BitCode,Cache,Desc,Design,Excell,Enjoy,URLs,TechView,Gerald,Griff,Humphrey,Holiday,Intel,Integration,Joystick,Join(),Tattoo,Genetic,Light,Likeness,Marit,Maaike,Niche,Netherlands,Ordinance,Oscillo,Parser,Phusion,Query,Question,Regalia,Righteous,Snippet,Sentinel,Template,Thespian,Unity,Enterprise,Verily,Veri,Website,WideWeb,Yap,Yellow,Zebra,Zygote'),('emailsender','team@killerlooks.org'),('emailsubject','Your login details'),('signupemail_message','Hello [+uid+] \r\n\r\nHere are your login details for [+sname+] Content Manager:\r\n\r\nUsername: [+uid+]\r\nPassword: [+pwd+]\r\n\r\nOnce you log into the Content Manager at [+surl+], you can change your password.\r\n\r\nRegards,\r\nSite Administrator'),('websignupemail_message','Hello [+uid+] \r\n\r\nHere are your login details for [+sname+]:\r\n\r\nUsername: [+uid+]\r\nPassword: [+pwd+]\r\n\r\nOnce you log into [+sname+] at [+surl+], you can change your password.\r\n\r\nRegards,\r\nSite Administrator'),('webpwdreminder_message','Hello [+uid+]\r\n\r\nTo active you new password click the following link:\r\n\r\n[+surl+]\r\n\r\nIf successful you can use the following password to login:\r\n\r\nPassword:[+pwd+]\r\n\r\nIf you did not request this email then please ignore it.\r\n\r\nRegards,\r\nSite Administrator'),('number_of_logs','100'),('number_of_messages','30'),('number_of_results','20'),('use_editor','1'),('use_browser','1'),('rb_base_dir','/homepages/12/d198769686/htdocs/modx-0.9.6/assets/'),('rb_base_url','assets/'),('which_editor','TinyMCE'),('fe_editor_lang','english'),('fck_editor_toolbar','standard'),('fck_editor_autolang','0'),('editor_css_path',''),('editor_css_selectors',''),('strip_image_paths','1'),('upload_images','jpg,jpeg,png,gif,psd,ico,bmp'),('upload_media','mp3,wav,au,wmv,avi,mpg,mpeg'),('upload_flash','swf,fla'),('upload_files','txt,php,html,htm,xml,js,css,cache,zip,gz,rar,z,tgz,tar,htaccess,mp3,mp4,aac,wav,au,wmv,avi,mpg,mpeg,pdf,doc,xls,txt'),('upload_maxsize','1048576'),('new_file_permissions','0644'),('new_folder_permissions','0755'),('show_preview','0'),('filemanager_path','/homepages/12/d198769686/htdocs/modx-0.9.6/'),('theme_refresher','1188848193000'),('manager_layout','4'),('custom_contenttype','text/css,text/html,text/javascript,text/plain,text/xml'),('auto_menuindex','1'),('session.cookie.lifetime','604800'),('mail_check_timeperiod','60'),('manager_lang_attribute','en'),('manager_direction','ltr'),('tinymce_editor_theme','editor'),('tinymce_custom_plugins','style,advimage,advlink,searchreplace,print,contextmenu,paste,fullscreen,nonbreaking,xhtmlxtras,visualchars,media'),('tinymce_custom_buttons1','undo,redo,selectall,separator,pastetext,pasteword,separator,search,replace,separator,nonbreaking,hr,charmap,separator,image,link,unlink,anchor,media,separator,cleanup,removeformat,separator,fullscreen,print,code,help'),('tinymce_custom_buttons2','bold,italic,underline,strikethrough,sub,sup,separator,bullist,numlist,outdent,indent,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,styleselect,formatselect,separator,styleprops'),('tree_show_protected','0'),('site_id','46cf052c7e9fa'),('xhtml_urls','0'),('site_unavailable_page',''),('txt_custom_contenttype',''),('allow_duplicate_alias','0'),('automatic_alias','0'),('tinymce_custom_buttons3',''),('tinymce_custom_buttons4',''),('tinymce_css_selectors',''); /*!40000 ALTER TABLE `modx_system_settings` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_user_attributes` -- DROP TABLE IF EXISTS `modx_user_attributes`; CREATE TABLE `modx_user_attributes` ( `id` int(10) NOT NULL auto_increment, `internalKey` int(10) NOT NULL default '0', `fullname` varchar(100) NOT NULL default '', `role` int(10) NOT NULL default '0', `email` varchar(100) NOT NULL default '', `phone` varchar(100) NOT NULL default '', `mobilephone` varchar(100) NOT NULL default '', `blocked` int(1) NOT NULL default '0', `blockeduntil` int(11) NOT NULL default '0', `blockedafter` int(11) NOT NULL default '0', `logincount` int(11) NOT NULL default '0', `lastlogin` int(11) NOT NULL default '0', `thislogin` int(11) NOT NULL default '0', `failedlogincount` int(10) NOT NULL default '0', `sessionid` varchar(100) NOT NULL default '', `dob` int(10) NOT NULL default '0', `gender` int(1) NOT NULL default '0', `country` varchar(5) NOT NULL default '', `state` varchar(25) NOT NULL default '', `zip` varchar(25) NOT NULL default '', `fax` varchar(100) NOT NULL default '', `photo` varchar(255) NOT NULL default '', `comment` varchar(255) NOT NULL default '', PRIMARY KEY (`id`), KEY `userid` (`internalKey`) ) TYPE=MyISAM COMMENT='Contains information about the backend users.'; -- -- Dumping data for table `modx_user_attributes` -- LOCK TABLES `modx_user_attributes` WRITE; /*!40000 ALTER TABLE `modx_user_attributes` DISABLE KEYS */; INSERT INTO `modx_user_attributes` VALUES (1,1,'Default admin account',1,'admin@killerlooks.org','','',0,0,0,7,1198791554,1198791589,0,'49042c489584c3446422db283bbe36fd',0,0,'','','','','',''); /*!40000 ALTER TABLE `modx_user_attributes` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_user_messages` -- DROP TABLE IF EXISTS `modx_user_messages`; CREATE TABLE `modx_user_messages` ( `id` int(10) NOT NULL auto_increment, `type` varchar(15) NOT NULL default '', `subject` varchar(60) NOT NULL default '', `message` text, `sender` int(10) NOT NULL default '0', `recipient` int(10) NOT NULL default '0', `private` tinyint(4) NOT NULL default '0', `postdate` int(20) NOT NULL default '0', `messageread` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Contains messages for the Content Manager messaging system.'; -- -- Dumping data for table `modx_user_messages` -- LOCK TABLES `modx_user_messages` WRITE; /*!40000 ALTER TABLE `modx_user_messages` DISABLE KEYS */; /*!40000 ALTER TABLE `modx_user_messages` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_user_roles` -- DROP TABLE IF EXISTS `modx_user_roles`; CREATE TABLE `modx_user_roles` ( `id` int(10) NOT NULL auto_increment, `name` varchar(50) NOT NULL default '', `description` varchar(255) NOT NULL default '', `frames` int(1) NOT NULL default '0', `home` int(1) NOT NULL default '0', `view_document` int(1) NOT NULL default '0', `new_document` int(1) NOT NULL default '0', `save_document` int(1) NOT NULL default '0', `publish_document` int(1) NOT NULL default '0', `delete_document` int(1) NOT NULL default '0', `action_ok` int(1) NOT NULL default '0', `logout` int(1) NOT NULL default '0', `help` int(1) NOT NULL default '0', `messages` int(1) NOT NULL default '0', `new_user` int(1) NOT NULL default '0', `edit_user` int(1) NOT NULL default '0', `logs` int(1) NOT NULL default '0', `edit_parser` int(1) NOT NULL default '0', `save_parser` int(1) NOT NULL default '0', `edit_template` int(1) NOT NULL default '0', `settings` int(1) NOT NULL default '0', `credits` int(1) NOT NULL default '0', `new_template` int(1) NOT NULL default '0', `save_template` int(1) NOT NULL default '0', `delete_template` int(1) NOT NULL default '0', `edit_snippet` int(1) NOT NULL default '0', `new_snippet` int(1) NOT NULL default '0', `save_snippet` int(1) NOT NULL default '0', `delete_snippet` int(1) NOT NULL default '0', `edit_chunk` int(1) NOT NULL default '0', `new_chunk` int(1) NOT NULL default '0', `save_chunk` int(1) NOT NULL default '0', `delete_chunk` int(1) NOT NULL default '0', `empty_cache` int(1) NOT NULL default '0', `edit_document` int(1) NOT NULL default '0', `change_password` int(1) NOT NULL default '0', `error_dialog` int(1) NOT NULL default '0', `about` int(1) NOT NULL default '0', `file_manager` int(1) NOT NULL default '0', `save_user` int(1) NOT NULL default '0', `delete_user` int(1) NOT NULL default '0', `save_password` int(11) NOT NULL default '0', `edit_role` int(1) NOT NULL default '0', `save_role` int(1) NOT NULL default '0', `delete_role` int(1) NOT NULL default '0', `new_role` int(1) NOT NULL default '0', `access_permissions` int(1) NOT NULL default '0', `bk_manager` int(1) NOT NULL default '0', `new_plugin` int(1) NOT NULL default '0', `edit_plugin` int(1) NOT NULL default '0', `save_plugin` int(1) NOT NULL default '0', `delete_plugin` int(1) NOT NULL default '0', `new_module` int(1) NOT NULL default '0', `edit_module` int(1) NOT NULL default '0', `save_module` int(1) NOT NULL default '0', `delete_module` int(1) NOT NULL default '0', `exec_module` int(1) NOT NULL default '0', `view_eventlog` int(1) NOT NULL default '0', `delete_eventlog` int(1) NOT NULL default '0', `manage_metatags` int(1) NOT NULL default '0', `edit_doc_metatags` int(1) NOT NULL default '0', `new_web_user` int(1) NOT NULL default '0', `edit_web_user` int(1) NOT NULL default '0', `save_web_user` int(1) NOT NULL default '0', `delete_web_user` int(1) NOT NULL default '0', `web_access_permissions` int(1) NOT NULL default '0', `view_unpublished` int(1) NOT NULL default '0', `import_static` int(1) NOT NULL default '0', `export_static` int(1) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Contains information describing the user roles.'; -- -- Dumping data for table `modx_user_roles` -- LOCK TABLES `modx_user_roles` WRITE; /*!40000 ALTER TABLE `modx_user_roles` DISABLE KEYS */; INSERT INTO `modx_user_roles` VALUES (1,'Administrator','Site administrators have full access to all functions',1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1); /*!40000 ALTER TABLE `modx_user_roles` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_user_settings` -- DROP TABLE IF EXISTS `modx_user_settings`; CREATE TABLE `modx_user_settings` ( `user` int(11) NOT NULL default '0', `setting_name` varchar(50) NOT NULL default '', `setting_value` text, KEY `setting_name` (`setting_name`), KEY `user` (`user`) ) TYPE=MyISAM COMMENT='Contains backend user settings.'; -- -- Dumping data for table `modx_user_settings` -- LOCK TABLES `modx_user_settings` WRITE; /*!40000 ALTER TABLE `modx_user_settings` DISABLE KEYS */; /*!40000 ALTER TABLE `modx_user_settings` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_web_groups` -- DROP TABLE IF EXISTS `modx_web_groups`; CREATE TABLE `modx_web_groups` ( `id` int(10) NOT NULL auto_increment, `webgroup` int(10) NOT NULL default '0', `webuser` int(10) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Contains data used for web access permissions.'; -- -- Dumping data for table `modx_web_groups` -- LOCK TABLES `modx_web_groups` WRITE; /*!40000 ALTER TABLE `modx_web_groups` DISABLE KEYS */; INSERT INTO `modx_web_groups` VALUES (1,1,1); /*!40000 ALTER TABLE `modx_web_groups` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_web_user_attributes` -- DROP TABLE IF EXISTS `modx_web_user_attributes`; CREATE TABLE `modx_web_user_attributes` ( `id` int(10) NOT NULL auto_increment, `internalKey` int(10) NOT NULL default '0', `fullname` varchar(100) NOT NULL default '', `role` int(10) NOT NULL default '0', `email` varchar(100) NOT NULL default '', `phone` varchar(100) NOT NULL default '', `mobilephone` varchar(100) NOT NULL default '', `blocked` int(1) NOT NULL default '0', `blockeduntil` int(11) NOT NULL default '0', `blockedafter` int(11) NOT NULL default '0', `logincount` int(11) NOT NULL default '0', `lastlogin` int(11) NOT NULL default '0', `thislogin` int(11) NOT NULL default '0', `failedlogincount` int(10) NOT NULL default '0', `sessionid` varchar(100) NOT NULL default '', `dob` int(10) NOT NULL default '0', `gender` int(1) NOT NULL default '0', `country` varchar(5) NOT NULL default '', `state` varchar(25) NOT NULL default '', `zip` varchar(25) NOT NULL default '', `fax` varchar(100) NOT NULL default '', `photo` varchar(255) NOT NULL default '', `comment` varchar(255) NOT NULL default '', PRIMARY KEY (`id`), KEY `userid` (`internalKey`) ) TYPE=MyISAM COMMENT='Contains information for web users.'; -- -- Dumping data for table `modx_web_user_attributes` -- LOCK TABLES `modx_web_user_attributes` WRITE; /*!40000 ALTER TABLE `modx_web_user_attributes` DISABLE KEYS */; INSERT INTO `modx_web_user_attributes` VALUES (1,1,'Site Admin',0,'you@yourdomain.com','','',0,0,0,25,1129049624,1129063123,0,'f426f3209310abfddf2ee00e929774b4',0,0,'','','','','',''); /*!40000 ALTER TABLE `modx_web_user_attributes` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_web_user_settings` -- DROP TABLE IF EXISTS `modx_web_user_settings`; CREATE TABLE `modx_web_user_settings` ( `webuser` int(11) NOT NULL default '0', `setting_name` varchar(50) NOT NULL default '', `setting_value` text, KEY `setting_name` (`setting_name`), KEY `webuserid` (`webuser`) ) TYPE=MyISAM COMMENT='Contains web user settings.'; -- -- Dumping data for table `modx_web_user_settings` -- LOCK TABLES `modx_web_user_settings` WRITE; /*!40000 ALTER TABLE `modx_web_user_settings` DISABLE KEYS */; /*!40000 ALTER TABLE `modx_web_user_settings` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_web_users` -- DROP TABLE IF EXISTS `modx_web_users`; CREATE TABLE `modx_web_users` ( `id` int(10) NOT NULL auto_increment, `username` varchar(100) NOT NULL default '', `password` varchar(100) NOT NULL default '', `cachepwd` varchar(100) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`) ) TYPE=MyISAM; -- -- Dumping data for table `modx_web_users` -- LOCK TABLES `modx_web_users` WRITE; /*!40000 ALTER TABLE `modx_web_users` DISABLE KEYS */; INSERT INTO `modx_web_users` VALUES (1,'siteadmin','5f4dcc3b5aa765d61d8327deb882cf99',''); /*!40000 ALTER TABLE `modx_web_users` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_webgroup_access` -- DROP TABLE IF EXISTS `modx_webgroup_access`; CREATE TABLE `modx_webgroup_access` ( `id` int(10) NOT NULL auto_increment, `webgroup` int(10) NOT NULL default '0', `documentgroup` int(10) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM COMMENT='Contains data used for web access permissions.'; -- -- Dumping data for table `modx_webgroup_access` -- LOCK TABLES `modx_webgroup_access` WRITE; /*!40000 ALTER TABLE `modx_webgroup_access` DISABLE KEYS */; INSERT INTO `modx_webgroup_access` VALUES (1,1,1); /*!40000 ALTER TABLE `modx_webgroup_access` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `modx_webgroup_names` -- DROP TABLE IF EXISTS `modx_webgroup_names`; CREATE TABLE `modx_webgroup_names` ( `id` int(10) NOT NULL auto_increment, `name` varchar(255) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) TYPE=MyISAM COMMENT='Contains data used for web access permissions.'; -- -- Dumping data for table `modx_webgroup_names` -- LOCK TABLES `modx_webgroup_names` WRITE; /*!40000 ALTER TABLE `modx_webgroup_names` DISABLE KEYS */; INSERT INTO `modx_webgroup_names` VALUES (1,'Site Admins'),(2,'Registered Users'); /*!40000 ALTER TABLE `modx_webgroup_names` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2008-04-02 12:53:01