@@ -55,6 +22,5 @@
\ No newline at end of file
Index: branches/RC/core/units/sections/sections_config.php
===================================================================
diff -u -N -r11495 -r11610
--- branches/RC/core/units/sections/sections_config.php (.../sections_config.php) (revision 11495)
+++ branches/RC/core/units/sections/sections_config.php (.../sections_config.php) (revision 11610)
@@ -29,9 +29,29 @@
'SectionPrefix' => 'c',
),
+ 'in-portal:browse_site' => Array(
+ 'parent' => 'in-portal:site',
+ 'icon' => 'browse-site',
+ 'label' => 'la_tab_BrowsePages',
+ 'url' => Array('t' => 'index', 'index_file' => '../index.php', 'admin' => 1, 'pass' => 'm'),
+ 'permissions' => Array('view'),
+ 'priority' => 0.1,
+ 'type' => stTREE,
+ ),
+
+ 'in-portal:configemail' => Array(
+ 'parent' => 'in-portal:site',
+ 'icon' => 'core:e-mail',
+ 'label' => 'la_tab_E-mails',
+ 'url' => Array('t' => 'config/email_events', 'pass_section' => true, 'pass' => 'm'),
+ 'permissions' => Array('view', 'edit'),
+ 'priority' => 0.2,
+ 'type' => stTREE,
+ ),
+
'in-portal:browse' => Array (
'parent' => 'in-portal:site',
- 'icon' => 'proj-cms:structure', // 'catalog'
+ 'icon' => 'structure', // 'catalog'
'label' => 'la_title_Structure', // 'la_tab_Browse',
'url' => Array ('t' => 'catalog/catalog', 'pass' => 'm'),
'late_load' => Array ('t' => 'categories/xml/tree_categories', 'pass' => 'm', 'm_cat_id' => 0),
Index: branches/RC/core/admin_templates/img/icons/icon46_list_form.gif
===================================================================
diff -u -N
Binary files differ
Index: branches/RC/core/admin_templates/forms/forms_edit.tpl
===================================================================
diff -u -N
--- branches/RC/core/admin_templates/forms/forms_edit.tpl (revision 0)
+++ branches/RC/core/admin_templates/forms/forms_edit.tpl (revision 11610)
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: branches/RC/core/install/install_toolkit.php
===================================================================
diff -u -N -r11504 -r11610
--- branches/RC/core/install/install_toolkit.php (.../install_toolkit.php) (revision 11504)
+++ branches/RC/core/install/install_toolkit.php (.../install_toolkit.php) (revision 11610)
@@ -99,14 +99,21 @@
*/
function CheckPrerequisites($module_path, $versions, $mode)
{
+ static $prerequisit_classes = Array ();
+
$prerequisites_file = sprintf(PREREQUISITE_FILE, $module_path);
if (!file_exists($prerequisites_file) || !$versions) {
return Array ();
}
- include_once $prerequisites_file;
+ if (!isset($prerequisit_classes[$module_path])) {
+ // save class name, because 2nd time
+ // (in after call $prerequisite_class variable will not be present)
+ include_once $prerequisites_file;
+ $prerequisit_classes[$module_path] = $prerequisite_class;
+ }
- $prerequisite_object = new $prerequisite_class();
+ $prerequisite_object = new $prerequisit_classes[$module_path]();
if (method_exists($prerequisite_object, 'setToolkit')) {
$prerequisite_object->setToolkit($this);
}
@@ -554,7 +561,7 @@
$fields['description'] => $description, 'Status' => $status,
);
- $category_fields['ParentId'] = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat');
+ $category_fields['ParentId'] = $this->Application->findModule('Name', 'Core', 'RootCat');
if (isset($category_template)) {
$category_fields['Template'] = $category_template;
@@ -580,7 +587,10 @@
{
$this->Application->removeObject('c-cdata');
+ // recreate all fields, because custom fields are added during install script
$category->defineFields();
+ $category->prepareConfigOptions(); // creates ml fields
+
$category->SetDBField('cust_' . $prefix .'_ItemTemplate', $item_template);
$category->Update();
}
Index: branches/RC/core/kernel/nparser/nparser.php
===================================================================
diff -u -N -r11402 -r11610
--- branches/RC/core/kernel/nparser/nparser.php (.../nparser.php) (revision 11402)
+++ branches/RC/core/kernel/nparser/nparser.php (.../nparser.php) (revision 11610)
@@ -492,8 +492,12 @@
function DecorateBlock($block_content, $block_params, $is_template = false)
{
- static $used_ids = Array ();
+ static $used_ids = Array (), $base_url = null;
+ if (!isset($base_url)) {
+ $base_url = $this->Application->BaseURL();
+ }
+
// $prepend = '[name: ' . $block_params['name'] . '] [params: ' . implode(', ', array_keys($block_params)) . ']';
$decorate = false;
@@ -559,11 +563,21 @@
// prepare parameter string
$param_string = $block_name . ':' . $function_name;
- $block_editor = '
- edit
- %s
-
';
+
+ $block_editor = '
+
+
+
+
+
+
Edit
+
+
+ %s
+
+
';
+
// 1 - text before, 2 - open tag, 3 - open tag attributes, 4 - content inside tag, 5 - closing tag, 6 - text after closing tag
if (preg_match('/^(\s*)<(td|span)(.*?)>(.*)<\/(td|span)>(.*)$/is', $block_content, $regs)) {
// div inside span -> put div outside span
Index: branches/RC/core/kernel/constants.php
===================================================================
diff -u -N -r11405 -r11610
--- branches/RC/core/kernel/constants.php (.../constants.php) (revision 11405)
+++ branches/RC/core/kernel/constants.php (.../constants.php) (revision 11610)
@@ -56,7 +56,7 @@
safeDefine('DBG_TOOLBAR_BUTTONS', 0);
}
-
+
define('smNORMAL', 1); // show section even, if they were marked as smDEBUG or smSUPER_ADMIN before
define('smDEBUG', 2); // show section in debug mode only
define('smSUPER_ADMIN', 4); // show section in super admin & debug mode
@@ -103,4 +103,8 @@
define('MAILING_LIST_PARTIALLY_PROCESSED', 2);
define('MAILING_LIST_PROCESSED', 3);
define('MAILING_LIST_CANCELLED', 4);
+
+ // theme file statuses (related to structure creation process)
+ define('SMS_MODE_AUTO', 1);
+ define('SMS_MODE_FORCE', 2);
?>
\ No newline at end of file
Index: branches/RC/core/units/form_fields/form_fields_tp.php
===================================================================
diff -u -N
--- branches/RC/core/units/form_fields/form_fields_tp.php (revision 0)
+++ branches/RC/core/units/form_fields/form_fields_tp.php (revision 11610)
@@ -0,0 +1,39 @@
+getObject($params);
+ $source_prefix = $this->Application->Parser->GetParam('SourcePrefix');
+
+ $source_tp =& $this->Application->recallTagProcessor($source_prefix);
+ $params['name'] = 'fld_'.$object->GetDBField('FormFieldId');
+ if (isset($params['verify'])) $params['name'] .= '_verify';
+ return $source_tp->InputName($params);
+ }
+
+ function SubmissionTag($params)
+ {
+ $object =& $this->getObject($params);
+
+ $params['field'] = 'fld_'.$object->GetDBField('FormFieldId');
+ $source_prefix = $this->Application->Parser->GetParam('SourcePrefix');
+
+ return $this->Application->ProcessParsedTag($source_prefix, $params['tag'], $params);
+ }
+
+ /**
+ * Allows to modify block params & current list record before PrintList parses record
+ *
+ * @param kDBList $object
+ * @param Array $block_params
+ */
+ function PrepareListElementParams(&$object, &$block_params)
+ {
+ $object->SetDBField('DirectOptions', false);
+ }
+
+}
+
+?>
\ No newline at end of file
Index: branches/RC/core/admin_templates/img/toolbar/tool_new_form.gif
===================================================================
diff -u -N
Binary files differ
Index: branches/RC/core/units/categories/categories_item.php
===================================================================
diff -u -N -r11501 -r11610
--- branches/RC/core/units/categories/categories_item.php (.../categories_item.php) (revision 11501)
+++ branches/RC/core/units/categories/categories_item.php (.../categories_item.php) (revision 11610)
@@ -78,8 +78,13 @@
function checkFilename()
{
if ($this->GetDBField('AutomaticFilename')) {
+ // filename will be generated from scratch, don't check anything here
return ;
}
+ elseif ($this->GetDBField('IsSystem')) {
+ // system page with AutomaticFilename checkbox unchecked -> compatibility with Proj-CMS <= 4.3.9 (when "/" were allowed in Filename)
+ return ;
+ }
$filename = $this->GetDBField('Filename');
$this->SetDBField('Filename', $this->stripDisallowed($filename));
Index: branches/RC/core/units/structure/structure_tp.php
===================================================================
diff -u -N
--- branches/RC/core/units/structure/structure_tp.php (revision 0)
+++ branches/RC/core/units/structure/structure_tp.php (revision 11610)
@@ -0,0 +1,2 @@
+toolkit->getThemes();
Index: branches/RC/core/admin_templates/js/catalog.js
===================================================================
diff -u -N -r11546 -r11610
--- branches/RC/core/admin_templates/js/catalog.js (.../catalog.js) (revision 11546)
+++ branches/RC/core/admin_templates/js/catalog.js (.../catalog.js) (revision 11610)
@@ -224,8 +224,8 @@
return false;
}
- if (!isset($prefix) || $prefix == '') {
- // prefix not given OR empty prefix
+ if (!isset($prefix) || $prefix == '' || this.queryTabRegistry('prefix', $prefix, 'prefix') === false) {
+ // prefix not given OR empty prefix OR non-existing tab
$prefix = this.ActivePrefix;
}
Index: branches/RC/themes/default2009/platform/template_manager/inc/template_manager.css
===================================================================
diff -u -N -r11427 -r11610
--- branches/RC/themes/default2009/platform/template_manager/inc/template_manager.css (.../template_manager.css) (revision 11427)
+++ branches/RC/themes/default2009/platform/template_manager/inc/template_manager.css (.../template_manager.css) (revision 11610)
@@ -1,24 +1,3 @@
-span.edit-block {
- font-family: Arial, Verdana;
- font-size: 9pt;
- width: auto;
- font-weight: normal;
- color: #0000FF;
- background-color: #F7C300;
- border: 1px solid #CE0031;
- padding: 1px 10px 1px 10px;
- cursor: pointer;
-}
-
-div.block-container {
- border: 1px dashed transparent;
- margin: 8px;
-}
-
-div.block-container-over {
- border-color: red;
-}
-
div.tm-editor, div.tm-editor td {
font-size: 14px;
font-family: serif;
Index: branches/RC/core/admin_templates/forms/forms_list.tpl
===================================================================
diff -u -N
--- branches/RC/core/admin_templates/forms/forms_list.tpl (revision 0)
+++ branches/RC/core/admin_templates/forms/forms_list.tpl (revision 11610)
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: branches/RC/core/admin_templates/img/itemicons/icon16_form_submission.gif
===================================================================
diff -u -N
Binary files differ
Index: branches/RC/core/units/forms/forms_tp.php
===================================================================
diff -u -N
--- branches/RC/core/units/forms/forms_tp.php (revision 0)
+++ branches/RC/core/units/forms/forms_tp.php (revision 11610)
@@ -0,0 +1,25 @@
+SelectParam($params, 'name,field');
+ $object =& $this->Application->recallObject($this->getPrefixSpecial(),$this->Prefix, $params);
+
+ $value = $object->GetDBField($field);
+
+ if ($value) return 'checked';
+ if (is_null($value)) return $params['default'];
+
+ return '';
+ }
+
+ function MaxUploadSize($params)
+ {
+ return round(MAX_UPLOAD_SIZE/1024/1024).' Mb';
+ }
+
+}
+
+?>
\ No newline at end of file
Index: branches/RC/core/admin_templates/catalog/catalog_counters.tpl
===================================================================
diff -u -N -r11538 -r11610
--- branches/RC/core/admin_templates/catalog/catalog_counters.tpl (.../catalog_counters.tpl) (revision 11538)
+++ branches/RC/core/admin_templates/catalog/catalog_counters.tpl (.../catalog_counters.tpl) (revision 11610)
@@ -15,7 +15,7 @@
-setInnerHTML('category_path', '
');
+setInnerHTML('category_path', '
');
Index: branches/RC/core/units/form_submissions/form_submissions_eh.php
===================================================================
diff -u -N
--- branches/RC/core/units/form_submissions/form_submissions_eh.php (revision 0)
+++ branches/RC/core/units/form_submissions/form_submissions_eh.php (revision 11610)
@@ -0,0 +1,124 @@
+Application->IsAdmin()) {
+ if ($event->Name == 'OnCreate') {
+ // anybody can submit forms on front
+ return true;
+ }
+ }
+ return parent::CheckPermission($event);
+ }
+
+ function mapPermissions()
+ {
+ parent::mapPermissions();
+ $permissions = Array(
+ 'OnEdit' => Array('self' => 'view', 'subitem' => 'view'),
+ );
+ $this->permMapping = array_merge($this->permMapping, $permissions);
+ }
+
+ /**
+ * Returns filter block based on field element type
+ *
+ * @param string $element_type
+ * @return string
+ */
+ function _getFilterBlock($element_type)
+ {
+ $mapping = Array (
+ 'text' => 'grid_like_filter',
+ 'select' => 'grid_options_filter',
+ 'radio' => 'grid_options_filter',
+ 'checkbox' => 'grid_options_filter',
+ 'password' => 'grid_like_filter',
+ 'textarea' => 'grid_like_filter',
+ 'label' => 'grid_like_filter',
+ );
+
+ return $mapping[$element_type];
+ }
+
+ function OnBuildFormFields(&$event)
+ {
+ $form_id = $this->Application->GetVar('form_id');
+ if (!$form_id) return ;
+
+ $conf_fields = $this->Application->getUnitOption($event->Prefix, 'Fields');
+ $conf_grids = $this->Application->getUnitOption($event->Prefix, 'Grids');
+
+ $helper =& $this->Application->recallObject('InpCustomFieldsHelper');
+
+ $fields = $this->Conn->Query('SELECT * FROM '.TABLE_PREFIX.'FormFields WHERE FormId = '.$form_id.' ORDER BY Priority DESC', 'FormFieldId');
+ foreach ($fields as $field_id => $options) {
+ $conf_fields['fld_'.$field_id] = Array('type'=>'string', 'default'=>$options['DefaultValue']);
+ if ($options['Required']) {
+ $conf_fields['fld_'.$field_id]['required'] = 1;
+ }
+ if ($options['Validation'] == 1) {
+ $conf_fields['fld_'.$field_id]['formatter'] = 'kFormatter';
+ $conf_fields['fld_'.$field_id]['regexp'] = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i';
+ }
+ if ($options['DisplayInGrid']) {
+ $title = $options['Prompt'];
+ if (substr($title, 0,1) == '+') {
+ $this->Application->Phrases->AddCachedPhrase('form_col_title'.$field_id, substr($title,1));
+ $title = 'form_col_title'.$field_id;
+ }
+ $conf_grids['Default']['Fields']['fld_'.$field_id] = Array('title'=>$title, 'no_special' => 1, 'nl2br' => 1, 'first_chars' => 200, 'filter_block' => $this->_getFilterBlock($options['ElementType']));
+ if ($options['Validation'] == 1)
+ {
+ $conf_grids['Default']['Fields']['fld_'.$field_id]['data_block'] = 'grid_email_td';
+ }
+ }
+ if ($options['ElementType'] == 'radio' || $options['ElementType'] == 'select') {
+ $conf_fields['fld_'.$field_id]['options'] = $helper->GetValuesHash( $options['ValueList'] );
+ $conf_fields['fld_'.$field_id]['formatter'] = 'kOptionsFormatter';
+ }
+ if ($options['ElementType'] == 'password') {
+ $conf_fields['fld_'.$field_id]['formatter'] = 'kPasswordFormatter';
+ $conf_fields['fld_'.$field_id]['encryption_method'] = 'plain';
+ $conf_fields['fld_'.$field_id]['verify_field'] = 'fld_'.$field_id.'_verify';
+ }
+ }
+
+ $this->Application->setUnitOption($event->Prefix, 'Fields', $conf_fields);
+ $this->Application->setUnitOption($event->Prefix, 'Grids', $conf_grids);
+ }
+
+ function SetCustomQuery(&$event)
+ {
+ $object =& $event->getObject();
+ $form_id = $this->Application->GetVar('form_id');
+ $object->addFilter('form_filter','%1$s.FormId = '.$form_id);
+ }
+
+ function GetPassedId(&$event)
+ {
+ if (!$this->Application->IsAdmin()) {
+ return 0;
+ }
+ return parent::getPassedID($event);
+ }
+
+ function OnCreate(&$event)
+ {
+ parent::OnCreate($event);
+ if ($event->status == erSUCCESS) {
+
+ $this->Application->EmailEventAdmin('FORM.SUBMITTED');
+ //$this->Application->EmailEventUser('FORM.SUBMITTED', null, 'to_email' = )
+
+ $event->redirect_params['opener'] = 's';
+ $event->redirect_params['m_cat_id'] = 0;
+ $event->redirect = $this->Application->GetVar('success_template');
+ }
+ }
+
+}
+
+?>
\ No newline at end of file
Index: branches/RC/core/admin_templates/img/toolbar/tool_new_form_submission.gif
===================================================================
diff -u -N
Binary files differ
Index: branches/RC/core/admin_templates/img/icons/icon24_form_submission.gif
===================================================================
diff -u -N
Binary files differ
Index: branches/RC/core/install/english.lang
===================================================================
diff -u -N -r11599 -r11610
--- branches/RC/core/install/english.lang (.../english.lang) (revision 11599)
+++ branches/RC/core/install/english.lang (.../english.lang) (revision 11610)
@@ -45,6 +45,7 @@
QnkgdGhlbWU=
Q2FuY2Vs
Q2F0ZWdvcnk=
+
Q2F0ZWdvcnkgSW5kZXg=
RGF0ZQ==
TnVtYmVyIG9mIGRheXMgZm9yIGEgY2F0LiB0byBiZSBORVc=
Q2F0ZWdvcnkgRGVzY3JpcHRpb24=
@@ -59,6 +60,7 @@
QW5kIHRoZW4gYnk=
T3JkZXIgY2F0ZWdvcmllcyBieQ==
Q2xvc2U=
+
Rm9ybSBTdWJtaXR0ZWQ=
QWx0IFZhbHVl
Q2Vuc29yZWQgV29yZA==
Q3JlYXRlZCBPbg==
@@ -152,11 +154,15 @@
TWVzc2FnZSBIdG1s
TWVzc2FnZSBUZXh0
TWlzc3BlbGxlZCBXb3Jk
+
TGFzdCBVcGRhdGVk
TW9kdWxl
TmFtZQ==
TmV4dCBSdW4gT24=
T2NjdXJlZCBPbg==
UGFjayBOYW1l
+
SUQ=
+
UGFnZSBUaXRsZQ==
+
UGF0aA==
QWRk
RGVsZXRl
RWRpdA==
@@ -187,10 +193,13 @@
U2Vzc2lvbiBTdGFydA==
TmFtZQ==
U3RhdHVz
+
U3RvcCBXb3Jk
U3ViamVjdA==
U3VnZ2VzdGVkIENvcnJlY3Rpb24=
+
UGFnZSBUeXBl
SXRlbQ==
SXRlbSBUeXBl
+
VGVtcGxhdGUgVHlwZQ==
VGhlc2F1cnVzIFRlcm0=
VGhlc2F1cnVzIFR5cGU=
VGl0bGU=
@@ -201,6 +210,7 @@
VXNlcm5hbWU=
RmllbGQgVmFsdWU=
VmVyc2lvbg==
+
VmlzaWJsZQ==
VmlzaXQgRGF0ZQ==
Q29tbWE=
QXNjZW5kaW5n
@@ -213,6 +223,7 @@
TGlzdCBhdXRvbWF0aWMgcmVmcmVzaCBpbnRlcnZhbHMgKGluIG1pbnV0ZXMp
QmFja3VwIFBhdGg=
U3dpdGNoIENhdGFsb2cgdGFicyBiYXNlZCBvbiBNb2R1bGU=
+
Q2hlY2sgU3RvcCBXb3Jkcw==
Q29tcGFueQ==
RGVmYXVsdCBDU1YgRXhwb3J0IERlbGltaXRlcg==
RGVmYXVsdCBDU1YgRXhwb3J0IEVuY2xvc3VyZSBDaGFyYWN0ZXI=
@@ -268,6 +279,7 @@
WWFob28gQXBwbGljYXRpb25JZA==
QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBzZWxlY3RlZCBFeHBvcnQgUHJlc2V0Pw==
VGhlIGNhdGVnb3J5IHRyZWUgbXVzdCBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGxhdGVzdCBjaGFuZ2Vz
+
Q29udGFpbmVy
Q29udGludWU=
QXJ1YmE=
QWZnaGFuaXN0YW4=
@@ -579,6 +591,7 @@
RG91YmxlLXF1b3Rlcw==
RG93bmxvYWQgRXhwb3J0IEZpbGU=
RG93bmxvYWQgTGFuZ3VhZ2UgRXhwb3J0
+
Q29udGVudCBFZGl0b3I=
WW91IGhhdmUgbm90IHNhdmVkIGNoYW5nZXMgdG8gdGhlIGl0ZW0geW91IGFyZSBlZGl0aW5nITxiciAvPkNsaWNrIE9LIHRvIGxvb3NlIGNoYW5nZXMgYW5kIGdvIHRvIHRoZSBzZWxlY3RlZCBzZWN0aW9uPGJyIC8+b3IgQ2FuY2VsIHRvIHN0YXkgaW4gdGhlIGN1cnJlbnQgc2VjdGlvbi4=
RGVmYXVsdCB0ZXh0
RmlsZSBpcyBlbXB0eQ==
@@ -625,6 +638,7 @@
TW9kaWZ5IENhdGVnb3J5
RGVsZXRlIENhdGVnb3J5
Q29tbW9uIEZvb3RlciBUZW1wbGF0ZQ==
+
VGhpcyBlLW1haWwgaXMgc2VudCB0byBhIHVzZXIgYWZ0ZXIgZmlsbGluZyBpbiB0aGUgQ29udGFjdCBVcyBmb3Jt
RW1haWwgZXZlbnRzIGltcG9ydCBwcm9ncmVzcw==
QWRkIExpbms=
QWRkIFBlbmRpbmcgTGluaw==
@@ -671,6 +685,7 @@
VW5rbm93biBlcnJvciBjcmVhdGluZyBmb2xkZXI=
RmllbGQ=
RGlzcGxheSBPcmRlcg==
+
UHJpb3JpdHk=
RnJvbQ==
VG8=
QWN0aW9u
@@ -682,6 +697,7 @@
QWx0IFZhbHVl
QXNzaWduZWQgQ291cG9u
QXR0YWNobWVudA==
+
QXV0byBDcmVhdGUgRmlsZSBOYW1l
QXV0b21hdGljIEZpbGVuYW1l
QXZhaWxhYmxlIENvbHVtbnM=
QmFja2dyb3VuZA==
@@ -708,6 +724,7 @@
Q2l0eQ==
RGVzY3JpcHRpb24=
Q29tcGFueQ==
+
Q29udGVudA==
Q29weSBMYWJlbHMgZnJvbSB0aGlzIExhbmd1YWdl
Q291bnRyeQ==
Q3JlYXRlZCBCeQ==
@@ -720,6 +737,7 @@
RGVjaW1hbCBQb2ludA==
RGVzY3JpcHRpb24=
RGlzcGxheQ==
+
RGlzcGxheSBpbiBHcmlk
QXMgUGxhaW4gVGV4dA==
RHVyYXRpb24=
RWRpdG9ycyBQaWNr
@@ -758,6 +776,9 @@
Rm9udCBTaXpl
Rm9udCBTdHlsZQ==
Rm9udCBXZWlnaHQ=
+
T25saW5lIEZvcm0=
+
T25saW5lIEZvcm0gU3VibWl0dGVkIFRlbXBsYXRl
+
RnJpZW5kbHkgVVJM
QWxsb3cgUmVnaXN0cmF0aW9uIG9uIEZyb250LWVuZA==
SUQ=
R3JvdXAgTmFtZQ==
@@ -771,14 +792,18 @@
SW1wb3J0IENhdGVnb3J5
SW1wb3J0IEZpbGVuYW1l
SW5jbHVkZSBmaWVsZCB0aXRsZXM=
+
SW5kZXggVG9vbHMgQ29kZQ==
SW5wdXQgRGF0ZSBGb3JtYXQ=
SW5wdXQgVGltZSBGb3JtYXQ=
SW5zdGFsbCBNb2R1bGVz
SW5zdGFsbCBQaHJhc2UgVHlwZXM=
VXNlIGN1cnJlbnQgY2F0ZWdvcnkgYXMgcm9vdCBmb3IgdGhlIGV4cG9ydA==
VXNlIGFzIEZyZWUgUHJvbW8gU2hpcHBpbmc=
+
SXMgSW5kZXggUGFnZQ==
UHJpbWFyeQ==
+
UmVxdWlyZWQ=
SXMgU3lzdGVt
+
U3lzdGVtIFRlbXBsYXRl
SXRlbSBGaWVsZA==
SXRlbSBJRA==
SXRlbSBUZW1wbGF0ZQ==
@@ -806,6 +831,7 @@
TWFzdGVyIFByZWZpeA==
TWF4aW11bSBudW1iZXIgb2YgQ2F0ZWdvcmllcyBvbiBJdGVtIGNhbiBiZSBhZGRlZCB0bw==
Q3VzdG9tIE1lbnUgSWNvbiAoaWUuIGltZy9tZW51X3Byb2R1Y3RzLmdpZik=
+
TWVudSBTdGF0dXM=
TWVzc2FnZSBCb2R5
TWVzc2FnZSBUZXh0
TWVzc2FnZSBUeXBl
@@ -827,6 +853,12 @@
UGFkZGluZyBSaWdodA==
UGFkZGluZ3M=
UGFkZGluZyBUb3A=
+
VGl0bGUgKE9uIFBhZ2Up
+
VGl0bGUgKEhUTUwgJmx0O3RpdGxlJmd0Oyk=
+
UGFnZSBJRA==
+
VGl0bGUgKE1lbnUgSXRlbSk=
+
UGFnZSBUaXRsZQ==
+
UGFyZW50IFNlY3Rpb24=
UGFzc3dvcmQ=
UGVyY2VudHMgQ29tcGxldGVk
UGhvbmU=
@@ -849,6 +881,7 @@
VHlwZQ==
UmVtb3RlIFVSTA==
UmVwbGFjZSBEdXBsaWNhdGVz
+
UmVxdWlyZWQ=
UmV2aWV3IElE
UmV2aWV3IFRleHQ=
UnVsZSBUeXBl
@@ -867,11 +900,15 @@
U29ydCBWYWx1ZXM=
U3RhdGU=
U3RhdHVz
+
U3RvcCBXb3Jk
U3R5bGVzaGVldCBJRA==
U3ViamVjdA==
+
U3VibWl0dGVkIE9u
U3VnZ2VzdGVkIENvcnJlY3Rpb24=
UG9pbnRzIHRvIENhdGVnb3J5
SXRlbQ==
+
VGVtcGxhdGUgKGRlc2lnbik=
+
VGVtcGxhdGUgVHlwZQ==
VGV4dCBBbGlnbg==
VGV4dCBEZWNvcmF0aW9u
VGV4dCBWZXJzaW9u
@@ -882,6 +919,7 @@
VGl0bGU=
VG8=
VG9w
+
VHJhY2tpbmcgQ29kZQ==
VmFsdWU=
VHlwZQ==
TWVhc3VyZXMgU3lzdGVt
@@ -908,6 +946,7 @@
SGVhZCBmcmFtZSBjb2xvcnM8YnIvPg0KTWFpbiAvIE1haW4gQmFja2dyb3VuZCwgQmFyIC8gQmFyIEJhY2tncm91bmQg
SGVhZCBGcmFtZQ==
VGhpcyBoZWxwIHNlY3Rpb24gZG9lcyBub3QgeWV0IGV4aXN0LCBpdCdzIGNvbWluZyBzb29uIQ==
+
SGlkZQ==
aHRtbA==
SUQgRmllbGQ=
SW1wb3J0aW5nIEVtYWlsIEV2ZW50cyAuLi4=
@@ -1151,13 +1190,17 @@
RGF0YWJhc2UgVXNlciBOYW1l
RGVjaW1hbCBQb2ludA==
RGVmYXVsdA==
+
RGVmYXVsdCBEZXNpZ24gVGVtcGxhdGU=
+
SW5kZXh0b29scyBEZWZhdWx0IENvZGU=
VXNlciBJRCBmb3IgRGVmYXVsdCBQZXJzaXN0ZW50IFNldHRpbmdz
+
RGVmYXVsdCBWYWx1ZQ==
RGVsZXRl
RGVzY3JpcHRpb24=
RGlyZWN0b3J5IE5hbWU=
RGlzYWJsZWQgQXJ0aWNsZXM=
RGlzYWJsZWQgQ2F0ZWdvcmllcw==
RGlzYWJsZWQgTGlua3M=
+
RGlzcGxheSBpbiBHcmlk
RGlzcGxheSBPcmRlcg==
RG93bmxvYWQgTGFuZ3VhZ2UgRXhwb3J0Og==
QWxsb3cgRHVwbGljYXRlIFJhdGluZyBWb3Rlcw==
@@ -1168,6 +1211,7 @@
RWRpdG9yJ3MgUGljayBMaW5rcw==
RWRpdG9yIFBpY2sgVG9waWNz
RWRpdCBRdWVyeQ==
+
VHlwZQ==
RW1haWw=
RW1haWwgQm9keQ==
RW1haWwgZGVsaXZlcnkgYWJvcnRlZA==
@@ -1339,6 +1383,7 @@
U2VhcmNoIFJlbGV2ZW5jZSBTZXR0aW5ncw==
VXNlIHJlbW90ZSBpbWFnZSAoVVJMKQ==
UmVwbGFjZW1lbnQgV29yZA==
+
UmVxdWlyZWQ=
SW5jcmVhc2UgaW1wb3J0YW5jZSBpZiBmaWVsZCBjb250YWlucyBhIHJlcXVpcmVkIGtleXdvcmQgYnk=
UmVzdG9yZSBoYXMgZmFpbGVkIGFuIGVycm9yIG9jY3VyZWQ6
Q2hvb3NlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGJhY2t1cCBkYXRlcyB0byByZXN0b3JlIG9yIGRlbGV0ZQ==
@@ -1383,6 +1428,7 @@
U3R5bGVzaGVldA==
U3ViamVjdA==
U3ViIFNlYXJjaA==
+
U3VibWl0dGVkIE9u
RW5hYmxlIFRhZyBDYWNoaW5n
VG90YWwgU2l6ZSBvZiBTeXN0ZW0gRmlsZXM=
U3lzdGVtIHByZW1pc3Npb25z
@@ -1421,6 +1467,7 @@
UGVuZGluZyBVc2Vycw==
TnVtYmVyIG9mIFVuaXF1ZSBDb3VudHJpZXMgb2YgVXNlcnM=
TnVtYmVyIG9mIFVuaXF1ZSBTdGF0ZXMgb2YgVXNlcnM=
+
VmFsaWRhdGlvbg==
VmFsdWU=
TGlzdCBvZiBWYWx1ZXM=
Vmlld3M=
@@ -1467,17 +1514,20 @@
Q2xlYXIgU2VhcmNo
TmV3IFNlYXJjaA==
TUVUQSBJbmZvcm1hdGlvbg==
+
QmxvY2sgUHJvcGVydGllcw==
Q2F0ZWdvcnk=
Q29uZmlnIEZpbGVz
Q291bnRlcnM=
Q3VzdG9tIEZpZWxkcw==
+
U3VibWlzc2lvbiBEYXRh
RnVsbCBTaXplIEltYWdl
R2VuZXJhbA==
SW1hZ2U=
SW1hZ2UgU2V0dGluZ3M=
VXNlciBJdGVtcw==
TWVzc2FnZQ==
U2VjdGlvbiBPdmVydmlldw==
+
UGFnZSBQcm9wZXJ0aWVz
UHJvcGVydGllcw==
UXVpY2sgTGlua3M=
UmVsYXRpb24=
@@ -1493,6 +1543,7 @@
T25lIGZpZWxkIGZvciBlYWNoIGNhdGVnb3J5IGxldmVs
UmVzZXQgQ29uZmlncyBDYWNoZQ==
UmUtYnVpbGQgVGhlbWVzIEZpbGVz
+
UmVzZXQgU01TIE1lbnUgQ2FjaGU=
UmVzZXQgbW9kX3Jld3JpdGUgQ2FjaGU=
UmVzZXQgU2VjdGlvbnMgQ2FjaGU=
Q2xvbmU=
@@ -1510,6 +1561,7 @@
UHJpbWFyeQ==
VXA=
Vmlldw==
+
U2hvdw==
U2hvd2luZyBMb2dz
U2hvd2luZyBTdGF0aXN0aWNz
U2hvdyBFbWFpbCBMb2c=
@@ -1587,6 +1639,7 @@
RGVmaW5pdGlvbg==
UHJldmlldw==
U3VuZGF5
+
U3lzdGVt
VGFi
QWRtaW5pc3RyYXRpb24gUGFuZWwgVUk=
QWR2YW5jZWQgVmlldw==
@@ -1595,11 +1648,14 @@
QmFzZSBTdHlsZXM=
QmxvY2sgU3R5bGVz
Q2F0YWxvZw==
+
QnJvd3NlIFNpdGU=
Q2F0ZWdvcmllcw==
U2VsZWN0IEl0ZW0=
Q2F0ZWdvcnkgU2VsZWN0
Q2Vuc29yc2hpcA==
Q2hhbmdlIExvZw==
+
Rm9ybXM=
+
U3VibWlzc2lvbnM=
Q29tbXVuaXR5
R2VuZXJhbCBTZXR0aW5ncw==
Q2Vuc29yc2hpcA==
@@ -1624,7 +1680,9 @@
RW1haWwgUXVldWU=
RXhwb3J0IERhdGE=
RXhwb3J0IExhbmd1YWdlIFBhY2s=
+
RmllbGRz
RmlsZXM=
+
Rm9ybXMgQ29uZmlndXJhdGlvbg==
R2VuZXJhbA==
R2VuZXJhbCBTZXR0aW5ncw==
R3JvdXA=
@@ -1926,13 +1984,18 @@
QWRkaW5nIE1haWxpbmcgTGlzdA==
QWRkaW5nIFNraW4=
QWRkaW5nIFNwZWxsaW5nIERpY3Rpb25hcnk=
+
QWRkaW5nIFN0b3AgV29yZA==
QWRkaW5nIFRoZXNhdXJ1cw==
QWRkaW5nIEJhc2UgU3R5bGU=
QWRkaW5nIEJsb2NrIFN0eWxl
QWRkaW5nIENhdGVnb3J5
+
QWRkaW5nIENNUyBCbG9jaw==
+
QWRkaW5nIEZvcm0=
+
QWRkaW5nIEZvcm0gRmllbGQ=
QWRkaW5nIEdyb3Vw
QWRkaW5nIEltYWdl
QWRkaW5nIExhbmd1YWdl
+
QWRkaW5nIFBhZ2U=
QWRkaW5nIFBocmFzZQ==
QWRkaW5nIEtleXdvcmQ=
QWRkaW5nIFJlbGF0aW9uc2hpcA==
@@ -1969,17 +2032,22 @@
RWRpdGluZyBNZW1iZXJzaGlw
RWRpdGluZyBTa2lu
RWRpdGluZyBTcGVsbGluZyBEaWN0aW9uYXJ5
+
RWRpdGluZyBTdG9wIFdvcmQ=
RWRpdGluZyBTdHlsZQ==
RWRpdGluZyBUaGVzYXVydXM=
RWRpdGluZyBUcmFuc2xhdGlvbg==
RWRpdGluZyBCYXNlIFN0eWxl
RWRpdGluZyBCbG9jayBTdHlsZQ==
RWRpdGluZyBDYXRlZ29yeQ==
+
RWRpdGluZyBDTVMgQmxvY2s=
RWRpdGluZyBDdXN0b20gRmllbGQ=
RWRpdGluZyBFLW1haWw=
+
RWRpdGluZyBGb3Jt
+
RWRpdGluZyBGb3JtIEZpZWxk
RWRpdGluZyBHcm91cA==
RWRpdGluZyBJbWFnZQ==
RWRpdGluZyBMYW5ndWFnZQ==
+
RWRpdGluZyBQYWdl
RWRpdGluZyBQaHJhc2U=
RWRpdGluZyBLZXl3b3Jk
S2V5d29yZA==
@@ -1995,12 +2063,16 @@
U2l0ZSBTdHJ1Y3R1cmU=
RWRpdCBVc2Vy
RS1tYWlsIEV2ZW50cw==
+
RS1tYWlscw==
RS1tYWlsIFNldHRpbmdz
RXhwb3J0IERhdGE=
RXhwb3J0IExhbmd1YWdlIFBhY2s=
RXhwb3J0IExhbmd1YWdlIFBhY2sgLSBSZXN1bHRz
RXhwb3J0IExhbmd1YWdlIFBhY2sgLSBTdGVwMQ==
+
RmllbGRz
RmlsZXM=
+
Rm9ybXM=
+
Rm9ybSBTdWJtaXNzaW9ucw==
R2VuZXJhbA==
R2VuZXJhbCBDb25maWd1cmF0aW9u
R3JvdXBz
@@ -2032,9 +2104,12 @@
TmV3IEJhc2UgU3R5bGU=
TmV3IEJsb2NrIFN0eWxl
TmV3IENhdGVnb3J5
+
TmV3IEZvcm0=
+
TmV3IEZvcm0gRmllbGQ=
TmV3IEdyb3Vw
TmV3IEltYWdl
TmV3IExhbmd1YWdl
+
TmV3IFBhZ2U=
TmV3IFBocmFzZQ==
TmV3IFJlbGF0aW9uc2hpcA==
TmV3IFJldmlldw==
@@ -2071,6 +2146,8 @@
TW9kdWxlcyAmIFNldHRpbmdz
U3RydWN0dXJlICYgRGF0YQ==
U3BlbGxpbmcgRGljdGlvbmFyeQ==
+
U3RvcCBXb3Jkcw==
+
U3RydWN0dXJl
U3R5bGVzaGVldHM=
U3VtbWFyeQ==
U3lzdGVtIFRvb2xz
@@ -2084,6 +2161,7 @@
VXNlcnM=
U2VsZWN0IHVzZXI=
VXNlcnMgTWFuYWdlbWVudA==
+
Vmlld2luZyBmb3JtIHN1Ym1pc3Npb24=
Vmlld2luZyBNYWlsaW5nIExpc3Q=
VmlzaXRz
V2Vic2l0ZSBTZXR0aW5ncw==
@@ -2137,6 +2215,7 @@
TmV3IEdyb3Vw
TmV3IGxhYmVs
TmV3IExhbmd1YWdl
+
TmV3IFBhZ2U=
TmV3IFJldmlldw==
TmV3IFNlYXJjaCBGaWVsZA==
TmV3IFN0eWxlc2hlZXQ=
@@ -2149,6 +2228,8 @@
TmV3IEN1c3RvbSBGaWVsZA==
TmV3IERpc2NvdW50
TmV3IEVtb3Rpb24gSWNvbg==
+
TmV3IEZvcm0=
+
TmV3IEZvcm0gRmllbGQ=
TmV3IEltYWdl
TmV3IEltYWdlcw==
QWRkIEtleXdvcmQ=
@@ -2250,6 +2331,7 @@
VXNlIFRvb2xiYXIgTGFiZWxz
VXNlIEVtYWlscyBBcyBMb2dpbg==
VVMvVUs=
+
RS1tYWlsIGFkZHJlc3M=
UGxlYXNlIGNoZWNrIHRoZSByZXF1aXJlZCBmaWVsZHMgYW5kIHRyeSBhZ2FpbiE=
VmFsdWU=
RW50ZXIgbGlzdCBvZiB2YWx1ZXMgYW5kIHRoZWlyIGRlc2NyaXB0aW9ucywgbGlrZSAxPU9uZSwgMj1Ud28=
@@ -2548,6 +2630,7 @@
TnVtYmVyIG9mIFJhdGluZyBWb3Rlcw==
Q2F0ZWdvcnkgSWQ=
Q2l0eQ==
+
UGFnZSBDb250ZW50cw==
Q291bnRyeQ==
Q3JlYXRlZCBCeSBVc2VyIElE
RGF0ZSBDcmVhdGVk
@@ -2576,6 +2659,7 @@
Tm90aWZ5IE93bmVyIG9mIENoYW5nZXM=
T3JpZ2luYWwgSXRlbSBJRA==
T3duZXIgVXNlciBJRA==
+
VGl0bGUgKE1lbnUgSXRlbSk=
UGFyZW50IElk
UGFyZW50IENhdGVnb3J5IFBhdGg=
UGFzc3dvcmQ=
Index: branches/RC/core/install/install_data.sql
===================================================================
diff -u -N -r11593 -r11610
--- branches/RC/core/install/install_data.sql (.../install_data.sql) (revision 11593)
+++ branches/RC/core/install/install_data.sql (.../install_data.sql) (revision 11610)
@@ -761,6 +761,38 @@
INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:server_info.view', 11, 1, 1, 0);
INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:help.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:browse_site.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:configemail.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:configemail.edit', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:forms.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:forms.add', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:forms.edit', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:forms.delete', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:submissions.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:mailing_lists.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:mailing_lists.add', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:mailing_lists.edit', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:mailing_lists.delete', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:email_queue.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:email_queue.delete', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:session_logs.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:session_logs.delete', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:change_logs.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:change_logs.edit', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:change_logs.delete', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:stop_words.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:stop_words.add', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:stop_words.edit', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:stop_words.delete', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:thesaurus.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:thesaurus.add', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:thesaurus.edit', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:thesaurus.delete', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:skins.view', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:skins.add', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:skins.edit', 11, 1, 1, 0);
+INSERT INTO Permissions VALUES (DEFAULT, 'in-portal:skins.delete', 11, 1, 1, 0);
+
INSERT INTO Skins VALUES (DEFAULT, 'Default', '/* General elements */\r\n\r\nhtml {\r\n height: 100%;\r\n}\r\n\r\nbody {\r\n font-family: verdana,arial,helvetica,sans-serif;\r\n font-size: 9pt;\r\n color: #000000;\r\n overflow-x: auto; overflow-y: auto;\r\n margin: 0px 0px 0px 0px;\r\n text-decoration: none;\r\n}\r\n\r\na {\r\n color: #006699;\r\n text-decoration: none;\r\n}\r\n\r\na:hover {\r\n color: #009ff0;\r\n text-decoration: none;\r\n}\r\n\r\nform {\r\n display: inline;\r\n}\r\n\r\nimg { border: 0px; }\r\n\r\nbody.height-100 {\r\n height: 100%;\r\n}\r\n\r\nbody.regular-body {\r\n margin: 0px 10px 5px 10px;\r\n color: #000000;\r\n background-color: @@SectionBgColor@@;\r\n}\r\n\r\nbody.edit-popup {\r\n margin: 0px 0px 0px 0px;\r\n}\r\n\r\ntable.collapsed {\r\n border-collapse: collapse;\r\n}\r\n\r\n.bordered, table.bordered, .bordered-no-bottom {\r\n border: 1px solid #000000;\r\n border-collapse: collapse;\r\n}\r\n\r\n.bordered-no-bottom {\r\n border-bottom: none;\r\n}\r\n\r\n.login-table td {\r\n padding: 1px;\r\n}\r\n\r\n.disabled {\r\n background-color: #ebebeb;\r\n}\r\n\r\n/* Head frame */\r\n.head-table tr td {\r\n background-color: @@HeadBgColor@@;\r\n color: @@HeadColor@@\r\n}\r\n\r\ntd.kx-block-header, .head-table tr td.kx-block-header{\r\n color: @@HeadBarColor@@;\r\n background-color: @@HeadBarBgColor@@;\r\n padding-left: 7px;\r\n padding-right: 7px;\r\n}\r\n\r\na.kx-header-link {\r\n text-decoration: underline;\r\n color: #FFFFFF;\r\n}\r\n\r\na.kx-header-link:hover {\r\n color: #FFCB05;\r\n text-decoration: none;\r\n}\r\n\r\n.kx-secondary-foreground {\r\n color: @@HeadBarColor@@;\r\n background-color: @@HeadBarBgColor@@;\r\n}\r\n\r\n.kx-login-button {\r\n background-color: #2D79D6;\r\n color: #FFFFFF;\r\n}\r\n\r\n/* General form button (yellow) */\r\n.button {\r\n font-size: 12px;\r\n font-weight: normal;\r\n color: #000000;\r\n background: url(@@base_url@@/proj-base/admin_templates/img/button_back.gif) #f9eeae repeat-x;\r\n text-decoration: none;\r\n}\r\n\r\n/* Disabled (grayed-out) form button */\r\n.button-disabled {\r\n font-size: 12px;\r\n font-weight: normal;\r\n color: #676767;\r\n background: url(@@base_url@@/proj-base/admin_templates/img/button_back_disabled.gif) #f9eeae repeat-x;\r\n text-decoration: none;\r\n}\r\n\r\n/* Tabs bar */\r\n\r\n.tab, .tab-active {\r\n background-color: #F0F1EB;\r\n padding: 3px 7px 2px 7px;\r\n border-top: 1px solid black;\r\n border-left: 1px solid black;\r\n border-right: 1px solid black;\r\n}\r\n\r\n.tab-active {\r\n background-color: #2D79D6;\r\n border-bottom: 1px solid #2D79D6;\r\n}\r\n\r\n.tab a {\r\n color: #00659C;\r\n font-weight: bold;\r\n}\r\n\r\n.tab-active a {\r\n color: #fff;\r\n font-weight: bold;\r\n}\r\n\r\n\r\n/* Toolbar */\r\n\r\n.toolbar {\r\n font-size: 8pt;\r\n border: 1px solid #000000;\r\n border-width: 0px 1px 1px 1px;\r\n background-color: @@ToolbarBgColor@@;\r\n border-collapse: collapse;\r\n}\r\n\r\n.toolbar td {\r\n height: 100%;\r\n}\r\n\r\n.toolbar-button, .toolbar-button-disabled, .toolbar-button-over {\r\n float: left;\r\n text-align: center;\r\n font-size: 8pt;\r\n padding: 5px 5px 5px 5px;\r\n vertical-align: middle;\r\n color: #006F99;\r\n}\r\n\r\n.toolbar-button-over {\r\n color: #000;\r\n}\r\n\r\n.toolbar-button-disabled {\r\n color: #444;\r\n}\r\n\r\n/* Scrollable Grids */\r\n\r\n\r\n.layout-only-table td {\r\n border: none !important;\r\n}\r\n\r\n/* Main Grid class */\r\n.grid-scrollable {\r\n padding: 0px;\r\n border: 1px solid black !important;\r\n border-top: none !important;\r\n}\r\n\r\n/* Div generated by js, which contains all the scrollable grid elements, affects the style of scrollable area without data (if there are too few rows) */\r\n.grid-container {\r\n background-color: #fff;\r\n}\r\n\r\n.grid-container table {\r\n border-collapse: collapse;\r\n}\r\n\r\n/* Inner div generated in each data-cell */\r\n.grid-cell-div {\r\n overflow: hidden;\r\n height: auto;\r\n}\r\n\r\n/* Main row definition */\r\n.grid-data-row td, .grid-data-row-selected td, .grid-data-row-even-selected td, .grid-data-row-mouseover td, .table-color1, .table-color2 {\r\n font-weight: normal;\r\n color: @@OddColor@@;\r\n background-color: @@OddBgColor@@;\r\n padding: 3px 5px 3px 5px;\r\n overflow: hidden;\r\n border-right: 1px solid #c9c9c9;\r\n}\r\n.grid-data-row-even td, .table-color2 {\r\n background-color: @@EvenBgColor@@;\r\n color: @@EvenColor@@;\r\n}\r\n.grid-data-row td a, .grid-data-row-selected td a, .grid-data-row-mouseover td a {\r\n text-decoration: underline;\r\n}\r\n\r\n/* mouse-over rows */\r\n.grid-data-row-mouseover td, table tr.grid-data-row[_row_highlighted] td {\r\n background: #FFFDF4;\r\n}\r\n\r\n/* Selected row, applies to both checkbox and data areas */\r\n.grid-data-row-selected td, table tr.grid-data-row[_row_selected] td {\r\n background: #FEF2D6;\r\n}\r\n\r\n.grid-data-row-even-selected td, .grid-data-row-even[_row_selected] td {\r\n background: #FFF7E0;\r\n}\r\n\r\n/* General header cell definition */\r\n.grid-header-row td {\r\n font-weight: bold;\r\n background-color: @@ColumnTitlesBgColor@@;\r\n text-decoration: none;\r\n padding: 3px 5px 3px 5px;\r\n color: @@ColumnTitlesColor@@;\r\n border-right: none;\r\n text-align: left;\r\n vertical-align: middle !important;\r\n white-space: nowrap;\r\n border-right: 1px solid #777;\r\n}\r\n\r\n/* Filters row */\r\ntr.grid-header-row-0 td {\r\n background-color: @@FiltersBgColor@@;\r\n border-bottom: 1px solid black;\r\n}\r\n\r\n/* Grid Filters */\r\ntable.range-filter {\r\n width: 100%;\r\n}\r\n\r\n.range-filter td {\r\n padding: 0px 0px 2px 2px !important;\r\n border: none !important;\r\n font-size: 8pt !important;\r\n font-weight: normal !important;\r\n text-align: left;\r\n color: #000000 !important;\r\n}\r\n\r\ninput.filter, select.filter, input.filter-active, select.filter-active {\r\n margin-bottom: 0px;\r\n border: 1px solid #aaa;\r\n}\r\n\r\ninput.filter-active {\r\n background-color: #FFFF00;\r\n}\r\n\r\nselect.filter-active {\r\n background-color: #FFFF00;\r\n}\r\n\r\n/* Column titles row */\r\ntr.grid-header-row-1 td {\r\n height: 25px;\r\n font-weight: bold;\r\n background-color: @@ColumnTitlesBgColor@@;\r\n color: @@ColumnTitlesColor@@;\r\n}\r\n\r\ntr.grid-header-row-1 td a {\r\n color: @@ColumnTitlesColor@@;\r\n}\r\n\r\ntr.grid-header-row-1 td a:hover {\r\n color: #FFCC00;\r\n}\r\n\r\n\r\n.grid-footer-row td {\r\n background-color: #D7D7D7;\r\n font-weight: bold;\r\n border-right: none;\r\n padding: 3px 5px 3px 5px;\r\n}\r\n\r\ntd.grid-header-last-cell, td.grid-data-last-cell, td.grid-footer-last-cell {\r\n border-right: none !important;\r\n}\r\n\r\ntd.grid-data-col-0, td.grid-data-col-0 div {\r\n text-align: center;\r\n vertical-align: middle !important;\r\n}\r\n\r\ntr.grid-header-row-0 td.grid-header-col-0 {\r\n text-align: center;\r\n vertical-align: middle !important;\r\n}\r\n\r\ntr.grid-header-row-0 td.grid-header-col-0 div {\r\n display: table-cell;\r\n vertical-align: middle;\r\n}\r\n\r\n.grid-status-bar {\r\n border: 1px solid black;\r\n border-top: none;\r\n padding: 0px;\r\n width: 100%;\r\n border-collapse: collapse;\r\n height: 30px;\r\n}\r\n\r\n.grid-status-bar td {\r\n background-color: @@TitleBarBgColor@@;\r\n color: @@TitleBarColor@@;\r\n font-size: 11pt;\r\n font-weight: normal;\r\n padding: 2px 8px 2px 8px;\r\n}\r\n\r\n/* /Scrollable Grids */\r\n\r\n\r\n/* Forms */\r\ntable.edit-form {\r\n border: none;\r\n border-top-width: 0px;\r\n border-collapse: collapse;\r\n width: 100%;\r\n}\r\n\r\n.edit-form-odd, .edit-form-even {\r\n padding: 0px;\r\n}\r\n\r\n.subsectiontitle {\r\n font-size: 10pt;\r\n font-weight: bold;\r\n background-color: #4A92CE;\r\n color: #fff;\r\n height: 25px;\r\n border-top: 1px solid black;\r\n vertical-align: middle;\r\n}\r\n\r\n.subsectiontitle td {\r\n vertical-align: middle;\r\n padding: 3px 5px 3px 5px;\r\n}\r\n\r\n.label-cell {\r\n background: #DEE7F6 url(@@base_url@@/proj-base/admin_templates/img/bgr_input_name_line.gif) no-repeat right bottom;\r\n font: 12px arial, sans-serif;\r\n padding: 4px 20px;\r\n width: 150px;\r\n}\r\n\r\n.control-mid {\r\n width: 13px;\r\n border-left: 1px solid #7A95C2;\r\n background: #fff url(@@base_url@@/proj-base/admin_templates/img/bgr_mid.gif) repeat-x left bottom;\r\n}\r\n\r\n.control-cell {\r\n font: 11px arial, sans-serif;\r\n padding: 4px 10px 5px 5px;\r\n background: #fff url(@@base_url@@/proj-base/admin_templates/img/bgr_input_line.gif) no-repeat left bottom;\r\n width: auto;\r\n vertical-align: middle;\r\n}\r\n\r\n.label-cell-filler {\r\n background: #DEE7F6 none;\r\n}\r\n.control-mid-filler {\r\n background: #fff none;\r\n border-left: 1px solid #7A95C2;\r\n}\r\n.control-cell-filler {\r\n background: #fff none;\r\n}\r\n\r\n.error {\r\n color: red;\r\n}\r\n.error-cell {\r\n color: red;\r\n}\r\n\r\n.field-required {\r\n color: red;\r\n}\r\n\r\n.form-warning {\r\n color: red;\r\n}\r\n\r\n.req-note {\r\n font-style: italic;\r\n color: #333;\r\n}\r\n\r\n#scroll_container table.tableborder {\r\n border-collapse: separate\r\n}\r\n\r\n\r\n/* Uploader */\r\n\r\n.uploader-main {\r\n position: absolute;\r\n display: none;\r\n z-index: 10;\r\n border: 1px solid #777;\r\n padding: 10px;\r\n width: 350px;\r\n height: 120px;\r\n overflow: hidden;\r\n background-color: #fff;\r\n}\r\n\r\n.uploader-percent {\r\n width: 100%;\r\n padding-top: 3px;\r\n text-align: center;\r\n position: relative;\r\n z-index: 20;\r\n float: left;\r\n font-weight: bold;\r\n}\r\n\r\n.uploader-left {\r\n width: 100%;\r\n border: 1px solid black;\r\n height: 20px;\r\n background: #fff url(@@base_url@@/core/admin_templates/img/progress_left.gif);\r\n}\r\n\r\n.uploader-done {\r\n width: 0%;\r\n background-color: green;\r\n height: 20px;\r\n background: #4A92CE url(@@base_url@@/core/admin_templates/img/progress_done.gif);\r\n}\r\n\r\n\r\n/* To be sorted */\r\n\r\n\r\n/* Section title, right to the big icon */\r\n.admintitle {\r\n font-size: 16pt;\r\n font-weight: bold;\r\n color: @@SectionColor@@;\r\n text-decoration: none;\r\n}\r\n\r\n/* Left sid of bluebar */\r\n.header_left_bg {\r\n background-color: @@TitleBarBgColor@@;\r\n background-image: none;\r\n padding-left: 5px;\r\n}\r\n\r\n/* Right side of bluebar */\r\n.tablenav, tablenav a {\r\n font-size: 11pt;\r\n font-weight: bold;\r\n color: @@TitleBarColor@@;\r\n\r\n text-decoration: none;\r\n background-color: @@TitleBarBgColor@@;\r\n background-image: none;\r\n}\r\n\r\n/* Section title in the bluebar * -- why ''link''? :S */\r\n.tablenav_link {\r\n font-size: 11pt;\r\n font-weight: bold;\r\n color: @@TitleBarColor@@;\r\n text-decoration: none;\r\n}\r\n\r\n/* Active page in top and bottom bluebars pagination */\r\n.current_page {\r\n font-size: 10pt;\r\n font-weight: bold;\r\n background-color: #fff;\r\n color: #2D79D6;\r\n padding: 3px 2px 3px 3px;\r\n}\r\n\r\n/* Other pages and arrows in pagination on blue */\r\n.nav_url {\r\n font-size: 10pt;\r\n font-weight: bold;\r\n color: #fff;\r\n padding: 3px 2px 3px 3px;\r\n}\r\n\r\n/* Tree */\r\n.tree-body {\r\n background-color: @@TreeBgColor@@;\r\n height: 100%\r\n}\r\n\r\n.tree_head.td, .tree_head, .tree_head:hover {\r\n font-weight: bold;\r\n font-size: 10px;\r\n color: #FFFFFF;\r\n font-family: Verdana, Arial;\r\n text-decoration: none;\r\n}\r\n\r\n.tree {\r\n padding: 0px;\r\n border: none;\r\n border-collapse: collapse;\r\n}\r\n\r\n.tree tr td {\r\n padding: 0px;\r\n margin: 0px;\r\n font-family: helvetica, arial, verdana,;\r\n font-size: 11px;\r\n white-space: nowrap;\r\n}\r\n\r\n.tree tr td a {\r\n font-size: 11px;\r\n color: @@TreeColor@@;\r\n font-family: Helvetica, Arial, Verdana;\r\n text-decoration: none;\r\n padding: 2px 0px 2px 2px;\r\n}\r\n\r\n.tree tr.highlighted td a {\r\n background-color: @@TreeHighBgColor@@;\r\n color: @@TreeHighColor@@;\r\n}\r\n\r\n.tree tr.highlighted td a:hover {\r\n color: #fff;\r\n}\r\n\r\n.tree tr td a:hover {\r\n color: #000000;\r\n}', 'in-portal_logo_img.jpg', 'in-portal_logo_img2.jpg', 'in-portal_logo_login.jpg', 'a:20:{s:11:"HeadBgColor";a:2:{s:11:"Description";s:27:"Head frame background color";s:5:"Value";s:7:"#1961B8";}s:9:"HeadColor";a:2:{s:11:"Description";s:21:"Head frame text color";s:5:"Value";s:7:"#CCFF00";}s:14:"SectionBgColor";a:2:{s:11:"Description";s:28:"Section bar background color";s:5:"Value";s:7:"#FFFFFF";}s:12:"SectionColor";a:2:{s:11:"Description";s:22:"Section bar text color";s:5:"Value";s:7:"#2D79D6";}s:12:"HeadBarColor";a:1:{s:5:"Value";s:7:"#FFFFFF";}s:14:"HeadBarBgColor";a:1:{s:5:"Value";s:7:"#1961B8";}s:13:"TitleBarColor";a:1:{s:5:"Value";s:7:"#FFFFFF";}s:15:"TitleBarBgColor";a:1:{s:5:"Value";s:7:"#2D79D6";}s:14:"ToolbarBgColor";a:1:{s:5:"Value";s:7:"#F0F1EB";}s:14:"FiltersBgColor";a:1:{s:5:"Value";s:7:"#D7D7D7";}s:17:"ColumnTitlesColor";a:1:{s:5:"Value";s:7:"#FFFFFF";}s:19:"ColumnTitlesBgColor";a:1:{s:5:"Value";s:7:"#999999";}s:8:"OddColor";a:1:{s:5:"Value";s:7:"#000000";}s:10:"OddBgColor";a:1:{s:5:"Value";s:7:"#F6F6F6";}s:9:"EvenColor";a:1:{s:5:"Value";s:7:"#000000";}s:11:"EvenBgColor";a:1:{s:5:"Value";s:7:"#EBEBEB";}s:9:"TreeColor";a:1:{s:5:"Value";s:7:"#006F99";}s:11:"TreeBgColor";a:1:{s:5:"Value";s:7:"#FFFFFF";}s:13:"TreeHighColor";a:1:{s:5:"Value";s:7:"#FFFFFF";}s:15:"TreeHighBgColor";a:1:{s:5:"Value";s:7:"#4A92CE";}}', 1206520493, 1);
INSERT INTO LocalesList VALUES
@@ -1114,5 +1146,7 @@
INSERT INTO ConfigurationAdmin VALUES ('ResizableFrames', 'la_Text_Website', 'la_config_ResizableFrames', 'checkbox', '', '', 10.30, 0, 0);
INSERT INTO ConfigurationValues VALUES (DEFAULT, 'ResizableFrames', '0', 'In-Portal', 'in-portal:configure_general');
+#INSERT INTO PageContent VALUES (DEFAULT, 1, 1, '
In-portal is a revolutionary Web Site management system that allows you to automate and facilitate management of large portal and community web sites. Regardless of whether you are running a directory site or a content news portal, a community site or an online mall, In-portal will enhance your web site management experience with innovative.
We are proud to present our newly developed
"default" theme that introduces a fresh look as well totally new approach in the template system.
', NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0);
+
INSERT INTO Modules VALUES ('Core', 'core/', 'adm', DEFAULT, 1, 1, '', 0, '0');
INSERT INTO Modules VALUES ('In-Portal', 'core/', 'm', '5.0.0', 1, 0, '', 0, '0');
\ No newline at end of file
Index: branches/RC/core/admin_templates/img/icons/icon24_browse-site.gif
===================================================================
diff -u -N
Binary files differ
Index: branches/RC/core/admin_templates/submissions/submissions_list.tpl
===================================================================
diff -u -N
--- branches/RC/core/admin_templates/submissions/submissions_list.tpl (revision 0)
+++ branches/RC/core/admin_templates/submissions/submissions_list.tpl (revision 11610)
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+ ">
+
+
+
+
+
+
\ No newline at end of file
Index: branches/RC/core/admin_templates/img/icons/icon46_form.gif
===================================================================
diff -u -N
Binary files differ
Index: branches/RC/core/admin_templates/incs/cms.css
===================================================================
diff -u -N
--- branches/RC/core/admin_templates/incs/cms.css (revision 0)
+++ branches/RC/core/admin_templates/incs/cms.css (revision 11610)
@@ -0,0 +1,67 @@
+/* === Common styles for "Section Properties" and "Edit" buttons === */
+div.cms-btn-image {
+ float: left;
+ height: 15px;
+ vertical-align: middle;
+}
+
+div.cms-btn-text {
+ margin-left: 3px;
+ float: left;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+div.cms-btn-content {
+ padding: 5px;
+}
+
+div.cms-section-properties-btn, div.cms-edit-btn {
+ padding: 2px 5px;
+ font-family: Arial, Verdana;
+ font-size: 13px;
+ font-weight: normal;
+ width: auto;
+ position: absolute;
+ color: black;
+ cursor: pointer;
+ -moz-border-radius: 10px;
+
+ margin-top: -10px;
+ z-index: 99;
+}
+
+/* === Styles for "Section Properties" button === */
+div.cms-section-properties-btn {
+ float: right;
+ position: relative;
+
+ margin-right: -10px;
+ border: 2px solid #A1D0A1;
+ background-color: #CCFF00;
+}
+
+div.cms-section-properties-btn-container {
+ border: 1px dashed #A1D0A1;
+ margin: 10px;
+}
+
+/* === Styles for "Edit" button === */
+div.cms-edit-btn-container {
+ border: 1px dashed #FF6E00;
+}
+
+div.cms-edit-btn {
+ margin-left: -10px;
+ border: 2px solid #FF6E00;
+ background-color: #FFCC00;
+}
+
+/* === Styles for Template Editor === */
+div.block-edit-btn-container {
+ border: 1px dashed transparent;
+}
+
+div.block-edit-btn-container-over {
+ border-color: #FF6E00;
+}
\ No newline at end of file
Index: branches/RC/core/install/upgrades.sql
===================================================================
diff -u -N -r11600 -r11610
--- branches/RC/core/install/upgrades.sql (.../upgrades.sql) (revision 11600)
+++ branches/RC/core/install/upgrades.sql (.../upgrades.sql) (revision 11610)
@@ -1024,7 +1024,7 @@
ALTER TABLE Category
ADD ThemeId INT UNSIGNED NOT NULL,
ADD INDEX (ThemeId),
- ADD COLUMN UseExternalUrl tinyint(3) unsigned NOT NULL default '0' AFTER Path,
+ ADD COLUMN UseExternalUrl tinyint(3) unsigned NOT NULL default '0' AFTER Template,
ADD COLUMN ExternalUrl varchar(255) NOT NULL default '' AFTER UseExternalUrl,
ADD COLUMN UseMenuIconUrl tinyint(3) unsigned NOT NULL default '0' AFTER ExternalUrl,
ADD COLUMN MenuIconUrl varchar(255) NOT NULL default '' AFTER UseMenuIconUrl,
@@ -1038,8 +1038,9 @@
UPDATE Category SET l3_MenuTitle = l3_Name WHERE l3_MenuTitle = '' OR l3_MenuTitle LIKE '_Auto: %';
UPDATE Category SET l4_MenuTitle = l4_Name WHERE l4_MenuTitle = '' OR l4_MenuTitle LIKE '_Auto: %';
UPDATE Category SET l5_MenuTitle = l5_Name WHERE l5_MenuTitle = '' OR l5_MenuTitle LIKE '_Auto: %';
-UPDATE Category SET Template = '/platform/designs/default_design.des' WHERE Template = '/in-edit/designs/general';
-UPDATE Category SET CachedTemplate = '/platform/designs/default_design.des' WHERE CachedTemplate = '/in-edit/designs/general';
+UPDATE Category SET Template = '/platform/designs/general' WHERE Template = '/in-edit/designs/general';
+UPDATE Category SET CachedTemplate = '/platform/designs/general' WHERE CachedTemplate = '/in-edit/designs/general';
+UPDATE Category SET CachedTemplate = Template WHERE Template <> '';
CREATE TABLE PageContent (
PageContentId int(11) NOT NULL auto_increment,
@@ -1109,6 +1110,28 @@
UPDATE ConfigurationAdmin SET DisplayOrder = 10.29 WHERE VariableName = 'cms_DefaultDesign';
UPDATE Phrase SET Module = 'Core' WHERE Phrase IN ('la_Hide', 'la_Show', 'la_fld_Requied', 'la_col_Modified');
+UPDATE Phrase SET Phrase = 'la_title_Editing_E-mail' WHERE Phrase = 'la_title_editing_e-mail';
+
ALTER TABLE Phrase ADD UNIQUE (LanguageId, Phrase);
-ALTER TABLE CustomField ADD IsRequired TINYINT( 3 ) UNSIGNED;
+ALTER TABLE CustomField ADD IsRequired TINYINT(3) UNSIGNED;
+
+DELETE FROM Permissions WHERE Permission LIKE 'proj-cms:structure%';
+UPDATE Permissions SET Permission = REPLACE(Permission, 'proj-cms:browse', 'in-portal:browse_site');
+UPDATE Permissions SET Permission = REPLACE(Permission, 'proj-cms:', 'in-portal:');
+
+ALTER TABLE CategoryItems ADD INDEX (ItemResourceId);
+ALTER TABLE CategoryItems
+ DROP INDEX Filename,
+ ADD INDEX Filename(Filename);
+
+DROP TABLE Pages;
+DELETE FROM PermissionConfig WHERE PermissionName LIKE 'PAGE.%';
+DELETE FROM Permissions WHERE Permission LIKE 'PAGE.%';
+DELETE FROM SearchConfig WHERE TableName = 'Pages';
+DELETE FROM ConfigurationAdmin WHERE VariableName LIKE '%_pages';
+DELETE FROM ConfigurationValues WHERE VariableName LIKE '%_pages';
+DELETE FROM ConfigurationAdmin WHERE VariableName LIKE 'PerPage_Pages%';
+DELETE FROM ConfigurationValues WHERE VariableName LIKE 'PerPage_Pages%';
+
+UPDATE Modules SET Version = '5.0.0' WHERE Name = 'In-Portal';
Index: branches/RC/core/units/modules/modules_config.php
===================================================================
diff -u -N -r11561 -r11610
--- branches/RC/core/units/modules/modules_config.php (.../modules_config.php) (revision 11561)
+++ branches/RC/core/units/modules/modules_config.php (.../modules_config.php) (revision 11610)
@@ -21,7 +21,7 @@
'TitlePresets' => Array(
'module_list' => Array (
'prefixes' => Array ('mod_List'), 'format' => "!la_title_Module_Status!",
- 'toolbar_buttons' => Array ('approve', 'decline', 'view'),
+ 'toolbar_buttons' => Array ('approve', 'deny', 'view'),
),
'tree_modules' => Array('format' => '!la_section_overview!'),
),
Index: branches/RC/core/admin_templates/img/toolbar/tool_new_form_submission_f2.gif
===================================================================
diff -u -N
Binary files differ
Index: branches/RC/core/admin_templates/forms/forms_edit_fields.tpl
===================================================================
diff -u -N
--- branches/RC/core/admin_templates/forms/forms_edit_fields.tpl (revision 0)
+++ branches/RC/core/admin_templates/forms/forms_edit_fields.tpl (revision 11610)
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: branches/RC/core/admin_templates/img/toolbar/tool_new_form_submission_f3.gif
===================================================================
diff -u -N
Binary files differ
Index: branches/RC/core/admin_templates/img/itemicons/icon16_form.gif
===================================================================
diff -u -N
Binary files differ
Index: branches/RC/core/units/structure/structure_eh.php
===================================================================
diff -u -N
--- branches/RC/core/units/structure/structure_eh.php (revision 0)
+++ branches/RC/core/units/structure/structure_eh.php (revision 11610)
@@ -0,0 +1,2 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: branches/RC/core/units/admin/admin_tag_processor.php
===================================================================
diff -u -N -r11576 -r11610
--- branches/RC/core/units/admin/admin_tag_processor.php (.../admin_tag_processor.php) (revision 11576)
+++ branches/RC/core/units/admin/admin_tag_processor.php (.../admin_tag_processor.php) (revision 11610)
@@ -484,7 +484,7 @@
}
$params['t'] = 'catalog/item_selector/item_selector_'.$mode;
- $params['m_cat_id'] = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat');
+ $params['m_cat_id'] = $this->Application->findModule('Name', 'Core', 'RootCat');
$default_params = Array('no_amp' => 1, 'pass' => 'all,'.$params['prefix']);
unset($params['prefix']);
@@ -756,7 +756,7 @@
if (isset($params['m_opener']) && $params['m_opener'] == 'r') {
// front-end link for highlighting purposes
$vars['t'] = 'index';
- $vars['m_cat_id'] = $this->Application->findModule('Name', 'Proj-CMS', 'RootCat');
+ $vars['m_cat_id'] = $this->Application->findModule('Name', 'Core', 'RootCat');
}
unset($recursion_templates[ array_search('index', $recursion_templates)]);
Index: branches/RC/core/units/form_submissions/form_submissions_config.php
===================================================================
diff -u -N
--- branches/RC/core/units/form_submissions/form_submissions_config.php (revision 0)
+++ branches/RC/core/units/form_submissions/form_submissions_config.php (revision 11610)
@@ -0,0 +1,89 @@
+ 'formsubs',
+ 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
+ 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
+ 'EventHandlerClass' => Array('class'=>'FormSubmissionsEventHandler','file'=>'form_submissions_eh.php','build_event'=>'OnBuild'),
+ 'TagProcessorClass' => Array('class'=>'kDBTagProcessor', 'file' => '', 'build_event'=>'OnBuild'),
+ 'AutoLoad' => true,
+ 'QueryString' => Array(
+ 1 => 'id',
+ 2 => 'page',
+ 3 => 'event',
+ ),
+
+ 'Hooks' => Array(
+ Array(
+ 'Mode' => hAFTER,
+ 'Conditional' => false,
+ 'HookToPrefix' => 'formsubs', //self
+ 'HookToSpecial' => '*',
+ 'HookToEvent' => Array('OnAfterConfigRead'),
+ 'DoPrefix' => '',
+ 'DoSpecial' => '',
+ 'DoEvent' => 'OnBuildFormFields',
+ ),
+ ),
+
+ 'TitlePresets' => Array(
+ 'default' => Array( 'new_status_labels' => Array('form'=>'!la_title_Adding_Form!'),
+ 'edit_status_labels' => Array('form'=>'!la_title_Editing_Form!'),
+ 'new_titlefield' => Array('form'=>''),
+ ),
+
+ 'formsubs_list'=>Array('prefixes' => Array('formsubs_List'),
+ 'format' => "!la_title_FormSubmissions!",
+ ),
+
+ 'formsubs_view'=>Array( 'prefixes' => Array('formsubs'),
+ 'format' => "!la_title_ViewingFormSubmission!",
+ ),
+
+ ),
+
+ 'PermSection' => Array('main' => 'in-portal:submissions'),
+
+ 'IDField' => 'FormSubmissionId',
+ /*'TitleField' => 'Name',*/
+ 'TableName' => TABLE_PREFIX.'FormSubmissions',
+ 'ListSQLs' => Array(
+ ''=>' SELECT %1$s.* %2$s FROM %1$s',
+ ), // key - special, value - list select sql
+ 'ItemSQLs' => Array(
+ ''=>'SELECT %1$s.* %2$s FROM %1$s',
+ ),
+
+ /*'ForeignKey' => 'FormId',
+ 'ParentTableKey' => 'FormId',
+ 'ParentPrefix' => 'form',
+ 'AutoDelete' => true,
+ 'AutoClone' => true,*/
+
+ 'ListSortings' => Array(
+ '' => Array(
+ 'Sorting' => Array('SubmissionTime' => 'desc'),
+ )
+ ),
+
+ 'Fields' => Array(
+ 'FormSubmissionId' => Array('type' => 'int', 'not_null' => 1,'default' => 0),
+ 'FormId' => Array('type' => 'int','not_null' => '1','default' => 0),
+ 'SubmissionTime' => Array('type'=>'int', 'formatter' => 'kDateFormatter', 'default' => '#NOW#', 'not_null' => '1' ),
+ ),
+ 'VirtualFields' => Array(
+ ),
+ 'CalculatedFields' => Array(
+ ),
+ 'Grids' => Array(
+ 'Default' => Array(
+ 'Icons' => Array('default'=>'icon16_form_submission.gif'),
+ 'Fields' => Array(
+ 'FormSubmissionId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td', 'sort_field' => 'FormFieldId', 'filter_block' => 'grid_range_filter', 'width' => 80 ),
+ 'SubmissionTime' => Array( 'title'=>'la_prompt_SumbissionTime', 'filter_block' => 'grid_date_range_filter'),
+ ),
+ ),
+ ),
+ );
+
+?>
\ No newline at end of file
Index: branches/RC/core/units/forms/forms_eh.php
===================================================================
diff -u -N
--- branches/RC/core/units/forms/forms_eh.php (revision 0)
+++ branches/RC/core/units/forms/forms_eh.php (revision 11610)
@@ -0,0 +1,206 @@
+ Array('self' => true),
+ );
+
+ $this->permMapping = array_merge($this->permMapping, $permissions);
+ }
+
+ function OnCreateSubmissionNodes(&$event)
+ {
+ if (defined('IS_INSTALL') && IS_INSTALL) {
+ // skip any processing, because Forms table doesn't exists until install is finished
+ return ;
+ }
+ $sections = $this->Application->getUnitOption($event->Prefix, 'Sections');
+
+ $forms = $this->Conn->GetCol('SELECT Title, FormId FROM '.TABLE_PREFIX.'Forms ORDER BY Title ASC', 'FormId');
+ if (!$forms || count($forms) == 0) {
+ return;
+ }
+
+ $base_priority = $sections['in-portal:forms']['priority'];
+
+ $sections['in-portal:submissions'] = Array(
+ 'parent' => 'in-portal:site',
+ 'use_parent_header' => 1,
+ 'icon' => 'form_submission',
+ 'label' => 'la_tab_CMSForms',
+ 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'),
+ 'permissions' => Array('view', 'add', 'edit', 'delete'),
+ 'priority' => $base_priority + 0.1,
+ 'type' => stTREE,
+ );
+
+ $form_subsection = Array(
+ 'parent' => 'in-portal:submissions',
+ 'icon' => 'form_submission',
+ 'label' => '',
+ 'url' => Array('t' => 'submissions/submissions_list', 'pass' => 'm,form'),
+ 'permissions' => Array('view', 'add', 'edit', 'delete'),
+ 'priority' => 1,
+ 'type' => stTREE,
+ );
+
+ $priority = 1;
+ foreach ($forms as $form_id => $form_name) {
+ $this->Application->Phrases->AddCachedPhrase('form_sub_label_'.$form_id, $form_name);
+ $this->Application->Phrases->AddCachedPhrase('la_description_in-portal:submissions:'.$form_id, $form_name.' Submissions');
+ $form_subsection['label'] = 'form_sub_label_'.$form_id;
+ $form_subsection['url']['form_id'] = $form_id;
+ $form_subsection['priority'] = $priority++;
+ $sections['in-portal:submissions:'.$form_id] = $form_subsection;
+ }
+
+ $this->Application->setUnitOption($event->Prefix, 'Sections', $sections);
+ }
+
+ function OnSave(&$event)
+ {
+ parent::OnSave($event);
+ if ($event->status == erSUCCESS) {
+
+ $this->OnCreateFormFields($event);
+
+ $this->Conn->Query('DELETE FROM '.TABLE_PREFIX.'Cache WHERE VarName = "sections_parsed"');
+ $this->Application->StoreVar('RefreshStructureTree', 1);
+ }
+ }
+
+ function OnMassDelete(&$event)
+ {
+ parent::OnMassDelete($event);
+ $this->Conn->Query('DELETE FROM '.TABLE_PREFIX.'Cache WHERE VarName = "sections_parsed"');
+ $this->Application->StoreVar('RefreshStructureTree', 1);
+ }
+
+ /**
+ * Dynamically fills customdata config
+ *
+ * @param kEvent $event
+ */
+ function OnCreateFormFields(&$event)
+ {
+ $cur_fields = $this->Conn->Query('DESCRIBE '.TABLE_PREFIX.'FormSubmissions', 'Field');
+ $cur_fields = array_keys($cur_fields);
+
+ // keep all fields, that are not created on the fly (includes ones, that are added during customizations)
+ foreach ($cur_fields as $field_index => $field_name) {
+ if (!preg_match('/^fld_[\d]+/', $field_name)) {
+ unset($cur_fields[$field_index]);
+ }
+ }
+
+ $desired_fields = $this->Conn->GetCol('SELECT CONCAT(\'fld_\', FormFieldId) FROM '.TABLE_PREFIX.'FormFields ORDER BY FormFieldId');
+
+ $sql = array();
+
+ $fields_to_add = array_diff($desired_fields, $cur_fields);
+ foreach ($fields_to_add as $field) {
+ $field_expression = $field.' Text NULL';
+ $sql[] = 'ADD COLUMN '.$field_expression;
+ }
+
+ $fields_to_drop = array_diff($cur_fields, $desired_fields);
+ foreach ($fields_to_drop as $field) {
+ $sql[] = 'DROP COLUMN '.$field;
+ }
+
+ if ($sql) {
+ $query = 'ALTER TABLE '.TABLE_PREFIX.'FormSubmissions '.implode(', ', $sql);
+ $this->Conn->Query($query);
+ }
+ }
+
+ /*function GetPassedId($event)
+ {
+ return 0;
+ }
+
+ function LoadItem(&$event)
+ {
+ $object =& $event->getObject();
+ $object->SetField('Id',0);
+ $object->SetId(0);
+ }
+*/
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ */
+ function OnFormSubmit(&$event)
+ {
+ $object =& $event->GetObject();
+
+ $fields = explode(',',$this->Application->GetVar('fields'));
+ $required_fields = explode(',', $this->Application->GetVar('required_fields'));
+ $fields_params = $this->Application->GetVar('fields_params');
+
+ foreach ($fields as $field) {
+ $virt_fields[$field] = Array();
+ if (in_array($field, $required_fields)) {
+ $virt_fields[$field]['required'] = 1;
+ }
+ $params = getArrayValue($fields_params, $field);
+ if ($params !== false) {
+ if (getArrayValue($params, 'Type') == 'email') {
+ //'formatter'=>'kFormatter', 'regexp'=>'/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i', 'error_msgs' => Array('invalid_format'=>'!la_invalid_email!')
+ $virt_fields[$field]['formatter'] = 'kFormatter';
+ $virt_fields[$field]['regexp'] = '/^(' . REGEX_EMAIL_USER . '@' . REGEX_EMAIL_DOMAIN . ')$/i';
+ $virt_fields[$field]['error_msgs'] = Array('invalid_format'=>'!la_invalid_email!');
+ }
+ if (getArrayValue($params, 'Type') == 'file') {
+ $virt_fields[$field]['formatter'] = 'kUploadFormatter';
+ $virt_fields[$field]['upload_dir'] = '/uploads/sketches/';
+ }
+ }
+ }
+ $object->SetVirtualFields($virt_fields);
+
+ $field_values = $this->getSubmittedFields($event);
+
+
+ $checkboxes = Array('MailingList', 'In-Link', 'In-Newz', 'In-Bulletin');
+ $checkboxes = explode(',', $this->Application->GetVar('checkbox_fields'));
+ foreach ($checkboxes as $checkbox) {
+ if (isset($field_values[$checkbox])) {
+ $field_values[$checkbox] = 1;
+ }
+ else {
+ $field_values[$checkbox] = '0';
+ }
+ }
+
+ $object->SetFieldsFromHash($field_values);
+ if ($object->Validate()) {
+ $event->redirect = $this->Application->GetVar('success_template');
+ $this->Application->EmailEventAdmin($this->Application->GetVar('email_event'));
+ $this->Application->EmailEventUser($this->Application->GetVar('email_event'), null,
+ Array('to_email' => $field_values[$this->Application->GetVar('email_field')],
+ 'to_name' => $field_values[$this->Application->GetVar('name_field')]));
+
+ if ($field_values['MailingList']) {
+ $this->Application->StoreVar('SubscriberEmail', $field_values['Email']);
+ $this->Application->HandleEvent($sub_event, 'u:OnSubscribeUser', Array('no_unsubscribe' => 1));
+ }
+ }
+ else {
+ $event->status = erFAIL;
+ }
+ }
+
+}
+
+?>
\ No newline at end of file
Index: branches/RC/core/units/categories/cache_updater.php
===================================================================
diff -u -N -r11504 -r11610
--- branches/RC/core/units/categories/cache_updater.php (.../cache_updater.php) (revision 11504)
+++ branches/RC/core/units/categories/cache_updater.php (.../cache_updater.php) (revision 11610)
@@ -331,10 +331,10 @@
$data['titles'] = Array();
$data['parent_path'] = Array();
$data['named_path'] = Array();
+ $data['file_name'] = '';
$data['template'] = ''; // design
$data['item_template'] = '';
$data['children_count'] = 0;
-// $data['system'] = 0;
$data['left'] = 0;
$data['right'] = 2;
$data['debug_title'] = 'ROOT';
@@ -444,7 +444,6 @@
$data['parent_path'][] = $category_id;
$data['named_path'][] = preg_replace('/^Content\\//', '', $record['Filename']);
-// $data['system'] = $record['IsSystem'];
$data['file_name'] = $record['Filename'];
// it is one of the modules root category
Index: branches/RC/core/units/general/helpers/permissions_helper.php
===================================================================
diff -u -N -r11538 -r11610
--- branches/RC/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 11538)
+++ branches/RC/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 11610)
@@ -505,7 +505,7 @@
$cat_hierarchy = $this->Conn->GetOne($sql);
if ($cat_hierarchy === false) {
// category was deleted, but refrence to it stays in other tables -> data integrity is broken
- $cat_hierarchy = '|' . $this->Application->findModule('Name', 'Proj-CMS', 'RootCat') . '|';
+ $cat_hierarchy = '|' . $this->Application->findModule('Name', 'Core', 'RootCat') . '|';
}
}
Index: branches/RC/core/units/content/content_config.php
===================================================================
diff -u -N
--- branches/RC/core/units/content/content_config.php (revision 0)
+++ branches/RC/core/units/content/content_config.php (revision 11610)
@@ -0,0 +1,58 @@
+ 'content',
+ 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
+ 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
+ 'EventHandlerClass' => Array('class'=>'kDBEventHandler','file'=>'','build_event'=>'OnBuild'),
+ 'TagProcessorClass' => Array('class'=>'kDBTagProcessor','file'=>'','build_event'=>'OnBuild'),
+ 'AutoLoad' => true,
+ 'QueryString' => Array(
+ 1 => 'id',
+ 2 => 'Page',
+ 3 => 'event',
+ 4 => 'mode',
+ ),
+ 'IDField' => 'PageContentId',
+ 'ParentTableKey'=> 'CategoryId', // linked field in master table
+ 'ForeignKey' => 'PageId', // linked field in subtable
+ 'ParentPrefix' => 'c',
+ 'AutoDelete' => true,
+ 'AutoClone' => true,
+
+ 'TitleField' => 'ContentNum', // field, used in bluebar when editing existing item
+
+ 'ViewMenuPhrase' => 'la_text_Pages',
+
+ 'TitlePhrase' => 'la_text_PageContent',
+
+ 'TitlePresets' => Array(
+ 'default' => Array( 'new_status_labels' => Array('content'=>'!la_title_Adding_Content!'),
+ 'edit_status_labels' => Array('content'=>'!la_title_Editing_Content!'),
+ 'new_titlefield' => Array('content'=>''),
+ ),
+ 'content_edit' => Array('prefixes' => Array('content'), 'format' => '#content_status# - !la_title_General!'),
+ ),
+
+ 'TableName' => TABLE_PREFIX.'PageContent',
+
+// 'PermSection' => Array('main' => 'CATEGORY:in-portal:structure', ),
+
+ 'ListSQLs' => Array('' => 'SELECT * FROM %s'), // key - special, value - list select sql
+ 'ListSortings' => Array(
+ '' => Array(
+ 'Sorting' => Array('ContentNum' => 'asc'),
+ )
+ ),
+ 'ItemSQLs' => Array('' => 'SELECT * FROM %s'),
+
+ 'Fields' => Array (
+ 'PageContentId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0),
+ 'ContentNum' => Array('type' => 'int','not_null' => 1, 'default' => 0),
+ 'PageId' => Array('type' => 'int','not_null' => 1, 'default' => 0),
+ 'Content' => Array('type' => 'string','formatter'=>'kMultiLanguage', 'format'=>'no_default', 'default' => ''),
+ 'Translated' => Array ('type' => 'int', 'formatter' => 'kMultiLanguage', 'not_null' => 1, 'default' => 0, 'db_type' => 'tinyint', 'index_type' => 'int'),
+ ),
+
+ );
+?>
\ No newline at end of file
Index: branches/RC/core/kernel/application.php
===================================================================
diff -u -N -r11546 -r11610
--- branches/RC/core/kernel/application.php (.../application.php) (revision 11546)
+++ branches/RC/core/kernel/application.php (.../application.php) (revision 11610)
@@ -2370,25 +2370,31 @@
*/
function handleError($errno, $errstr, $errfile = '', $errline = '', $errcontext = '')
{
- if( constOn('SILENT_LOG') )
- {
+ if (defined('SILENT_LOG') && SILENT_LOG) {
$fp = fopen(FULL_PATH.'/silent_log.txt','a');
$time = adodb_date('d/m/Y H:i:s');
fwrite($fp, '['.$time.'] #'.$errno.': '.strip_tags($errstr).' in ['.$errfile.'] on line '.$errline."\n");
fclose($fp);
}
- if (!$this->errorHandlers || (defined('DEBUG_MODE') && DEBUG_MODE && defined('DBG_SKIP_REPORTING') && DBG_SKIP_REPORTING)) {
+ $debug_mode = defined('DEBUG_MODE') && DEBUG_MODE;
+ $skip_reporting = defined('DBG_SKIP_REPORTING') && DBG_SKIP_REPORTING;
+
+ if (!$this->errorHandlers || ($debug_mode && $skip_reporting)) {
// when debugger absent OR it's present, but we actually can't see it's error report (e.g. during ajax request)
- if ($errno == E_USER_ERROR) {
+ $ignore_fatal_errors = defined('DBG_IGNORE_FATAL_ERRORS') && DBG_IGNORE_FATAL_ERRORS;
+
+ if (($errno == E_USER_ERROR) && !$ignore_fatal_errors) {
header('HTTP/1.0 500 Script Fatal Error');
- echo ('
- Fatal Error:
- '."$errstr in $errfile on line $errline".'
-
');
+ echo ('
+ Fatal Error: '."$errstr in $errfile on line $errline".'
+
');
exit;
}
- return true;
+
+ if (!$this->errorHandlers) {
+ return true;
+ }
}
$res = false;
Index: branches/RC/themes/default2009/platform/template_manager/inc/template_manager.js
===================================================================
diff -u -N -r11484 -r11610
--- branches/RC/themes/default2009/platform/template_manager/inc/template_manager.js (.../template_manager.js) (revision 11484)
+++ branches/RC/themes/default2009/platform/template_manager/inc/template_manager.js (.../template_manager.js) (revision 11610)
@@ -61,24 +61,21 @@
TemplateManager.prototype.onMouseOver = function ($e, $element) {
- if (!$element.className.match(/[ ]{0,1}block-container-over[ ]{0,1}/)) {
- $element.className += ' block-container-over';
- }
-
+ $($element).addClass('block-edit-btn-container-over');
$e.stopPropagation();
}
TemplateManager.prototype.onMouseOut = function ($e, $element) {
- $element.className = $element.className.replace(/[ ]{0,1}block-container-over[ ]{0,1}/, '');
-
+ $($element).removeClass('block-edit-btn-container-over');
$e.stopPropagation();
}
TemplateManager.prototype.searchBlocks = function () {
$('div').each (
function () {
- var $id = this.getAttribute('id');
- if (!$id || !$id.match(/parser_block\[.*\]/)) {
+ var $id = $(this).attr('id');
+
+ if (!$id || $id.match(/parser_block\[.*\].*_btn$/) || !$id.match(/parser_block\[.*\]/)) {
// skip other divs
return true;
}
@@ -139,36 +136,4 @@
window[$id] = new CodePress($textarea);
$( window[$id] ).insertBefore($textarea);
-}
-
-function getFrame($name)
-{
- var $main_window = window;
-
- // 1. cycle through popups to get main window
- try {
- // will be error, when other site is opened in parent window
- var $i = 0;
- while ($main_window.opener) {
- if ($i == 10) {
- break;
- }
-
- $main_window = $main_window.opener;
- $i++;
- }
- }
- catch (err) {
- // catch Access/Permission Denied error
-// alert('getFrame.Error: [' + err.description + ']');
- return window;
- }
-
- var $frameset = $main_window.parent.frames;
- for ($i = 0; $i < $frameset.length; $i++) {
- if ($frameset[$i].name == $name) {
- return $frameset[$i];
- }
- }
- return $main_window.parent;
}
\ No newline at end of file
Index: branches/RC/core/units/languages/languages_event_handler.php
===================================================================
diff -u -N -r11538 -r11610
--- branches/RC/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 11538)
+++ branches/RC/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 11610)
@@ -125,7 +125,8 @@
function OnBeforeItemUpdate(&$event)
{
$object =& $event->getObject();
- $status_field = array_shift( $this->Application->getUnitOption($event->Prefix, 'StatusField') );
+ $status_fields = $this->Application->getUnitOption($event->Prefix, 'StatusField');
+ $status_field = array_shift($status_fields);
if ($object->GetDBField('PrimaryLang') == 1 && $object->GetDBField($status_field) == 0) {
$object->SetDBField($status_field, 1);
Index: branches/RC/themes/default2009/index.tpl
===================================================================
diff -u -N -r11591 -r11610
--- branches/RC/themes/default2009/index.tpl (.../index.tpl) (revision 11591)
+++ branches/RC/themes/default2009/index.tpl (.../index.tpl) (revision 11610)
@@ -35,7 +35,7 @@
-
+
Index: branches/RC/themes/default2009/platform/designs/default_design.des.tpl
===================================================================
diff -u -N -r11599 -r11610
--- branches/RC/themes/default2009/platform/designs/default_design.des.tpl (.../default_design.des.tpl) (revision 11599)
+++ branches/RC/themes/default2009/platform/designs/default_design.des.tpl (.../default_design.des.tpl) (revision 11610)
@@ -15,104 +15,107 @@
+
+
-
-
-
-
+
+
+
+
-
img/s.gif" width="1" height="1" alt=""/>
-
img/grey_pix.gif" width="100%" height="1" alt=""/>
-
img/s.gif" width="1" height="1" alt=""/>
+
img/s.gif" width="1" height="1" alt=""/>
+
img/grey_pix.gif" width="100%" height="1" alt=""/>
+
img/s.gif" width="1" height="1" alt=""/>
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
- |
-
+
+
+
+
-
-
- img/s.gif" width="3" height="1" alt=""/>
- |
-
+
+
+ img/s.gif" width="3" height="1" alt=""/>
+ |
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
- |
-
+
+
+
+ |
+
-
-
- img/s.gif" width="3" height="1" alt=""/>
- |
-
+
+
+ img/s.gif" width="3" height="1" alt=""/>
+ |
+
-
-
-
- |
-
- REMOVE THIS LINE TO UNCOMMENT ##-->
-
-
+
+
+
+ |
+
+ REMOVE THIS LINE TO UNCOMMENT ##-->
+ |
+
-
-
+
+
+