Initial commit to new repo (carried over from: https://github.com/ryancramerdesign/ProcessWire/tree/devns)
4
site-default/assets/index.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
// Intentionally left blank to test that htaccess rewrite rules are working.
|
||||
// Accessing this file from http should produce a '403 forbidden' error,
|
||||
// since all PHP files are blocked under /assets/.
|
66
site-default/config.php
Executable file
@@ -0,0 +1,66 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
/**
|
||||
* ProcessWire Configuration File
|
||||
*
|
||||
* Site-specific configuration for ProcessWire
|
||||
*
|
||||
* Please see the file /wire/config.php which contains all configuration options you may
|
||||
* specify here. Simply copy any of the configuration options from that file and paste
|
||||
* them into this file in order to modify them.
|
||||
*
|
||||
* SECURITY NOTICE
|
||||
* In non-dedicated environments, you should lock down the permissions of this file so
|
||||
* that it cannot be seen by other users on the system. For more information, please
|
||||
* see the config.php section at: https://processwire.com/docs/security/file-permissions/
|
||||
*
|
||||
* This file is licensed under the MIT license
|
||||
* https://processwire.com/about/license/mit/
|
||||
*
|
||||
* ProcessWire 3.x, Copyright 2016 by Ryan Cramer
|
||||
* https://processwire.com
|
||||
*
|
||||
*/
|
||||
|
||||
if(!defined("PROCESSWIRE")) die();
|
||||
|
||||
/*** SITE CONFIG *************************************************************************/
|
||||
|
||||
/**
|
||||
* Enable debug mode?
|
||||
*
|
||||
* Debug mode causes additional info to appear for use during dev and debugging.
|
||||
* This is almost always recommended for sites in development. However, you should
|
||||
* always have this disabled for live/production sites.
|
||||
*
|
||||
* @var bool
|
||||
*
|
||||
*/
|
||||
$config->debug = false;
|
||||
|
||||
/**
|
||||
* Prepend template file
|
||||
*
|
||||
* PHP file in /site/templates/ that will be loaded before each page's template file.
|
||||
* Example: _init.php
|
||||
*
|
||||
* @var string
|
||||
*
|
||||
*/
|
||||
$config->prependTemplateFile = '_init.php';
|
||||
|
||||
/**
|
||||
* Append template file
|
||||
*
|
||||
* PHP file in /site/templates/ that will be loaded after each page's template file.
|
||||
* Example: _main.php
|
||||
*
|
||||
* @var string
|
||||
*
|
||||
*/
|
||||
$config->appendTemplateFile = '_main.php';
|
||||
|
||||
|
||||
|
||||
|
||||
/*** INSTALLER CONFIG ********************************************************************/
|
10
site-default/finished.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
/**
|
||||
* ProcessWire Request Finished
|
||||
* ============================
|
||||
* This finished.php file is called after ProcessWire has finished serving the current
|
||||
* request. This occurs after the current page has been rendered. This file receives a
|
||||
* copy of all ProcessWire API variables.
|
||||
*
|
||||
*/
|
15
site-default/init.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
/**
|
||||
* ProcessWire Bootstrap Initialization
|
||||
* ====================================
|
||||
* This init.php file is called during ProcessWire bootstrap initialization process.
|
||||
* This occurs after all autoload modules have been initialized, but before the current page
|
||||
* has been determined. This is a good place to attach hooks. You may place whatever you'd
|
||||
* like in this file. For example:
|
||||
*
|
||||
* $wire->addHookAfter('Page::render', function($event) {
|
||||
* $event->return = str_replace("</body>", "<p>Hello World</p></body>", $event->return);
|
||||
* });
|
||||
*
|
||||
*/
|
BIN
site-default/install/files/1/airport_cartoon_3.0x100.jpg
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
site-default/install/files/1/airport_cartoon_3.400x0.jpg
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
site-default/install/files/1/airport_cartoon_3.jpg
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
site-default/install/files/1/rough_cartoon_puppet.0x100.jpg
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
site-default/install/files/1/rough_cartoon_puppet.400x0.jpg
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
site-default/install/files/1/rough_cartoon_puppet.jpg
Normal file
After Width: | Height: | Size: 116 KiB |
BIN
site-default/install/files/1002/psych_cartoon_4-20.0x100.jpg
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
site-default/install/files/1002/psych_cartoon_4-20.400x0.jpg
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
site-default/install/files/1002/psych_cartoon_4-20.jpg
Normal file
After Width: | Height: | Size: 160 KiB |
1
site-default/install/files/README.txt
Normal file
@@ -0,0 +1 @@
|
||||
This file is here to ensure Git adds the dir to the repo. You may delete this file.
|
9
site-default/install/info.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php if(!defined("PROCESSWIRE_INSTALL")) die();
|
||||
$info = array(
|
||||
'title' => "Default (Intermediate Edition)",
|
||||
'summary' =>
|
||||
"A minimal responsive site profile that serves as a good starting point for new sites or for learning about ProcessWire. " .
|
||||
"This intermediate edition is almost identical to the beginner edition, except that it focuses on using alternate and more " .
|
||||
"advanced strategies for template files.",
|
||||
'screenshot' => "screenshot.png"
|
||||
);
|
538
site-default/install/install.sql
Normal file
@@ -0,0 +1,538 @@
|
||||
--- WireDatabaseBackup {"time":"2014-08-27 12:18:44","user":"","dbName":"pw2_blank","description":"","tables":[],"excludeTables":["pages_drafts","pages_roles","permissions","roles","roles_permissions","users","users_roles","user","role","permission"],"excludeCreateTables":[],"excludeExportTables":["field_roles","field_permissions","field_email","field_pass","caches","session_login_throttle","page_path_history"]}
|
||||
|
||||
DROP TABLE IF EXISTS `caches`;
|
||||
CREATE TABLE `caches` (
|
||||
`name` varchar(255) NOT NULL,
|
||||
`data` mediumtext NOT NULL,
|
||||
`expires` datetime NOT NULL,
|
||||
PRIMARY KEY (`name`),
|
||||
KEY `expires` (`expires`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
DROP TABLE IF EXISTS `field_body`;
|
||||
CREATE TABLE `field_body` (
|
||||
`pages_id` int(10) unsigned NOT NULL,
|
||||
`data` mediumtext NOT NULL,
|
||||
PRIMARY KEY (`pages_id`),
|
||||
FULLTEXT KEY `data` (`data`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `field_body` (`pages_id`, `data`) VALUES('27', '<h3>The page you were looking for is not found.</h3><p>Please use our search engine or navigation above to find the page.</p>');
|
||||
INSERT INTO `field_body` (`pages_id`, `data`) VALUES('1', '<h2>What is ProcessWire?</h2>\r\n\r\n<p>ProcessWire gives you full control over your fields, templates and markup. It provides a powerful template system that works the way you do. Not to mention, ProcessWire\'s API makes working with your content easy and enjoyable. <a href=\"http://processwire.com\">Learn more</a></p>\r\n\r\n<h3>About this site profile</h3>\r\n\r\n<p>This is a basic minimal site for you to use in developing your own site or to learn from. There are a few pages here to serve as examples, but this site profile does not make any attempt to demonstrate all that ProcessWire can do. To learn more or ask questions, visit the <a href=\"http://www.processwire.com/talk/\" target=\"_blank\">ProcessWire forums</a> or <a href=\"http://modules.processwire.com/categories/site-profile/\">browse more site profiles</a>. If you are building a new site, this minimal profile is a good place to start. You may use these existing templates and design as they are, or you may replace them entirely.</p>\r\n\r\n<h3>Browse the site</h3>');
|
||||
INSERT INTO `field_body` (`pages_id`, `data`) VALUES('1002', '<h2>Ut capio feugiat saepius torqueo olim</h2>\r\n\r\n<h3>In utinam facilisi eum vicis feugait nimis</h3>\r\n\r\n<p>Iusto incassum appellatio cui macto genitus vel. Lobortis aliquam luctus, roto enim, imputo wisi tamen. Ratis odio, genitus acsi, neo illum consequat consectetuer ut.</p>\r\n\r\n<blockquote>\r\n<p>Wisi fere virtus cogo, ex ut vel nullus similis vel iusto. Tation incassum adsum in, quibus capto premo diam suscipere facilisi. Uxor laoreet mos capio premo feugait ille et. Pecus abigo immitto epulae duis vel. Neque causa, indoles verto, decet ingenium dignissim.</p>\r\n</blockquote>\r\n\r\n<p>Patria iriure vel vel autem proprius indoles ille sit. Tation blandit refoveo, accumsan ut ulciscor lucidus inhibeo capto aptent opes, foras.</p>\r\n\r\n<h3>Dolore ea valde refero feugait utinam luctus</h3>\r\n\r\n<p><img alt=\"Copyright by Austin Cramer for DesignIntelligence. This is a placeholder while he makes new ones for us.\" class=\"align_left\" src=\"/site/assets/files/1002/psych_cartoon_4-20.400x0.jpg\" />Usitas, nostrud transverbero, in, amet, nostrud ad. Ex feugiat opto diam os aliquam regula lobortis dolore ut ut quadrum. Esse eu quis nunc jugis iriure volutpat wisi, fere blandit inhibeo melior, hendrerit, saluto velit. Eu bene ideo dignissim delenit accumsan nunc. Usitas ille autem camur consequat typicus feugait elit ex accumsan nutus accumsan nimis pagus, occuro. Immitto populus, qui feugiat opto pneum letalis paratus. Mara conventio torqueo nibh caecus abigo sit eum brevitas. Populus, duis ex quae exerci hendrerit, si antehabeo nobis, consequat ea praemitto zelus.</p>\r\n\r\n<p>Immitto os ratis euismod conventio erat jus caecus sudo. code test Appellatio consequat, et ibidem ludus nulla dolor augue abdo tego euismod plaga lenis. Sit at nimis venio venio tego os et pecus enim pneum magna nobis ad pneum. Saepius turpis probo refero molior nonummy aliquam neque appellatio jus luctus acsi. Ulciscor refero pagus imputo eu refoveo valetudo duis dolore usitas. Consequat suscipere quod torqueo ratis ullamcorper, dolore lenis, letalis quia quadrum plaga minim.</p>');
|
||||
INSERT INTO `field_body` (`pages_id`, `data`) VALUES('1001', '<h2>Si lobortis singularis genitus ibidem saluto.</h2><p>Dolore ad nunc, mos accumsan paratus duis suscipit luptatum facilisis macto uxor iaceo quadrum. Demoveo, appellatio elit neque ad commodo ea. Wisi, iaceo, tincidunt at commoveo rusticus et, ludus. Feugait at blandit bene blandit suscipere abdo duis ideo bis commoveo pagus ex, velit. Consequat commodo roto accumsan, duis transverbero.</p>');
|
||||
INSERT INTO `field_body` (`pages_id`, `data`) VALUES('1004', '<h2>Pertineo vel dignissim, natu letalis fere odio</h2><p>Magna in gemino, gilvus iusto capto jugis abdo mos aptent acsi qui. Utrum inhibeo humo humo duis quae. Lucidus paulatim facilisi scisco quibus hendrerit conventio adsum.</p><h3>Si lobortis singularis genitus ibidem saluto</h3><ul><li>Feugiat eligo foras ex elit sed indoles hos elit ex antehabeo defui et nostrud.</li><li>Letatio valetudo multo consequat inhibeo ille dignissim pagus et in quadrum eum eu.</li><li>Aliquam si consequat, ut nulla amet et turpis exerci, adsum luctus ne decet, delenit.</li><li>Commoveo nunc diam valetudo cui, aptent commoveo at obruo uxor nulla aliquip augue.</li></ul><p>Iriure, ex velit, praesent vulpes delenit capio vero gilvus inhibeo letatio aliquip metuo qui eros. Transverbero demoveo euismod letatio torqueo melior. Ut odio in suscipit paulatim amet huic letalis suscipere eros causa, letalis magna.</p><ol><li>Feugiat eligo foras ex elit sed indoles hos elit ex antehabeo defui et nostrud.</li><li>Letatio valetudo multo consequat inhibeo ille dignissim pagus et in quadrum eum eu.</li><li>Aliquam si consequat, ut nulla amet et turpis exerci, adsum luctus ne decet, delenit.</li><li>Commoveo nunc diam valetudo cui, aptent commoveo at obruo uxor nulla aliquip augue.</li></ol>');
|
||||
|
||||
DROP TABLE IF EXISTS `field_email`;
|
||||
CREATE TABLE `field_email` (
|
||||
`pages_id` int(10) unsigned NOT NULL,
|
||||
`data` varchar(255) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`pages_id`),
|
||||
KEY `data_exact` (`data`),
|
||||
FULLTEXT KEY `data` (`data`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
DROP TABLE IF EXISTS `field_headline`;
|
||||
CREATE TABLE `field_headline` (
|
||||
`pages_id` int(10) unsigned NOT NULL,
|
||||
`data` text NOT NULL,
|
||||
PRIMARY KEY (`pages_id`),
|
||||
FULLTEXT KEY `data` (`data`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `field_headline` (`pages_id`, `data`) VALUES('1', 'Minimal Site Profile');
|
||||
INSERT INTO `field_headline` (`pages_id`, `data`) VALUES('1001', 'About Us');
|
||||
INSERT INTO `field_headline` (`pages_id`, `data`) VALUES('27', '404 Page Not Found');
|
||||
|
||||
DROP TABLE IF EXISTS `field_images`;
|
||||
CREATE TABLE `field_images` (
|
||||
`pages_id` int(10) unsigned NOT NULL,
|
||||
`data` varchar(255) NOT NULL,
|
||||
`sort` int(10) unsigned NOT NULL,
|
||||
`description` text NOT NULL,
|
||||
`modified` datetime DEFAULT NULL,
|
||||
`created` datetime DEFAULT NULL,
|
||||
PRIMARY KEY (`pages_id`,`sort`),
|
||||
KEY `data` (`data`),
|
||||
KEY `modified` (`modified`),
|
||||
KEY `created` (`created`),
|
||||
FULLTEXT KEY `description` (`description`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `field_images` (`pages_id`, `data`, `sort`, `description`, `modified`, `created`) VALUES('1002', 'psych_cartoon_4-20.jpg', '0', 'Copyright by Austin Cramer for DesignIntelligence. This is a placeholder while he makes new ones for us.', NOW(), NOW());
|
||||
INSERT INTO `field_images` (`pages_id`, `data`, `sort`, `description`, `modified`, `created`) VALUES('1', 'rough_cartoon_puppet.jpg', '1', 'Copyright by Austin Cramer for DesignIntelligence. This is a placeholder while he makes new ones for us.', NOW(), NOW());
|
||||
INSERT INTO `field_images` (`pages_id`, `data`, `sort`, `description`, `modified`, `created`) VALUES('1', 'airport_cartoon_3.jpg', '0', 'Copyright by Austin Cramer for DesignIntelligence. This is a placeholder while he makes new ones for us.', NOW(), NOW());
|
||||
|
||||
DROP TABLE IF EXISTS `field_pass`;
|
||||
CREATE TABLE `field_pass` (
|
||||
`pages_id` int(10) unsigned NOT NULL,
|
||||
`data` char(40) NOT NULL,
|
||||
`salt` char(32) NOT NULL,
|
||||
PRIMARY KEY (`pages_id`),
|
||||
KEY `data` (`data`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=ascii;
|
||||
|
||||
DROP TABLE IF EXISTS `field_permissions`;
|
||||
CREATE TABLE `field_permissions` (
|
||||
`pages_id` int(10) unsigned NOT NULL,
|
||||
`data` int(11) NOT NULL,
|
||||
`sort` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`pages_id`,`sort`),
|
||||
KEY `data` (`data`,`pages_id`,`sort`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
DROP TABLE IF EXISTS `field_process`;
|
||||
CREATE TABLE `field_process` (
|
||||
`pages_id` int(11) NOT NULL DEFAULT '0',
|
||||
`data` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`pages_id`),
|
||||
KEY `data` (`data`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('6', '17');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('3', '12');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('8', '12');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('9', '14');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('10', '7');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('11', '47');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('16', '48');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('300', '104');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('21', '50');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('29', '66');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('23', '10');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('304', '138');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('31', '136');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('22', '76');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('30', '68');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('303', '129');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('2', '87');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('302', '121');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('301', '109');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('28', '76');
|
||||
INSERT INTO `field_process` (`pages_id`, `data`) VALUES('1007', '150');
|
||||
|
||||
DROP TABLE IF EXISTS `field_roles`;
|
||||
CREATE TABLE `field_roles` (
|
||||
`pages_id` int(10) unsigned NOT NULL,
|
||||
`data` int(11) NOT NULL,
|
||||
`sort` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`pages_id`,`sort`),
|
||||
KEY `data` (`data`,`pages_id`,`sort`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
DROP TABLE IF EXISTS `field_sidebar`;
|
||||
CREATE TABLE `field_sidebar` (
|
||||
`pages_id` int(10) unsigned NOT NULL,
|
||||
`data` mediumtext NOT NULL,
|
||||
PRIMARY KEY (`pages_id`),
|
||||
FULLTEXT KEY `data` (`data`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `field_sidebar` (`pages_id`, `data`) VALUES('1', '<h3>About ProcessWire</h3>\r\n\r\n<p>ProcessWire is an open source CMS and web application framework aimed at the needs of designers, developers and their clients.</p>\r\n\r\n<ul>\r\n <li><a href=\"http://processwire.com/talk/\">Support</a> </li>\r\n <li><a href=\"http://processwire.com/docs/\">Documentation</a></li>\r\n <li><a href=\"http://processwire.com/docs/tutorials/\">Tutorials</a></li>\r\n <li><a href=\"http://cheatsheet.processwire.com\">API Cheatsheet</a></li>\r\n <li><a href=\"http://modules.processwire.com\">Modules/Plugins</a></li>\r\n</ul>');
|
||||
INSERT INTO `field_sidebar` (`pages_id`, `data`) VALUES('1002', '<h3>Sudo nullus</h3>\r\n\r\n<p>Et torqueo vulpes vereor luctus augue quod consectetuer antehabeo causa patria tation ex plaga ut. Abluo delenit wisi iriure eros feugiat probo nisl aliquip nisl, patria. Antehabeo esse camur nisl modo utinam. Sudo nullus ventosus ibidem facilisis saepius eum sino pneum, vicis odio voco opto.</p>');
|
||||
|
||||
DROP TABLE IF EXISTS `field_summary`;
|
||||
CREATE TABLE `field_summary` (
|
||||
`pages_id` int(10) unsigned NOT NULL,
|
||||
`data` mediumtext NOT NULL,
|
||||
PRIMARY KEY (`pages_id`),
|
||||
FULLTEXT KEY `data` (`data`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `field_summary` (`pages_id`, `data`) VALUES('1002', 'Dolore ea valde refero feugait utinam luctus. Probo velit commoveo et, delenit praesent, suscipit zelus, hendrerit zelus illum facilisi, regula. ');
|
||||
INSERT INTO `field_summary` (`pages_id`, `data`) VALUES('1001', 'This is a placeholder page with two child pages to serve as an example. ');
|
||||
INSERT INTO `field_summary` (`pages_id`, `data`) VALUES('1005', 'View this template\'s source for a demonstration of how to create a basic site map. ');
|
||||
INSERT INTO `field_summary` (`pages_id`, `data`) VALUES('1004', 'Mos erat reprobo in praesent, mara premo, obruo iustum pecus velit lobortis te sagaciter populus.');
|
||||
INSERT INTO `field_summary` (`pages_id`, `data`) VALUES('1', 'ProcessWire is an open source CMS and web application framework aimed at the needs of designers, developers and their clients. ');
|
||||
|
||||
DROP TABLE IF EXISTS `field_title`;
|
||||
CREATE TABLE `field_title` (
|
||||
`pages_id` int(10) unsigned NOT NULL,
|
||||
`data` text NOT NULL,
|
||||
PRIMARY KEY (`pages_id`),
|
||||
KEY `data_exact` (`data`(255)),
|
||||
FULLTEXT KEY `data` (`data`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('11', 'Templates');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('16', 'Fields');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('22', 'Setup');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('3', 'Pages');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('6', 'Add Page');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('8', 'Tree');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('9', 'Save Sort');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('10', 'Edit Page');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('21', 'Modules');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('29', 'Users');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('30', 'Roles');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('2', 'Admin');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('7', 'Trash');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('27', '404 Page');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('302', 'Insert Link');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('23', 'Login');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('304', 'Profile');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('301', 'Empty Trash');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('300', 'Search');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('303', 'Insert Image');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('28', 'Access');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('31', 'Permissions');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('32', 'Edit pages');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('34', 'Delete pages');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('35', 'Move pages (change parent)');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('36', 'View pages');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('50', 'Sort child pages');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('51', 'Change templates on pages');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('52', 'Administer users');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('53', 'User can update profile/password');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('54', 'Lock or unlock a page');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('1', 'Home');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('1001', 'About');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('1002', 'Child page example 1');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('1000', 'Search');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('1004', 'Child page example 2');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('1005', 'Site Map');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('1006', 'Use Page Lister');
|
||||
INSERT INTO `field_title` (`pages_id`, `data`) VALUES('1007', 'Find');
|
||||
|
||||
DROP TABLE IF EXISTS `fieldgroups`;
|
||||
CREATE TABLE `fieldgroups` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) CHARACTER SET ascii NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name` (`name`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=97 DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `fieldgroups` (`id`, `name`) VALUES('2', 'admin');
|
||||
INSERT INTO `fieldgroups` (`id`, `name`) VALUES('3', 'user');
|
||||
INSERT INTO `fieldgroups` (`id`, `name`) VALUES('4', 'role');
|
||||
INSERT INTO `fieldgroups` (`id`, `name`) VALUES('5', 'permission');
|
||||
INSERT INTO `fieldgroups` (`id`, `name`) VALUES('1', 'home');
|
||||
INSERT INTO `fieldgroups` (`id`, `name`) VALUES('88', 'sitemap');
|
||||
INSERT INTO `fieldgroups` (`id`, `name`) VALUES('83', 'basic-page');
|
||||
INSERT INTO `fieldgroups` (`id`, `name`) VALUES('80', 'search');
|
||||
|
||||
DROP TABLE IF EXISTS `fieldgroups_fields`;
|
||||
CREATE TABLE `fieldgroups_fields` (
|
||||
`fieldgroups_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`fields_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`sort` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`data` text,
|
||||
PRIMARY KEY (`fieldgroups_id`,`fields_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('2', '2', '1', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('2', '1', '0', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('3', '3', '0', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('3', '4', '2', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('4', '5', '0', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('5', '1', '0', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('3', '92', '1', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('1', '1', '0', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('1', '44', '5', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('1', '76', '3', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('80', '1', '0', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('83', '44', '5', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('83', '76', '3', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('1', '78', '1', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('83', '1', '0', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('88', '79', '1', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('1', '79', '2', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('1', '82', '4', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('88', '1', '0', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('83', '82', '4', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('83', '78', '1', NULL);
|
||||
INSERT INTO `fieldgroups_fields` (`fieldgroups_id`, `fields_id`, `sort`, `data`) VALUES('83', '79', '2', NULL);
|
||||
|
||||
DROP TABLE IF EXISTS `fields`;
|
||||
CREATE TABLE `fields` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`type` varchar(128) CHARACTER SET ascii NOT NULL,
|
||||
`name` varchar(255) CHARACTER SET ascii NOT NULL,
|
||||
`flags` int(11) NOT NULL DEFAULT '0',
|
||||
`label` varchar(255) NOT NULL DEFAULT '',
|
||||
`data` text NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name` (`name`),
|
||||
KEY `type` (`type`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=97 DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `fields` (`id`, `type`, `name`, `flags`, `label`, `data`) VALUES('1', 'FieldtypePageTitle', 'title', '13', 'Title', '{\"required\":1,\"textformatters\":[\"TextformatterEntities\"],\"size\":0,\"maxlength\":255}');
|
||||
INSERT INTO `fields` (`id`, `type`, `name`, `flags`, `label`, `data`) VALUES('2', 'FieldtypeModule', 'process', '25', 'Process', '{\"description\":\"The process that is executed on this page. Since this is mostly used by ProcessWire internally, it is recommended that you don\'t change the value of this unless adding your own pages in the admin.\",\"collapsed\":1,\"required\":1,\"moduleTypes\":[\"Process\"],\"permanent\":1}');
|
||||
INSERT INTO `fields` (`id`, `type`, `name`, `flags`, `label`, `data`) VALUES('3', 'FieldtypePassword', 'pass', '24', 'Set Password', '{\"collapsed\":1,\"size\":50,\"maxlength\":128}');
|
||||
INSERT INTO `fields` (`id`, `type`, `name`, `flags`, `label`, `data`) VALUES('5', 'FieldtypePage', 'permissions', '24', 'Permissions', '{\"derefAsPage\":0,\"parent_id\":31,\"labelFieldName\":\"title\",\"inputfield\":\"InputfieldCheckboxes\"}');
|
||||
INSERT INTO `fields` (`id`, `type`, `name`, `flags`, `label`, `data`) VALUES('4', 'FieldtypePage', 'roles', '24', 'Roles', '{\"derefAsPage\":0,\"parent_id\":30,\"labelFieldName\":\"name\",\"inputfield\":\"InputfieldCheckboxes\",\"description\":\"User will inherit the permissions assigned to each role. You may assign multiple roles to a user. When accessing a page, the user will only inherit permissions from the roles that are also assigned to the page\'s template.\"}');
|
||||
INSERT INTO `fields` (`id`, `type`, `name`, `flags`, `label`, `data`) VALUES('92', 'FieldtypeEmail', 'email', '9', 'E-Mail Address', '{\"size\":70,\"maxlength\":255}');
|
||||
INSERT INTO `fields` (`id`, `type`, `name`, `flags`, `label`, `data`) VALUES('82', 'FieldtypeTextarea', 'sidebar', '0', 'Sidebar', '{\"inputfieldClass\":\"InputfieldCKEditor\",\"rows\":5,\"contentType\":1,\"toolbar\":\"Format, Bold, Italic, -, RemoveFormat\\r\\nNumberedList, BulletedList, -, Blockquote\\r\\nPWLink, Unlink, Anchor\\r\\nPWImage, Table, HorizontalRule, SpecialChar\\r\\nPasteText, PasteFromWord\\r\\nScayt, -, Sourcedialog\",\"inlineMode\":0,\"useACF\":1,\"usePurifier\":1,\"formatTags\":\"p;h2;h3;h4;h5;h6;pre;address\",\"extraPlugins\":[\"pwimage\",\"pwlink\",\"sourcedialog\"],\"removePlugins\":\"image,magicline\",\"toggles\":[2,4,8],\"collapsed\":2}');
|
||||
INSERT INTO `fields` (`id`, `type`, `name`, `flags`, `label`, `data`) VALUES('44', 'FieldtypeImage', 'images', '0', 'Images', '{\"extensions\":\"gif jpg jpeg png\",\"adminThumbs\":1,\"inputfieldClass\":\"InputfieldImage\",\"maxFiles\":0,\"descriptionRows\":1,\"fileSchema\":2,\"textformatters\":[\"TextformatterEntities\"],\"outputFormat\":1,\"defaultValuePage\":0,\"defaultGrid\":0,\"icon\":\"camera\"}');
|
||||
INSERT INTO `fields` (`id`, `type`, `name`, `flags`, `label`, `data`) VALUES('79', 'FieldtypeTextarea', 'summary', '1', 'Summary', '{\"textformatters\":[\"TextformatterEntities\"],\"inputfieldClass\":\"InputfieldTextarea\",\"collapsed\":2,\"rows\":3,\"contentType\":0}');
|
||||
INSERT INTO `fields` (`id`, `type`, `name`, `flags`, `label`, `data`) VALUES('76', 'FieldtypeTextarea', 'body', '0', 'Body', '{\"inputfieldClass\":\"InputfieldCKEditor\",\"rows\":10,\"contentType\":1,\"toolbar\":\"Format, Bold, Italic, -, RemoveFormat\\r\\nNumberedList, BulletedList, -, Blockquote\\r\\nPWLink, Unlink, Anchor\\r\\nPWImage, Table, HorizontalRule, SpecialChar\\r\\nPasteText, PasteFromWord\\r\\nScayt, -, Sourcedialog\",\"inlineMode\":0,\"useACF\":1,\"usePurifier\":1,\"formatTags\":\"p;h2;h3;h4;h5;h6;pre;address\",\"extraPlugins\":[\"pwimage\",\"pwlink\",\"sourcedialog\"],\"removePlugins\":\"image,magicline\",\"toggles\":[2,4,8]}');
|
||||
INSERT INTO `fields` (`id`, `type`, `name`, `flags`, `label`, `data`) VALUES('78', 'FieldtypeText', 'headline', '0', 'Headline', '{\"description\":\"Use this instead of the Title if a longer headline is needed than what you want to appear in navigation.\",\"textformatters\":[\"TextformatterEntities\"],\"collapsed\":2,\"size\":0,\"maxlength\":1024}');
|
||||
|
||||
DROP TABLE IF EXISTS `modules`;
|
||||
CREATE TABLE `modules` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`class` varchar(128) CHARACTER SET ascii NOT NULL,
|
||||
`flags` int(11) NOT NULL DEFAULT '0',
|
||||
`data` text NOT NULL,
|
||||
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `class` (`class`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=158 DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('1', 'FieldtypeTextarea', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('2', 'FieldtypeNumber', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('3', 'FieldtypeText', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('4', 'FieldtypePage', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('30', 'InputfieldForm', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('6', 'FieldtypeFile', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('7', 'ProcessPageEdit', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('10', 'ProcessLogin', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('12', 'ProcessPageList', '0', '{\"pageLabelField\":\"title\",\"paginationLimit\":25,\"limit\":50}', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('121', 'ProcessPageEditLink', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('14', 'ProcessPageSort', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('15', 'InputfieldPageListSelect', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('117', 'JqueryUI', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('17', 'ProcessPageAdd', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('125', 'SessionLoginThrottle', '3', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('122', 'InputfieldPassword', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('25', 'InputfieldAsmSelect', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('116', 'JqueryCore', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('27', 'FieldtypeModule', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('28', 'FieldtypeDatetime', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('29', 'FieldtypeEmail', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('108', 'InputfieldURL', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('32', 'InputfieldSubmit', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('33', 'InputfieldWrapper', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('34', 'InputfieldText', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('35', 'InputfieldTextarea', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('36', 'InputfieldSelect', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('37', 'InputfieldCheckbox', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('38', 'InputfieldCheckboxes', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('39', 'InputfieldRadios', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('40', 'InputfieldHidden', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('41', 'InputfieldName', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('43', 'InputfieldSelectMultiple', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('45', 'JqueryWireTabs', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('46', 'ProcessPage', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('47', 'ProcessTemplate', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('48', 'ProcessField', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('50', 'ProcessModule', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('114', 'PagePermissions', '3', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('97', 'FieldtypeCheckbox', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('115', 'PageRender', '3', '{\"clearCache\":1}', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('55', 'InputfieldFile', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('56', 'InputfieldImage', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('57', 'FieldtypeImage', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('60', 'InputfieldPage', '0', '{\"inputfieldClasses\":[\"InputfieldSelect\",\"InputfieldSelectMultiple\",\"InputfieldCheckboxes\",\"InputfieldRadios\",\"InputfieldAsmSelect\",\"InputfieldPageListSelect\",\"InputfieldPageListSelectMultiple\"]}', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('61', 'TextformatterEntities', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('66', 'ProcessUser', '0', '{\"showFields\":[\"name\",\"email\",\"roles\"]}', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('67', 'MarkupAdminDataTable', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('68', 'ProcessRole', '0', '{\"showFields\":[\"name\"]}', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('76', 'ProcessList', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('78', 'InputfieldFieldset', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('79', 'InputfieldMarkup', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('80', 'InputfieldEmail', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('89', 'FieldtypeFloat', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('83', 'ProcessPageView', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('84', 'FieldtypeInteger', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('85', 'InputfieldInteger', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('86', 'InputfieldPageName', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('87', 'ProcessHome', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('90', 'InputfieldFloat', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('94', 'InputfieldDatetime', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('98', 'MarkupPagerNav', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('129', 'ProcessPageEditImageSelect', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('103', 'JqueryTableSorter', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('104', 'ProcessPageSearch', '1', '{\"searchFields\":\"title\",\"displayField\":\"title path\"}', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('105', 'FieldtypeFieldsetOpen', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('106', 'FieldtypeFieldsetClose', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('107', 'FieldtypeFieldsetTabOpen', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('109', 'ProcessPageTrash', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('111', 'FieldtypePageTitle', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('112', 'InputfieldPageTitle', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('113', 'MarkupPageArray', '3', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('131', 'InputfieldButton', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('133', 'FieldtypePassword', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('134', 'ProcessPageType', '1', '{\"showFields\":[]}', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('135', 'FieldtypeURL', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('136', 'ProcessPermission', '1', '{\"showFields\":[\"name\",\"title\"]}', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('137', 'InputfieldPageListSelectMultiple', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('138', 'ProcessProfile', '1', '{\"profileFields\":[\"pass\",\"email\"]}', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('139', 'SystemUpdater', '1', '{\"systemVersion\":7}', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('148', 'AdminThemeDefault', '2', '{\"colors\":\"classic\"}', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('149', 'InputfieldSelector', '2', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('150', 'ProcessPageLister', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('151', 'JqueryMagnific', '1', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('152', 'PagePathHistory', '3', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('155', 'InputfieldCKEditor', '0', '', NOW());
|
||||
INSERT INTO `modules` (`id`, `class`, `flags`, `data`, `created`) VALUES('156', 'MarkupHTMLPurifier', '0', '', NOW());
|
||||
|
||||
DROP TABLE IF EXISTS `page_path_history`;
|
||||
CREATE TABLE `page_path_history` (
|
||||
`path` varchar(255) NOT NULL,
|
||||
`pages_id` int(10) unsigned NOT NULL,
|
||||
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`path`),
|
||||
KEY `pages_id` (`pages_id`),
|
||||
KEY `created` (`created`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
DROP TABLE IF EXISTS `pages`;
|
||||
CREATE TABLE `pages` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`parent_id` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`templates_id` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`name` varchar(128) CHARACTER SET ascii NOT NULL,
|
||||
`status` int(10) unsigned NOT NULL DEFAULT '1',
|
||||
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`modified_users_id` int(10) unsigned NOT NULL DEFAULT '2',
|
||||
`created` timestamp NOT NULL DEFAULT '2015-12-18 06:09:00',
|
||||
`created_users_id` int(10) unsigned NOT NULL DEFAULT '2',
|
||||
`sort` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name_parent_id` (`name`,`parent_id`),
|
||||
KEY `parent_id` (`parent_id`),
|
||||
KEY `templates_id` (`templates_id`),
|
||||
KEY `modified` (`modified`),
|
||||
KEY `created` (`created`),
|
||||
KEY `status` (`status`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=1009 DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('1', '0', '1', 'home', '9', NOW(), '41', NOW(), '2', '0');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('2', '1', '2', 'processwire', '1035', NOW(), '40', NOW(), '2', '5');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('3', '2', '2', 'page', '21', NOW(), '41', NOW(), '2', '0');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('6', '3', '2', 'add', '1045', NOW(), '41', NOW(), '2', '0');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('7', '1', '2', 'trash', '1039', NOW(), '41', NOW(), '2', '6');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('8', '3', '2', 'list', '21', NOW(), '41', NOW(), '2', '1');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('9', '3', '2', 'sort', '1047', NOW(), '41', NOW(), '2', '2');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('10', '3', '2', 'edit', '1045', NOW(), '41', NOW(), '2', '3');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('11', '22', '2', 'template', '21', NOW(), '41', NOW(), '2', '0');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('16', '22', '2', 'field', '21', NOW(), '41', NOW(), '2', '2');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('21', '2', '2', 'module', '21', NOW(), '41', NOW(), '2', '2');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('22', '2', '2', 'setup', '21', NOW(), '41', NOW(), '2', '1');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('23', '2', '2', 'login', '1035', NOW(), '41', NOW(), '2', '4');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('27', '1', '29', 'http404', '1035', NOW(), '41', NOW(), '3', '4');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('28', '2', '2', 'access', '13', NOW(), '41', NOW(), '2', '3');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('29', '28', '2', 'users', '29', NOW(), '41', NOW(), '2', '0');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('30', '28', '2', 'roles', '29', NOW(), '41', NOW(), '2', '1');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('31', '28', '2', 'permissions', '29', NOW(), '41', NOW(), '2', '2');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('32', '31', '5', 'page-edit', '25', NOW(), '41', NOW(), '2', '2');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('34', '31', '5', 'page-delete', '25', NOW(), '41', NOW(), '2', '3');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('35', '31', '5', 'page-move', '25', NOW(), '41', NOW(), '2', '4');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('36', '31', '5', 'page-view', '25', NOW(), '41', NOW(), '2', '0');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('37', '30', '4', 'guest', '25', NOW(), '41', NOW(), '2', '0');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('38', '30', '4', 'superuser', '25', NOW(), '41', NOW(), '2', '1');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('41', '29', '3', 'admin', '1', NOW(), '40', NOW(), '2', '0');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('40', '29', '3', 'guest', '25', NOW(), '41', NOW(), '2', '1');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('50', '31', '5', 'page-sort', '25', NOW(), '41', NOW(), '41', '5');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('51', '31', '5', 'page-template', '25', NOW(), '41', NOW(), '41', '6');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('52', '31', '5', 'user-admin', '25', NOW(), '41', NOW(), '41', '10');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('53', '31', '5', 'profile-edit', '1', NOW(), '41', NOW(), '41', '13');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('54', '31', '5', 'page-lock', '1', NOW(), '41', NOW(), '41', '8');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('300', '3', '2', 'search', '1045', NOW(), '41', NOW(), '2', '5');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('301', '3', '2', 'trash', '1047', NOW(), '41', NOW(), '2', '5');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('302', '3', '2', 'link', '1041', NOW(), '41', NOW(), '2', '6');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('303', '3', '2', 'image', '1041', NOW(), '41', NOW(), '2', '7');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('304', '2', '2', 'profile', '1025', NOW(), '41', NOW(), '41', '5');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('1000', '1', '26', 'search', '1025', NOW(), '41', NOW(), '2', '3');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('1001', '1', '29', 'about', '1', NOW(), '41', NOW(), '2', '0');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('1002', '1001', '29', 'what', '1', NOW(), '41', NOW(), '2', '0');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('1004', '1001', '29', 'background', '1', NOW(), '41', NOW(), '2', '1');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('1005', '1', '34', 'site-map', '1', NOW(), '41', NOW(), '2', '2');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('1006', '31', '5', 'page-lister', '1', NOW(), '40', NOW(), '40', '9');
|
||||
INSERT INTO `pages` (`id`, `parent_id`, `templates_id`, `name`, `status`, `modified`, `modified_users_id`, `created`, `created_users_id`, `sort`) VALUES('1007', '3', '2', 'lister', '1', NOW(), '40', NOW(), '40', '8');
|
||||
|
||||
DROP TABLE IF EXISTS `pages_access`;
|
||||
CREATE TABLE `pages_access` (
|
||||
`pages_id` int(11) NOT NULL,
|
||||
`templates_id` int(11) NOT NULL,
|
||||
`ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`pages_id`),
|
||||
KEY `templates_id` (`templates_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `pages_access` (`pages_id`, `templates_id`, `ts`) VALUES('37', '2', NOW());
|
||||
INSERT INTO `pages_access` (`pages_id`, `templates_id`, `ts`) VALUES('38', '2', NOW());
|
||||
INSERT INTO `pages_access` (`pages_id`, `templates_id`, `ts`) VALUES('32', '2', NOW());
|
||||
INSERT INTO `pages_access` (`pages_id`, `templates_id`, `ts`) VALUES('34', '2', NOW());
|
||||
INSERT INTO `pages_access` (`pages_id`, `templates_id`, `ts`) VALUES('35', '2', NOW());
|
||||
INSERT INTO `pages_access` (`pages_id`, `templates_id`, `ts`) VALUES('36', '2', NOW());
|
||||
INSERT INTO `pages_access` (`pages_id`, `templates_id`, `ts`) VALUES('50', '2', NOW());
|
||||
INSERT INTO `pages_access` (`pages_id`, `templates_id`, `ts`) VALUES('51', '2', NOW());
|
||||
INSERT INTO `pages_access` (`pages_id`, `templates_id`, `ts`) VALUES('52', '2', NOW());
|
||||
INSERT INTO `pages_access` (`pages_id`, `templates_id`, `ts`) VALUES('53', '2', NOW());
|
||||
INSERT INTO `pages_access` (`pages_id`, `templates_id`, `ts`) VALUES('54', '2', NOW());
|
||||
INSERT INTO `pages_access` (`pages_id`, `templates_id`, `ts`) VALUES('1006', '2', NOW());
|
||||
|
||||
DROP TABLE IF EXISTS `pages_parents`;
|
||||
CREATE TABLE `pages_parents` (
|
||||
`pages_id` int(10) unsigned NOT NULL,
|
||||
`parents_id` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`pages_id`,`parents_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('2', '1');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('3', '1');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('3', '2');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('7', '1');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('22', '1');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('22', '2');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('28', '1');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('28', '2');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('29', '1');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('29', '2');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('29', '28');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('30', '1');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('30', '2');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('30', '28');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('31', '1');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('31', '2');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('31', '28');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('1001', '1');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('1002', '1');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('1002', '1001');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('1004', '1');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('1004', '1001');
|
||||
INSERT INTO `pages_parents` (`pages_id`, `parents_id`) VALUES('1005', '1');
|
||||
|
||||
DROP TABLE IF EXISTS `pages_sortfields`;
|
||||
CREATE TABLE `pages_sortfields` (
|
||||
`pages_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`sortfield` varchar(20) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`pages_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `session_login_throttle`;
|
||||
CREATE TABLE `session_login_throttle` (
|
||||
`name` varchar(128) NOT NULL,
|
||||
`attempts` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`last_attempt` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
DROP TABLE IF EXISTS `templates`;
|
||||
CREATE TABLE `templates` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) CHARACTER SET ascii NOT NULL,
|
||||
`fieldgroups_id` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`flags` int(11) NOT NULL DEFAULT '0',
|
||||
`cache_time` mediumint(9) NOT NULL DEFAULT '0',
|
||||
`data` text NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name` (`name`),
|
||||
KEY `fieldgroups_id` (`fieldgroups_id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=43 DEFAULT CHARSET=utf8;
|
||||
|
||||
INSERT INTO `templates` (`id`, `name`, `fieldgroups_id`, `flags`, `cache_time`, `data`) VALUES('2', 'admin', '2', '8', '0', '{\"useRoles\":1,\"parentTemplates\":[2],\"allowPageNum\":1,\"redirectLogin\":23,\"slashUrls\":1,\"noGlobal\":1,\"modified\":1406317841}');
|
||||
INSERT INTO `templates` (`id`, `name`, `fieldgroups_id`, `flags`, `cache_time`, `data`) VALUES('3', 'user', '3', '8', '0', '{\"useRoles\":1,\"noChildren\":1,\"parentTemplates\":[2],\"slashUrls\":1,\"pageClass\":\"User\",\"noGlobal\":1,\"noMove\":1,\"noTrash\":1,\"noSettings\":1,\"noChangeTemplate\":1,\"nameContentTab\":1}');
|
||||
INSERT INTO `templates` (`id`, `name`, `fieldgroups_id`, `flags`, `cache_time`, `data`) VALUES('4', 'role', '4', '8', '0', '{\"noChildren\":1,\"parentTemplates\":[2],\"slashUrls\":1,\"pageClass\":\"Role\",\"noGlobal\":1,\"noMove\":1,\"noTrash\":1,\"noSettings\":1,\"noChangeTemplate\":1,\"nameContentTab\":1}');
|
||||
INSERT INTO `templates` (`id`, `name`, `fieldgroups_id`, `flags`, `cache_time`, `data`) VALUES('5', 'permission', '5', '8', '0', '{\"noChildren\":1,\"parentTemplates\":[2],\"slashUrls\":1,\"guestSearchable\":1,\"pageClass\":\"Permission\",\"noGlobal\":1,\"noMove\":1,\"noTrash\":1,\"noSettings\":1,\"noChangeTemplate\":1,\"nameContentTab\":1}');
|
||||
INSERT INTO `templates` (`id`, `name`, `fieldgroups_id`, `flags`, `cache_time`, `data`) VALUES('1', 'home', '1', '0', '0', '{\"useRoles\":1,\"noParents\":1,\"slashUrls\":1,\"modified\":1409155727,\"roles\":[37]}');
|
||||
INSERT INTO `templates` (`id`, `name`, `fieldgroups_id`, `flags`, `cache_time`, `data`) VALUES('29', 'basic-page', '83', '0', '0', '{\"slashUrls\":1,\"modified\":1409155715}');
|
||||
INSERT INTO `templates` (`id`, `name`, `fieldgroups_id`, `flags`, `cache_time`, `data`) VALUES('26', 'search', '80', '0', '0', '{\"noChildren\":1,\"noParents\":1,\"allowPageNum\":1,\"slashUrls\":1,\"modified\":1409155785}');
|
||||
INSERT INTO `templates` (`id`, `name`, `fieldgroups_id`, `flags`, `cache_time`, `data`) VALUES('34', 'sitemap', '88', '0', '0', '{\"noChildren\":1,\"noParents\":1,\"redirectLogin\":23,\"slashUrls\":1,\"modified\":1409155794}');
|
||||
|
||||
UPDATE pages SET created_users_id=41, modified_users_id=41, created=NOW(), modified=NOW();
|
||||
|
||||
--- /WireDatabaseBackup {"numTables":20,"numCreateTables":27,"numInserts":305,"numSeconds":0}
|
BIN
site-default/install/screenshot.png
Normal file
After Width: | Height: | Size: 50 KiB |
122
site-default/modules/Helloworld.module
Normal file
@@ -0,0 +1,122 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
/**
|
||||
* ProcessWire 'Hello world' demonstration module
|
||||
*
|
||||
* Demonstrates the Module interface and how to add hooks.
|
||||
*
|
||||
* See README file for further links regarding module development.
|
||||
*
|
||||
* This file is licensed under the MIT license
|
||||
* https://processwire.com/about/license/mit/
|
||||
*
|
||||
* ProcessWire 3.x, Copyright 2016 by Ryan Cramer
|
||||
* https://processwire.com
|
||||
*
|
||||
*/
|
||||
|
||||
class Helloworld extends WireData implements Module {
|
||||
|
||||
/**
|
||||
* getModuleInfo is a module required by all modules to tell ProcessWire about them
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
*/
|
||||
public static function getModuleInfo() {
|
||||
|
||||
return array(
|
||||
|
||||
// The module'ss title, typically a little more descriptive than the class name
|
||||
'title' => 'Hello World',
|
||||
|
||||
// version number
|
||||
'version' => 2,
|
||||
|
||||
// summary is brief description of what this module is
|
||||
'summary' => 'An example module used for demonstration purposes. See the /site/modules/Helloworld.module file for details.',
|
||||
|
||||
// Optional URL to more information about the module
|
||||
'href' => 'http://processwire.com',
|
||||
|
||||
// singular=true: indicates that only one instance of the module is allowed.
|
||||
// This is usually what you want for modules that attach hooks.
|
||||
'singular' => true,
|
||||
|
||||
// autoload=true: indicates the module should be started with ProcessWire.
|
||||
// This is necessary for any modules that attach runtime hooks, otherwise those
|
||||
// hooks won't get attached unless some other code calls the module on it's own.
|
||||
// Note that autoload modules are almost always also 'singular' (seen above).
|
||||
'autoload' => true,
|
||||
|
||||
// Optional font-awesome icon name, minus the 'fa-' part
|
||||
'icon' => 'smile-o',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the module
|
||||
*
|
||||
* ProcessWire calls this when the module is loaded. For 'autoload' modules, this will be called
|
||||
* when ProcessWire's API is ready. As a result, this is a good place to attach hooks.
|
||||
*
|
||||
*/
|
||||
public function init() {
|
||||
|
||||
// add a hook after the $pages->save, to issue a notice every time a page is saved
|
||||
$this->pages->addHookAfter('save', $this, 'example1');
|
||||
|
||||
// add a hook after each page is rendered and modify the output
|
||||
$this->addHookAfter('Page::render', $this, 'example2');
|
||||
|
||||
// add a 'hello' method to every page that returns "Hello World"
|
||||
// use "echo $page->hello();" in your template file to display output
|
||||
$this->addHook('Page::hello', $this, 'example3');
|
||||
|
||||
// add a 'hello_world' property to every page that returns "Hello [user]"
|
||||
// use "echo $page->hello_world;" in your template file to display output
|
||||
$this->addHookProperty('Page::hello_world', $this, 'example4');
|
||||
}
|
||||
|
||||
/**
|
||||
* Example1 hooks into the pages->save method and displays a notice every time a page is saved
|
||||
*
|
||||
*/
|
||||
public function example1($event) {
|
||||
$page = $event->arguments[0];
|
||||
$this->message("Hello World! You saved {$page->path}.");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Example2 hooks into every page after it's rendered and adds "Hello World" text at the bottom
|
||||
*
|
||||
*/
|
||||
public function example2($event) {
|
||||
|
||||
$page = $event->object;
|
||||
|
||||
// don't add this to the admin pages
|
||||
if($page->template == 'admin') return;
|
||||
|
||||
// add a "Hello World" paragraph right before the closing body tag
|
||||
$event->return = str_replace("</body>", "<p>Hello World!</p></body>", $event->return);
|
||||
}
|
||||
|
||||
/**
|
||||
* Example3 adds a 'hello' method (not property) to every page that simply returns "Hello World"
|
||||
*
|
||||
*/
|
||||
public function example3($event) {
|
||||
$event->return = "Hello World";
|
||||
}
|
||||
|
||||
/**
|
||||
* Example 4 adds a 'hello_world' property (not method) to every page that returns "Hello [user]"
|
||||
*
|
||||
*/
|
||||
public function example4($event) {
|
||||
$event->return = "Hello " . $this->user->name;
|
||||
}
|
||||
|
||||
}
|
40
site-default/modules/InputfieldCKEditor/README.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
This InputfieldCKEditor directory is here to provide optional extra configuration options
|
||||
and plugins to the CKEditor Inputfield module.
|
||||
|
||||
|
||||
plugins/
|
||||
========
|
||||
Directory to place additional CKEditor plugins in. You can then activate them
|
||||
from your CKEditor field settings.
|
||||
|
||||
|
||||
contents.css
|
||||
============
|
||||
Example CSS file for the admin editor. To make CKEditor use this file, go to your CKEditor
|
||||
field settings and specify /site/modules/InputfieldCKEditor/contents.css as the regular
|
||||
mode Contents CSS file.
|
||||
|
||||
|
||||
contents-inline.css
|
||||
===================
|
||||
Same as contents.css but for the inline mode editor.
|
||||
|
||||
|
||||
mystyles.js
|
||||
===========
|
||||
Optional configuration for the CKEditor Styles option. To use this file, go to your
|
||||
CKEditor field settings and set the Custom Styles Set to be this file.
|
||||
|
||||
|
||||
config.js
|
||||
=========
|
||||
Custom config file used by all CKEditor instances (except instances configured by their
|
||||
own custom config file, see below...)
|
||||
|
||||
|
||||
config-body.js
|
||||
==============
|
||||
Example of field-specific custom config file. This one applies to a field named "body".
|
||||
Note that these config settings can also be specified directly in your CKEditor field
|
||||
settings in the admin, which many may prefer.
|
||||
|
24
site-default/modules/InputfieldCKEditor/config-body.js
Normal file
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
* CKEditor field-specific (body) custom config file for ProcessWire
|
||||
*
|
||||
* Use this file to specify additional config options to a field named "body".
|
||||
* This is here just for example purposes. If you wanted to create a config
|
||||
* specific to some other field, like "sidebar", you would create another file
|
||||
* exactly like this named: config-sidebar.js
|
||||
*
|
||||
* If you wanted to use the same config.js for all of your CKEditor fields,
|
||||
* you would remove this file and just use the config.js file instead. Meaning,
|
||||
* this file completely overrides config.js if the field being edited is named
|
||||
* "body". The regular config.js file is not loaded when this one is loaded.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
|
||||
* For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
CKEDITOR.editorConfig = function( config ) {
|
||||
// Define changes to default configuration here. For example:
|
||||
// config.uiColor = '#AADC6E';
|
||||
};
|
18
site-default/modules/InputfieldCKEditor/config.js
Normal file
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* CKEditor custom config file for ProcessWire
|
||||
*
|
||||
* Use this file to specify additional config options to all CKEditor instances,
|
||||
* except those that have field-specific config files, i.e. config-body.js for
|
||||
* config specific to a field named "body".
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
|
||||
* For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
CKEDITOR.editorConfig = function( config ) {
|
||||
// Define changes to default configuration here. For example:
|
||||
// config.uiColor = '#AADC6E';
|
||||
};
|
121
site-default/modules/InputfieldCKEditor/contents-inline.css
Normal file
@@ -0,0 +1,121 @@
|
||||
/**
|
||||
* contents-inline.css
|
||||
*
|
||||
* CKEditor editor styles for inline mode editor
|
||||
*
|
||||
* See also: contents-inline.scss
|
||||
*
|
||||
* PLEASE NOTE:
|
||||
*
|
||||
* It's possible this file may be out of date since it is in /site/ rather than /wire/,
|
||||
* and the version of this file will reflect whatever version you had when you first
|
||||
* installed this copy of ProcessWire.
|
||||
*
|
||||
* If you intend to use this, you may first want to get the newest copy out of:
|
||||
* /wire/modules/Inputfield/InputfieldCKEditor/contents-inline.css
|
||||
*
|
||||
* Original file copyright (as included with CKEditor):
|
||||
* Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
|
||||
* For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*
|
||||
*/
|
||||
|
||||
.InputfieldForm .InputfieldCKEditorInline {
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline p,
|
||||
.InputfieldForm .InputfieldCKEditorInline li,
|
||||
.InputfieldForm .InputfieldCKEditorInline dl,
|
||||
.InputfieldForm .InputfieldCKEditorInline td {
|
||||
font-size: 1em;
|
||||
color: #333333;
|
||||
background: white;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline a {
|
||||
color: #444444;
|
||||
background: none;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline a:hover {
|
||||
color: #222222;
|
||||
background: #ffffdd;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline i,
|
||||
.InputfieldForm .InputfieldCKEditorInline em {
|
||||
font-style: italic;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline b,
|
||||
.InputfieldForm .InputfieldCKEditorInline strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline strong em,
|
||||
.InputfieldForm .InputfieldCKEditorInline em strong {
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline small {
|
||||
font-size: 0.875em;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline pre,
|
||||
.InputfieldForm .InputfieldCKEditorInline code {
|
||||
font-family: Menlo, Monaco, 'Andale Mono', 'Lucida Console', 'Courier New', monospace;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline code {
|
||||
display: inline;
|
||||
background: #fff2a8;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline ul li,
|
||||
.InputfieldForm .InputfieldCKEditorInline ol li {
|
||||
list-style: disc;
|
||||
display: list-item;
|
||||
margin: 0 0 0 2em;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline ol li {
|
||||
list-style: decimal;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline blockquote {
|
||||
padding-left: 1em;
|
||||
border-left: 3px solid #ccc;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline h1,
|
||||
.InputfieldForm .InputfieldCKEditorInline h2,
|
||||
.InputfieldForm .InputfieldCKEditorInline h3,
|
||||
.InputfieldForm .InputfieldCKEditorInline h4,
|
||||
.InputfieldForm .InputfieldCKEditorInline h5 {
|
||||
color: #222222;
|
||||
font-family: Arial, sans-serif;
|
||||
font-weight: normal;
|
||||
text-transform: none;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline h1 {
|
||||
font-size: 2.0em;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline h2 {
|
||||
font-size: 1.7em;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline h3 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline h4 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline h5 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline h6 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline table td,
|
||||
.InputfieldForm .InputfieldCKEditorInline table th {
|
||||
padding: 3px;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline table th {
|
||||
font-weight: bold;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline img {
|
||||
max-width: 100%;
|
||||
}
|
||||
.InputfieldForm .InputfieldCKEditorInline img.cke_anchor {
|
||||
display: inline;
|
||||
}
|
||||
|
169
site-default/modules/InputfieldCKEditor/contents.css
Normal file
@@ -0,0 +1,169 @@
|
||||
/**
|
||||
* contents.css
|
||||
*
|
||||
* CKEditor editor styles for regular (non-inline) editor
|
||||
* See contents-inline.css for inline editor styles.
|
||||
*
|
||||
* Note that this file is not in use unless you configure your editor settings to use it
|
||||
* in the "Custom Editor CSS File (regular mode)" option. As a result, this file is here
|
||||
* primarily as a placeholder and for instructions, though you may certainly modify and
|
||||
* use it as-is.
|
||||
*
|
||||
* PLEASE NOTE:
|
||||
*
|
||||
* It's possible this file may be out of date since it is in /site/ rather than /wire/,
|
||||
* and the version of this file will reflect whatever version you had when you first
|
||||
* installed this copy of ProcessWire.
|
||||
*
|
||||
* If you intend to use this, you may first want to get the newest copy out of:
|
||||
* /wire/modules/Inputfield/InputfieldCKEditor/contents.css
|
||||
*
|
||||
* Original file copyright (as included with CKEditor):
|
||||
* Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
|
||||
* For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*
|
||||
*/
|
||||
|
||||
body {
|
||||
/* Font */
|
||||
font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
|
||||
font-size: 14px;
|
||||
|
||||
/* Text color */
|
||||
color: #333;
|
||||
|
||||
/* Remove the background color to make it transparent */
|
||||
background-color: #fff;
|
||||
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.cke_editable {
|
||||
font-size: 14px;
|
||||
line-height: 1.6em;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
font-style: italic;
|
||||
font-family: Georgia, Times, "Times New Roman", serif;
|
||||
padding: 2px 0;
|
||||
border-style: solid;
|
||||
border-color: #ccc;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
.cke_contents_ltr blockquote {
|
||||
padding-left: 20px;
|
||||
padding-right: 8px;
|
||||
border-left-width: 5px;
|
||||
}
|
||||
|
||||
.cke_contents_rtl blockquote {
|
||||
padding-left: 8px;
|
||||
padding-right: 20px;
|
||||
border-right-width: 5px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #0782C1;
|
||||
}
|
||||
|
||||
ol,ul,dl {
|
||||
/* IE7: reset rtl list margin. (#7334) */
|
||||
*margin-right: 0px;
|
||||
/* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
|
||||
padding: 0 40px;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
font-weight: bold;
|
||||
line-height: 1.2em;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0px;
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
img.right,
|
||||
img.align_right,
|
||||
img.align-right {
|
||||
/* RCD */
|
||||
border: 1px solid #ccc;
|
||||
float: right;
|
||||
margin-left: 15px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
img.left,
|
||||
img.align_left,
|
||||
img.align-left {
|
||||
/* RCD */
|
||||
border: 1px solid #ccc;
|
||||
float: left;
|
||||
margin-right: 15px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
img.align_center,
|
||||
img.align-center {
|
||||
/* RCD */
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
img:hover {
|
||||
opacity: .9;
|
||||
filter: alpha(opacity = 90);
|
||||
}
|
||||
|
||||
pre {
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
-moz-tab-size: 4;
|
||||
-o-tab-size: 4;
|
||||
-webkit-tab-size: 4;
|
||||
tab-size: 4;
|
||||
}
|
||||
|
||||
.marker {
|
||||
background-color: Yellow;
|
||||
}
|
||||
|
||||
span[lang] {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
figure {
|
||||
text-align: center;
|
||||
border: solid 1px #ccc;
|
||||
border-radius: 2px;
|
||||
background: rgba(0,0,0,0.05);
|
||||
padding: 10px;
|
||||
margin: 10px 20px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
figure > figcaption {
|
||||
text-align: center;
|
||||
display: block; /* For IE8 */
|
||||
}
|
||||
|
||||
code {
|
||||
/* RCD */
|
||||
background: #fff2a8;
|
||||
}
|
||||
|
||||
a > img {
|
||||
padding: 1px;
|
||||
margin: 1px;
|
||||
border: none;
|
||||
outline: 1px solid #0782C1;
|
||||
}
|
||||
|
||||
|
32
site-default/modules/InputfieldCKEditor/mystyles.js
Normal file
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* mystyles.js - for ProcessWire CKEditor "Custom Editor Styles Set" option
|
||||
*
|
||||
* Example file for "Custom Editor Styles Set" as seen in your CKEditor field config.
|
||||
* This file is not in use unless you specify it for that configuration item.
|
||||
*
|
||||
* PLEASE NOTE:
|
||||
*
|
||||
* It's possible this file may be out of date since it is in /site/ rather than /wire/,
|
||||
* and the version of this file will reflect whatever version you had when you first
|
||||
* installed this copy of ProcessWire.
|
||||
*
|
||||
* If you intend to use this, you may first want to get the newest copy out of:
|
||||
* /wire/modules/Inputfield/InputfieldCKEditor/mystyles.js
|
||||
*
|
||||
* For a more comprehensive example, see:
|
||||
* /wire/modules/Inputfield/InputfieldCKEditor/ckeditor-[version]/styles.js
|
||||
*
|
||||
*/
|
||||
|
||||
CKEDITOR.stylesSet.add( 'mystyles', [
|
||||
{ name: 'Inline Code', element: 'code' },
|
||||
{ name: 'Inline Quotation', element: 'q' },
|
||||
{ name: 'Left Aligned Photo', element: 'img', attributes: { 'class': 'align_left' } },
|
||||
{ name: 'Right Aligned Photo', element: 'img', attributes: { 'class': 'align_right' } },
|
||||
{ name: 'Centered Photo', element: 'img', attributes: { 'class': 'align_center' } },
|
||||
{ name: 'Small', element: 'small' },
|
||||
{ name: 'Deleted Text', element: 'del' },
|
||||
{ name: 'Inserted Text', element: 'ins' },
|
||||
{ name: 'Cited Work', element: 'cite' }
|
||||
]);
|
||||
|
@@ -0,0 +1,3 @@
|
||||
Directory to place additional CKEditor plugins in. You can then activate them
|
||||
from your CKEditor field settings. Place each plugin in its own directory
|
||||
having the same name as the plugin.
|
88
site-default/modules/README.txt
Normal file
@@ -0,0 +1,88 @@
|
||||
ABOUT /SITE/MODULES/
|
||||
====================
|
||||
This directory /site/modules/ is where you may install additional plugin modules.
|
||||
These modules are specific to your site only. There is also a corresponding
|
||||
/wire/modules/ directory, which contains ProcessWire's core modules (and best to
|
||||
leave those alone).
|
||||
|
||||
If safe for your hosting environment, you may wish to make this directory
|
||||
writable to PHP so that the installation of your modules can be managed from
|
||||
ProcessWire's admin. However, this is not necessarily safe in all shared hosting
|
||||
environments and is completely optional.
|
||||
|
||||
|
||||
Where to get modules?
|
||||
---------------------
|
||||
Visit the modules directory at: http://modules.processwire.com
|
||||
|
||||
|
||||
Installing modules from the ProcessWire admin
|
||||
---------------------------------------------
|
||||
If your /site/modules/ directory is writable, you can install modules from
|
||||
ProcessWire's admin directly from the Modules Directory, from a ZIP file or from
|
||||
a URL to a ZIP file. In your ProcessWire admin, see Modules > New for
|
||||
installation options.
|
||||
|
||||
|
||||
Installing modules from the file system
|
||||
---------------------------------------
|
||||
Each module (and any related files) should live in a directory of its own. The
|
||||
directory should generally carry the same name as the module. For instance, if
|
||||
you are installing a module named ProcessDatabaseBackups.module, then it should
|
||||
live in the directory /site/modules/ProcessDatabaseBackups/.
|
||||
|
||||
Once you have placed a new module in this directory, you need to let ProcessWire
|
||||
know about it. Login to the admin and click "Modules". Then click the "Check for
|
||||
new modules" button. It will find your new module(s). Click the "Install" button
|
||||
next to any new modules that you want to install.
|
||||
|
||||
|
||||
Removing modules
|
||||
----------------
|
||||
The first step in removing a module is to uninstall it from ProcessWire (if it
|
||||
isn't already). You do this by going to the "Modules" page, and "Site" tab in
|
||||
your ProcessWire admin. Click the "Uninstall" button next to the module you
|
||||
want to remove.
|
||||
|
||||
After the module is uninstalled, you may remove the module files. If your
|
||||
modules file system is writable to ProcessWire, it will give you a "Delete"
|
||||
button next to the module in your "Modules" admin page. You may click that to
|
||||
remove the module files.
|
||||
|
||||
If your file system is not writable, you may remove the module files manually
|
||||
from the file system (via SFTP or whatever tool you are using to manage your
|
||||
files on the server).
|
||||
|
||||
|
||||
Interested in learning how to make your own modules?
|
||||
----------------------------------------------------
|
||||
We've created two "Hello World" modules as examples for those interested in
|
||||
learning module development:
|
||||
|
||||
- Helloworld.module demonstrates the basics of modules and hooks.
|
||||
http://modules.processwire.com/modules/helloworld/
|
||||
|
||||
- ProcessHello.module demonstrates the basics of how to create a Process
|
||||
module. Process modules are those that create applications in the admin.
|
||||
http://modules.processwire.com/modules/process-hello/
|
||||
|
||||
There is a module development forum located at:
|
||||
https://processwire.com/talk/forum/19-moduleplugin-development/
|
||||
|
||||
For a tutorial on how to create modules, see:
|
||||
http://wiki.processwire.com/index.php/Module_Creation
|
||||
|
||||
|
||||
Additional resources
|
||||
--------------------
|
||||
|
||||
To find and download new modules, see the modules directory at:
|
||||
http://modules.processwire.com/
|
||||
|
||||
For more information about modules, see the documentation at:
|
||||
http://processwire.com/api/modules/
|
||||
|
||||
For discussion and support of modules, see:
|
||||
http://processwire.com/talk/forum/4-modulesplugins/
|
||||
|
||||
|
11
site-default/ready.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
/**
|
||||
* ProcessWire Bootstrap API Ready
|
||||
* ===============================
|
||||
* This ready.php file is called during ProcessWire bootstrap initialization process.
|
||||
* This occurs after the current page has been determined and the API is fully ready
|
||||
* to use, but before the current page has started rendering. This file receives a
|
||||
* copy of all ProcessWire API variables.
|
||||
*
|
||||
*/
|
245
site-default/templates/README.txt
Normal file
@@ -0,0 +1,245 @@
|
||||
Welcome to the Default Site Profile (Intermediate Edition)
|
||||
==========================================================
|
||||
|
||||
This is a plain text document. If you are currently online with
|
||||
internet access, you will find it much nicer to read an HTML
|
||||
formatted version of this document located at:
|
||||
|
||||
http://processwire.com/docs/tutorials/default-site-profile/
|
||||
|
||||
If you are just getting started with ProcessWire, you might
|
||||
also want to look into the beginner edition of this site profile.
|
||||
|
||||
Need multi-language support? The multi-language version of this
|
||||
default site profile is a good place to start.
|
||||
|
||||
Both the beginner and multi-language versions of this site
|
||||
profile are available as installation options when installing
|
||||
ProcessWire.
|
||||
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Just getting started with ProcessWire and aren't totally clear on what
|
||||
template files are? The good news is that template files aren't anything
|
||||
other than regular HTML or PHP files, and you can use them however you
|
||||
want! This particular site profile uses a strategy called Delayed Output,
|
||||
but you should use whatever strategy you prefer.
|
||||
|
||||
If you know enough to create an HTML or PHP document, then you already
|
||||
know how to use ProcessWire template files. The only difference is that
|
||||
ProcessWire provides your template files with certain variables that
|
||||
you may choose to use, or not use. Most notable is the $page variable,
|
||||
which contains all the fields of text or other information contained
|
||||
by the page being viewed.
|
||||
|
||||
For instance, $page->title contains the text contained in the Title
|
||||
field of the current page, and $page->body contains the text for the
|
||||
Body field of the current page. You can choose to output those wherever
|
||||
you want. A really simple template file might look like a regular HTML
|
||||
document except for where you want to output the dynamic portions (like
|
||||
title and body). Here's an example:
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title><?= $page->title ?></title>
|
||||
</head>
|
||||
<body>
|
||||
<h1><?= $page->title ?></h1>
|
||||
<?= $page->body ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
That's all that a template file is. Now when we're building something
|
||||
for real, we like to save ourselves as much work as possible and avoid
|
||||
writing the same HTML markup in multiple places. In order to do that
|
||||
we'll usually isolate the repetitive markup into separate files or
|
||||
functions so that we don't have to write it more than once. That's
|
||||
not required of course, but it's a good strategy to save you time and
|
||||
make it easier to maintain your site further down the road.
|
||||
|
||||
Template file strategies
|
||||
========================
|
||||
|
||||
The two most popular strategies for template files are:
|
||||
|
||||
1. Direct Output is the simplest strategy and the one used by the
|
||||
Classic Site Profile. While it doesn't scale as well as other
|
||||
strategies, it is a very good point to start from. If you've
|
||||
ever worked with WordPress templates, chances are you already
|
||||
know how Direct Output works. If you'd rather get started with
|
||||
this strategy, we recommend installing the Classic Site Profile
|
||||
rather than this one. Read more about the Direct Output strategy:
|
||||
http://processwire.com/to/direct-output/
|
||||
|
||||
2. Delayed Output is the strategy used by this site profile. It
|
||||
is also quite simple but involves populating content to
|
||||
placeholder variables rather than outputting directly. As a
|
||||
result it may take a few more seconds to understand than direct
|
||||
output, but the result is more scalable and maintainable. Read
|
||||
more about Delayed Output here:
|
||||
http://processwire.com/to/delayed-output/
|
||||
|
||||
|
||||
How this Default Site Profile works
|
||||
===================================
|
||||
|
||||
This Default Site Profile uses the Delayed Output strategy. Here's
|
||||
how it works:
|
||||
|
||||
1. The initialization file is loaded (_init.php).
|
||||
We use it to define placeholder variables for content regions.
|
||||
|
||||
2. The template file is loaded (i.e. home.php or another).
|
||||
We use it to populate values into the placeholder variables.
|
||||
|
||||
3. The main output file is loaded (_main.php).
|
||||
It is an HTML document that outputs the placeholder variables.
|
||||
|
||||
Below are more details on exactly what takes place and in the three
|
||||
steps outlined above:
|
||||
|
||||
1. The initialization file is loaded (_init.php)
|
||||
---------------------------------------------
|
||||
We define placeholder variables for the regions in our page in
|
||||
the _init.php file. These placeholders can be anything that you
|
||||
like (and in any quantity) and usually depends entirely
|
||||
on the needs of your site design and content.
|
||||
|
||||
In this default site, our needs are simple so we've defined
|
||||
placeholders for just 3 regions on the page. We usually name
|
||||
these regions something consistent with the HTML tag, id or class
|
||||
attribute just for ease of readability, but that's not required.
|
||||
These are the three placeholder variables we've defined in this site:
|
||||
|
||||
$title - The headline or title (we use for <title> and <h1>)
|
||||
$content - The main page content (we use for <div id='content'>)
|
||||
$sidebar - Sidebar content (we use for <div id='sidebar'>)
|
||||
|
||||
The leading "$" is what designates them as placeholder variables.
|
||||
We do this in a file called _init.php. ProcessWire knows to load
|
||||
this _init.php file first, before our actual template file. We
|
||||
define these placeholder variables simply giving each a default
|
||||
value, or by just making them blank. Go ahead and take a look at
|
||||
the _init.php file now if you can. But to summarize, here's how
|
||||
you define a blank placeholder variable:
|
||||
|
||||
$content = '';
|
||||
|
||||
And here's how you define a placeholder variable with an initial
|
||||
or default value:
|
||||
|
||||
$content = "<p>Hello World</p>";
|
||||
|
||||
Here's how we would populate it with a dynamic value from $page:
|
||||
|
||||
$content = $page->body;
|
||||
|
||||
The last thing we want to mention about _init.php is that we
|
||||
might also use it to load any shared functions. You'll see a line
|
||||
in this site's _init.php the includes a file called _func.php.
|
||||
That file simply contains a shared function (used by multiple
|
||||
template files) for generating navigation markup. This part is
|
||||
not so important for now, so come back to it once you understand
|
||||
how everything else works. But the point to understand now is
|
||||
that the _init.php file initializes everything that may be used
|
||||
by the site's template files.
|
||||
|
||||
|
||||
2. The template file is loaded (i.e. home.php or another)
|
||||
------------------------------------------------------
|
||||
Next, ProcessWire loads the template file used by the page being
|
||||
viewed. For example, the homepage uses home.php. We use our
|
||||
template file to populate those placeholder variables we defined
|
||||
in _init.php with the values we want.
|
||||
|
||||
For instance, most often we populate our $content variable with
|
||||
the body copy from the current page:
|
||||
|
||||
$content = $page->body;
|
||||
|
||||
But we might also do something more like append some navigation
|
||||
under the body copy or prepend a photo... the sky is the limit.
|
||||
|
||||
$content = "<img src='/photo.jpg'>" . $page->body;
|
||||
|
||||
Our search.php template file for example, populates $content with
|
||||
a list of search results.
|
||||
|
||||
Because our placeholder variables were already defined in the
|
||||
_init.php file with default values, our template file (like
|
||||
home.php or basic-page.php) need only focus on populating the
|
||||
placeholder variables that you want to modify. It does not
|
||||
even need to mention those placeholder variables that it doesn't
|
||||
need or doesn't need to change.
|
||||
|
||||
|
||||
3. Everything gets output by _main.php
|
||||
-----------------------------------
|
||||
After ProcessWire has loaded our template file (i.e. home.php) it
|
||||
then knows to load the _main.php file last. In the case of this
|
||||
site, our _main.php file is an entire HTML document that outputs
|
||||
our placeholder variables in the regions where they should appear.
|
||||
For example, the $content variable gets output in #content <div>
|
||||
like this:
|
||||
|
||||
<div id='content'>
|
||||
<?= $content ?>
|
||||
</div>
|
||||
|
||||
Please go ahead and take a look at the _main.php file for context.
|
||||
|
||||
Note that our _main.php uses "<?php echo $content; ?>" style,
|
||||
rather than "<?= $content ?>" style, like shown above, just in
|
||||
case you happen to be running an older version of PHP. But more
|
||||
than likely you can use the shorter syntax when preferred, as the
|
||||
two are functionally equivalent.
|
||||
|
||||
|
||||
More template file resources
|
||||
============================
|
||||
|
||||
- How do template files work?
|
||||
https://processwire.com/api/templates/
|
||||
Official documentation on template files.
|
||||
|
||||
- API variables
|
||||
https://processwire.com/api/variables/
|
||||
We mentioned $page above, but here are all the other API variables
|
||||
your template file can make use of.
|
||||
|
||||
- API cheatsheet
|
||||
http://cheatsheet.processwire.com/
|
||||
Once you've got the basics down, this cheatsheet is invaluable in
|
||||
describing all the properties and functions available to your
|
||||
template files.
|
||||
|
||||
|
||||
Tutorials that help with template files
|
||||
=======================================
|
||||
|
||||
- Hello Worlds Tutoral, by Ryan Cramer
|
||||
http://processwire.com/docs/tutorials/hello-worlds/
|
||||
The Hello Worlds tutorial gently introduces ProcessWire and template
|
||||
files, starting from a blank slate.
|
||||
|
||||
- "But what if I don't know how to code?", by Joss Sanglier
|
||||
http://processwire.com/docs/tutorials/but-what-if-i-dont-know-how-to-code/
|
||||
This particular series of tutorials will not only introduce you to
|
||||
ProcessWire, but step by step, will give you those small bits of coding
|
||||
knowledge that will get you going and open up this amazing world of a
|
||||
Content Management Framework.
|
||||
|
||||
- Installing a CSS Framework, by Joss Sanglier
|
||||
http://processwire.com/docs/tutorials/installing-a-css-framework/
|
||||
A quick demonstration about how easy it is to use one of the many CSS
|
||||
frameworks available to designers.
|
||||
|
||||
- How to structure your template files, by Ryan Cramer
|
||||
http://processwire.com/docs/tutorials/how-to-structure-your-template-files/
|
||||
This tutorial contrasts and compares the direct output and delayed
|
||||
output strategies and more. It is a very good introduction to using
|
||||
ProcessWire template files.
|
||||
|
||||
|
119
site-default/templates/_func.php
Normal file
@@ -0,0 +1,119 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
/**
|
||||
* /site/templates/_func.php
|
||||
*
|
||||
* Example of shared functions used by template files
|
||||
*
|
||||
* This file is currently included by _init.php
|
||||
*
|
||||
* For more information see README.txt
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Given a group of pages, render a simple <ul> navigation
|
||||
*
|
||||
* This is here to demonstrate an example of a simple shared function.
|
||||
* Usage is completely optional.
|
||||
*
|
||||
* @param PageArray $items
|
||||
* @return string
|
||||
*
|
||||
*/
|
||||
function renderNav(PageArray $items) {
|
||||
|
||||
// $out is where we store the markup we are creating in this function
|
||||
$out = '';
|
||||
|
||||
// cycle through all the items
|
||||
foreach($items as $item) {
|
||||
|
||||
// render markup for each navigation item as an <li>
|
||||
if($item->id == wire('page')->id) {
|
||||
// if current item is the same as the page being viewed, add a "current" class to it
|
||||
$out .= "<li class='current'>";
|
||||
} else {
|
||||
// otherwise just a regular list item
|
||||
$out .= "<li>";
|
||||
}
|
||||
|
||||
// markup for the link
|
||||
$out .= "<a href='$item->url'>$item->title</a> ";
|
||||
|
||||
// if the item has summary text, include that too
|
||||
if($item->summary) $out .= "<div class='summary'>$item->summary</div>";
|
||||
|
||||
// close the list item
|
||||
$out .= "</li>";
|
||||
}
|
||||
|
||||
// if output was generated above, wrap it in a <ul>
|
||||
if($out) $out = "<ul class='nav'>$out</ul>\n";
|
||||
|
||||
// return the markup we generated above
|
||||
return $out;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Given a group of pages, render a <ul> navigation tree
|
||||
*
|
||||
* This is here to demonstrate an example of a more intermediate level
|
||||
* shared function and usage is completely optional. This is very similar to
|
||||
* the renderNav() function above except that it can output more than one
|
||||
* level of navigation (recursively) and can include other fields in the output.
|
||||
*
|
||||
* @param array|PageArray $items
|
||||
* @param int $maxDepth How many levels of navigation below current should it go?
|
||||
* @param string $fieldNames Any extra field names to display (separate multiple fields with a space)
|
||||
* @param string $class CSS class name for containing <ul>
|
||||
* @return string
|
||||
*
|
||||
*/
|
||||
function renderNavTree($items, $maxDepth = 0, $fieldNames = '', $class = 'nav') {
|
||||
|
||||
// if we were given a single Page rather than a group of them, we'll pretend they
|
||||
// gave us a group of them (a group/array of 1)
|
||||
if($items instanceof Page) $items = array($items);
|
||||
|
||||
// $out is where we store the markup we are creating in this function
|
||||
$out = '';
|
||||
|
||||
// cycle through all the items
|
||||
foreach($items as $item) {
|
||||
|
||||
// markup for the list item...
|
||||
// if current item is the same as the page being viewed, add a "current" class to it
|
||||
$out .= $item->id == wire('page')->id ? "<li class='current'>" : "<li>";
|
||||
|
||||
// markup for the link
|
||||
$out .= "<a href='$item->url'>$item->title</a>";
|
||||
|
||||
// if there are extra field names specified, render markup for each one in a <div>
|
||||
// having a class name the same as the field name
|
||||
if($fieldNames) foreach(explode(' ', $fieldNames) as $fieldName) {
|
||||
$value = $item->get($fieldName);
|
||||
if($value) $out .= " <div class='$fieldName'>$value</div>";
|
||||
}
|
||||
|
||||
// if the item has children and we're allowed to output tree navigation (maxDepth)
|
||||
// then call this same function again for the item's children
|
||||
if($item->hasChildren() && $maxDepth) {
|
||||
if($class == 'nav') $class = 'nav nav-tree';
|
||||
$out .= renderNavTree($item->children, $maxDepth-1, $fieldNames, $class);
|
||||
}
|
||||
|
||||
// close the list item
|
||||
$out .= "</li>";
|
||||
}
|
||||
|
||||
// if output was generated above, wrap it in a <ul>
|
||||
if($out) $out = "<ul class='$class'>$out</ul>\n";
|
||||
|
||||
// return the markup we generated above
|
||||
return $out;
|
||||
}
|
||||
|
40
site-default/templates/_init.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
/**
|
||||
* Initialize variables output in _main.php
|
||||
*
|
||||
* Values populated to these may be changed as desired by each template file.
|
||||
* You can setup as many such variables as you'd like.
|
||||
*
|
||||
* This file is automatically prepended to all template files as a result of:
|
||||
* $config->prependTemplateFile = '_init.php'; in /site/config.php.
|
||||
*
|
||||
* If you want to disable this automatic inclusion for any given template,
|
||||
* go in your admin to Setup > Templates > [some-template] and click on the
|
||||
* "Files" tab. Check the box to "Disable automatic prepend file".
|
||||
*
|
||||
*/
|
||||
|
||||
// Variables for regions we will populate in _main.php. Here we also assign
|
||||
// default values for each of them.
|
||||
$title = $page->get('headline|title'); // headline if available, otherwise title
|
||||
$content = $page->body;
|
||||
$sidebar = $page->sidebar;
|
||||
|
||||
|
||||
// We refer to our homepage a few times in our site, so we preload a copy
|
||||
// here in a $homepage variable for convenience.
|
||||
$homepage = $pages->get('/');
|
||||
|
||||
|
||||
// Include shared functions (if any)
|
||||
include_once("./_func.php");
|
||||
|
||||
|
||||
// What happens after this?
|
||||
// ------------------------
|
||||
// 1. ProcessWire loads your page's template file (i.e. basic-page.php).
|
||||
// 2. ProcessWire loads the _main.php file
|
||||
//
|
||||
// See the README.txt file for more information.
|
||||
|
110
site-default/templates/_main.php
Normal file
@@ -0,0 +1,110 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
/**
|
||||
* _main.php
|
||||
* Main markup file
|
||||
*
|
||||
* This file contains all the main markup for the site and outputs the regions
|
||||
* defined in the initialization (_init.php) file. These regions include:
|
||||
*
|
||||
* $title: The page title/headline
|
||||
* $content: The markup that appears in the main content/body copy column
|
||||
* $sidebar: The markup that appears in the sidebar column
|
||||
*
|
||||
* Of course, you can add as many regions as you like, or choose not to use
|
||||
* them at all! This _init.php > [template].php > _main.php scheme is just
|
||||
* the methodology we chose to use in this particular site profile, and as you
|
||||
* dig deeper, you'll find many others ways to do the same thing.
|
||||
*
|
||||
* This file is automatically appended to all template files as a result of
|
||||
* $config->appendTemplateFile = '_main.php'; in /site/config.php.
|
||||
*
|
||||
* In any given template file, if you do not want this main markup file
|
||||
* included, go in your admin to Setup > Templates > [some-template] > and
|
||||
* click on the "Files" tab. Check the box to "Disable automatic append of
|
||||
* file _main.php". You would do this if you wanted to echo markup directly
|
||||
* from your template file or if you were using a template file for some other
|
||||
* kind of output like an RSS feed or sitemap.xml, for example.
|
||||
*
|
||||
* See the README.txt file for more information.
|
||||
*
|
||||
*/
|
||||
?><!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title><?php echo $title; ?></title>
|
||||
<meta name="description" content="<?php echo $page->summary; ?>" />
|
||||
<link href='//fonts.googleapis.com/css?family=Lusitana:400,700|Quattrocento:400,700' rel='stylesheet' type='text/css' />
|
||||
<link rel="stylesheet" type="text/css" href="<?php echo $config->urls->templates?>styles/main.css" />
|
||||
</head>
|
||||
<body class="<?php if($sidebar) echo "has-sidebar "; ?>">
|
||||
|
||||
<!-- top navigation -->
|
||||
<ul class='topnav'><?php
|
||||
// top navigation consists of homepage and its visible children
|
||||
foreach($homepage->and($homepage->children) as $item) {
|
||||
if($item->id == $page->rootParent->id) {
|
||||
echo "<li class='current'>";
|
||||
} else {
|
||||
echo "<li>";
|
||||
}
|
||||
echo "<a href='$item->url'>$item->title</a></li>";
|
||||
}
|
||||
|
||||
// output an "Edit" link if this page happens to be editable by the current user
|
||||
if($page->editable()) echo "<li class='edit'><a href='$page->editUrl'>Edit</a></li>";
|
||||
?></ul>
|
||||
|
||||
<!-- search form-->
|
||||
<form class='search' action='<?php echo $pages->get('template=search')->url; ?>' method='get'>
|
||||
<input type='text' name='q' placeholder='Search' value='<?php echo $sanitizer->entities($input->whitelist('q')); ?>' />
|
||||
<button type='submit' name='submit'>Search</button>
|
||||
</form>
|
||||
|
||||
<!-- breadcrumbs -->
|
||||
<div class='breadcrumbs'><?php
|
||||
// breadcrumbs are the current page's parents
|
||||
foreach($page->parents() as $item) {
|
||||
echo "<span><a href='$item->url'>$item->title</a></span> ";
|
||||
}
|
||||
// optionally output the current page as the last item
|
||||
echo "<span>$page->title</span> ";
|
||||
?></div>
|
||||
|
||||
<div id='main'>
|
||||
|
||||
<!-- main content -->
|
||||
<div id='content'>
|
||||
<h1><?php echo $title; ?></h1>
|
||||
<?php echo $content; ?>
|
||||
</div>
|
||||
|
||||
<!-- sidebar content -->
|
||||
<?php if($sidebar): ?>
|
||||
<div id='sidebar'>
|
||||
<?php echo $sidebar; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- footer -->
|
||||
<footer id='footer'>
|
||||
<p>
|
||||
Powered by <a href='http://processwire.com'>ProcessWire CMS</a> /
|
||||
<?php
|
||||
if($user->isLoggedin()) {
|
||||
// if user is logged in, show a logout link
|
||||
echo "<a href='{$config->urls->admin}login/logout/'>Logout ($user->name)</a>";
|
||||
} else {
|
||||
// if user not logged in, show a login link
|
||||
echo "<a href='{$config->urls->admin}'>Admin Login</a>";
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
15
site-default/templates/admin.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
/**
|
||||
* Admin template just loads the admin application controller,
|
||||
* and admin is just an application built on top of ProcessWire.
|
||||
*
|
||||
* This demonstrates how you can use ProcessWire as a front-end
|
||||
* to another application.
|
||||
*
|
||||
* Feel free to hook admin-specific functionality from this file,
|
||||
* but remember to leave the require() statement below at the end.
|
||||
*
|
||||
*/
|
||||
|
||||
require($config->paths->adminTemplates . 'controller.php');
|
20
site-default/templates/basic-page.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
// basic-page.php template file
|
||||
// See README.txt for more information
|
||||
|
||||
// Primary content is the page's body copy
|
||||
$content = $page->body;
|
||||
|
||||
// If the page has children, then render navigation to them under the body.
|
||||
// See the _func.php for the renderNav example function.
|
||||
if($page->hasChildren) {
|
||||
$content .= renderNav($page->children);
|
||||
}
|
||||
|
||||
// if the rootParent (section) page has more than 1 child, then render
|
||||
// section navigation in the sidebar
|
||||
if($page->rootParent->hasChildren > 1) {
|
||||
$sidebar = renderNavTree($page->rootParent, 3) . $page->sidebar;
|
||||
}
|
||||
|
11
site-default/templates/errors/500.html
Normal file
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>500 Internal Server Error</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Internal Server Error</h1>
|
||||
<p>The server encountered an internal error or misconfiguration and was unable to complete your request.</p>
|
||||
<p>{message}</p>
|
||||
</body>
|
||||
</html>
|
21
site-default/templates/errors/README.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
When a fatal error occurs, ProcessWire displays the message:
|
||||
|
||||
"Unable to complete this request due to an error."
|
||||
|
||||
The message is intentionally vague for security purposes.
|
||||
Details will be logged to /site/assets/logs/errors.txt.
|
||||
|
||||
When present in this directory, the file 500.html will be
|
||||
displayed instead of the generic error message above. Feel
|
||||
free to modify this file to show whatever you would like.
|
||||
Please note the following:
|
||||
|
||||
* 500.html is plain HTML and has no PHP or API access.
|
||||
|
||||
* You may enter the tag {message} and ProcessWire will
|
||||
replace this with additional details when applicable.
|
||||
When not applicable, it will make it blank.
|
||||
|
||||
* If you are logged in as an admin, ProcessWire will
|
||||
give you a detailed error message rather than 500.html.
|
||||
|
25
site-default/templates/home.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
// home.php (homepage) template file.
|
||||
// See README.txt for more information
|
||||
|
||||
// Primary content is the page body copy and navigation to children.
|
||||
// See the _func.php file for the renderNav() function example
|
||||
$content = $page->body . renderNav($page->children);
|
||||
|
||||
// if there are images, lets choose one to output in the sidebar
|
||||
if(count($page->images)) {
|
||||
// if the page has images on it, grab one of them randomly...
|
||||
$image = $page->images->getRandom();
|
||||
// resize it to 400 pixels wide
|
||||
$image = $image->width(400);
|
||||
// output the image at the top of the sidebar...
|
||||
$sidebar = "<img src='$image->url' alt='$image->description' />";
|
||||
// ...and append sidebar text under the image
|
||||
$sidebar .= $page->sidebar;
|
||||
} else {
|
||||
// no images...
|
||||
// append sidebar text if the page has it
|
||||
$sidebar = $page->sidebar;
|
||||
}
|
||||
|
3
site-default/templates/scripts/main.js
Normal file
@@ -0,0 +1,3 @@
|
||||
// Well hello there. Looks like we don't have any Javascript.
|
||||
// Maybe you could help a friend out and put some in here?
|
||||
// Or at least, when ready, this might be a good place for it.
|
51
site-default/templates/search.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
// search.php template file
|
||||
// See README.txt for more information.
|
||||
|
||||
// look for a GET variable named 'q' and sanitize it
|
||||
$q = $sanitizer->text($input->get->q);
|
||||
|
||||
// did $q have anything in it?
|
||||
if($q) {
|
||||
// Send our sanitized query 'q' variable to the whitelist where it will be
|
||||
// picked up and echoed in the search box by _main.php file. Now we could just use
|
||||
// another variable initialized in _init.php for this, but it's a best practice
|
||||
// to use this whitelist since it can be read by other modules. That becomes
|
||||
// valuable when it comes to things like pagination.
|
||||
$input->whitelist('q', $q);
|
||||
|
||||
// Sanitize for placement within a selector string. This is important for any
|
||||
// values that you plan to bundle in a selector string like we are doing here.
|
||||
$q = $sanitizer->selectorValue($q);
|
||||
|
||||
// Search the title and body fields for our query text.
|
||||
// Limit the results to 50 pages.
|
||||
$selector = "title|body~=$q, limit=50";
|
||||
|
||||
// If user has access to admin pages, lets exclude them from the search results.
|
||||
// Note that 2 is the ID of the admin page, so this excludes all results that have
|
||||
// that page as one of the parents/ancestors. This isn't necessary if the user
|
||||
// doesn't have access to view admin pages. So it's not technically necessary to
|
||||
// have this here, but we thought it might be a good way to introduce has_parent.
|
||||
if($user->isLoggedin()) $selector .= ", has_parent!=2";
|
||||
|
||||
// Find pages that match the selector
|
||||
$matches = $pages->find($selector);
|
||||
|
||||
// did we find any matches?
|
||||
if($matches->count) {
|
||||
// yes we did
|
||||
$content = "<h2>Found $matches->count pages matching your query:</h2>";
|
||||
// we'll use our renderNav function (in _func.php) to render the navigation
|
||||
$content .= renderNav($matches);
|
||||
} else {
|
||||
// we didn't find any
|
||||
$content = "<h2>Sorry, no results were found.</h2>";
|
||||
}
|
||||
|
||||
} else {
|
||||
// no search terms provided
|
||||
$content = "<h2>Please enter a search term in the search box (upper right corner)</h2>";
|
||||
}
|
||||
|
9
site-default/templates/sitemap.php
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php namespace ProcessWire;
|
||||
|
||||
// sitemap.php template file
|
||||
// Generate navigation that descends up to 4 levels into the tree.
|
||||
// See the _func.php for the renderNav() function definition.
|
||||
// See the README.txt for more information.
|
||||
|
||||
$content = renderNavTree($homepage, 4);
|
||||
|
299
site-default/templates/styles/main.css
Normal file
@@ -0,0 +1,299 @@
|
||||
/**
|
||||
* main.css
|
||||
*
|
||||
* 1. General HTML tags
|
||||
* 2. Masthead area
|
||||
* 3. Main content and sidebar
|
||||
* 4. Footer
|
||||
* 5. Media queries for responsive layout
|
||||
*
|
||||
*/
|
||||
|
||||
/*********************************************************************
|
||||
* 1. General HTML tags
|
||||
*
|
||||
*/
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 5%;
|
||||
max-width: 1600px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
body, td, input[type=text], textarea {
|
||||
font-family: 'Quattrocento', serif;
|
||||
font-size: 105%;
|
||||
line-height: 1.8em;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h3 {
|
||||
border-top: 1px solid #eee;
|
||||
padding-top: 1em;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
a:hover,
|
||||
.nav a:hover {
|
||||
color: #000;
|
||||
border-color: #aaa;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin-left: 0;
|
||||
padding-left: 1.5em;
|
||||
padding-right: 2em;
|
||||
border-left: 4px solid #ddd;
|
||||
font-style: italic;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
pre, code {
|
||||
background: #eee;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-size: 14px;
|
||||
line-height: 1.4em;
|
||||
padding: 1em;
|
||||
border-left: 4px solid #ddd;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* 2. Masthead area
|
||||
*
|
||||
*/
|
||||
|
||||
.topnav, .topnav li {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.topnav li {
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.topnav a {
|
||||
padding: 0.25em 0.5em;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
background: #eee;
|
||||
color: #333;
|
||||
border: 1px solid #eee;
|
||||
}
|
||||
.topnav a:hover {
|
||||
background: #ddd;
|
||||
border-color: #ddd;
|
||||
}
|
||||
.topnav li.current a {
|
||||
background: #ddd;
|
||||
border-color: #ddd;
|
||||
}
|
||||
.topnav li.edit a {
|
||||
background: none;
|
||||
}
|
||||
|
||||
|
||||
form.search {
|
||||
float: right;
|
||||
margin: 0;
|
||||
width: 30%;
|
||||
}
|
||||
form.search input {
|
||||
margin: 0;
|
||||
padding: 0.25em 0.5em;
|
||||
border: 1px solid #ccc;
|
||||
width: 100%;
|
||||
}
|
||||
form.search button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.breadcrumbs {
|
||||
clear: both;
|
||||
padding-top: 1em;
|
||||
}
|
||||
.breadcrumbs span:after {
|
||||
content: ">";
|
||||
color: #999;
|
||||
padding-left: 0.5em;
|
||||
padding-right: 0.25em;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* 3. Main content and sidebar
|
||||
*
|
||||
*/
|
||||
|
||||
#main {
|
||||
border-top: 1px solid #eee;
|
||||
padding-top: 1em;
|
||||
margin-top: 1em;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#content {
|
||||
width: 85%;
|
||||
}
|
||||
|
||||
#content, #sidebar {
|
||||
padding-bottom: 2em;
|
||||
}
|
||||
|
||||
body.has-sidebar #content {
|
||||
width: 65%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
body.has-sidebar #sidebar {
|
||||
width: 35%;
|
||||
padding-left: 5%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav {
|
||||
margin-left: 0;
|
||||
padding-left: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.nav .nav {
|
||||
padding-left: 1.5em;
|
||||
list-style: disc;
|
||||
}
|
||||
.nav li {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
.nav-tree li {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.nav a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.nav-tree li a {
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.nav .current > a {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.align_left {
|
||||
/* for images placed in rich text editor */
|
||||
float: left;
|
||||
margin: 0 1em 0.5em 0;
|
||||
position: relative;
|
||||
top: 0.5em;
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
.align_right {
|
||||
/* for images placed in rich text editor */
|
||||
float: right;
|
||||
margin: 0 0 0.5em 1em;
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
.align_center {
|
||||
/* for images placed in rich text editor */
|
||||
display: block;
|
||||
margin: 1em auto;
|
||||
position: relative;
|
||||
top: 0.5em;
|
||||
}
|
||||
|
||||
figure {
|
||||
display: table;
|
||||
width: 1px;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
figure img {
|
||||
display: table-row;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
figure figcaption {
|
||||
display: table-row;
|
||||
font-size: smaller;
|
||||
color: #777;
|
||||
line-height: 1.4em;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* 4. Footer
|
||||
*
|
||||
*/
|
||||
|
||||
#footer {
|
||||
clear: both;
|
||||
border-top: 1px solid #eee;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* 5. Media queries for responsive layout
|
||||
*
|
||||
*/
|
||||
|
||||
@media only screen and (max-width: 767px) {
|
||||
/* mobile layout */
|
||||
|
||||
body, td, textarea {
|
||||
font-size: 100%;
|
||||
}
|
||||
body.has-sidebar #content,
|
||||
body.has-sidebar #sidebar {
|
||||
float: none;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
form.search {
|
||||
float: none;
|
||||
width: 100%;
|
||||
}
|
||||
#content {
|
||||
width: 100%;
|
||||
}
|
||||
#sidebar {
|
||||
border-top: 1px solid #eee;
|
||||
padding-top: 1em;
|
||||
}
|
||||
.align_left, .align_right, .align_center {
|
||||
display: block;
|
||||
float: none;
|
||||
margin: 1em auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1200px) {
|
||||
/* extra-wide desktop layout */
|
||||
|
||||
body, td, textarea {
|
||||
font-size: 115%;
|
||||
}
|
||||
}
|