Index: admin_templates/incs/cms.css =================================================================== --- admin_templates/incs/cms.css (revision 15165) +++ admin_templates/incs/cms.css (working copy) @@ -16,21 +16,25 @@ padding: 5px; } -div.cms-section-properties-btn, div.cms-edit-btn, div.cms-edit-block-btn, div.cms-edit-design-btn { +.cms-edit-btn { padding: 2px 5px; font-family: Arial, Verdana; font-size: 13px; font-weight: normal; - width: auto; - position: absolute; color: black; cursor: pointer; + border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; +} + +.cms-section-properties-btn, .cms-edit-btn, .cms-edit-block-btn, .cms-edit-design-btn { + width: auto; + position: absolute; z-index: 99; } -div.cms-edit-btn, div.cms-edit-block-btn, div.cms-edit-design-btn { +.cms-edit-btn, .cms-edit-block-btn, .cms-edit-design-btn { margin-top: -10px; } @@ -41,25 +45,23 @@ display: none; } -div.cms-edit-design-btn-container div.cms-edit-block-btn, div.cms-edit-design-btn-container div.cms-edit-design-btn { +div.cms-edit-design-btn-container .cms-edit-block-btn, div.cms-edit-design-btn-container .cms-edit-design-btn { float: left; display: block; position: relative; margin: 0px; } -div.cms-edit-design-btn-container div.cms-edit-design-btn { +div.cms-edit-design-btn-container .cms-edit-design-btn { margin-left: 4px; } /* === Styles for "Section Properties" button === */ -div.cms-section-properties-btn { +.cms-section-properties-btn { float: right; position: relative; - border: 2px solid #A1D0A1; + border-color: #A1D0A1; background-color: #CCFF00; - opacity: 0.5; - filter: alpha(opacity=50); } div.cms-section-properties-btn-container { @@ -68,32 +70,60 @@ } /* === Styles for "Edit" button === */ +.cms-btn-new { + cursor: pointer; + background: url(@templates_base@/img/top_frame/icons/content_mode.png) #CCFF00 3px center no-repeat; + padding: 2px 2px 2px 17px; + + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border: 2px solid #A1D0A1; + opacity: 0.5; + filter: alpha(opacity=50); + + color: black; + font-family: Arial, Verdana; + font-size: 13px; + font-weight: normal; +} + +.cms-btn-new:hover { + opacity: 1; + filter: alpha(opacity=100); +} + div.cms-edit-btn-container { border: 1px dashed #FF6E00; } div.cms-edit-btn { - margin-left: -10px; border: 2px solid #FF6E00; - background-color: #FFCC00; - opacity: 0.5; - filter: alpha(opacity=50); } -div.cms-edit-block-btn { +.cms-edit-btn { margin-left: -10px; - border: 2px solid #FF6E00; + border-color: #FF6E00; background-color: #FFCC00; +} + +.cms-edit-block-btn { + border-color: #FF6E00; + background-color: #FFCC00; display: none; } -div.cms-edit-design-btn { - margin-left: -10px; - border: 2px solid #A1D0A1; +.cms-edit-design-btn { + border-color: #A1D0A1; background-color: #CCFF00; display: none; } +.admin-edit-btn { + border-color: #A1D0A1; + background-color: #CCFF00; +} + /* === Styles for "Save" and "Cancel" buttons (for layout) === */ div.cms-layout-btn-container { position: absolute; @@ -101,34 +131,24 @@ z-index: 99; } -div.cms-save-layout-btn, div.cms-cancel-layout-btn { +.cms-save-layout-btn, .cms-cancel-layout-btn { float: left; - padding: 2px 5px; - font-family: Arial, Verdana; - font-size: 13px; - font-weight: normal; width: auto; - color: black; - cursor: pointer; - /*opacity: 0.5; - filter: alpha(opacity=50);*/ - -moz-border-radius: 10px; - -webkit-border-radius: 10px; } -div.cms-save-layout-btn { +.cms-save-layout-btn { color: white; - border: 2px solid #1C960C; + border-color: #1C960C; background-color: #24B30D; } -div.cms-cancel-layout-btn { +.cms-cancel-layout-btn { color: white; - border: 2px solid #C81900; + border-color: #C81900; background-color: #DE2A00; } -div.cms-cancel-layout-btn { +.cms-cancel-layout-btn { margin-left: 4px; } @@ -137,6 +157,11 @@ border: 1px dashed transparent; } +div.block-edit-block-btn-container .cms-btn-new, div.block-edit-design-btn-container .cms-btn-new { + opacity: 1; + filter: alpha(opacity = 100); +} + div.block-edit-block-btn-container-over, div.block-edit-design-btn-container-over { border-color: #FF6E00; } @@ -171,7 +196,7 @@ font-size: 9px; } -span[name='cms-translate-phrase'] .cms-edit-btn { +span[name='cms-translate-phrase'] .cms-edit-btn, span[name='cms-translate-phrase'] .admin-edit-btn { display: none; opacity: 1; filter: alpha(opacity=100); Index: admin_templates/incs/cms_ie.css =================================================================== --- admin_templates/incs/cms_ie.css (revision 0) +++ admin_templates/incs/cms_ie.css (revision 0) @@ -0,0 +1,3 @@ +.cms-btn-new { + padding-left: 20px; +} \ No newline at end of file Property changes on: admin_templates\incs\cms_ie.css ___________________________________________________________________ Added: svn:eol-style + LF Index: admin_templates/js/template_manager.js =================================================================== --- admin_templates/js/template_manager.js (revision 15165) +++ admin_templates/js/template_manager.js (working copy) @@ -47,12 +47,13 @@ if ($template_manager.editingMode > 1) { // all modes except for "Browse Mode" - $hover_effect.push('div.cms-section-properties-btn:first'); +// $hover_effect.push('div.cms-section-properties-btn:first'); } if ($template_manager.editingMode == 2) { // Content Mode - $hover_effect.push('div.cms-edit-btn'); +// $hover_effect.push('div.cms-edit-btn'); +// $hover_effect.push('div.admin-edit-btn'); // make all spans with phrases clickable $template_manager.setupEditTranslationButtons(document); @@ -104,17 +105,19 @@ } // make requested elements fully visible on mouseover - $($hover_effect.join(', ')) - .mouseover( - function(e) { - $(this).css('opacity', 1); - } - ) - .mouseout( - function(e) { - $(this).css('opacity', 0.5); - } - ); + if ( $hover_effect.length ) { + $($hover_effect.join(', ')) + .mouseover( + function(e) { + $(this).css('opacity', 1); + } + ) + .mouseout( + function(e) { + $(this).css('opacity', 0.5); + } + ); + } // related to content revision control toolbar $('#cms-toggle-revision-toolbar').click( @@ -456,12 +459,12 @@ $button_group.show(); } else { - $('div.cms-edit-design-btn:first', $element).show(); + $('.cms-edit-design-btn:first', $element).show(); } } else { $($element).addClass('block-edit-block-btn-container-over'); - $('div.cms-edit-block-btn:first', $element).show(); + $('.cms-edit-block-btn:first', $element).show(); } $e.stopPropagation(); @@ -482,12 +485,12 @@ $button_group.hide(); } else { - $('div.cms-edit-design-btn:first', $element).hide(); + $('.cms-edit-design-btn:first', $element).hide(); } } else { $($element).removeClass('block-edit-block-btn-container-over'); - $('div.cms-edit-block-btn:first', $element).hide(); + $('.cms-edit-block-btn:first', $element).hide(); } $e.stopPropagation(); @@ -505,8 +508,8 @@ $block_containers = $block_containers.not($block_container); // place "Edit Block" button near "Edit Design" button - var $edit_design_btn = $('div.cms-edit-design-btn:first', this); - var $edit_block_btn = $('div.cms-edit-block-btn:first', $block_container); + var $edit_design_btn = $('.cms-edit-design-btn:first', this); + var $edit_block_btn = $('.cms-edit-block-btn:first', $block_container); $edit_design_btn .wrap('
') Index: install/english.lang =================================================================== --- install/english.lang (revision 15255) +++ install/english.lang (working copy) @@ -20,6 +20,7 @@ QmFja2dyb3VuZA== Qm9yZGVycw== QWRk + RWRpdCBJdGVt QnJvd3NlIE1vZGU= Q2FuY2Vs Q2hhbmdl Index: kernel/db/db_tag_processor.php =================================================================== --- kernel/db/db_tag_processor.php (revision 15226) +++ kernel/db/db_tag_processor.php (working copy) @@ -2677,6 +2677,85 @@ } /** + * Creates a button for editing item in Admin Console + * + * @param Array $params + * @return string + * @access protected + */ + protected function AdminEditButton($params) + { + if ( EDITING_MODE != EDITING_MODE_CONTENT ) { + return ''; + } + + $object = $this->getObject($params); + /* @var $object kDBItem */ + + $item_prefix = isset($params['item_prefix']) ? $params['item_prefix'] : $this->Prefix; + + if ( isset($params['template']) ) { + $template = isset($params['template']); + } + else { + $admin_template_prefix = $this->Application->getUnitOption($item_prefix, 'AdminTemplatePrefix'); + $template = $this->Application->getUnitOption($item_prefix, 'AdminTemplatePath') . '/' . $admin_template_prefix . 'edit'; + + if ( !$admin_template_prefix ) { + throw new InvalidArgumentException('Automatic admin editing template detection failed because of missing "AdminTemplatePrefix" unit config option in "' . $this->Prefix . '" unit config'); + } + } + + $form_name = 'kf_' . str_replace('-', '_', $item_prefix) . '_' . $object->GetID(); + $button_icon = isset($params['button_icon']) ? $params['button_icon'] : 'content_mode.png'; + $button_class = isset($params['button_class']) ? $params['button_class'] : 'admin-edit-btn'; + $button_title = isset($params['button_title']) ? $params['button_title'] : 'la_btn_AdminEditItem'; + + if ( substr($button_title, 0, 1) == '+' ) { + $button_title = substr($button_title, 1); + } + else { + $button_title = $this->Application->Phrase($button_title, false, true); + } + + $icon_url = $this->Application->BaseURL() . 'core/admin_templates/img/top_frame/icons/' . $button_icon; + $button_code = ''; + + if ( !isset($params['pass']) ) { + $params['pass'] = 'm,' . $item_prefix; + } + + $params['m_opener'] = 'd'; + $params[$item_prefix . '_id'] = $object->GetID(); + + if ( !isset($params['temp_mode']) || (isset($params['temp_mode']) && $params['temp_mode']) ) { + $params[$item_prefix . '_mode'] = 't'; + $params[$item_prefix . '_event'] = 'OnEdit'; + } + + $params['front'] = 1; // to make opener stack work properly + $params['__URLENCODE__'] = 1; // don't use "&" + $params['__NO_REWRITE__'] = 1; // since admin link +// $params['escape'] = 1; // needed? + + unset($params['button_icon'], $params['button_class'], $params['button_title'], $params['template'], $params['item_prefix'], $params['temp_mode']); + + // link from Front-End to Admin, don't remove "index.php" + $edit_url = $this->Application->HREF($template, ADMIN_DIRECTORY, $params, 'index.php'); + $edit_form = '
'; + + if ( isset($params['forms_later']) && $params['forms_later'] ) { + $all_forms = $this->Application->GetVar('all_forms'); + $this->Application->SetVar('all_forms', $all_forms . $edit_form); + } + else { + $button_code .= $edit_form; + } + + return $button_code; + } + + /** * Calls OnNew event from template, when no other event submitted * * @param Array $params Index: units/categories/categories_tag_processor.php =================================================================== --- units/categories/categories_tag_processor.php (revision 15246) +++ units/categories/categories_tag_processor.php (working copy) @@ -1193,63 +1193,27 @@ $edit_code_before = $edit_code_after = ''; - if (EDITING_MODE == EDITING_MODE_CONTENT) { - $bg_color = isset($params['bgcolor']) ? $params['bgcolor'] : '#ffffff'; - $url_params = Array ( - 'pass' => 'm,c,content', - 'm_opener' => 'd', - 'c_id' => $page->GetID(), - 'content_id' => $content->GetID(), - 'front' => 1, - 'admin' => 1, - '__URLENCODE__' => 1, - '__NO_REWRITE__'=> 1, - 'escape' => 1, - 'index_file' => 'index.php', -// 'bgcolor' => $bg_color, -// '__FORCE_SID__' => 1 - ); + if ( EDITING_MODE == EDITING_MODE_CONTENT ) { + $button_code = $this->Application->ProcessParsedTag($content->getPrefixSpecial(), 'AdminEditButton', $params); - // link from Front-End to admin, don't remove "index.php" - $edit_url = $this->Application->HREF('categories/edit_content', ADMIN_DIRECTORY, $url_params, 'index.php'); $edit_code_before = '
-
-
- -
-
' . $this->Application->Phrase('la_btn_EditContent', false, true) . ' '.(defined('DEBUG_MODE') && DEBUG_MODE ? " - #{$num}" : '').'
-
+ ' . $button_code . '
'; - $edit_form = '
'; - $edit_form .= ''; - $edit_form .= ''; - $edit_form .= ''; - $edit_form .= ''; - $edit_form .= ''; - $edit_form .= '
'; - $edit_code_after = '
'; - - if (array_key_exists('forms_later', $params) && $params['forms_later']) { - $all_forms = $this->Application->GetVar('all_forms'); - $this->Application->SetVar('all_forms', $all_forms . $edit_form); - } - else { - $edit_code_after .= $edit_form; - } } - if ($this->Application->GetVar('_editor_preview_') == 1) { + if ( $this->Application->GetVar('_editor_preview_') == 1 ) { $data = $this->Application->RecallVar('_editor_preview_content_'); - } else { + } + else { $data = $content->GetField('Content'); } $data = $edit_code_before . $this->_transformContentBlockData($data, $params) . $edit_code_after; - if ($data != '') { + if ( $data != '' ) { $this->Application->Parser->DataExists = true; } @@ -1389,6 +1353,10 @@ $ret = '' . "\n"; + $ret .= ' '; + if ( EDITING_MODE == EDITING_MODE_DESIGN ) { $ret .= '