HomeHelpTrac

Changeset 15922 for trunk/templates


Ignore:
Timestamp:
01/25/12 00:01:17 (4 months ago)
Author:
Alexander Trofimov
Message:

Menu in Popup and Design Box

Location:
trunk/templates/base
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/templates/base/_sub_header.html

    r15211 r15922  
    2020    <bx_injection:injection_between_logo_top_menu /> 
    2121 
    22     <div id="bx-menu-main-container" class="bx-def-margin-top"> 
     22    <div id="bx-menu-main-container" class="bx-def-margin-top bx-def-border bx-def-padding bx-def-color-bg-block"> 
    2323        <bx_injection:injection_top_menu_before /> 
    2424        __top_menu__ 
  • trunk/templates/base/css/common.css

    r15849 r15922  
    7070} 
    7171 
    72 .bx-db-menu-tab i { 
    73     display:block; 
    74     float:left; 
    75     width:18px; 
    76     height:40px; 
    77     background-repeat:no-repeat; 
    78     background-position:0px 12px; 
    79     cursor:pointer; 
     72.bx-db-menu-tab-btn { 
     73    padding-top:20px; 
    8074} 
    8175 
  • trunk/templates/base/css/menu.css

    r15865 r15922  
    66} 
    77 
    8 #bx-menu-main { 
    9     border:1px solid #a9a9a9; 
    10     background-color:#fdfdfd; 
    11 } 
    12  
    13 #bx-menu-main.bx-menu-hor li a { 
    14     height:48px; 
    15     line-height:48px; 
    16 } 
    17  
    188/* --------------- menu footer */ 
    199 
    2010#bx-menu-footer { 
    2111    float:left; 
    22 } 
    23  
    24 #bx-menu-footer.bx-menu-hor li:first-child { 
    25     margin-left:0px; 
    26 } 
    27  
    28 #bx-menu-footer.bx-menu-hor li { 
    29     margin-left:20px; 
    3012} 
    3113 
     
    4022.bx-menu-hor li { 
    4123    float:left; 
    42     margin-left:30px; 
     24    margin-left:20px; 
    4325} 
    4426 
    4527.bx-menu-hor li:first-child { 
    46     margin-left:20px; 
     28    margin-left:0px; 
    4729} 
    4830 
  • trunk/templates/base/popup_box.html

    r15752 r15922  
    1212        <div class="bx-db-header"> 
    1313            <div class="bx-db-title bx-def-padding-left"><h2>__title__</h2></div> 
    14             <div class="bx-db-menu bx-def-padding-right"> 
    15                 <bx_repeat:actions> 
    16                     <div id="__id__-act" class="bx-db-menu-tab bx-db-menu-tab-active" style="<bx_if:hide_active>display:none;</bx_if:hide_active>"> 
    17                         __icon__ 
    18                         <span __class__>__title__</span> 
    19                     </div> 
    20                     <div id="__id__-pas" class="bx-db-menu-tab" style="<bx_if:hide_inactive>display:none;</bx_if:hide_inactive>"> 
    21                         __icon__ 
    22                         <a id="__id__" __class__ __href__ __target__ __on_click__>__title__</a> 
    23                     </div> 
    24                 </bx_repeat:actions> 
    25                 <div class="bx-db-menu-tab bx-db-menu-tab-image"> 
    26                     <a href="javascript:void(0)" class="bx-popup-element-close"><i style="background-image:url(<bx_icon_url:cross-button.png />);">&#160;</i></a> 
    27                 </div> 
    28                 <div class="bx-clear"></div> 
    29             </div> 
     14            __buttons__ 
    3015            <div class="bx-clear"></div> 
    3116        </div> 
  • trunk/templates/base/scripts/BxBaseFunctions.php

    r15853 r15922  
    201201     *      ); 
    202202     */ 
    203     function popupBox($sName, $sTitle, $sContent, $aActions = array(), $isHiddenByDefault = false) { 
     203    function popupBox($sName, $sTitle, $sContent, $mixedMenu = false, $isHiddenByDefault = false) { 
    204204 
    205205        $iId = !empty($sName) ? $sName : mktime(); 
    206  
    207         $aButtons = array(); 
    208         foreach($aActions as $sId => $aAction) 
    209             $aButtons[] = array( 
    210                 'id' => $sId, 
    211                 'title' => htmlspecialchars_adv(_t($aAction['title'])), 
    212                 'class' => isset($aAction['class']) ? ' class="' . $aAction['class'] . '"' : '', 
    213                 'icon' => isset($aAction['icon']) ? '<i style="background-image:url(' . $aAction['icon'] . ');">&#160;</i>' : '', 
    214                 'href' => isset($aAction['href']) ? ' href="' . htmlspecialchars_adv($aAction['href']) . '"' : '', 
    215                 'target' => isset($aAction['target'])  ? ' target="' . $aAction['target'] . '"' : '', 
    216                 'on_click' => isset($aAction['onclick']) ? ' onclick="' . $aAction['onclick'] . '"' : '', 
    217                 'bx_if:hide_active' => array( 
    218                     'condition' => !isset($aAction['active']) || $aAction['active'] != 1, 
    219                     'content' => array() 
    220                 ), 
    221                 'bx_if:hide_inactive' => array( 
    222                     'condition' => isset($aAction['active']) && $aAction['active'] == 1, 
    223                     'content' => array() 
    224                 ) 
    225             ); 
    226206 
    227207        return $this->_oTemplate->parseHtmlByName('popup_box.html', array( 
     
    229209            'wrapper_style' => $isHiddenByDefault ? 'display:none;' : '', 
    230210            'title' => $sTitle, 
    231             'bx_repeat:actions' => $aButtons, 
     211            'buttons' => $this->designBoxMenu ($mixedMenu, array ( 
     212                array ('menu' => 1), 
     213                array ('icon' => 'cross-button.png', 'class' => 'bx-popup-element-close'), 
     214            )), 
    232215            'content' => $sContent 
    233216        )); 
     
    662645                // add button width popup             
    663646                $sId = 'bx-str-limit-' . rand(1, PHP_INT_MAX); 
    664                 $sResult .= '<img class="bx-str-limit" onclick="$(\'#' . $sId . '\').dolPopup({pointer:{el:$(this), offset:\'10 1\', offset_pointer:\'4 0\'}})" src="' . $this->getTemplateImage('str-limit.png') . '"/>'; 
     647                $sResult .= '<img class="bx-str-limit" onclick="$(\'#' . $sId . '\').dolPopup({pointer:{el:$(this), offset:\'10 1\'}})" src="' . $this->getTemplateImage('str-limit.png') . '"/>'; 
    665648                $sResult .= '<div id="' . $sId . '" style="display:none;">' . BxTemplFunctions::getInstance()->transBox('<div class="bx-def-padding bx-def-color-bg-block">'.$sString.'</div>') . '</div>'; 
    666649            } 
     
    671654        return trim($sResult); 
    672655    } 
     656 
     657    /** 
     658     * Display design box with specified title, template, content and menu. 
     659     * @param $sTitle - design box title, please note that some templates don't use title. 
     660     * @param $sContent - design box content. 
     661     * @param $iTemplateNum - number of design box template, use predefined contants only, default is BX_DB_DEF. 
     662     * @param $mixedMenu - design box menu, it can be: 
     663     *      - object: instance of BxTemplMenu class 
     664     *      - string: menu object identifier 
     665     *      - array: array of menu links to create menu from 
     666     * @return string 
     667     *  
     668     * @see BX_DB_CONTENT_ONLY 
     669     * @see BX_DB_DEF 
     670     * @see BX_DB_EMPTY 
     671     * @see BX_DB_NO_CAPTION 
     672     * @see BX_DB_PADDING_CONTENT_ONLY 
     673     * @see BX_DB_PADDING_DEF 
     674     * @see BX_DB_PADDING_NO_CAPTION 
     675     */ 
     676    function designBoxContent ($sTitle, $sContent, $iTemplateNum = BX_DB_DEF, $mixedMenu = false) { 
     677        return $this->_oTemplate->parseHtmlByName('designbox_' . (int)$iTemplateNum . '.html', array( 
     678            'title' => $sTitle,             
     679            'designbox_content' => $sContent, 
     680            'caption_item' => $this->designBoxMenu ($mixedMenu, array (array('menu' => 1))), 
     681        )); 
     682    } 
     683 
     684    function designBoxMenu ($mixedMenu, $aButtons = array ()) { 
     685 
     686        $sCode = ''; 
     687        $aButtonMenu = false; 
     688        if ($mixedMenu) { 
     689 
     690            $sMenu = ''; 
     691 
     692            if (is_string($mixedMenu)) { 
     693 
     694                bx_import('BxTemplMenu'); 
     695                $oMenu = BxTemplMenu::getObjectInstance($mixedMenu); 
     696                $sMenu = $oMenu ? $oMenu->getCode () : ''; 
     697 
     698            } elseif (is_object($mixedMenu) && is_a($mixedMenu, 'BxTemplMenu')) { 
     699 
     700                $sMenu = $mixedMenu->getCode(); 
     701 
     702            } elseif (is_array($mixedMenu)) { 
     703 
     704                if (isset($mixedMenu['template']) && isset($mixedMenu['menu_items'])) 
     705                    $aMenu = $mixedMenu; 
     706                else 
     707                    $aMenu = array ('template' => 'menu_horizontal.html', 'menu_items' => $mixedMenu); 
     708                bx_import('BxTemplMenu'); 
     709                $oMenu = new BxTemplMenu($aMenu, $this->_oTemplate); 
     710                $sMenu = $oMenu->getCode (); 
     711            } 
     712 
     713            if ($sMenu) { 
     714 
     715                $this->_oTemplate->addJs('jquery.dolPopup.js'); 
     716                $this->_oTemplate->addJs('jquery.ui.position.min.js'); 
     717 
     718                $sId = 'bx-menu-db-' . time() . rand(0, PHP_INT_MAX); 
     719                $sCode .= '<div id="' . $sId . '" style="display:none;">' . BxTemplFunctions::getInstance()->transBox('<div class="bx-def-padding bx-def-color-bg-block">' . $sMenu . '</div>') . '</div>'; 
     720                $aButtonMenu = array ('icon' => 'control-270.png', 'onclick' => 'if ($(\'#' . $sId . ':visible\').length) $(\'#' . $sId . '\').dolPopupHide(); else $(\'#' . $sId . '\').dolPopup({pointer:{el:$(this)}})'); 
     721            } 
     722             
     723        } 
     724 
     725        if ($aButtons) { 
     726            $sCode .= '<div class="bx-db-menu bx-def-padding-right"><div class="bx-db-menu-tab bx-db-menu-tab-btn">'; 
     727            foreach ($aButtons as $aButton) { 
     728                if (isset($aButton['menu']) && $aButton['menu']) { 
     729                    if (!$aButtonMenu) 
     730                        continue; 
     731                    $aButton = $aButtonMenu;                     
     732                } 
     733 
     734                $aAttrs = array (); 
     735                if (!empty($aButton['onclick'])) 
     736                    $aAttrs['onclick'] = $aButton['onclick']; 
     737                if (!empty($aButton['class'])) 
     738                    $aAttrs['class'] = $aButton['class']; 
     739                $sAttrs = bx_convert_array2attrs ($aAttrs, 'bx-btn bx-def-margin-sec-left'); 
     740 
     741                $sCode .= '<button ' . $sAttrs . '>'; 
     742                $sCode .= !empty($aButton['icon']) ? '<i style="background-image:url(' . $this->_oTemplate->getIconUrl($aButton['icon']) . ')"></i>' : ''; 
     743                $sCode .= !empty($aButton['title']) ? $aButton['title'] : ''; 
     744                $sCode .= '</button>'; 
     745            } 
     746            $sCode .= '</div></div>'; 
     747        } 
     748 
     749        return $sCode; 
     750    } 
    673751} 
Note: See TracChangeset for help on using the changeset viewer.