コード例 #1
0
ファイル: blocks.php プロジェクト: danaiser/hollandLawns
 public static function register_block_element_instances()
 {
     if ((headway_get('layout-in-use') || headway_post('layout')) && !headway_get('compiler-cache')) {
         $layout_id = headway_get('layout-in-use') ? headway_get('layout-in-use') : headway_post('layout');
         $register_block_mirrors = true;
         if (!($blocks = HeadwayBlocksData::get_blocks_by_layout($layout_id))) {
             return false;
         }
     } else {
         $register_block_mirrors = false;
         if (!($blocks = HeadwayBlocksData::get_all_blocks())) {
             return false;
         }
     }
     foreach ($blocks as $block) {
         /* Do not register instance for block that's in a mirrored wrapper */
         if (HeadwayWrappers::get_wrapper_mirror(HeadwayWrappers::get_wrapper(headway_get('wrapper', $block)))) {
             continue;
         }
         /* If it's a mirrored block then we'll register it as long as $register_block_mirrors is true */
         if ($block_mirror = HeadwayBlocksData::is_block_mirrored($block)) {
             if (!$register_block_mirrors) {
                 continue;
             }
             $block = $block_mirror;
         }
         $default_name = self::block_type_nice($block['type']) . ' #' . $block['id'];
         $name = headway_get('alias', $block['settings'], $default_name);
         HeadwayElementAPI::register_element_instance(array('group' => 'blocks', 'element' => 'block-' . $block['type'], 'id' => $block['type'] . '-block-' . $block['id'], 'name' => $name, 'selector' => '#block-' . $block['id'], 'layout' => $block['layout']));
         /* Register sub elements */
         $block_element = HeadwayElementAPI::get_element('block-' . $block['type']);
         foreach (headway_get('children', $block_element, array()) as $block_element_sub_element) {
             /* Make sure that the element supports instances */
             if (!headway_get('supports-instances', $block_element_sub_element)) {
                 continue;
             }
             /* Register instance */
             $instance_selector = str_replace('.block-type-' . $block['type'], '#block-' . $block['id'], $block_element_sub_element['selector']);
             HeadwayElementAPI::register_element_instance(array('group' => 'blocks', 'grandparent' => 'block-' . $block['type'], 'element' => $block_element_sub_element['id'], 'id' => $block_element_sub_element['id'] . '-block-' . $block['id'], 'name' => $name . ' - ' . $block_element_sub_element['name'], 'selector' => $instance_selector, 'layout' => $block['layout']));
             /* Register instance states as instances */
             if (!empty($block_element_sub_element['states']) && is_array($block_element_sub_element['states'])) {
                 foreach ($block_element_sub_element['states'] as $instance_state_id => $instance_state_info) {
                     HeadwayElementAPI::register_element_instance(array('group' => 'blocks', 'grandparent' => 'block-' . $block['type'], 'element' => $block_element_sub_element['id'], 'id' => $block_element_sub_element['id'] . '-block-' . $block['id'] . '-state-' . $instance_state_id, 'name' => $name . ' - ' . $block_element_sub_element['name'] . ' (State: ' . $instance_state_info['name'] . ')', 'selector' => str_replace('.block-type-' . $block['type'], '#block-' . $block['id'], $instance_state_info['selector']), 'layout' => $block['layout'], 'state-of' => $block_element_sub_element['id'] . '-block-' . $block['id'], 'state-name' => $instance_state_info['name']));
                 }
             }
         }
         /* /foreach */
     }
 }
コード例 #2
0
ファイル: wrappers.php プロジェクト: danaiser/hollandLawns
 public static function register_wrapper_instances()
 {
     $all_wrappers = HeadwayOption::get_group('wrappers');
     if (!$all_wrappers) {
         return false;
     }
     foreach ($all_wrappers as $layout_id => $layout_wrappers) {
         /* Skip over the last-id option */
         if ($layout_id == 'last-id') {
             continue;
         }
         foreach ($layout_wrappers as $layout_wrapper_id => $layout_wrapper_settings) {
             /* Do NOT register the default wrapper instance */
             if ($layout_wrapper_id == 'wrapper-default') {
                 continue;
             }
             /* Format the wrapper settings array */
             $layout_wrapper_settings['id'] = $layout_wrapper_id;
             /* Do not register instance for mirrored wrapper */
             if (HeadwayWrappers::get_wrapper_mirror($layout_wrapper_settings)) {
                 continue;
             }
             $wrapper_alias = headway_get('alias', $layout_wrapper_settings) ? ' – ' . headway_get('alias', $layout_wrapper_settings) : null;
             HeadwayElementAPI::register_element_instance(array('group' => 'structure', 'element' => 'wrapper', 'id' => $layout_wrapper_id . '-layout-' . $layout_id, 'name' => 'Wrapper #' . HeadwayWrappers::format_wrapper_id($layout_wrapper_id) . $wrapper_alias, 'selector' => '#' . $layout_wrapper_id . ', div.wrapper-mirroring-' . HeadwayWrappers::format_wrapper_id($layout_wrapper_id), 'layout' => $layout_id));
         }
     }
 }