HomeHelpTrac

Changeset 15936


Ignore:
Timestamp:
01/31/12 09:13:06 (4 months ago)
Author:
Anton Lesnikov
Message:

Studio -> Page Builder (didn't finished yet).

Location:
trunk
Files:
6 added
3 deleted
27 edited

Legend:

Unmodified
Added
Removed
  • trunk/inc/classes/BxDolModuleQuery.php

    r15751 r15936  
    9191        $sSql = "SELECT  
    9292                `id`, 
    93                 IF(`vendor`='BoonEx', CONCAT('bx_', `uri`), `uri`) AS `name`, 
    94                 `type`,  
     93                `type`, 
     94                `name`,  
    9595                `title`,  
    9696                `vendor`,  
  • trunk/modules/boonex/english/install/data/langs/en.xml

    r15915 r15936  
    20462046    <string name="_adm_pgt_err_deactivate_default"><![CDATA[You cannot deactivate language which was selected as Default]]></string> 
    20472047    <string name="_adm_tmi_cpt_builders"><![CDATA[Builders]]></string> 
    2048     <string name="_adm_page_cpt_builder_pages"><![CDATA[Pages Builder]]></string> 
    2049     <string name="_adm_wgt_cpt_builder_pages"><![CDATA[Pages]]></string> 
    20502048    <string name="_adm_page_cpt_builder_menus"><![CDATA[Navigation]]></string> 
    20512049    <string name="_adm_wgt_cpt_builder_menus"><![CDATA[Navigation]]></string> 
     
    21422140    <string name="_sys_acl_action_comments_edit_own"><![CDATA[Comments Edit Own]]></string> 
    21432141    <string name="_sys_acl_action_comments_remove_own"><![CDATA[Comments Remove Own]]></string> 
    2144  
    21452142    <string name="_adm_lmi_cpt_menus"><![CDATA[Menus]]></string> 
    21462143    <string name="_adm_lmi_cpt_sets"><![CDATA[Sets]]></string> 
     
    24422439    <string name="_adm_form_btn_pre_values_save"><![CDATA[Save]]></string> 
    24432440    <string name="_adm_form_btn_pre_values_cancel"><![CDATA[Cancel]]></string> 
     2441   
     2442    <string name="_adm_page_cpt_builder_pages"><![CDATA[Pages Builder]]></string> 
     2443    <string name="_adm_wgt_cpt_builder_pages"><![CDATA[Pages]]></string> 
     2444    <string name="_adm_bp_cpt_type_system"><![CDATA[System]]></string> 
     2445    <string name="_adm_bp_cpt_type_modules"><![CDATA[Modules]]></string> 
     2446    <string name="_adm_bp_txt_select_page"><![CDATA[Select Page...]]></string> 
     2447    <string name="_adm_bp_btn_delete"><![CDATA[Delete]]></string> 
     2448    <string name="_adm_bp_btn_create_new"><![CDATA[Create New]]></string> 
     2449    <string name="_adm_bp_btn_view_page"><![CDATA[View Page]]></string> 
     2450    <string name="_adm_bp_btn_settings"><![CDATA[Settings]]></string> 
     2451    <string name="_adm_bp_btn_add_block"><![CDATA[Add Blocks]]></string> 
     2452    <string name="_adm_bp_txt_create_popup"><![CDATA[Create New Page]]></string> 
     2453    <string name="_adm_bp_txt_settings_popup"><![CDATA[Settings]]></string> 
     2454    <string name="_adm_bp_txt_new_block_popup"><![CDATA[Add New Block]]></string> 
     2455    <string name="_adm_bp_err_cannot_process_action"><![CDATA[Cannot process action. It does not have an associated handler.]]></string> 
     2456    <string name="_adm_bp_err_nothing_changed"><![CDATA[Nothing was changed or an error occured.]]></string> 
     2457    <string name="_adm_bp_err_save"><![CDATA[Cannot save]]></string> 
     2458    <string name="_adm_bp_scs_save"><![CDATA[The changes were successfully saved]]></string> 
     2459    <string name="_adm_bp_txt_page_title"><![CDATA[Title]]></string> 
     2460    <string name="_adm_bp_dsc_page_title"><![CDATA[Page title displayed in page header. Use at least 3 characters.]]></string> 
     2461    <string name="_adm_bp_err_page_title"><![CDATA[A title with at least 3 characters is required.]]></string> 
     2462    <string name="_adm_bp_txt_page_url"><![CDATA[Link]]></string> 
     2463    <string name="_adm_bp_dsc_page_url"><![CDATA[Page link to access the page.]]></string> 
     2464    <string name="_adm_bp_txt_page_layout"><![CDATA[Layout]]></string> 
     2465    <string name="_adm_bp_err_page_layout"><![CDATA[Please, select a page layout.]]></string> 
     2466    <string name="_adm_bp_txt_page_layout_empty"><![CDATA[Select Layout...]]></string> 
     2467    <string name="_adm_bp_txt_page_meta_description"><![CDATA[Meta Description]]></string> 
     2468    <string name="_adm_bp_dsc_page_meta_description"><![CDATA[It's needed to make the page searchable.]]></string> 
     2469    <string name="_adm_bp_txt_page_meta_keywords"><![CDATA[Meta Keywords]]></string> 
     2470    <string name="_adm_bp_dsc_page_meta_keywords"><![CDATA[It's needed to make the page searchable.]]></string> 
     2471    <string name="_adm_bp_txt_page_meta_robots"><![CDATA[Meta Robots]]></string> 
     2472    <string name="_adm_bp_dsc_page_meta_robots"><![CDATA[It's needed to make the page searchable.]]></string> 
     2473    <string name="_adm_bp_btn_page_create"><![CDATA[Create]]></string> 
     2474    <string name="_adm_bp_btn_page_cancel"><![CDATA[Cancel]]></string> 
     2475    <string name="_sys_layout_bar_left"><![CDATA[With left bar]]></string> 
     2476    <string name="_sys_layout_bar_right"><![CDATA[With right bar]]></string> 
     2477    <string name="_sys_layout_3_columns"><![CDATA[3 columns]]></string> 
     2478    <string name="_sys_layout_2_columns"><![CDATA[2 columns]]></string> 
     2479    <string name="_sys_layout_1_column"><![CDATA[1 column]]></string> 
     2480    <string name="_sys_layout_top_area_bar_left"><![CDATA[Top area with left bar]]></string> 
     2481    <string name="_sys_layout_top_area_bar_right"><![CDATA[Top area with right bar]]></string> 
     2482    <string name="_sys_layout_top_area_3_columns"><![CDATA[Top area with 3 columns]]></string> 
     2483    <string name="_sys_layout_top_area_2_columns"><![CDATA[Top area with 2 columns]]></string> 
     2484    <string name="_adm_bp_scs_page_create"><![CDATA[The page was successfully created.]]></string> 
     2485    <string name="_adm_bp_err_page_create"><![CDATA[Cannot create the page.]]></string> 
     2486    <string name="_adm_bp_scs_page_delete"><![CDATA[The page was successfully deleted.]]></string> 
     2487    <string name="_adm_bp_err_page_delete"><![CDATA[Cannot delete the page.]]></string> 
    24442488     
     2489    <string name="_adm_bp_btn_block_add"><![CDATA[Add to Page]]></string> 
     2490    <string name="_adm_bp_btn_block_cancel"><![CDATA[Cancel]]></string> 
     2491    <string name="_adm_bp_txt_blocks_selected"><![CDATA[blocks selected]]></string> 
     2492    <string name=""><![CDATA[]]></string>     
    24452493    <string name=""><![CDATA[]]></string> 
    24462494    <string name=""><![CDATA[]]></string> 
    24472495    <string name=""><![CDATA[]]></string> 
    24482496    <string name=""><![CDATA[]]></string> 
    2449      
     2497    <string name=""><![CDATA[]]></string> 
     2498    <string name=""><![CDATA[]]></string> 
     2499    <string name=""><![CDATA[]]></string> 
     2500    <string name=""><![CDATA[]]></string> 
     2501    <string name=""><![CDATA[]]></string> 
     2502    <string name=""><![CDATA[]]></string> 
     2503    <string name=""><![CDATA[]]></string> 
     2504    <string name=""><![CDATA[]]></string> 
     2505    <string name=""><![CDATA[]]></string> 
     2506    <string name=""><![CDATA[]]></string> 
     2507     
     2508     
    24502509 
    24512510    <string name="_adm_page_cpt_builder_mobile"><![CDATA[Mobile Builder]]></string> 
    2452     <string name="_adm_wgt_cpt_builder_mobile"><![CDATA[Mobile]]></string> 
    2453     <string name="_adm_breadcrumb_builder"><![CDATA[Builders]]></string> 
    2454     <string name="_adm_breadcrumb_builder_page"><![CDATA[Pages Builder]]></string> 
    2455     <string name="_adm_breadcrumb_builder_menu"><![CDATA[Site Menu Builder]]></string> 
    2456     <string name="_adm_breadcrumb_builder_permissions"><![CDATA[Permissions Builder]]></string> 
    2457     <string name="_adm_bld_txt_select_page"><![CDATA[Select Page]]></string> 
    2458     <string name="_adm_bld_btn_delete"><![CDATA[Delete]]></string> 
    2459     <string name="_adm_bld_btn_create_new"><![CDATA[Create New]]></string> 
    2460     <string name="_adm_bld_btn_view_page"><![CDATA[View Page]]></string> 
    2461     <string name="_adm_bld_btn_settings"><![CDATA[Settings]]></string> 
    2462     <string name="_adm_bld_btn_add_block"><![CDATA[Add Blocks]]></string> 
    2463     <string name="_adm_bldp_cpt_type_system"><![CDATA[System]]></string> 
    2464     <string name="_adm_bldp_cpt_type_modules"><![CDATA[Modules]]></string> 
     2511    <string name="_adm_wgt_cpt_builder_mobile"><![CDATA[Mobile]]></string> 
     2512 
    24652513    <string name="_adm_breadcrumb_modules"><![CDATA[Modules]]></string> 
    24662514    <string name="_adm_page_cpt_modules"><![CDATA[Modules]]></string> 
  • trunk/studio/builder_page.php

    r15795 r15936  
    2121 
    2222$sType = bx_get('type'); 
     23if($sType === false) 
     24    $sType = bx_get('bp_type'); 
    2325$sType = $sType !== false ? bx_process_input($sType) : ''; 
    2426 
    2527$sPage = bx_get('page'); 
     28if($sPage === false) 
     29    $sPage = bx_get('bp_page'); 
    2630$sPage = $sPage !== false ? bx_process_input($sPage) : ''; 
    2731 
  • trunk/studio/classes/BxDolStudioBuilderPage.php

    r15580 r15936  
    99defined('BX_DOL') or die('hack attempt'); 
    1010 
    11 bx_import('BxDolStudioBuilder'); 
     11bx_import('BxTemplStudioPage'); 
     12bx_import('BxDolStudioBuilderPageQuery'); 
    1213 
    13 define('BX_DOL_STUDIO_BLDP_TYPE_DEFAULT', 'system'); 
     14define('BX_DOL_STUDIO_BP_TYPE_DEFAULT', 'system'); 
    1415 
    15 class BxDolStudioBuilderPage extends BxDolStudioBuilder { 
     16class BxDolStudioBuilderPage extends BxTemplStudioPage { 
    1617    protected $sType; 
    1718    protected $sPage; 
     19    protected $aPageRebuild; 
    1820 
    19     function BxDolStudioBuilderPage($sType = '', $sPage = '') { 
    20         parent::BxDolStudioBuilder('builder_pages'); 
     21    function __construct($sType = '', $sPage = '') { 
     22        parent::BxTemplStudioPage('builder_pages'); 
    2123 
    22         $this->sType = BX_DOL_STUDIO_BLDP_TYPE_DEFAULT; 
     24        $this->oDb = new BxDolStudioBuilderPageQuery(); 
     25 
     26        $this->sType = BX_DOL_STUDIO_BP_TYPE_DEFAULT; 
    2327        if(is_string($sType) && !empty($sType)) 
    2428            $this->sType = $sType; 
    2529 
    2630        $this->sPage = ''; 
    27         if(is_string($sPage) && !empty($sPage)) 
     31        $this->aPageRebuild = array(); 
     32        if(is_string($sPage) && !empty($sPage)) { 
    2833            $this->sPage = $sPage; 
     34 
     35            $this->aPageRebuild = array(); 
     36            $this->oDb->getPages(array('type' => 'by_object_full', 'value' => $this->sPage), $this->aPageRebuild, false); 
     37            if(empty($this->aPageRebuild) || !is_array($this->aPageRebuild)) { 
     38                $this->sPage = ''; 
     39                $this->aPageRebuild = array(); 
     40            } 
     41        } 
     42 
     43        //--- Check actions ---// 
     44        if(($sAction = bx_get('bp_action')) !== false) { 
     45            $sAction = bx_process_input($sAction); 
     46 
     47            $aResult = array('code' => 1, 'message' => _t('_adm_bp_err_cannot_process_action')); 
     48            switch($sAction) { 
     49                case 'reorder': 
     50                    if(empty($this->aPageRebuild) || !is_array($this->aPageRebuild)) 
     51                        break; 
     52 
     53                    $bResult = false; 
     54                    for($i = 1; $i <= $this->aPageRebuild['layout_cells_number']; $i++) { 
     55                        $aItems = bx_get('bp_items_' . $i); 
     56                        $iItems = count($aItems); 
     57 
     58                        for($j = 0; $j < $iItems; $j++) 
     59                            $bResult |= $this->oDb->updateBlock((int)$aItems[$j], array( 
     60                                'cell_id' => $i, 
     61                                'order' => $j 
     62                            )); 
     63                    } 
     64                    $aResult = $bResult ? array('code' => 0, 'message' => _t('_adm_bp_scs_save')) : array('code' => 1, 'message' => _t('_adm_bp_err_nothing_changed')); 
     65                    break; 
     66 
     67                default: 
     68                    $sMethod = 'action' . $this->getClassName($sAction); 
     69                    if(method_exists($this, $sMethod)) 
     70                        $aResult = $this->$sMethod(); 
     71            } 
     72 
     73            $oJson = new Services_JSON();                
     74            echo $oJson->encode($aResult); 
     75            exit; 
     76        } 
    2977    } 
    3078} 
  • trunk/studio/classes/BxDolStudioBuilderPageQuery.php

    r15539 r15936  
    1212 
    1313class BxDolStudioBuilderPageQuery extends BxDolStudioPageQuery {  
    14     function BxDolStudioBuilderPageQuery() { 
     14    function __construct() { 
    1515        parent::BxDolStudioPageQuery(); 
     16    } 
     17 
     18    function getPages($aParams, &$aItems, $bReturnCount = true) { 
     19        $aMethod = array('name' => 'getAll', 'params' => array(0 => 'query')); 
     20        $sSelectClause = $sJoinClause = $sWhereClause = $sGroupClause = $sOrderClause = $sLimitClause = ""; 
     21 
     22        if(!isset($aParams['order']) || empty($aParams['order'])) 
     23           $sOrderClause = "ORDER BY `tp`.`object` ASC"; 
     24 
     25        switch($aParams['type']) { 
     26            case 'by_id': 
     27                $aMethod['name'] = 'getRow'; 
     28                $sWhereClause = $this->prepare(" AND `tp`.`id`=? ", $aParams['value']); 
     29                break; 
     30            case 'by_object': 
     31                $aMethod['name'] = 'getRow'; 
     32                $sWhereClause = $this->prepare(" AND `tp`.`object`=? ", $aParams['value']); 
     33                break; 
     34            case 'by_object_full': 
     35                $aMethod['name'] = 'getRow'; 
     36                $sSelectClause = ", `tpl`.`name` AS `layout_name`, `tpl`.`icon` AS `layout_icon`, `tpl`.`title` AS `layout_title`, `tpl`.`template` AS `layout_template`, `tpl`.`cells_number` AS `layout_cells_number`"; 
     37                $sJoinClause = "LEFT JOIN `sys_pages_layouts` AS `tpl` ON `tp`.`layout_id`=`tpl`.`id`"; 
     38                $sWhereClause = $this->prepare(" AND `tp`.`object`=? ", $aParams['value']); 
     39                break; 
     40            case 'by_module': 
     41                $sWhereClause = $this->prepare(" AND `tp`.`module`=? ", $aParams['value']); 
     42                break; 
     43            case 'all': 
     44                break; 
     45        } 
     46 
     47        $aMethod['params'][0] = "SELECT SQL_CALC_FOUND_ROWS 
     48                `tp`.`id` AS `id`, 
     49                `tp`.`object` AS `object`, 
     50                `tp`.`title` AS `title`, 
     51                `tp`.`module` AS `module`, 
     52                `tp`.`layout_id` AS `layout_id`, 
     53                `tp`.`visible_for_levels` AS `visible_for_levels`, 
     54                `tp`.`visible_for_levels_editable` AS `visible_for_levels_editable`, 
     55                `tp`.`url` AS `url`, 
     56                `tp`.`meta_description` AS `meta_description`, 
     57                `tp`.`meta_keywords` AS `meta_keywords`, 
     58                `tp`.`meta_robots` AS `meta_robots`, 
     59                `tp`.`cache_server` AS `cache_server`, 
     60                `tp`.`cache_editable` AS `cache_editable`, 
     61                `tp`.`deletable` AS `deletable`, 
     62                `tp`.`override_class_name` AS `override_class_name`, 
     63                `tp`.`override_class_file` AS `override_class_file`" . $sSelectClause . " 
     64            FROM `sys_objects_page` AS `tp` " . $sJoinClause . " 
     65            WHERE 1 " . $sWhereClause . " " . $sGroupClause . " " . $sOrderClause . " " . $sLimitClause; 
     66        $aItems = call_user_func_array(array($this, $aMethod['name']), $aMethod['params']); 
     67 
     68        if(!$bReturnCount) 
     69            return count($aItems) > 0; 
     70 
     71        return (int)$this->getOne("SELECT FOUND_ROWS()"); 
     72    } 
     73 
     74    function deletePages($aParams) { 
     75        $sWhereClause = ""; 
     76 
     77        switch($aParams['type']) { 
     78            case 'by_id': 
     79                $sWhereClause = $this->prepare("AND `tp`.`id`=? ", $aParams['value']); 
     80                break; 
     81            case 'by_object': 
     82                $sWhereClause = $this->prepare("AND `tp`.`object`=? ", $aParams['value']); 
     83                break; 
     84            case 'all': 
     85                break; 
     86        } 
     87 
     88        $sSql = "DELETE FROM `tp` USING `sys_objects_page` AS `tp` WHERE 1 " . $sWhereClause; 
     89        return (int)$this->query($sSql) > 0; 
     90    } 
     91 
     92    function getLayouts($aParams, &$aItems, $bReturnCount = true) { 
     93        $aMethod = array('name' => 'getAll', 'params' => array(0 => 'query')); 
     94        $sSelectClause = $sJoinClause = $sWhereClause = $sGroupClause = $sOrderClause = $sLimitClause = ""; 
     95 
     96        if(!isset($aParams['order']) || empty($aParams['order'])) 
     97           $sOrderClause = "ORDER BY `tpl`.`id` ASC"; 
     98 
     99        switch($aParams['type']) { 
     100            case 'by_id': 
     101                $aMethod['name'] = 'getRow'; 
     102                $sWhereClause = $this->prepare("AND `tpl`.`id`=? ", $aParams['value']); 
     103                break; 
     104            case 'all': 
     105                break; 
     106        } 
     107 
     108        $aMethod['params'][0] = "SELECT SQL_CALC_FOUND_ROWS 
     109                `tpl`.`id` AS `id`, 
     110                `tpl`.`name` AS `name`, 
     111                `tpl`.`icon` AS `icon`, 
     112                `tpl`.`title` AS `title`, 
     113                `tpl`.`title` AS `title`, 
     114                `tpl`.`template` AS `template`, 
     115                `tpl`.`cells_number` AS `cells_number`" . $sSelectClause . " 
     116            FROM `sys_pages_layouts` AS `tpl` " . $sJoinClause . " 
     117            WHERE 1 " . $sWhereClause . " " . $sGroupClause . " " . $sOrderClause . " " . $sLimitClause; 
     118        $aItems = call_user_func_array(array($this, $aMethod['name']), $aMethod['params']); 
     119 
     120        if(!$bReturnCount) 
     121            return count($aItems) > 0; 
     122 
     123        return (int)$this->getOne("SELECT FOUND_ROWS()"); 
     124    } 
     125     
     126    function getBlocks($aParams, &$aItems, $bReturnCount = true) { 
     127        $aMethod = array('name' => 'getAll', 'params' => array(0 => 'query')); 
     128        $sSelectClause = $sJoinClause = $sWhereClause = $sGroupClause = $sOrderClause = $sLimitClause = ""; 
     129 
     130        if(!isset($aParams['order']) || empty($aParams['order'])) 
     131           $sOrderClause = "ORDER BY `tpb`.`order` ASC"; 
     132 
     133        switch($aParams['type']) { 
     134            case 'by_id': 
     135                $aMethod['name'] = 'getRow'; 
     136                $sWhereClause = $this->prepare("AND `tpb`.`id`=? ", $aParams['value']); 
     137                break; 
     138            case 'by_object': 
     139                $sWhereClause = $this->prepare("AND `tpb`.`object`=?", $aParams['value']); 
     140                break; 
     141            case 'by_object_cell': 
     142                $sWhereClause = $this->prepare("AND `tpb`.`object`=? AND `tpb`.`cell_id`=?", $aParams['object'], $aParams['cell']); 
     143                break; 
     144            case 'by_module': 
     145                $sWhereClause = $this->prepare("AND `tpb`.`module`=?", $aParams['value']); 
     146                break; 
     147            case 'all': 
     148                break; 
     149        } 
     150 
     151        $aMethod['params'][0] = "SELECT SQL_CALC_FOUND_ROWS 
     152                `tpb`.`id` AS `id`, 
     153                `tpb`.`object` AS `object`, 
     154                `tpb`.`cell_id` AS `cell_id`, 
     155                `tpb`.`module` AS `module`, 
     156                `tpb`.`title` AS `title`, 
     157                `tpb`.`designbox_id` AS `designbox_id`, 
     158                `tpb`.`visible_for_levels` AS `visible_for_levels`, 
     159                `tpb`.`type` AS `type`, 
     160                `tpb`.`content` AS `content`, 
     161                `tpb`.`deletable` AS `deletable`, 
     162                `tpb`.`copyable` AS `copyable`, 
     163                `tpb`.`order` AS `order`" . $sSelectClause . " 
     164            FROM `sys_pages_blocks` AS `tpb` " . $sJoinClause . " 
     165            WHERE 1 " . $sWhereClause . " " . $sGroupClause . " " . $sOrderClause . " " . $sLimitClause; 
     166        $aItems = call_user_func_array(array($this, $aMethod['name']), $aMethod['params']); 
     167 
     168        if(!$bReturnCount) 
     169            return count($aItems) > 0; 
     170 
     171        return (int)$this->getOne("SELECT FOUND_ROWS()"); 
     172    } 
     173 
     174    function deleteBlocks($aParams) { 
     175        $sWhereClause = ""; 
     176 
     177        switch($aParams['type']) { 
     178            case 'by_id': 
     179                $sWhereClause = $this->prepare("AND `tpb`.`id`=? ", $aParams['value']); 
     180                break; 
     181            case 'by_object': 
     182                $sWhereClause = $this->prepare("AND `tpb`.`object`=? ", $aParams['value']); 
     183                break; 
     184            case 'all': 
     185                break; 
     186        } 
     187 
     188        $sSql = "DELETE FROM `tpb` USING `sys_pages_blocks` AS `tpb` WHERE 1 " . $sWhereClause; 
     189        return (int)$this->query($sSql) > 0; 
     190    } 
     191 
     192    function updateBlock($iId, $aFields) { 
     193        $sSql = "UPDATE `sys_pages_blocks` SET `" . implode("`=?, `", array_keys($aFields)) . "`=?  WHERE `id`=?"; 
     194        $sSql = call_user_func_array(array($this, 'prepare'), array_merge(array($sSql), array_values($aFields), array($iId))); 
     195        return (int)$this->query($sSql) > 0; 
    16196    } 
    17197} 
  • trunk/studio/classes/BxDolStudioGrid.php

    r15914 r15936  
    1313define('BX_DOL_STUDIO_GRID_PARAMS_DIVIDER', '#-#'); 
    1414 
    15 define('BX_DOL_STUDIO_GRID_MODULE_SYSTEM', 'system'); 
    16 define('BX_DOL_STUDIO_GRID_MODULE_CUSTOM', 'custom'); 
    17  
    1815class BxDolStudioGrid extends BxTemplGrid { 
    1916    protected $sParamsDivider; 
     
    2825 
    2926    public function getSystemName($sValue) { 
    30         return str_replace(' ', '_', strtolower($sValue)); 
     27        return stdGetSystemName($sValue); 
    3128    } 
    3229 
    3330    public function getClassName($sValue) { 
    34         return str_replace(' ', '', ucwords(str_replace('_', ' ', $sValue))); 
     31        return stdGetClassName($sValue); 
     32    } 
     33 
     34    protected function getModuleTitle($sName) { 
     35        return stdGetModuleTitle($sName); 
     36    } 
     37 
     38    protected function getModules($bShowCustom = true, $bShowSystem = true) { 
     39        return stdGetModules($bShowCustom, $bShowSystem); 
    3540    } 
    3641 
  • trunk/studio/classes/BxDolStudioPage.php

    r15761 r15936  
    9999        return $aResult; 
    100100    } 
     101 
     102    protected function getSystemName($sValue) { 
     103        return stdGetSystemName($sValue); 
     104    } 
     105 
     106    protected function getClassName($sValue) { 
     107        return stdGetClassName($sValue); 
     108    } 
    101109} 
    102110/** @} */ 
  • trunk/studio/inc/utils.inc.php

    r15477 r15936  
    66 */ 
    77defined('BX_DOL') or die('hack attempt'); 
     8 
     9define('BX_DOL_STUDIO_MODULE_SYSTEM', 'system'); 
     10define('BX_DOL_STUDIO_MODULE_CUSTOM', 'custom'); 
     11 
     12function stdGetSystemName($sValue) { 
     13    return str_replace(' ', '_', strtolower($sValue)); 
     14} 
     15 
     16function stdGetClassName($sValue) { 
     17    return str_replace(' ', '', ucwords(str_replace('_', ' ', $sValue))); 
     18} 
     19 
     20function stdGetModuleIcon($sName, $sType = 'menu') { 
     21    $aType2Prefix = array('menu' => 'mi', 'page' => 'pi'); 
     22 
     23    $oTemplate = BxDolStudioTemplate::getInstance(); 
     24    $sDefaultIcon = $oTemplate->getIconUrl($aType2Prefix[$sType] . '-mod-empty.png');  
     25 
     26    bx_import('BxDolModuleQuery'); 
     27    $aModule = BxDolModuleQuery::getInstance()->getModuleByName($sName); 
     28    if(!empty($aModule)) 
     29        return $sDefaultIcon; 
     30 
     31    $sModuleIcon = isset($aModule['path']) ? $oTemplate->getIconUrl('modules/' . $aModule['path'] . '|std-' . $aType2Prefix[$sType] . '.png') : ''; 
     32    return !empty($sModuleIcon) ? $sModuleIcon : $sDefaultIcon; 
     33} 
     34 
     35function stdGetModuleTitle($sName) { 
     36    $sPrefix = '_adm_txt_module_'; 
     37 
     38    if(in_array($sName, array(BX_DOL_STUDIO_MODULE_SYSTEM, BX_DOL_STUDIO_MODULE_CUSTOM))) 
     39        return _t($sPrefix . $sName); 
     40 
     41    bx_import('BxDolModuleQuery'); 
     42    $aModule = BxDolModuleQuery::getInstance()->getModuleByName($sName); 
     43    if(!empty($aModule)) 
     44        return $aModule['title']; 
     45 
     46    return _t($sPrefix . strtolower($sName)); 
     47} 
     48 
     49function stdGetModules($bShowCustom = true, $bShowSystem = true) { 
     50    $aResult = array(); 
     51 
     52    if($bShowSystem) 
     53        $aResult[] = array('key' => BX_DOL_STUDIO_MODULE_SYSTEM, 'value' => stdGetModuleTitle(BX_DOL_STUDIO_MODULE_SYSTEM)); 
     54 
     55    if($bShowCustom) 
     56        $aResult[] = array('key' => BX_DOL_STUDIO_MODULE_CUSTOM, 'value' => stdGetModuleTitle(BX_DOL_STUDIO_MODULE_CUSTOM)); 
     57 
     58    bx_import('BxDolModuleQuery'); 
     59    $aModules = BxDolModuleQuery::getInstance()->getModulesBy(array('type' => 'modules', 'active' => 1)); 
     60    foreach($aModules as $aModule) 
     61        $aResult[] = array('key' => $aModule['name'], 'value' => $aModule['title']); 
     62 
     63    return $aResult; 
     64} 
     65 
    866/** @} */ 
  • trunk/studio/js/builder_page.js

    r15580 r15936  
    99    this.sActionsUrl = oOptions.sActionUrl; 
    1010    this.sObjName = oOptions.sObjName == undefined ? 'oBxDolStudioBuilderPage' : oOptions.sObjName; 
     11    this.sType = oOptions.sType == undefined ? '' : oOptions.sType; 
     12    this.sPage = oOptions.sPage == undefined ? '' : oOptions.sPage; 
    1113    this.sAnimationEffect = oOptions.sAnimationEffect == undefined ? 'fade' : oOptions.sAnimationEffect; 
    1214    this.iAnimationSpeed = oOptions.iAnimationSpeed == undefined ? 'slow' : oOptions.iAnimationSpeed; 
    1315    this.oHtmlIds = oOptions.oHtmlIds == undefined ? {} : oOptions.oHtmlIds; 
     16 
     17    this.aSortingConf = { 
     18        parent: '.adm-bp-cell-cnt', 
     19        parent_prefix: 'adm-bpc-', 
     20        item: '.adm-bp-block', 
     21        placeholder: 'adm-bp-block adm-bp-block-empty' 
     22    }; 
     23 
     24    var $this = this; 
     25    $(document).ready(function() { 
     26        $($this.aSortingConf.parent).sortable({ 
     27            items: $this.aSortingConf.item, 
     28            connectWith: $this.aSortingConf.parent,  
     29            placeholder: $this.aSortingConf.placeholder, 
     30            start: function(oEvent, oUi) { 
     31                oUi.item.addClass('adm-bp-cell-dragging'); 
     32            }, 
     33            stop: function(oEvent, oUi) { 
     34                oUi.item.removeClass('adm-bp-cell-dragging'); 
     35                $this.reorder(oUi.item); 
     36            } 
     37        }); 
     38    }); 
    1439} 
    1540 
    16 BxDolStudioBuilderPage.prototype.showNewBlockPopup = function() { 
    17     var $this = this; 
    18  
    19     $('#' + this.oHtmlIds.sNewBlockPopupId).dolPopup({ 
    20         closeElement: '#' + this.oHtmlIds.sNewBlockPopupCloseId, 
    21         fog: { 
    22             color: '#fff', 
    23             opacity: .7 
    24         } 
    25     }); 
     41BxDolStudioBuilderPage.prototype.onChangePage = function(oSelect) { 
     42    var sPage = $(oSelect).val(); 
     43    document.location.href = this.sActionsUrl + '?type=' + this.sType + (sPage.length > 0 ? '&page=' + sPage : ''); 
    2644}; 
    2745 
    28 BxDolStudioBuilderPage.prototype.showSettingsPopup = function() { 
     46BxDolStudioBuilderPage.prototype.reorder = function(oDraggable) { 
    2947    var $this = this; 
     48    var oDate = new Date(); 
    3049 
    31     $('#' + this.oHtmlIds.sSettingsPopupId).dolPopup({ 
    32         closeElement: '#' + this.oHtmlIds.sSettingsPopupCloseId, 
    33         fog: { 
    34             color: '#fff', 
    35             opacity: .7 
    36         } 
    37     }); 
    38 }; 
     50    var aParams = new Array(); 
     51    $(this.aSortingConf.parent).each(function(iIndex, oElement){ 
     52        var sId = $(oElement).attr('id'); 
     53        aParams.push($('#' + sId).sortable('serialize', {key: 'bp_items_' + sId.replace($this.aSortingConf.parent_prefix, '') + '[]'})); 
     54    }); 
    3955 
    40 BxDolStudioBuilderPage.prototype.changePage = function(sType, iStart, iLength) { 
    41     alert('Under Construction'); 
    42     return; 
    43  
    44     var oDate = new Date(); 
    45     var $this = this; 
    46     var oParams = { 
    47         pgt_action: 'get-page-by-type', 
    48         pgt_value: sType, 
    49         _t:oDate.getTime() 
    50     }; 
    51  
    52     $.get( 
    53         this.sActionsUrl, 
    54         oParams, 
     56    $.post( 
     57        this.sActionsUrl + '?' + aParams.join('&'), 
     58        { 
     59            bp_action: 'reorder', 
     60            bp_page: $this.sPage, 
     61            _t:oDate.getTime() 
     62        }, 
    5563        function(oData) { 
    5664            if(oData.code != 0) { 
    5765                alert(oData.message); 
    58                 return true; 
     66                return; 
    5967            } 
    60  
    61             if($(oLink)) { 
    62                 $('#bx-std-pc-menu > .bx-std-pmi-active').removeClass('bx-std-pmi-active'); 
    63                 $('#bx-std-pmi-' + sType).addClass('bx-std-pmi-active'); 
    64             } 
    65  
    66             $('#bx-std-pc-content').bx_anim('hide', $this.sAnimationEffect, $this.iAnimationSpeed, function() { 
    67                 $(this).html(oData.content).bx_anim('show', $this.sAnimationEffect, $this.iAnimationSpeed); 
    68             }); 
    6968        }, 
    7069        'json' 
     
    7372    return true; 
    7473}; 
     74 
     75BxDolStudioBuilderPage.prototype.onSelectBlock = function(oCheckbox) { 
     76    var iCounter = parseInt($('#adm-bp-cbf-counter').html()); 
     77    iCounter += $(oCheckbox).attr('checked') == 'checked' ? 1 : -1; 
     78 
     79    $('#adm-bp-cbf-counter').html(iCounter); 
     80}; 
     81 
     82BxDolStudioBuilderPage.prototype.onChangeModule = function(sName, oLink) { 
     83    var $this = this; 
     84    var oDate = new Date(); 
     85 
     86    var sClass = 'bx-std-pmi-active'; 
     87    $(oLink).parents('.bx-std-pmen-item:first').addClass(sClass).siblings('.bx-std-pmen-item').removeClass(sClass); 
     88 
     89    var sId = '#' + $this.oHtmlIds['block_list_id'] + sName; 
     90    if($(sId).length != 0) { 
     91        $('#' + this.oHtmlIds['block_lists_id'] + ' > div:visible').bx_anim('hide', this.sAnimationEffect, 0, function() { 
     92            $(sId).show(); 
     93        }); 
     94 
     95        return; 
     96    } 
     97 
     98    bx_loading(this.oHtmlIds['create_block_popup_id'], true); 
     99 
     100    $.post( 
     101        this.sActionsUrl, 
     102        { 
     103            bp_action: 'block_list', 
     104            bp_module: sName, 
     105            _t:oDate.getTime() 
     106        }, 
     107        function(oData) { 
     108            bx_loading($this.oHtmlIds['create_block_popup_id'], false); 
     109 
     110            $('#' + $this.oHtmlIds['block_lists_id'] + ' > div:visible').bx_anim('hide', $this.sAnimationEffect, 0, function() { 
     111                $(this).parent().append(oData.content); 
     112            }); 
     113        }, 
     114        'json' 
     115    ); 
     116}; 
     117 
     118BxDolStudioBuilderPage.prototype.performAction = function(sAction) { 
     119    var $this = this; 
     120    var oDate = new Date(); 
     121 
     122    $.post( 
     123        this.sActionsUrl, 
     124        { 
     125            bp_action: sAction, 
     126            bp_type: $this.sType, 
     127            bp_page: $this.sPage, 
     128            _t:oDate.getTime() 
     129        }, 
     130        function(oData) { 
     131            oBxDolStudioPage.processJson(oData); 
     132        }, 
     133        'json' 
     134    ); 
     135}; 
    75136/** @} */ 
  • trunk/studio/js/page.js

    r15772 r15936  
    1212    this.iAnimationSpeed = oOptions.iAnimationSpeed == undefined ? 'slow' : oOptions.iAnimationSpeed; 
    1313} 
     14 
     15BxDolStudioPage.prototype.processJson = function (oData) { 
     16    //--- Show Message 
     17    if(oData && oData.msg != undefined) 
     18        alert(oData.msg); 
     19    if(oData && oData.message != undefined) 
     20        alert(oData.message); 
     21 
     22    //--- Show Popup 
     23    if(oData && oData.popup != undefined) { 
     24        var oPopup = $(oData.popup).hide();  
     25 
     26        $('#' + oPopup.attr('id')).remove(); 
     27        oPopup.prependTo('body').dolPopup({ 
     28            fog: { 
     29                color: '#fff', 
     30                opacity: .7 
     31            } 
     32        }); 
     33    } 
     34 
     35    //--- Evaluate JS code 
     36    if (oData && oData.eval != undefined) 
     37        eval(oData.eval); 
     38}; 
    1439 
    1540BxDolStudioPage.prototype.togglePopup = function(sName, oLink) { 
  • trunk/studio/templates/base/_header.html

    r15338 r15936  
    2424    <body class="bx-def-font bx-def-color-bg-page bx-std-bg" <bx_injection:injection_body /> > 
    2525        <bx_injection:injection_header /> 
    26         <div id="FloatDesc"></div> 
  • trunk/studio/templates/base/builder_page.html

    r15539 r15936  
    11<script defer type="text/javascript"> 
    2 <!-- 
    32var __js_object__ = new BxDolStudioBuilderPage({ 
    43    sActionUrl: '<bx_url_studio />builder_page.php', 
     4    sType: '__type__', 
     5    sPage: '__page__', 
    56    oHtmlIds: __html_ids__ 
    67}); 
    7 --> 
    88</script> 
    99<bx_include_auto:page_blocks.html /> 
    10 <div id="__settings_popup_id__" style="display:none">__settings_popup__</div> 
    11 <div id="__new_block_popup_id__" style="display:none">__new_block_popup__</div> 
     10__create_popup__ 
     11__settings_popup__ 
     12__new_block_popup__ 
  • trunk/studio/templates/base/css/builder_page.css

    r15539 r15936  
    88} 
    99 
     10/*--- Main section style ---*/ 
     11div.adm-bp-cell { 
     12    border: 1px solid #b7b7b7; 
     13    background-color: #f8f8f8; 
     14    box-shadow: 0 0 5px rgba(51, 51, 51, 0.7); 
     15} 
     16div.adm-bp-cell-cnt { 
     17    padding: 0px 5px 50px 5px; 
     18} 
     19div.adm-bp-blocks { 
     20    position: relative; 
     21} 
     22div.adm-bp-block { 
     23    position: relative; 
     24    margin: 5px 0px; 
     25    border: 1px solid #b7b7b7; 
     26    border-radius: 5px 5px 5px 5px; 
     27    box-shadow: 0 0 1px rgba(51, 51, 51, 0.7); 
     28    background-color: #f2f2f2; 
     29} 
     30div.adm-bp-block-empty { 
     31    height: 42px; 
     32} 
     33div.adm-bpb-content { 
     34    position: relative; 
     35    padding: 5px; 
     36} 
     37div.adm-bpb-icon { 
     38    position: absolute; 
     39    width: 32px; 
     40    height: 32px; 
     41} 
     42div.adm-bpb-info { 
     43    min-height: 32px; 
     44    padding-left: 40px;  
     45} 
     46div.adm-bpb-title { 
     47    font-weight: bold; 
     48} 
     49div.adm-bpb-module { 
     50    font-size: 11px; 
     51} 
     52div.adm-bpb-checkbox { 
     53    position: absolute; 
     54    top: 11px; 
     55    right: 5px; 
     56} 
    1057/*--- Settings and Add Block popups style ---*/ 
    11 div#adm-bldp-settings-popup { 
    12     width: 610px; 
     58div.adm-bp-create-form {} 
     59div.adm-bp-create-form-cnt {} 
     60 
     61 
     62div#adm-bp-create-block-popup div.bx-def-popup-width { 
     63    width: 620px; 
    1364} 
    14 div#adm-bldp-new-block-popup { 
    15     width: 650px; 
     65 
     66div.adm-bp-create-block-form {} 
     67div.adm-bp-create-block-form-cnt {} 
     68 
     69div.adm-bp-cbf-left { 
     70    float: left; 
     71    width: 179px; 
     72    height: 300px; 
     73    border-right: 1px solid #cccccc; 
     74    overflow-y: auto;  
    1675} 
     76div.adm-bp-cbf-right { 
     77    float: left; 
     78    width: 380px; 
     79    height: 300px; 
     80    overflow-y: auto; 
     81} 
     82div.adm-bp-cbf-controls { 
     83    margin: 0px -20px; 
     84    border-top: 1px solid #cccccc; 
     85} 
     86div.adm-bp-cbf-counter { 
     87    position: relative; 
     88    float: right; 
     89    line-height: 38px; 
     90    color: #b5b5b5; 
     91} 
  • trunk/studio/templates/base/scripts/BxBaseStudioBuilderPage.php

    r15580 r15936  
    1313 
    1414class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage { 
     15    private $sActionPageCreate = 'page_create'; 
     16    private $sActionPageDelete = 'page_delete'; 
     17    private $sActionPageSettings = 'page_settings'; 
     18    private $sActionBlockCreate = 'block_create'; 
     19 
    1520    protected $aHtmlIds = array( 
    16         'sNewBlockPopupId' => 'adm-bldp-new-block-popup', 
    17         'sNewBlockPopupCloseId' => 'adm-bldp-nbp-close', 
    18         'sSettingsPopupId' => 'adm-bldp-settings-popup', 
    19         'sSettingsPopupCloseId' => 'adm-bldp-sp-close' 
     21        'create_popup_id' => 'adm-bp-create-popup', 
     22        'settings_popup_id' => 'adm-bp-settings-popup', 
     23        'create_block_popup_id' => 'adm-bp-create-block-popup', 
     24        'edit_block_popup_id' => 'adm-bp-edit-block-popup', 
     25        'block_id' => 'adm-bpb-', 
     26        'block_list_id' => 'adm-bpl-', 
     27        'block_lists_id' => 'adm-bp-block-lists', 
    2028    ); 
    2129 
    22     function BxBaseStudioBuilderPage($sType = '', $sPage = '') { 
    23         parent::BxDolStudioBuilderPage($sType, $sPage); 
    24     } 
     30    function __construct($sType = '', $sPage = '') { 
     31        parent::__construct($sType, $sPage); 
     32    } 
     33 
    2534    function getPageCss() { 
    26         return array('builder_page.css'); 
    27     } 
     35        return array_merge(parent::getPageCss(), array('page_layouts.css', 'builder_page.css')); 
     36    } 
     37 
    2838    function getPageJs() { 
    29         return array('page.js', 'builder_page.js'); 
    30     } 
     39        return array_merge(parent::getPageJs(), array( 
     40            'jquery.ui.core.min.js',  
     41            'jquery.ui.widget.min.js', 
     42            'jquery.ui.mouse.min.js', 
     43            'jquery.ui.sortable.min.js', 
     44            'jquery.easing.js', 
     45            'jquery.touch.js', 
     46            'jquery.form.js', 
     47            'functions.js', 
     48            'builder_page.js' 
     49        )); 
     50    } 
     51 
    3152    function getPageJsObject() { 
    3253        return 'oBxDolStudioBuilderPage'; 
    3354    } 
     55 
    3456    function getPageMenu() { 
    3557        $sJsObject = $this->getPageJsObject(); 
    3658 
     59        $aMenuItems = array( 
     60            array( 
     61                'type' => BX_DOL_STUDIO_MIT_ITEM,  
     62                'name' => BX_DOL_STUDIO_BP_TYPE_DEFAULT,  
     63                'uri' => BX_DOL_STUDIO_BP_TYPE_DEFAULT,  
     64                'title' => '_adm_bp_cpt_type_system',  
     65                'icon' => 'mi-system.png' 
     66            ), 
     67            array( 
     68                'type' => BX_DOL_STUDIO_MIT_CAPTION,  
     69                'caption' => _t('_adm_bp_cpt_type_modules') 
     70            ) 
     71        ); 
     72 
    3773        bx_import('BxDolModuleQuery'); 
    38         $aModules = BxDolModuleQuery::getInstance()->getModules(); 
    39  
    40         $aSystem = array( 
    41             array('uri' => BX_DOL_STUDIO_BLDP_TYPE_DEFAULT, 'title' => '_adm_bldp_cpt_type_system', 'icon' => 'mi-system.png') 
    42         ); 
    43         $aModules = array_merge($aSystem, $aModules); 
    44         $iModules = count($aModules); 
     74        $aMenuItems = array_merge($aMenuItems, BxDolModuleQuery::getInstance()->getModulesBy(array('type' => 'modules'))); 
    4575 
    4676        $aMenu = array(); 
    47         foreach($aModules as $aModule) { 
     77        foreach($aMenuItems as $aMenuItem) { 
     78            if($aMenuItem['type'] == BX_DOL_STUDIO_MIT_CAPTION) { 
     79                $aMenu[] = array( 
     80                    'type' => BX_DOL_STUDIO_MIT_CAPTION, 
     81                    'caption' => _t($aMenuItem['caption']) 
     82                ); 
     83                continue; 
     84            } 
     85 
    4886            $aMenu[] = array( 
    4987                'type' => BX_DOL_STUDIO_MIT_ITEM, 
    50                 'name' => $aModule['uri'], 
    51                 'icon' => isset($aModule['path']) ? 'modules/' . $aModule['path'] . '|mi-std.png' : $aModule['icon'], 
    52                 'url' => BX_DOL_URL_STUDIO . 'builder_page.php?type=' . $aModule['uri'], 
     88                'name' => $aMenuItem['name'], 
     89                'icon' => isset($aMenuItem['path']) ? 'modules/' . $aMenuItem['path'] . '|std-mi.png' : $aMenuItem['icon'], 
     90                'url' => BX_DOL_URL_STUDIO . 'builder_page.php?type=' . $aMenuItem['name'], 
    5391                'onclick' => '',  
    54             /* 
    55              * Uncomment if AJAX should be used to change (reload) pages. 
    56               
    57              *  'url' => 'javascript:void(0)', 
    58              *  'onclick' => "javascript:" . $sJsObject . ".changePage('" . $aModule['uri'] . "')", 
    59              */ 
    60                 'caption' => $aModule['title'], 
    61                 'active' => $aModule['uri'] == $this->sType 
     92                /* 
     93                 * Uncomment if AJAX should be used to change (reload) pages. 
     94                 * 
     95                 *  'url' => 'javascript:void(0)', 
     96                 *  'onclick' => "javascript:" . $sJsObject . ".changePage('" . $aMenuItem['uri'] . "')", 
     97                 */ 
     98                'caption' => $aMenuItem['title'], 
     99                'active' => $aMenuItem['name'] == $this->sType 
    62100            ); 
    63  
    64             if($aModule['uri'] == BX_DOL_STUDIO_BLDP_TYPE_DEFAULT && $iModules > 1) 
    65                 $aMenu[] = array( 
    66                     'type' => BX_DOL_STUDIO_MIT_CAPTION, 
    67                     'caption' => _t('_adm_bldp_cpt_type_modules'), 
    68                 ); 
    69101        } 
    70102 
     
    74106        return parent::getPageMenu(); 
    75107    } 
     108 
    76109    function getPageCode() { 
    77110        $oJson = new Services_JSON(); 
    78111        $oTemplate = BxDolStudioTemplate::getInstance(); 
    79  
     112        $sJsObject = $this->getPageJsObject(); 
     113 
     114        $sContent = ""; 
     115        if(($bPage = $this->sPage != '') === true) { 
     116            $aTmplVars = array(); 
     117            for($i = 1; $i <= $this->aPageRebuild['layout_cells_number']; $i++) { 
     118                $aBlocks = array(); 
     119                $this->oDb->getBlocks(array('type' => 'by_object_cell', 'object' => $this->aPageRebuild['object'], 'cell' => $i), $aBlocks, false); 
     120 
     121                $aTmplVarsCell = array('id' => $i, 'bx_repeat:blocks' => array()); 
     122                foreach($aBlocks as $aBlock) 
     123                    $aTmplVarsCell['bx_repeat:blocks'][] = array( 
     124                        'id' => $aBlock['id'], 
     125                        'onclick' => $sJsObject . ".showEditBlockPopup(" . $aBlock['id'] . ")", 
     126                        'title' => _t($aBlock['title']), 
     127                        'icon' => stdGetModuleIcon($aBlock['module']), 
     128                        'module' =>stdGetModuleTitle($aBlock['module']), 
     129                        'bx_if:show_checkbox' => array( 
     130                            'condition' => false, 
     131                            'content' => array() 
     132                        ) 
     133                    ); 
     134 
     135                $aTmplVars['cell_' . $i] = $oTemplate->parseHtmlByName('bp_cell.html', $aTmplVarsCell); 
     136            } 
     137 
     138            $sContent = $oTemplate->parseHtmlByName($this->aPageRebuild['layout_template'], $aTmplVars); 
     139        } 
     140         
    80141        $aTmplVars = array( 
    81             'js_object' => $this->getPageJsObject(), 
     142            'js_object' => $sJsObject, 
     143            'type' => $this->sType, 
     144            'page' => $this->sPage, 
    82145            'html_ids' => $oJson->encode($this->aHtmlIds), 
    83             'bx_repeat:blocks' => array( 
     146            'bx_repeat:blocks' => array( 
    84147                array( 
    85148                    'caption' => '', 
    86149                    'panel_top' => $this->getBlockPanelTop(), 
    87                     'items' => 'main area woud be here', 
     150                    'items' => $sContent, 
    88151                    'panel_bottom' => '' 
    89152                ) 
    90             ), 
    91             'settings_popup_id' => $this->aHtmlIds['sSettingsPopupId'], 
    92             'settings_popup' => $this->getPopupSettings(), 
    93             'new_block_popup_id' => $this->aHtmlIds['sNewBlockPopupId'], 
    94             'new_block_popup' => $this->getPopupNewBlock() 
     153            ) 
    95154        ); 
    96155 
    97156        return $oTemplate->parseHtmlByName('builder_page.html', $aTmplVars); 
    98157    } 
     158 
    99159    function getBlockPanelTop($aParams = array()) { 
    100160        $oTemplate = BxDolStudioTemplate::getInstance(); 
    101161 
     162        bx_import('BxTemplStudioFormView'); 
     163        $oForm = new BxTemplStudioFormView(array()); 
     164 
     165        $aInputPages = array( 
     166            'type' => 'select', 
     167            'name' => 'page', 
     168            'attrs' => array( 
     169                'onChange' => 'javascript:' . $this->getPageJsObject() . '.onChangePage(this)' 
     170            ), 
     171            'value' => $this->sPage, 
     172            'values' => array( 
     173                array('key' => '', 'value' => _t('_adm_bp_txt_select_page')) 
     174            ) 
     175        ); 
     176 
     177        $aPages = array(); 
     178        $this->oDb->getPages(array('type' => 'by_module', 'value' => $this->sType), $aPages, false); 
     179        foreach($aPages as $aPage) 
     180            $aInputPages['values'][] = array('key' => $aPage['object'], 'value' => _t($aPage['title'])); 
     181 
     182        $aTmplVarsActions = array(); 
     183        if(($bPage = $this->sPage != '' && !empty($this->aPageRebuild)) !== false) 
     184            $aTmplVarsActions = array( 
     185                'js_object' => $this->getPageJsObject(), 
     186                'url_view' => BX_DOL_URL_ROOT . $this->aPageRebuild['url'],  
     187                'action_page_delete' => $this->sActionPageDelete, 
     188                'action_page_settings' => $this->sActionPageSettings, 
     189                'action_block_create' => $this->sActionBlockCreate, 
     190            ); 
     191 
    102192        $aTmplVars = array( 
    103             'js_object' => $this->getPageJsObject(), 
    104             'bx_repeat:pages' => array() 
    105         ); 
    106  
    107         $aPages = array(); 
    108         //$iPages = $this->oDb->getPagesBy(array('type' => 'all'), $aPages); 
    109         foreach($aPages as $aPage) 
    110             $aTmplVars['bx_repeat:pages'][] = array( 
    111                 'key' => $aPage['id'], 
    112                 'value' => $aPage['name'], 
    113                 'bx_if:selected' => array( 
     193            'js_object' => $this->getPageJsObject(), 
     194            'selector' => $oForm->genRow($aInputPages), 
     195            'action_page_create' => $this->sActionPageCreate, 
     196            'bx_if:show_actions' => array( 
     197                'condition' => $this->sPage != '', 
     198                'content' => $aTmplVarsActions 
     199            ) 
     200        ); 
     201 
     202        return parent::getBlockPanelTop( 
     203            array('panel_top' => $oTemplate->parseHtmlByName('bp_block_panel_top.html', $aTmplVars)) 
     204        ); 
     205    } 
     206 
     207    public function actionPageCreate() { 
     208        $oTemplate = BxDolStudioTemplate::getInstance(); 
     209 
     210        $aForm = array( 
     211            'form_attrs' => array( 
     212                'id' => 'adm-bp-page-create', 
     213                'action' => BX_DOL_URL_STUDIO . 'builder_page.php?bp_action=' . $this->sActionPageCreate, 
     214                'method' => 'post' 
     215            ), 
     216            'params' => array ( 
     217                'db' => array( 
     218                    'table' => 'sys_objects_page', 
     219                    'key' => 'id', 
     220                    'uri' => '', 
     221                    'uri_title' => '', 
     222                    'submit_name' => 'do_submit' 
     223                ), 
     224            ), 
     225            'inputs' => array (             
     226                'module' => array( 
     227                    'type' => 'hidden', 
     228                    'name' => 'module', 
     229                    'value' => $this->sType, 
     230                    'db' => array ( 
     231                        'pass' => 'Xss', 
     232                    ), 
     233                ), 
     234                'deletable' => array( 
     235                    'type' => 'hidden', 
     236                    'name' => 'deletable', 
     237                    'value' => 1, 
     238                    'db' => array ( 
     239                        'pass' => 'Int', 
     240                    ), 
     241                ), 
     242                'title' => array( 
     243                    'type' => 'text', 
     244                    'name' => 'title', 
     245                    'caption' => _t('_adm_bp_txt_page_title'), 
     246                    'info' => _t('_adm_bp_dsc_page_title'), 
     247                    'value' => '', 
     248                    'required' => '1', 
     249                    'db' => array ( 
     250                        'pass' => 'Xss', 
     251                    ), 
     252                    'checker' => array ( 
     253                        'func' => 'length', 
     254                        'params' => array(3,100), 
     255                        'error' => _t('_adm_bp_err_page_title'), 
     256                    ), 
     257                ), 
     258                'url' => array( 
     259                    'type' => 'text', 
     260                    'name' => 'url', 
     261                    'caption' => _t('_adm_bp_txt_page_url'), 
     262                    'info' => _t('_adm_bp_dsc_page_url'), 
     263                    'value' => '', 
     264                    'required' => '0', 
     265                    'db' => array ( 
     266                        'pass' => 'Xss', 
     267                    ) 
     268                ), 
     269                'layout_id' => array( 
     270                    'type' => 'select', 
     271                    'name' => 'layout_id', 
     272                    'caption' => _t('_adm_bp_txt_page_layout'), 
     273                    'info' => '', 
     274                    'value' => '', 
     275                    'values' => array( 
     276                        array('key' => '', 'value' => _t('_adm_bp_txt_page_layout_empty')), 
     277                    ), 
     278                    'required' => '1', 
     279                    'db' => array ( 
     280                        'pass' => 'Int', 
     281                    ), 
     282                    'checker' => array ( 
     283                        'func' => 'avail', 
     284                        'params' => array(), 
     285                        'error' => _t('_adm_bp_err_page_layout'), 
     286                    ), 
     287                ), 
     288                'meta_description' => array( 
     289                    'type' => 'textarea', 
     290                    'name' => 'meta_description', 
     291                    'caption' => _t('_adm_bp_txt_page_meta_description'), 
     292                    'info' => _t('_adm_bp_dsc_page_meta_description'), 
     293                    'value' => '', 
     294                    'db' => array ( 
     295                        'pass' => 'Xss', 
     296                    ), 
     297                ), 
     298                'meta_keywords' => array( 
     299                    'type' => 'textarea', 
     300                    'name' => 'meta_keywords', 
     301                    'caption' => _t('_adm_bp_txt_page_meta_keywords'), 
     302                    'info' => _t('_adm_bp_dsc_page_meta_keywords'), 
     303                    'value' => '', 
     304                    'db' => array ( 
     305                        'pass' => 'Xss', 
     306                    ), 
     307                ), 
     308                'meta_robots' => array( 
     309                    'type' => 'text', 
     310                    'name' => 'meta_robots', 
     311                    'caption' => _t('_adm_bp_txt_page_meta_robots'), 
     312                    'info' => _t('_adm_bp_dsc_page_meta_robots'), 
     313                    'value' => '', 
     314                    'required' => '0', 
     315                    'db' => array ( 
     316                        'pass' => 'Xss', 
     317                    ) 
     318                ), 
     319                'controls' => array( 
     320                    'name' => 'controls',  
     321                    'type' => 'input_set', 
     322                    array( 
     323                        'type' => 'submit', 
     324                        'name' => 'do_submit', 
     325                        'value' => _t('_adm_bp_btn_page_create'), 
     326                    ), 
     327                    array ( 
     328                        'type' => 'reset', 
     329                        'name' => 'close', 
     330                        'value' => _t('_adm_bp_btn_page_cancel'), 
     331                        'attrs' => array( 
     332                            'onclick' => "$('.bx-popup-applied:visible').dolPopupHide()", 
     333                            'class' => 'bx-def-margin-sec-left', 
     334                        ), 
     335                    ) 
     336                ) 
     337            ) 
     338        ); 
     339 
     340        $aLayouts = array(); 
     341        $this->oDb->getLayouts(array('type' => 'all'), $aLayouts, false); 
     342        foreach($aLayouts as $aLayout) 
     343            $aForm['inputs']['layout_id']['values'][] = array('key' => $aLayout['id'], 'value' => _t($aLayout['title'])); 
     344 
     345        bx_import('BxTemplStudioFormView'); 
     346        $oForm = new BxTemplStudioFormView($aForm); 
     347        $oForm->initChecker(); 
     348 
     349        $sContent = ""; 
     350        if($oForm->isSubmittedAndValid()) { 
     351            $sTitleValue = $oForm->getCleanValue('title'); 
     352            $sObject = stdGetSystemName($sTitleValue); 
     353            $sTitleKey = '_sys_bpb_caption_' . $sObject; 
     354            $oForm->setSubmittedValue('title', $sTitleKey, $aForm['form_attrs']['method']); 
     355 
     356            $iId = (int)$oForm->insert(array('object' => $sObject)); 
     357            if($iId != 0) { 
     358                bx_import('BxDolStudioLanguagesUtils'); 
     359                BxDolStudioLanguagesUtils::getInstance()->addLanguageString($sTitleKey, $sTitleValue); 
     360 
     361                return array( 
     362                    //'msg' => _t('_adm_bp_scs_page_create'), 
     363                    'eval' => 'window.parent.location.href = "' . BX_DOL_URL_STUDIO . 'builder_page.php?type=' . $this->sType . '&page=' . $sObject . '";' 
     364                ); 
     365            } 
     366            else 
     367                return array('msg' => _t('_adm_bp_err_page_create')); 
     368        } 
     369 
     370        bx_import('BxTemplStudioFunctions'); 
     371        $sContent = BxTemplStudioFunctions::getInstance()->popupBox($this->aHtmlIds['create_popup_id'], _t('_adm_bp_txt_create_popup'), $oTemplate->parseHtmlByName('bp_add_page.html', array( 
     372            'form_id' => $aForm['form_attrs']['id'], 
     373            'form' => $oForm->getCode() 
     374        ))); 
     375 
     376        return array('popup' => $sContent); 
     377    } 
     378 
     379    protected function actionPageDelete() { 
     380        bx_import('BxDolStudioLanguagesUtils'); 
     381        $oLangauge = BxDolStudioLanguagesUtils::getInstance(); 
     382 
     383        $aBlocks = array(); 
     384        $this->oDb->getBlocks(array('type' => 'by_object', 'value' => $this->sPage), $aBlocks, false); 
     385        if(is_array($aBlocks) && !empty($aBlocks)) { 
     386            foreach($aBlocks as $aBlock) 
     387                $oLangauge->deleteLanguageString($aBlock['title']); 
     388 
     389            $this->oDb->deleteBlocks(array('type' => 'by_object', 'value' => $this->sPage)); 
     390        } 
     391 
     392        if(is_array($this->aPageRebuild) && !empty($this->aPageRebuild)) { 
     393            $oLangauge->deleteLanguageString($this->aPageRebuild['title']); 
     394 
     395            $this->oDb->deletePages(array('type' => 'by_object', 'value' => $this->sPage)); 
     396 
     397            $aResult = array( 
     398                'msg' => _t('_adm_bp_scs_page_delete'), 
     399                'eval' => 'window.parent.location.href = "' . BX_DOL_URL_STUDIO . 'builder_page.php?type=' . $this->sType . '";' 
     400            ); 
     401        } 
     402        else 
     403            $aResult = array('msg' => _t('_adm_bp_err_page_delete')); 
     404 
     405        return $aResult; 
     406    } 
     407 
     408    protected function actionPageSettings() { 
     409        $sContent = "Change Settings"; 
     410 
     411        bx_import('BxTemplStudioFunctions'); 
     412        $sContent = BxTemplStudioFunctions::getInstance()->popupBox($this->aHtmlIds['settings_popup_id'], _t('_adm_bp_txt_settings_popup'), $sContent); 
     413 
     414        return array('popup' => $sContent); 
     415    } 
     416 
     417    protected function actionBlockList() { 
     418        $sModule = BX_DOL_STUDIO_BP_TYPE_DEFAULT; 
     419        if(bx_get('bp_module') !== false) 
     420            $sModule = bx_process_input(bx_get('bp_module')); 
     421 
     422        return array( 
     423            'id' => $this->aHtmlIds['block_list_id'] . $sModule,  
     424            'content' => $this->getBlockList($sModule) 
     425        ); 
     426    } 
     427 
     428    protected function actionBlockCreate() { 
     429        $sJsObject = $this->getPageJsObject(); 
     430        $oTemplate = BxDolStudioTemplate::getInstance(); 
     431 
     432        $sSelected = BX_DOL_STUDIO_BP_TYPE_DEFAULT; 
     433 
     434        //--- get modules in menu 
     435        $aModules = array( 
     436            array( 
     437                'id' => 0, 
     438                'type' => BX_DOL_STUDIO_MIT_ITEM,  
     439                'name' => BX_DOL_STUDIO_BP_TYPE_DEFAULT,  
     440                'uri' => BX_DOL_STUDIO_BP_TYPE_DEFAULT,  
     441                'title' => '_adm_bp_cpt_type_system',  
     442                'icon' => 'mi-system.png', 
     443                'active' => $sSelected == BX_DOL_STUDIO_BP_TYPE_DEFAULT ? 1 : 0, 
     444            ), 
     445        ); 
     446 
     447        bx_import('BxDolModuleQuery'); 
     448        $aModules = array_merge($aModules, BxDolModuleQuery::getInstance()->getModulesBy(array('type' => 'modules'))); 
     449 
     450        $aTmplParams = array( 
     451            'bx_repeat:menus' => array(), 
     452            'html_block_lists_id' => $this->aHtmlIds['block_lists_id'], 
     453            'blocks' => '' 
     454        ); 
     455        foreach($aModules as $aModule) { 
     456            $aTmplParams['bx_repeat:menus'][] = array( 
     457                'bx_if:caption' => array( 
    114458                    'condition' => false, 
    115459                    'content' => array() 
     460                ), 
     461                'bx_if:item' => array( 
     462                    'condition' => true, 
     463                    'content' => array( 
     464                        'name' => $aModule['name'], 
     465                        'bx_if:active' => array( 
     466                            'condition' => isset($aModule['active']) && (int)$aModule['active'] == 1, 
     467                            'content' => array() 
     468                        ), 
     469                        'icon' => $oTemplate->getIconUrl(isset($aModule['path']) ? 'modules/' . $aModule['path'] . '|std-mi.png' : $aModule['icon']), 
     470                        'url' => 'javascript:void(0)', 
     471                        'bx_if:show_onclick' => array( 
     472                            'condition' => true, 
     473                            'content' => array( 
     474                                'onclick' => 'javascript:' . $sJsObject . '.onChangeModule(\'' . $aModule['name'] . '\', this);', 
     475                            ) 
     476                        ), 
     477                        'caption' => _t($aModule['title']) 
     478                    ) 
     479                ), 
     480            ); 
     481        } 
     482 
     483        //--- get blocks by selected module 
     484        $aTmplParams['blocks'] = $this->getBlockList($sSelected); 
     485 
     486        $sContent = $oTemplate->parseHtmlByName('bp_add_block.html', $aTmplParams); 
     487 
     488        bx_import('BxTemplStudioFunctions'); 
     489        $sContent = BxTemplStudioFunctions::getInstance()->popupBox($this->aHtmlIds['create_block_popup_id'], _t('_adm_bp_txt_new_block_popup'), $sContent); 
     490 
     491        return array('popup' => $sContent); 
     492    } 
     493 
     494    protected function getBlockList($sModule) { 
     495        if(empty($sModule)) 
     496            return ''; 
     497 
     498        $sJsObject = $this->getPageJsObject(); 
     499        $oTemplate = BxDolStudioTemplate::getInstance(); 
     500 
     501        bx_import('BxTemplStudioFormView'); 
     502        $oForm = new BxTemplStudioFormView(array()); 
     503 
     504        $aInputCheckbox = array( 
     505            'type' => 'checkbox', 
     506            'name' => 'blocks[]', 
     507            'attrs' => array( 
     508                'onChange' => 'javascript:' . $sJsObject . '.onSelectBlock(this);' 
     509            ), 
     510            'value' => '' 
     511        ); 
     512 
     513        $aBlocks = array(); 
     514        $this->oDb->getBlocks(array('type' => 'by_module', 'value' => $sModule), $aBlocks, false); 
     515 
     516        $aTmplParams = array( 
     517            'html_block_list_id' => $this->aHtmlIds['block_list_id'] . $sModule, 
     518            'bx_repeat:blocks' => array() 
     519        ); 
     520        foreach($aBlocks as $aBlock) { 
     521            $aInputCheckbox['value'] = $aBlock['id']; 
     522 
     523            $aTmplParams['bx_repeat:blocks'][] = array( 
     524                'js_object' => $sJsObject, 
     525                'html_id' => $this->aHtmlIds['block_id'] . $aBlock['id'], 
     526                'title' => _t($aBlock['title']), 
     527                'icon' => stdGetModuleIcon($aBlock['module']), 
     528                'module' =>stdGetModuleTitle($aBlock['module']), 
     529                'bx_if:show_checkbox' => array( 
     530                    'condition' => true, 
     531                    'content' => array( 
     532                        'content' => $oForm->genRow($aInputCheckbox) 
     533                    ) 
    116534                ) 
    117535            ); 
    118  
    119         $sContent = $oTemplate->parseHtmlByName('bldp_block_panel_top.html', $aTmplVars); 
    120         return parent::getBlockPanelTop(array('panel_top' => $sContent)); 
    121     } 
    122     protected function getPopupSettings() { 
    123         $sContent = "Change Settings"; 
    124  
    125         bx_import('BxTemplStudioFunctions'); 
    126         $oFunctions = BxTemplStudioFunctions::getInstance(); 
    127         return $oFunctions->transBox($sContent); 
    128     } 
    129     protected function getPopupNewBlock() { 
    130         $sContent = "Add New Block"; 
    131  
    132         bx_import('BxTemplStudioFunctions'); 
    133         $oFunctions = BxTemplStudioFunctions::getInstance(); 
    134         return $oFunctions->transBox($sContent); 
     536        } 
     537 
     538        return $oTemplate->parseHtmlByName('bp_blocks.html', $aTmplParams); 
    135539    } 
    136540} 
  • trunk/studio/templates/base/scripts/BxBaseStudioFormsDisplays.php

    r15911 r15936  
    121121        } 
    122122        else { 
    123             bx_import('BxTemplFunctions'); 
    124             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-form-forms-edit-popup', _t('_adm_form_txt_displays_edit_popup', _t($aDisplay['title'])), $this->_oTemplate->parseHtmlByName('form_add_display.html', array( 
     123            bx_import('BxTemplStudioFunctions'); 
     124            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-form-forms-edit-popup', _t('_adm_form_txt_displays_edit_popup', _t($aDisplay['title'])), $this->_oTemplate->parseHtmlByName('form_add_display.html', array( 
    125125                'form_id' => $aForm['form_attrs']['id'], 
    126126                'form' => $oForm->getCode(), 
  • trunk/studio/templates/base/scripts/BxBaseStudioFormsForms.php

    r15911 r15936  
    121121        } 
    122122        else { 
    123             bx_import('BxTemplFunctions'); 
    124             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-form-forms-edit-popup', _t('_adm_form_txt_forms_edit_popup', _t($aFormData['title'])), $this->_oTemplate->parseHtmlByName('form_add_form.html', array( 
     123            bx_import('BxTemplStudioFunctions'); 
     124            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-form-forms-edit-popup', _t('_adm_form_txt_forms_edit_popup', _t($aFormData['title'])), $this->_oTemplate->parseHtmlByName('form_add_form.html', array( 
    125125                'form_id' => $aForm['form_attrs']['id'], 
    126126                'form' => $oForm->getCode(), 
  • trunk/studio/templates/base/scripts/BxBaseStudioFormsPreLists.php

    r15911 r15936  
    3939                    'type' => 'hidden', 
    4040                    'name' => 'module', 
    41                     'value' => BX_DOL_STUDIO_GRID_MODULE_CUSTOM, 
     41                    'value' => BX_DOL_STUDIO_MODULE_CUSTOM, 
    4242                    'db' => array ( 
    4343                        'pass' => 'Xss', 
     
    121121        } 
    122122        else { 
    123             bx_import('BxTemplFunctions'); 
    124             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-form-pre-list-create-popup', _t('_adm_form_txt_pre_lists_create_popup'), $this->_oTemplate->parseHtmlByName('nav_add_menu.html', array( 
     123            bx_import('BxTemplStudioFunctions'); 
     124            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-form-pre-list-create-popup', _t('_adm_form_txt_pre_lists_create_popup'), $this->_oTemplate->parseHtmlByName('nav_add_menu.html', array( 
    125125                'form_id' => $aForm['form_attrs']['id'], 
    126126                'form' => $oForm->getCode(), 
     
    237237        } 
    238238        else { 
    239             bx_import('BxTemplFunctions'); 
    240             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-form-pre-list-edit-popup', _t('_adm_form_txt_pre_lists_edit_popup', _t($aList['title'])), $this->_oTemplate->parseHtmlByName('form_add_list.html', array( 
     239            bx_import('BxTemplStudioFunctions'); 
     240            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-form-pre-list-edit-popup', _t('_adm_form_txt_pre_lists_edit_popup', _t($aList['title'])), $this->_oTemplate->parseHtmlByName('form_add_list.html', array( 
    241241                'form_id' => $aForm['form_attrs']['id'], 
    242242                'form' => $oForm->getCode(), 
     
    266266                continue; 
    267267 
    268             if($aList['module'] != BX_DOL_STUDIO_GRID_MODULE_CUSTOM) 
     268            if($aList['module'] != BX_DOL_STUDIO_MODULE_CUSTOM) 
    269269                continue; 
    270270 
     
    334334 
    335335    protected function _getActionDelete ($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array()) { 
    336         if($sType == 'single' && $aRow['module'] != BX_DOL_STUDIO_GRID_MODULE_CUSTOM) 
     336        if($sType == 'single' && $aRow['module'] != BX_DOL_STUDIO_MODULE_CUSTOM) 
    337337            return ''; 
    338338 
  • trunk/studio/templates/base/scripts/BxBaseStudioFormsPreValues.php

    r15896 r15936  
    161161        } 
    162162        else { 
    163             bx_import('BxTemplFunctions'); 
    164             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-form-pre-value-create-popup', _t('_adm_form_txt_pre_values_create_popup'), $this->_oTemplate->parseHtmlByName('form_add_value.html', array( 
     163            bx_import('BxTemplStudioFunctions'); 
     164            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-form-pre-value-create-popup', _t('_adm_form_txt_pre_values_create_popup'), $this->_oTemplate->parseHtmlByName('form_add_value.html', array( 
    165165                'form_id' => $aForm['form_attrs']['id'], 
    166166                'form' => $oForm->getCode(), 
     
    334334        } 
    335335        else { 
    336             bx_import('BxTemplFunctions'); 
    337             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-form-pre-value-edit-popup', _t('_adm_form_txt_pre_values_edit_popup', _t($aValue['lkey'])), $this->_oTemplate->parseHtmlByName('form_add_value.html', array( 
     336            bx_import('BxTemplStudioFunctions'); 
     337            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-form-pre-value-edit-popup', _t('_adm_form_txt_pre_values_edit_popup', _t($aValue['lkey'])), $this->_oTemplate->parseHtmlByName('form_add_value.html', array( 
    338338                'form_id' => $aForm['form_attrs']['id'], 
    339339                'form' => $oForm->getCode(), 
  • trunk/studio/templates/base/scripts/BxBaseStudioGrid.php

    r15911 r15936  
    2020        return ''; 
    2121    } 
    22  
    23     protected function getModuleTitle($sName) { 
    24         $sPrefix = '_adm_txt_module_'; 
    25  
    26         if(in_array($sName, array(BX_DOL_STUDIO_GRID_MODULE_SYSTEM, BX_DOL_STUDIO_GRID_MODULE_CUSTOM))) 
    27             return _t($sPrefix . $sName); 
    28  
    29         bx_import('BxDolModuleQuery'); 
    30         $aModule = BxDolModuleQuery::getInstance()->getModuleByName($sName); 
    31         if(!empty($aModule)) 
    32             return $aModule['title']; 
    33  
    34         return _t($sPrefix . strtolower($sName)); 
    35     } 
    36  
    37     protected function getModules($bShowCustom = true, $bShowSystem = true) { 
    38         $aResult = array(); 
    39  
    40         if($bShowSystem) 
    41             $aResult[] = array('key' => BX_DOL_STUDIO_GRID_MODULE_SYSTEM, 'value' => $this->getModuleTitle(BX_DOL_STUDIO_GRID_MODULE_SYSTEM)); 
    42  
    43         if($bShowCustom) 
    44             $aResult[] = array('key' => BX_DOL_STUDIO_GRID_MODULE_CUSTOM, 'value' => $this->getModuleTitle(BX_DOL_STUDIO_GRID_MODULE_CUSTOM)); 
    45  
    46         bx_import('BxDolModuleQuery'); 
    47         $aModules = BxDolModuleQuery::getInstance()->getModulesBy(array('type' => 'modules', 'active' => 1)); 
    48         foreach($aModules as $aModule) 
    49             $aResult[] = array('key' => $aModule['name'], 'value' => $aModule['title']); 
    50  
    51         return $aResult; 
    52     } 
    5322} 
    5423/** @} */ 
  • trunk/studio/templates/base/scripts/BxBaseStudioNavigationImport.php

    r15911 r15936  
    5050            unset($aItem['id']); 
    5151            $aItem['set_name'] = $this->sSet; 
    52             $aItem['module'] = BX_DOL_STUDIO_GRID_MODULE_CUSTOM; 
     52            $aItem['module'] = BX_DOL_STUDIO_MODULE_CUSTOM; 
    5353            $aItem['title'] .= '_' . mktime(); 
    5454            $aItem['icon'] = $mixedIcon != 0 ? $mixedIcon : ''; 
  • trunk/studio/templates/base/scripts/BxBaseStudioNavigationItems.php

    r15912 r15936  
    173173            BxDolForm::setSubmittedValue('title', $sTitleKey, $aForm['form_attrs']['method']); 
    174174 
    175             $iId = (int)$oForm->insert(array('module' => BX_DOL_STUDIO_GRID_MODULE_CUSTOM, 'name' => $sName, 'icon' => $mixedIcon, 'active' => 1, 'order' => $this->oDb->getItemOrderMax($this->sSet) + 1)); 
     175            $iId = (int)$oForm->insert(array('module' => BX_DOL_STUDIO_MODULE_CUSTOM, 'name' => $sName, 'icon' => $mixedIcon, 'active' => 1, 'order' => $this->oDb->getItemOrderMax($this->sSet) + 1)); 
    176176            if($iId != 0) { 
    177177                bx_import('BxDolStudioLanguagesUtils'); 
     
    185185        } 
    186186        else { 
    187             bx_import('BxTemplFunctions'); 
    188             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-nav-item-create-popup', _t('_adm_nav_txt_items_create_popup'), $this->_oTemplate->parseHtmlByName('nav_add_item.html', array( 
     187            bx_import('BxTemplStudioFunctions'); 
     188            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-nav-item-create-popup', _t('_adm_nav_txt_items_create_popup'), $this->_oTemplate->parseHtmlByName('nav_add_item.html', array( 
    189189                'form_id' => $aForm['form_attrs']['id'], 
    190190                'form' => $oForm->getCode(), 
     
    371371        } 
    372372        else { 
    373             bx_import('BxTemplFunctions'); 
    374             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-nav-item-edit-popup', _t('_adm_nav_txt_items_edit_popup', _t($aItem['title'])), $this->_oTemplate->parseHtmlByName('nav_add_item.html', array( 
     373            bx_import('BxTemplStudioFunctions'); 
     374            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-nav-item-edit-popup', _t('_adm_nav_txt_items_edit_popup', _t($aItem['title'])), $this->_oTemplate->parseHtmlByName('nav_add_item.html', array( 
    375375                'form_id' => $aForm['form_attrs']['id'], 
    376376                'form' => $oForm->getCode(), 
     
    515515        } 
    516516        else { 
    517             bx_import('BxTemplFunctions'); 
    518             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-nav-item-hide-from-popup', _t('_adm_nav_txt_items_show_to_popup', _t($aItem['title'])), $this->_oTemplate->parseHtmlByName('nav_add_item.html', array( 
     517            bx_import('BxTemplStudioFunctions'); 
     518            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-nav-item-hide-from-popup', _t('_adm_nav_txt_items_show_to_popup', _t($aItem['title'])), $this->_oTemplate->parseHtmlByName('nav_add_item.html', array( 
    519519                'form_id' => $aForm['form_attrs']['id'], 
    520520                'form' => $oForm->getCode(), 
     
    619619 
    620620    protected function _getActionDelete ($sType, $sKey, $a, $isSmall = false, $isDisabled = false, $aRow = array()) { 
    621         if ($sType == 'single' && $aRow['module'] == BX_DOL_STUDIO_GRID_MODULE_SYSTEM) 
     621        if ($sType == 'single' && $aRow['module'] == BX_DOL_STUDIO_MODULE_SYSTEM) 
    622622            return ''; 
    623623 
  • trunk/studio/templates/base/scripts/BxBaseStudioNavigationMenus.php

    r15924 r15936  
    181181                $sSetTitleKey = '_adm_nav_txt_set_' . $sSetName; 
    182182 
    183                 if($this->oDb->addSet(array('set_name' => $sSetName, 'module' => BX_DOL_STUDIO_GRID_MODULE_CUSTOM, 'title' => $sSetTitleKey, 'deletable' => 1))) { 
     183                if($this->oDb->addSet(array('set_name' => $sSetName, 'module' => BX_DOL_STUDIO_MODULE_CUSTOM, 'title' => $sSetTitleKey, 'deletable' => 1))) { 
    184184                    bx_import('BxDolStudioLanguagesUtils'); 
    185185                    BxDolStudioLanguagesUtils::getInstance()->addLanguageString($sSetTitleKey, $sSetTitleValue); 
     
    190190            unset($oForm->aInputs['set_title']); 
    191191 
    192             $iId = (int)$oForm->insert(array('object' => $sObject, 'module' => BX_DOL_STUDIO_GRID_MODULE_CUSTOM, 'deletable' => 1, 'active' => 1)); 
     192            $iId = (int)$oForm->insert(array('object' => $sObject, 'module' => BX_DOL_STUDIO_MODULE_CUSTOM, 'deletable' => 1, 'active' => 1)); 
    193193            if($iId != 0) { 
    194194                bx_import('BxDolStudioLanguagesUtils'); 
     
    202202        } 
    203203        else { 
    204             bx_import('BxTemplFunctions'); 
    205             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-nav-menu-create-popup', _t('_adm_nav_txt_menus_create_popup'), $this->_oTemplate->parseHtmlByName('nav_add_menu.html', array( 
     204            bx_import('BxTemplStudioFunctions'); 
     205            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-nav-menu-create-popup', _t('_adm_nav_txt_menus_create_popup'), $this->_oTemplate->parseHtmlByName('nav_add_menu.html', array( 
    206206                'form_id' => $aForm['form_attrs']['id'], 
    207207                'form' => $oForm->getCode(), 
     
    385385                $sSetTitleKey = '_adm_nav_txt_set_' . $sSetName; 
    386386 
    387                 if($this->oDb->addSet(array('set_name' => $sSetName, 'module' => BX_DOL_STUDIO_GRID_MODULE_CUSTOM, 'title' => $sSetTitleKey, 'deletable' => 1))) { 
     387                if($this->oDb->addSet(array('set_name' => $sSetName, 'module' => BX_DOL_STUDIO_MODULE_CUSTOM, 'title' => $sSetTitleKey, 'deletable' => 1))) { 
    388388                    bx_import('BxDolStudioLanguagesUtils'); 
    389389                    BxDolStudioLanguagesUtils::getInstance()->addLanguageString($sSetTitleKey, $sSetTitleValue); 
     
    406406        } 
    407407        else { 
    408             bx_import('BxTemplFunctions'); 
    409             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-nav-menu-edit-popup', _t('_adm_nav_txt_menus_edit_popup', _t($aMenu['title'])), $this->_oTemplate->parseHtmlByName('nav_add_menu.html', array( 
     408            bx_import('BxTemplStudioFunctions'); 
     409            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-nav-menu-edit-popup', _t('_adm_nav_txt_menus_edit_popup', _t($aMenu['title'])), $this->_oTemplate->parseHtmlByName('nav_add_menu.html', array( 
    410410                'form_id' => $aForm['form_attrs']['id'], 
    411411                'form' => $oForm->getCode(), 
  • trunk/studio/templates/base/scripts/BxBaseStudioNavigationSets.php

    r15911 r15936  
    9191            BxDolForm::setSubmittedValue('title', $sTitleKey, $aForm['form_attrs']['method']); 
    9292 
    93             $mixedName = $oForm->insert(array('set_name' => $sName, 'module' => BX_DOL_STUDIO_GRID_MODULE_CUSTOM)); 
     93            $mixedName = $oForm->insert(array('set_name' => $sName, 'module' => BX_DOL_STUDIO_MODULE_CUSTOM)); 
    9494            if($mixedName !== false && $mixedName == $sName) { 
    9595                bx_import('BxDolStudioLanguagesUtils'); 
     
    103103        } 
    104104        else { 
    105             bx_import('BxTemplFunctions'); 
    106             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-nav-set-create-popup', _t('_adm_nav_txt_sets_create_popup'), $this->_oTemplate->parseHtmlByName('nav_add_set.html', array( 
     105            bx_import('BxTemplStudioFunctions'); 
     106            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-nav-set-create-popup', _t('_adm_nav_txt_sets_create_popup'), $this->_oTemplate->parseHtmlByName('nav_add_set.html', array( 
    107107                'form_id' => $aForm['form_attrs']['id'], 
    108108                'form' => $oForm->getCode(), 
     
    219219        } 
    220220        else { 
    221             bx_import('BxTemplFunctions'); 
    222             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-nav-set-edit-popup', _t('_adm_nav_txt_sets_edit_popup', _t($aSet['title'])), $this->_oTemplate->parseHtmlByName('nav_add_set.html', array( 
     221            bx_import('BxTemplStudioFunctions'); 
     222            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-nav-set-edit-popup', _t('_adm_nav_txt_sets_edit_popup', _t($aSet['title'])), $this->_oTemplate->parseHtmlByName('nav_add_set.html', array( 
    223223                'form_id' => $aForm['form_attrs']['id'], 
    224224                'form' => $oForm->getCode(), 
  • trunk/studio/templates/base/scripts/BxBaseStudioPermissionsActions.php

    r15911 r15936  
    184184        } 
    185185        else { 
    186             bx_import('BxTemplFunctions'); 
    187             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-prm-action-options-popup', _t('_adm_prm_txt_actions_options_popup', _t($aOption['action_title'])), $this->_oTemplate->parseHtmlByName('prm_edit_option.html', array( 
     186            bx_import('BxTemplStudioFunctions'); 
     187            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-prm-action-options-popup', _t('_adm_prm_txt_actions_options_popup', _t($aOption['action_title'])), $this->_oTemplate->parseHtmlByName('prm_edit_option.html', array( 
    188188                'form_id' => $aForm['form_attrs']['id'], 
    189189                'form' => $oForm->getCode(), 
  • trunk/studio/templates/base/scripts/BxBaseStudioPermissionsLevels.php

    r15915 r15936  
    199199 
    200200            $sTitleValue = $oForm->getCleanValue('Name'); 
    201             $sTitleKey = '_adm_prm_txt_level_' . str_replace(' ', '_', strtolower($sTitleValue)); 
     201            $sTitleKey = '_adm_prm_txt_level_' . $this->getSystemName($sTitleValue); 
    202202            $oForm->setSubmittedValue('Name', $sTitleKey, $aForm['form_attrs']['method']); 
    203203 
     
    214214        } 
    215215        else { 
    216             bx_import('BxTemplFunctions'); 
    217             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-prm-level-create-popup', _t('_adm_prm_txt_level_create_popup'), $this->_oTemplate->parseHtmlByName('prm_add_level.html', array( 
     216            bx_import('BxTemplStudioFunctions'); 
     217            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-prm-level-create-popup', _t('_adm_prm_txt_level_create_popup'), $this->_oTemplate->parseHtmlByName('prm_add_level.html', array( 
    218218                'form_id' => $aForm['form_attrs']['id'], 
    219219                'form' => $oForm->getCode(), 
     
    402402        } 
    403403        else { 
    404             bx_import('BxTemplFunctions'); 
    405             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-prm-level-edit-popup', _t('_adm_prm_txt_level_edit_popup', _t($aLevel['name'])), $this->_oTemplate->parseHtmlByName('prm_add_level.html', array( 
     404            bx_import('BxTemplStudioFunctions'); 
     405            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-prm-level-edit-popup', _t('_adm_prm_txt_level_edit_popup', _t($aLevel['name'])), $this->_oTemplate->parseHtmlByName('prm_add_level.html', array( 
    406406                'form_id' => $aForm['form_attrs']['id'], 
    407407                'form' => $oForm->getCode(), 
  • trunk/studio/templates/base/scripts/BxBaseStudioPermissionsPrices.php

    r15794 r15936  
    115115        } 
    116116        else { 
    117             bx_import('BxTemplFunctions'); 
    118             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-prm-price-add-popup', _t('_adm_prm_txt_price_add_popup'), $this->_oTemplate->parseHtmlByName('prm_add_price.html', array( 
     117            bx_import('BxTemplStudioFunctions'); 
     118            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-prm-price-add-popup', _t('_adm_prm_txt_price_add_popup'), $this->_oTemplate->parseHtmlByName('prm_add_price.html', array( 
    119119                'form_id' => $aForm['form_attrs']['id'], 
    120120                'form' => $oForm->getCode(), 
     
    248248        } 
    249249        else { 
    250             bx_import('BxTemplFunctions'); 
    251             $sContent = BxTemplFunctions::getInstance()->popupBox('adm-prm-price-edit-popup', _t('_adm_prm_txt_price_edit_popup', $aPrice['days']), $this->_oTemplate->parseHtmlByName('prm_add_price.html', array( 
     250            bx_import('BxTemplStudioFunctions'); 
     251            $sContent = BxTemplStudioFunctions::getInstance()->popupBox('adm-prm-price-edit-popup', _t('_adm_prm_txt_price_edit_popup', $aPrice['days']), $this->_oTemplate->parseHtmlByName('prm_add_price.html', array( 
    252252                'form_id' => $aForm['form_attrs']['id'], 
    253253                'form' => $oForm->getCode(), 
  • trunk/studio/templates/tmpl_uni/scripts/BxTemplStudioBuilderPage.php

    r15580 r15936  
    1313 
    1414class BxTemplStudioBuilderPage extends BxBaseStudioBuilderPage {  
    15     function BxTemplStudioBuilderPage($sType = '', $sPage = '') { 
    16         parent::BxBaseStudioBuilderPage($sType, $sPage); 
     15    function __construct($sType = '', $sPage = '') { 
     16        parent::__construct($sType, $sPage); 
    1717    } 
    1818} 
Note: See TracChangeset for help on using the changeset viewer.