Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Sun, Feb 2, 2:58 PM

in-portal

Index: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_tag_processor.php
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_tag_processor.php (revision 1420)
+++ branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_tag_processor.php (revision 1421)
@@ -1,63 +1,63 @@
<?php
class SelectorsTagProcessor extends kDBTagProcessor
{
function PrintStyle($params)
{
$object =& $this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix, $params );
$style_data = $object->GetDBField( $params['field'] );
- //$style_data = str_replace(array("&gt;", "&lt;","&quot;", "&"), array(">","<", "\"", "&"), $style_data);
$ret = '';
if($style_data)
{
//$style_attribs = unserialize($style_data);
foreach($style_data as $property_name => $property_value)
{
$ret .= $property_name.': '.$property_value.';<br>';
}
}
return $ret;
}
/**
* Returns input field name to
* be placed on form (for correct
* event processing)
*
* @param Array $params
* @return string
* @access public
*/
function InputName($params)
{
$ret = parent::InputName($params);
$subfield = getArrayValue($params,'subfield');
if($subfield && $subfield != '$subfield')
{
$ret .= '['.$subfield.']';
}
return $ret;
}
function Field($params)
{
$subfield = getArrayValue($params,'subfield');
if($subfield && $subfield != '$subfield')
{
$params['no_special'] = 'no_special';
}
$ret = parent::Field($params);
if($subfield && $subfield != '$subfield')
{
- return getArrayValue($ret,$subfield);
+ $ret = getArrayValue($ret,$subfield);
+ return $ret !== false ? $ret : '';
}
return $ret;
}
}
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_tag_processor.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.3
\ No newline at end of property
+1.1.2.4
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_event_handler.php
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_event_handler.php (revision 1420)
+++ branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_event_handler.php (revision 1421)
@@ -1,152 +1,217 @@
<?php
class SelectorsEventHandler extends InpDBEventHandler
{
/**
* Show base styles or block styles
*
* @param kEvent $event
*/
function SetCustomQuery(&$event)
{
$object =& $event->getObject();
switch ($event->Special)
{
case 'base':
$object->addFilter('type_filter', '%1$s.Type = 1');
break;
case 'block':
$object->addFilter('type_filter', '%1$s.Type = 2');
break;
}
}
/**
* Get's special of main item for linking with subitem
*
* @param kEvent $event
* @return string
*/
function getMainSpecial(&$event)
{
return '';
}
/**
- * Initializes newly created items
- *
- * @param kEvent $event
- */
- function OnNew(&$event)
- {
- parent::OnNew($event);
-
- $object =& $event->getObject();
- switch ($event->Special) {
- case 'base':
- $object->SetDBField('Type', 1);
- break;
-
- case 'block':
- $object->SetDBField('Type', 2);
- break;
- }
- }
-
- /**
* Save css-style name & description before opening css editor
*
* @param kEvent $event
*/
function OnOpenStyleEditor(&$event)
{
$this->SaveChanges($event);
$event->redirect = false;
}
/**
* Saves Changes to Item
*
* @param kEvent $event
*/
function SaveChanges(&$event)
{
$this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
$object =& $event->getObject();
$items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
if($items_info)
{
list($id,$field_values) = each($items_info);
- $object->Load($id);
- $object->SetFieldsFromHash($field_values);
- $object->Update();
+ if($id == 0)
+ {
+ $object->Load( $field_values['ParentId'] );
+ $object->SetFieldsFromHash($field_values);
+ $object->Create();
+ if( $object->IsTempTable() ) $object->setTempID();
+ }
+ else
+ {
+ $object->Load($id);
+ $object->SetFieldsFromHash($field_values);
+ $object->Update();
+ }
}
}
/**
* Save style changes from style editor
*
* @param kEvent $event
*/
function OnSaveStyle(&$event)
{
$this->SaveChanges($event);
+
$object =& $event->getObject();
+ $this->Application->SetVar($event->getPrefixSpecial().'_id', $object->GetId() );
- $selector_data = $object->GetDBField('SelectorData');
- $object->SetDBField('SelectorData', serialize($selector_data) );
- $object->Update();
+ $return_tpl = $object->GetDBField('Type') == 1 ? 'base_style_edit' : 'block_style_edit';
- $this->finalizePopup($event,'selectors.base','in-commerce/stylesheets/base_style_edit');
+ $this->finalizePopup($event, 'selectors.base','in-commerce/stylesheets/'.$return_tpl);
}
/**
* Extract styles
*
* @param kEvent $event
*/
function OnAfterItemLoad(&$event)
{
$object =& $event->getObject();
$selector_data = $object->GetDBField('SelectorData');
if($selector_data)
{
$selector_data = unserialize($selector_data);
$object->SetDBField('SelectorData', $selector_data);
}
+ else
+ {
+ $selector_data = Array();
+ }
+ $this->AddParentProperties($event, $selector_data);
}
/**
* Serialize item before saving to db
*
* @param kEvent $event
*/
- function OnBeforeItemUpdate(&$event)
+ function OnSerializeSelectorData(&$event)
{
$object =& $event->getObject();
$selector_data = $object->GetDBField('SelectorData');
if(!$selector_data) $selector_data = Array();
+
+ $selector_data = $this->RemoveParentProperties($event, $selector_data);
+
if( !IsSerialized($selector_data) ) $selector_data = serialize($selector_data);
$object->SetDBField('SelectorData', $selector_data);
}
/**
* Unserialize data back when update was made
*
* @param kEvent $event
*/
- function OnAfterItemUpdate(&$event)
+ function OnUnserializeSelectorData(&$event)
{
$object =& $event->getObject();
$selector_data = $object->GetDBField('SelectorData');
if(!$selector_data) $selector_data = Array();
if( IsSerialized($selector_data) ) $selector_data = unserialize($selector_data);
+ $selector_data = $this->AddParentProperties($event, $selector_data);
+
$object->SetDBField('SelectorData', $selector_data);
}
+
+ /**
+ * Populate options based on temporary table :)
+ *
+ * @param kEvent $event
+ */
+ function OnPrepareBaseStyles(&$event)
+ {
+ $object =& $event->getObject();
+
+ $parent_info = $object->getLinkedInfo();
+ $title_field = $this->Application->getUnitOption($event->Prefix,'TitleField');
+ $sql = 'SELECT '.$title_field.', '.$object->IDField.' FROM '.$object->TableName.' WHERE Type = 1 AND StylesheetId = '.$parent_info['ParentId'].' ORDER BY '.$title_field;
+ $object->Fields['ParentId']['options'] = array_merge_recursive2($object->Fields['ParentId']['options'],
+ $this->Conn->GetCol($sql,$object->IDField) );
+ }
+
+ /**
+ * Remove properties of parent style that match by value from style
+ *
+ * @param kEvent $event
+ */
+ function RemoveParentProperties(&$event, $selector_data)
+ {
+ $object =& $event->getObject();
+ $parent_id = $object->GetDBField('ParentId');
+ if($parent_id)
+ {
+ $sql = 'SELECT SelectorData FROM '.$object->TableName.' WHERE '.$object->IDField.' = '.$parent_id;
+ $base_selector_data = $this->Conn->GetOne($sql);
+
+ if( IsSerialized($base_selector_data) ) $base_selector_data = unserialize($base_selector_data);
+
+ foreach($selector_data as $prop_name => $prop_value)
+ {
+ if( $base_selector_data[$prop_name] == $prop_value ) unset($selector_data[$prop_name]);
+ }
+ $object->SetDBField('SelectorData', $selector_data);
+ return $selector_data;
+ }
+ return $selector_data;
+ }
+
+ /**
+ * Add back properties from parent style, that match this style property values
+ *
+ * @param kEvent $event
+ */
+ function AddParentProperties(&$event, $selector_data)
+ {
+ $object =& $event->getObject();
+ $parent_id = $object->GetDBField('ParentId');
+ if($parent_id)
+ {
+ $sql = 'SELECT SelectorData FROM '.$object->TableName.' WHERE '.$object->IDField.' = '.$parent_id;
+ $base_selector_data = $this->Conn->GetOne($sql);
+
+ if( IsSerialized($base_selector_data) ) $base_selector_data = unserialize($base_selector_data);
+
+ $selector_data = array_merge_recursive2($base_selector_data,$selector_data);
+
+ $object->SetDBField('SelectorData', $selector_data);
+ return $selector_data;
+ }
+ return $selector_data;
+ }
}
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.4
\ No newline at end of property
+1.1.2.5
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_item.php
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_item.php (nonexistent)
+++ branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_item.php (revision 1421)
@@ -0,0 +1,25 @@
+<?php
+
+ class SelectorsItem extends kDBItem
+ {
+ /**
+ * Returns compiled selector for inserting into css file
+ *
+ * @return string
+ */
+ function CompileStyle()
+ {
+ $selector_data = $this->GetDBField('SelectorData');
+ $ret = $this->GetDBField('Type') == STYLE_BASE ? '.' : '';
+
+ $ret .= $this->GetDBField('SelectorName')." {\n";
+ foreach($selector_data as $property_name => $property_value)
+ {
+ $ret .= "\t$property_name: $property_value;\n";
+ }
+ $ret .= $this->GetDBField('AdvancedCSS');
+ $ret .= "}\n";
+ return $ret;
+ }
+ }
+?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_item.php
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_config.php
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_config.php (revision 1420)
+++ branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_config.php (revision 1421)
@@ -1,72 +1,106 @@
<?php
define('STYLE_BASE', 1);
define('STYLE_BLOCK', 2);
$config = Array(
'Prefix' => 'selectors',
- 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
+ 'ItemClass' => Array('class'=>'SelectorsItem','file'=>'selectors_item.php','build_event'=>'OnItemBuild'),
'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
'EventHandlerClass' => Array('class'=>'SelectorsEventHandler','file'=>'selectors_event_handler.php','build_event'=>'OnBuild'),
'TagProcessorClass' => Array('class'=>'SelectorsTagProcessor','file'=>'selectors_tag_processor.php','build_event'=>'OnBuild'),
'AutoLoad' => true,
- 'Hooks' => Array(),
+ 'Hooks' => Array(
+ Array(
+ 'Mode' => hAFTER,
+ 'Conditional' => false,
+ 'HookToPrefix' => 'selectors',
+ 'HookToSpecial' => '',
+ 'HookToEvent' => Array('OnBeforeItemUpdate','OnBeforeItemCreate'),
+ 'DoPrefix' => '',
+ 'DoSpecial' => '',
+ 'DoEvent' => 'OnSerializeSelectorData',
+ ),
+
+ Array(
+ 'Mode' => hAFTER,
+ 'Conditional' => false,
+ 'HookToPrefix' => 'selectors',
+ 'HookToSpecial' => '',
+ 'HookToEvent' => Array('OnAfterItemUpdate','OnAfterItemCreate'),
+ 'DoPrefix' => '',
+ 'DoSpecial' => '',
+ 'DoEvent' => 'OnUnserializeSelectorData',
+ ),
+
+ Array(
+ 'Mode' => hAFTER,
+ 'Conditional' => false,
+ 'HookToPrefix' => 'selectors',
+ 'HookToSpecial' => '',
+ 'HookToEvent' => Array('OnItemBuild','OnListBuild'),
+ 'DoPrefix' => '',
+ 'DoSpecial' => '',
+ 'DoEvent' => 'OnPrepareBaseStyles',
+ ),
+ ),
'QueryString' => Array(
1 => 'id',
2 => 'page',
3 => 'event',
),
'IDField' => 'SelectorId',
'TitleField' => 'Name',
'TableName' => TABLE_PREFIX.'StylesheetSelectors',
'ForeignKey' => 'StylesheetId',
'ParentTableKey' => 'StylesheetId',
'ParentPrefix' => 'css',
'AutoDelete' => true,
'AutoClone' => true,
- 'ListSQLs' => Array( ''=>'SELECT * FROM %s',
+ 'ListSQLs' => Array( ''=>' SELECT %1$s.*
+ FROM %s',
), // key - special, value - list select sql
'ItemSQLs' => Array( ''=>'SELECT * FROM %s',
),
'ListSortings' => Array(
'' => Array(
'Sorting' => Array('Name' => 'asc'),
)
),
'Fields' => Array(
'SelectorId' => Array(),
'StylesheetId' => Array('type' => 'int','not_null' => '1','default' => '0'),
'Name' => Array('type' => 'string','not_null' => '1','default' => '','required'=>1),
- 'SelectorName' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'SelectorName' => Array('type' => 'string','not_null' => '1','default' => '','required'=>1),
'SelectorData' => Array('not_null' => '1','default' => ''),
'Description' => Array('type' => 'string','not_null' => '1','default' => ''),
'Type' => Array('type' => 'int', 'formatter'=>'kOptionsFormatter', 'options'=>Array( STYLE_BASE => 'la_BaseSelectors', STYLE_BLOCK => 'la_BlockSelectors'), 'use_phrases' => 1, 'not_null' => '1','default' => '0'),
- 'ParentId' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ 'ParentId' => Array('type' => 'int', 'formatter'=>'kOptionsFormatter', 'options'=>Array(0=>''), 'not_null' => '1','default' => '0'),
),
- 'VirtualFields' => Array(),
+ 'VirtualFields' => Array( ),
'Grids' => Array(
'Default' => Array(
'Icons' => Array('default'=>'icon16_selector.gif'),
'Fields' => Array(
'Name' => Array( 'title'=>'la_col_Name', 'data_block' => 'grid_checkbox_td'),
'Description' => Array( 'title'=>'la_col_Description', 'data_block' => 'grid_description_td' ),
),
),
'BlockStyles' => Array(
'Icons' => Array('default'=>'icon16_selector.gif'),
'Fields' => Array(
'Name' => Array( 'title'=>'la_col_Name', 'data_block' => 'grid_checkbox_td'),
'SelectorName' => Array( 'title'=>'la_col_SelectorName'),
'Description' => Array( 'title'=>'la_col_Description', 'data_block' => 'grid_description_td' ),
),
),
),
);
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/units/selectors/selectors_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.5
\ No newline at end of property
+1.1.2.6
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.1.2/core/units/stylesheets/stylesheets_event_handler.php
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/units/stylesheets/stylesheets_event_handler.php (revision 1420)
+++ branches/unlabeled/unlabeled-1.1.2/core/units/stylesheets/stylesheets_event_handler.php (revision 1421)
@@ -1,78 +1,62 @@
<?php
class StylesheetsEventHandler extends InpDBEventHandler
{
/**
* Compile stylesheet file based on theme definitions
*
* @param kEvent $event
*/
- function OnCompile(&$event)
+ function OnCompileStylesheet(&$event)
{
$this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
$object =& $event->getObject();
- $this->StoreSelectedIDs($event);
-
- $ids = $this->getSelectedIDs($event);
-
- $selectors =& $this->Application->recallObject('selectors','selectors_List',Array('skip_counting'=>true,'per_page'=>-1) );
+ $ids = explode(',', $this->Application->RecallVar($event->getPrefixSpecial().'_selected_ids') );
$ret = '/* This file is generated automatically. Don\'t edit it manually ! */'."\n\n";
if($ids)
{
+ $selector_item =& $this->Application->recallObject('selectors.item', 'selectors');
+ $parent_field = $this->Application->getUnitOption($selector_item->Prefix,'ForeignKey');
+
+ $sql = 'SELECT '.$selector_item->IDField.' FROM '.$selector_item->TableName.' WHERE '.$parent_field.' = '.$id;
+ $selectors_ids = $this->Conn->GetCol($sql);
+
foreach($ids as $id)
{
$object->Load($id);
- $selectors->linkToParent('');
- $selectors->Query();
- $selectors->GoFirst();
-
- while( !$selectors->EOL() )
+ foreach($selectors_ids as $selector_id)
{
- $selector_name = $selectors->GetDBField('Name');
- $selector_data = $selectors->GetDBField('SelectorData');
- $ret .= $this->prepareSelector($selector_name, $selector_data);
- $selectors->GoNext();
+ $selector_item->Load($selector_id);
+ $ret .= $selector_item->CompileStyle()."\n";
}
$compile_ts = time();
$css_path = DOC_ROOT.BASE_PATH.'/themes/';
$css_file = $css_path.$compile_ts.'-'.strtolower($object->GetDBField('Name')).'.css';
$fp = fopen($css_file,'w');
if($fp)
{
$prev_css = $css_path.$object->GetDBField('LastCompiled').'-'.strtolower($object->GetDBField('Name')).'.css';
if( file_exists($prev_css) ) unlink($prev_css);
fwrite($fp, $ret);
fclose($fp);
$object->SetDBField('LastCompiled_date', $compile_ts);
$object->SetDBField('LastCompiled_time', $compile_ts);
$object->Update();
}
}
}
- $this->clearSelectedIDs($event);
}
- function prepareSelector($selector_name, $selector_data)
- {
- if( IsSerialized($selector_data) ) $selector_data = unserialize($selector_data);
- $ret = '.'.$selector_name." {\n";
- foreach($selector_data as $property_name => $property_value)
- {
- $ret .= "\t$property_name: $property_value;\n";
- }
-
- $ret .= "}\n\n";
- return $ret;
- }
+
}
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/units/stylesheets/stylesheets_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.1.2/core/units/stylesheets/stylesheets_config.php
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/units/stylesheets/stylesheets_config.php (revision 1420)
+++ branches/unlabeled/unlabeled-1.1.2/core/units/stylesheets/stylesheets_config.php (revision 1421)
@@ -1,97 +1,114 @@
<?php
$config = Array(
'Prefix' => 'css',
'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
'EventHandlerClass' => Array('class'=>'StylesheetsEventHandler','file'=>'stylesheets_event_handler.php','build_event'=>'OnBuild'),
'TagProcessorClass' => Array('class'=>'kDBTagProcessor','file'=>'','build_event'=>'OnBuild'),
'AutoLoad' => true,
- 'Hooks' => Array(),
+ 'Hooks' => Array(
+ Array(
+ 'Mode' => hAFTER,
+ 'Conditional' => false,
+ 'HookToPrefix' => 'css',
+ 'HookToSpecial' => '',
+ 'HookToEvent' => Array('OnSave'),
+ 'DoPrefix' => '',
+ 'DoSpecial' => '',
+ 'DoEvent' => 'OnCompileStylesheet',
+ ),
+ ),
'QueryString' => Array(
1 => 'id',
2 => 'page',
3 => 'event',
4 => 'mode',
),
'IDField' => 'StylesheetId',
'StatusField' => Array('Enabled'),
'TitleField' => 'Name',
'TitlePresets' => Array(
'default' => Array( 'new_status_labels' => Array('css'=>'!la_title_Adding_Stylesheet!'),
'edit_status_labels' => Array('css'=>'!la_title_Editing_Stylesheet!'),
'new_titlefield' => Array('css'=>'!la_title_New_Stylesheet!'),
),
'styles_list' => Array('prefixes' => Array('css_List'), 'format' => "!la_title_Stylesheets! (#css_recordcount#)"),
'stylesheets_edit' => Array('prefixes' => Array('css'), 'format' => "#css_status# '#css_titlefield#' - !la_title_General!"),
'base_styles' => Array('prefixes' => Array('css','selectors.base_List'), 'format' => "#css_status# '#css_titlefield#' - !la_title_BaseStyles! (#selectors.base_recordcount#)"),
'block_styles' => Array('prefixes' => Array('css','selectors.block_List'), 'format' => "#css_status# '#css_titlefield#' - !la_title_BlockStyles! (#selectors.block_recordcount#)"),
'base_style_edit' => Array( 'prefixes' => Array('css','selectors'),
- 'new_status_labels' => Array('selectors.base'=>'!la_title_Adding_BaseStyle!'),
- 'edit_status_labels' => Array('selectors.base'=>'!la_title_Editing_BaseStyle!'),
- 'new_titlefield' => Array('selectors.base'=>'!la_title_New_BaseStyle!'),
+ 'new_status_labels' => Array('selectors'=>'!la_title_Adding_BaseStyle!'),
+ 'edit_status_labels' => Array('selectors'=>'!la_title_Editing_BaseStyle!'),
+ 'new_titlefield' => Array('selectors'=>'!la_title_New_BaseStyle!'),
'format' => "#css_status# '#css_titlefield#' - #selectors_status# '#selectors_titlefield#'"),
-
+
+ 'block_style_edit' => Array( 'prefixes' => Array('css','selectors'),
+ 'new_status_labels' => Array('selectors'=>'!la_title_Adding_BlockStyle!'),
+ 'edit_status_labels' => Array('selectors'=>'!la_title_Editing_BlockStyle!'),
+ 'new_titlefield' => Array('selectors'=>'!la_title_New_BlockStyle!'),
+ 'format' => "#css_status# '#css_titlefield#' - #selectors_status# '#selectors_titlefield#'"),
+
'style_edit' => Array('prefixes' => Array('selectors'), 'format' => "!la_title_EditingStyle! '#selectors_titlefield#'"),
),
'TableName' => TABLE_PREFIX.'Stylesheets',
'SubItems' => Array('selectors'),
'FilterMenu' => Array(
'Groups' => Array(
Array('mode' => 'AND', 'filters' => Array(0,1), 'type' => WHERE_FILTER),
),
'Filters' => Array(
0 => Array('label' =>'la_Enabled', 'on_sql' => '', 'off_sql' => '%1$s.Enabled != 1' ),
1 => Array('label' => 'la_Disabled', 'on_sql' => '', 'off_sql' => '%1$s.Enabled != 0' ),
)
),
'AutoDelete' => true,
'AutoClone' => true,
'ListSQLs' => Array( ''=>'SELECT * FROM %s',
), // key - special, value - list select sql
'ItemSQLs' => Array( ''=>'SELECT * FROM %s',
),
'ListSortings' => Array(
'' => Array(
'Sorting' => Array('Name' => 'asc'),
)
),
'Fields' => Array(
'StylesheetId' => Array(),
'Name' => Array('type' => 'string','not_null' => '1','default' => '','required'=>1),
'Description' => Array('type' => 'string','not_null' => '1','default' => ''),
'AdvancedCSS' => Array('type' => 'string','not_null' => '1','default' => ''),
'LastCompiled' => Array('type' => 'int', 'formatter' => 'kDateFormatter', 'not_null' => '1','default' => '0'),
'Enabled' => Array('type' => 'int', 'formatter'=>'kOptionsFormatter', 'options'=>Array(0 => 'la_Disabled', 1 => 'la_Enabled'), 'use_phrases' => 1, 'not_null' => '1','default' => 0),
),
'VirtualFields' => Array(),
'Grids' => Array(
'Default' => Array(
'Icons' => Array('default'=>'icon16_custom.gif',0=>'icon16_style_disabled.gif',1=>'icon16_style.gif'),
'Fields' => Array(
'Name' => Array( 'title'=>'la_col_Name', 'data_block' => 'grid_checkbox_td'),
'Description' => Array( 'title'=>'la_col_Description', 'data_block' => 'grid_description_td' ),
'Enabled' => Array( 'title'=>'la_col_Status' ),
'LastCompiled' => Array('title' => 'la_col_LastCompiled'),
),
),
),
);
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/units/stylesheets/stylesheets_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.5
\ No newline at end of property
+1.1.2.6
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/style_editor.tpl
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/style_editor.tpl (revision 1420)
+++ branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/style_editor.tpl (revision 1421)
@@ -1,166 +1,165 @@
<inp2:m_set nobody="yes"/>
<inp2:m_include t="incs/header"/>
<body topmargin="0" leftmargin="8" marginheight="0" marginwidth="8" bgcolor="#FFFFFF">
<inp2:m_ParseBlock name="blue_bar" prefix="css" title_preset="style_edit" module="in-commerce" icon="icon46_style"/>
<script src="incs/colorselector.js" type="text/javascript" language="javascript"></script>
<style type="text/css">
.ColorBox
{
font-size: 1px;
border: #808080 1px solid;
width: 10px;
position: static;
height: 10px;
}
</style>
<!-- ToolBar --->
<table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td>
<script type="text/javascript">
a_toolbar = new ToolBar();
a_toolbar.AddButton( new ToolBarButton('select', '<inp2:m_phrase label="la_ToolTip_Save"/>', function() {
submit_event('selectors','OnSaveStyle');
}
) );
a_toolbar.AddButton( new ToolBarButton('cancel', '<inp2:m_phrase label="la_ToolTip_Cancel"/>', function() {
window.close();
}
) );
a_toolbar.Render();
function openColorSelector($e, $field)
{
var $div = document.getElementById('colorSelector_div');
var posx = 0;
var posy = 0;
if (!$e) var $e = window.event;
if ($e.pageX || $e.pageY)
{
posx = $e.pageX;
posy = $e.pageY;
}
else if ($e.clientX || $e.clientY)
{
posx = $e.clientX + document.body.scrollLeft;
posy = $e.clientY + document.body.scrollTop;
}
$div.style.left = posx;
$div.style.top = posy;
$div.style.display = 'block';
}
</script>
</td>
</tr>
</tbody>
</table>
<inp2:m_block name="inp_edit_color"/>
<script language="javascript">
$cs = new kColorSelector('<inp2:$prefix_InputName field="$field" subfield="$subfield"/>');
</script>
<tr class="<inp2:m_odd_even odd="table_color1" even="table_color2"/>">
<inp2:m_ParseBlock name="inp_edit_field_caption" prefix="$prefix" field="$field" title_phrase="$title_phrase" title="$title" is_last="$is_last"/>
<td>
<input type="text"
name="<inp2:$prefix_InputName field="$field" subfield="$subfield"/>"
id="<inp2:$prefix_InputName field="$field" subfield="$subfield"/>"
value="<inp2:$prefix_Field field="$field" subfield="$subfield"/>"
tabindex="<inp2:m_get param="tab_index"/>"
size="<inp2:m_param name="size"/>"
maxlength="<inp2:m_param name="maxlength"/>"
class="<inp2:m_param name="class"/>"
onkeypress="$cs.updateColor(event,'color_<inp2:$prefix_InputName field="$field" subfield="$subfield"/>')"
onblur="<inp2:m_Param name="onblur"/>">
<div id="color_<inp2:$prefix_InputName field="$field" subfield="$subfield"/>" style="display: inline; border: 1px solid #000000;" onclick="openColorSelector(event,'<inp2:$prefix_InputName field="$field" subfield="$subfield"/>');">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
</td>
<td class="error"><inp2:$prefix_Error field="$field"/>&nbsp;</td>
</tr>
<inp2:m_blockend/>
<table width="100%" border="0" cellspacing="0" cellpadding="4" class="tableborder">
<inp2:m_ParseBlock name="subsection" title="!la_FontAttributes!"/>
<inp2:m_ParseBlock name="inp_edit_color" prefix="selectors" field="SelectorData" subfield="color" title="!la_fld_FontColor!"/>
<inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorData" subfield="font-size" title="!la_fld_FontSize!"/>
<inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorData" subfield="font-style" title="!la_fld_FontStyle!"/>
-
</table>
<script language="javascript" type="text/javascript">
var $input_name = '<inp2:selectors_InputName field="SelectorData" subfield="color"/>';
var oTable = document.getElementById('colorSelector');
var iCounter = 0;
var aColors = '000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,808080,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF';
aColors = aColors.split(',');
function updateColor($event,$color_preview)
{
alert('e: '+$event+'; cp: '+$color_preview);
document.getElementById('color_'+$color_preview).style.backgroundColor = document.getElementById($color_preview).value;
}
function colorMouseOver($e)
{
if(!$e) $e = window.event;
//print_pre(this);
this.parentNode.style.backgroundColor = '#C8D3E2';
this.parentNode.style.borderColor = '#7196CC';
}
function colorMouseOut($e)
{
if(!$e) $e = window.event;
this.parentNode.style.backgroundColor = '#F6F6F6';
this.parentNode.style.borderColor = '#F6F6F6';
}
function colorClick($e)
{
if(!$e) $e = window.event;
var $color = aColors[ this.getAttribute('ColorIndex') ];
document.getElementById('color_'+$input_name).style.backgroundColor = $color;
document.getElementById($input_name).value = '#' + $color;
document.getElementById('colorSelector_div').style.display = 'none';
colorMouseOut($e);
}
while(iCounter < aColors.length)
{
var oRow=oTable.insertRow(-1);
for(var i=0; i<8 && iCounter < aColors.length; i++,iCounter++)
{
var $cell = document.createElement('TD');
$cell.innerHTML = '<div class="ColorBox" style="background-color: #'+aColors[iCounter]+'"></div>';
$cell.onmouseover = colorMouseOver;
$cell.onmouseout = colorMouseOut;
$cell.onclick = colorClick;
$cell.setAttribute('ColorIndex', iCounter);
var oDiv=oRow.insertCell(-1).appendChild($cell);
};
}
</script>
<inp2:m_include t="incs/footer"/>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/style_editor.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/stylesheets_list.tpl
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/stylesheets_list.tpl (revision 1420)
+++ branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/stylesheets_list.tpl (revision 1421)
@@ -1,75 +1,68 @@
<inp2:m_set nobody="yes"/>
<inp2:m_include t="incs/header"/>
<body topmargin="0" leftmargin="8" marginheight="0" marginwidth="8" bgcolor="#FFFFFF">
<inp2:m_ParseBlock name="section_header" icon="icon46_style" title="!la_title_Stylesheets!"/>
<inp2:m_ParseBlock name="blue_bar" prefix="css" title_preset="styles_list" module="in-commerce" icon="icon46_style"/>
<!-- ToolBar --->
<table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td>
<script type="text/javascript">
//do not rename - this function is used in default grid for double click!
function edit()
{
std_edit_item('css', 'in-commerce/stylesheets/stylesheets_edit');
}
var a_toolbar = new ToolBar();
a_toolbar.AddButton( new ToolBarButton('new_style', '<inp2:m_phrase label="la_ToolTip_NewStylesheet"/>',
function() {
std_precreate_item('css', 'in-commerce/stylesheets/stylesheets_edit')
} ) );
a_toolbar.AddButton( new ToolBarButton('edit', '<inp2:m_phrase label="la_ToolTip_Edit"/>', edit) );
a_toolbar.AddButton( new ToolBarButton('delete', '<inp2:m_phrase label="la_ToolTip_Delete"/>',
function() {
std_delete_items('css')
} ) );
a_toolbar.AddButton( new ToolBarSeparator('sep1') );
a_toolbar.AddButton( new ToolBarButton('approve', '<inp2:m_phrase label="la_ToolTip_Approve"/>', function() {
submit_event('css','OnMassApprove');
}
) );
a_toolbar.AddButton( new ToolBarButton('decline', '<inp2:m_phrase label="la_ToolTip_Decline"/>', function() {
submit_event('css','OnMassDecline');
}
) );
a_toolbar.AddButton( new ToolBarSeparator('sep2') );
- a_toolbar.AddButton( new ToolBarButton('compile', '<inp2:m_phrase label="la_ToolTip_Compile"/>', function() {
- submit_event('css','OnCompile');
- }
- ) );
-
- a_toolbar.AddButton( new ToolBarSeparator('sep3') );
-
a_toolbar.AddButton( new ToolBarButton('view', '<inp2:m_phrase label="la_ToolTip_View"/>', function() {
show_viewmenu(a_toolbar,'view');
}
) );
a_toolbar.Render();
</script>
</td>
</tr>
</tbody>
</table>
<inp2:m_block name="grid_description_td" />
<td valign="top" class="text"><inp2:$PrefixSpecial_field field="$field" grid="$grid" no_special="no_special" cut_first="100"/></td>
<inp2:m_blockend />
<inp2:m_ParseBlock name="grid" PrefixSpecial="css" IdField="StylesheetId" grid="Default" header_block="grid_column_title" data_block="grid_data_td" has_filters="has_filters" search="on"/>
<script type="text/javascript">
Grids['css'].SetDependantToolbarButtons( new Array('edit','delete','approve','decline','compile') );
</script>
<inp2:m_include t="incs/footer"/>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/stylesheets_list.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.3
\ No newline at end of property
+1.1.2.4
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/base_style_edit.tpl
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/base_style_edit.tpl (revision 1420)
+++ branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/base_style_edit.tpl (revision 1421)
@@ -1,62 +1,90 @@
<inp2:m_set nobody="yes"/>
<inp2:m_include t="incs/header"/>
<body topmargin="0" leftmargin="8" marginheight="0" marginwidth="8" bgcolor="#FFFFFF">
<inp2:m_ParseBlock name="section_header" icon="icon46_style" title="!la_title_Stylesheets!"/>
<inp2:m_ParseBlock name="blue_bar" prefix="css" title_preset="base_style_edit" module="in-commerce" icon="icon46_style"/>
<!-- ToolBar --->
<table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td>
<script type="text/javascript">
a_toolbar = new ToolBar();
a_toolbar.AddButton( new ToolBarButton('select', '<inp2:m_phrase label="la_ToolTip_Save"/>', function() {
submit_event('selectors','<inp2:selectors_SaveEvent/>');
}
) );
a_toolbar.AddButton( new ToolBarButton('cancel', '<inp2:m_phrase label="la_ToolTip_Cancel"/>', function() {
submit_event('selectors','OnCancel');
}
) );
a_toolbar.Render();
+ function ValidateRequired()
+ {
+ var $fields = new Array('<inp2:selectors_InputName field="Name"/>',
+ '<inp2:selectors_InputName field="SelectorName"/>');
+ var $ret = true;
+ var $i = 0;
+ var $value = '';
+ while($i < $fields.length)
+ {
+ $value = document.getElementById( $fields[$i] ).value;
+ $value = $value.replace(' ','');
+ if($value.length == 0)
+ {
+ $ret = false;
+ break;
+ }
+ $i++;
+ }
+ return $ret;
+ }
+
function editStyle()
{
- openSelector('selectors','<inp2:m_t t="in-commerce/stylesheets/style_editor" pass="all"/>',null,850,460,'OnOpenStyleEditor');
+ if( ValidateRequired() )
+ {
+ openSelector('selectors','<inp2:m_t t="in-commerce/stylesheets/style_editor" pass="all"/>',null,850,460,'OnOpenStyleEditor');
+ }
+ else
+ {
+ alert( RemoveTranslationLink('<inp2:m_phrase name="la_RequiredWarning"/>') );
+ }
}
</script>
</td>
</tr>
</tbody>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="4" class="tableborder">
<inp2:m_ParseBlock name="subsection" title="!la_section_General!"/>
<inp2:m_ParseBlock name="inp_edit_hidden" prefix="selectors" field="StylesheetId"/>
<input type="hidden" name="<inp2:selectors_InputName field="Type"/>" value="1">
<inp2:m_ParseBlock name="inp_id_label" prefix="selectors" field="SelectorId" title="!la_fld_SelectorId!"/>
-
+ <inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorName" title="!la_fld_SelectorName!" size="40"/>
<inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="Name" title="!la_fld_Name!" size="40"/>
<inp2:m_ParseBlock name="inp_edit_textarea" prefix="selectors" field="Description" title="!la_fld_Description!" rows="10" cols="40"/>
<tr class="<inp2:m_odd_even odd="table_color1" even="table_color2"/>">
<inp2:m_inc param="tab_index" by="1"/>
<td class="text" valign="top">
<inp2:m_phrase name="la_fld_SelectorData"/>:<br>
<a href="javascript:editStyle();"><img src="img/icons/icon24_link_editor.gif" style="cursor:hand" border="0"></a>
</td>
<td>
<inp2:selectors_PrintStyle field="SelectorData"/>
</td>
<td class="error">&nbsp;</td>
</tr>
</table>
<input type="hidden" name="main_prefix" id="main_prefix" value="selectors">
<inp2:m_include t="incs/footer"/>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/base_style_edit.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.3
\ No newline at end of property
+1.1.2.4
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/block_style_edit.tpl
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/block_style_edit.tpl (nonexistent)
+++ branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/block_style_edit.tpl (revision 1421)
@@ -0,0 +1,93 @@
+<inp2:m_set nobody="yes"/>
+<inp2:m_include t="incs/header"/>
+
+<body topmargin="0" leftmargin="8" marginheight="0" marginwidth="8" bgcolor="#FFFFFF">
+<inp2:m_ParseBlock name="section_header" icon="icon46_style" title="!la_title_Stylesheets!"/>
+
+
+<inp2:m_ParseBlock name="blue_bar" prefix="css" title_preset="block_style_edit" module="in-commerce" icon="icon46_style"/>
+
+<!-- ToolBar --->
+<table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0">
+<tbody>
+ <tr>
+ <td>
+ <script type="text/javascript">
+ a_toolbar = new ToolBar();
+ a_toolbar.AddButton( new ToolBarButton('select', '<inp2:m_phrase label="la_ToolTip_Save"/>', function() {
+ submit_event('selectors','<inp2:selectors_SaveEvent/>');
+ }
+ ) );
+ a_toolbar.AddButton( new ToolBarButton('cancel', '<inp2:m_phrase label="la_ToolTip_Cancel"/>', function() {
+ submit_event('selectors','OnCancel');
+ }
+ ) );
+
+ a_toolbar.Render();
+
+ function ValidateRequired()
+ {
+ var $fields = new Array('<inp2:selectors_InputName field="Name"/>',
+ '<inp2:selectors_InputName field="SelectorName"/>');
+ var $ret = true;
+ var $i = 0;
+ var $value = '';
+ while($i < $fields.length)
+ {
+ $value = document.getElementById( $fields[$i] ).value;
+ $value = $value.replace(' ','');
+ if($value.length == 0)
+ {
+ $ret = false;
+ break;
+ }
+ $i++;
+ }
+ return $ret;
+ }
+
+ function editStyle()
+ {
+ if( ValidateRequired() )
+ {
+ openSelector('selectors','<inp2:m_t t="in-commerce/stylesheets/style_editor" pass="all"/>',null,850,460,'OnOpenStyleEditor');
+ }
+ else
+ {
+ alert( RemoveTranslationLink('<inp2:m_phrase name="la_RequiredWarning"/>') );
+ }
+ }
+ </script>
+ </td>
+ </tr>
+</tbody>
+</table>
+
+<table width="100%" border="0" cellspacing="0" cellpadding="4" class="tableborder">
+ <inp2:m_ParseBlock name="subsection" title="!la_section_General!"/>
+ <inp2:m_ParseBlock name="inp_edit_hidden" prefix="selectors" field="StylesheetId"/>
+ <input type="hidden" name="<inp2:selectors_InputName field="Type"/>" value="2">
+
+ <inp2:m_ParseBlock name="inp_id_label" prefix="selectors" field="SelectorId" title="!la_fld_SelectorId!"/>
+ <inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="SelectorName" title="!la_fld_SelectorName!" size="40"/>
+
+ <inp2:m_ParseBlock name="inp_edit_options" prefix="selectors" field="ParentId" title="!la_fld_SelectorBase!"/>
+
+ <inp2:m_ParseBlock name="inp_edit_box" prefix="selectors" field="Name" title="!la_fld_Name!" size="40"/>
+ <inp2:m_ParseBlock name="inp_edit_textarea" prefix="selectors" field="Description" title="!la_fld_Description!" rows="10" cols="40"/>
+
+ <tr class="<inp2:m_odd_even odd="table_color1" even="table_color2"/>">
+ <inp2:m_inc param="tab_index" by="1"/>
+ <td class="text" valign="top">
+ <inp2:m_phrase name="la_fld_SelectorData"/>:<br>
+ <a href="javascript:editStyle();"><img src="img/icons/icon24_link_editor.gif" style="cursor:hand" border="0"></a>
+ </td>
+ <td>
+ <inp2:selectors_PrintStyle field="SelectorData"/>
+ </td>
+ <td class="error">&nbsp;</td>
+ </tr>
+
+</table>
+<input type="hidden" name="main_prefix" id="main_prefix" value="selectors">
+<inp2:m_include t="incs/footer"/>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/admin_templates/stylesheets/block_style_edit.tpl
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property

Event Timeline