public function get_type() { return 'box'; } protected function _get_defaults() { return array('title' => ''); } protected function _enqueue_static($id, $option, $values, $data) { // } protected function _render($containers, $values, $data) { $html = ''; foreach ($containers as $id => &$box) { if (empty($box['options'])) { continue; } unset($box['attr']['id']); // do not allow id overwrite, it is sent in first argument of render_box() $html .= fw()->backend->render_box('fw-options-box-' . $id, empty($box['title']) ? ' ' : $box['title'], fw()->backend->render_options($box['options'], $values, $data), array('attr' => $box['attr'])); } if (!empty($html)) { $html = '<div class="fw-backend-postboxes metabox-holder">' . $html . '</div>'; } return $html; } } FW_Container_Type::register('FW_Container_Type_Box');
protected function _get_defaults() { return array('modal-size' => 'small', 'desc' => ''); } protected function _enqueue_static($id, $option, $values, $data) { $uri = fw_get_framework_directory_uri('/includes/container-types/popup'); wp_enqueue_script('fw-container-type-' . $this->get_type(), $uri . '/scripts.js', array('jquery', 'fw-events', 'fw'), fw()->manifest->get_version()); wp_enqueue_style('fw'); wp_enqueue_style('fw-container-type-' . $this->get_type(), $uri . '/styles.css', array(), fw()->manifest->get_version()); } protected function _render($containers, $values, $data) { $html = ''; $defaults = $this->get_defaults(); foreach ($containers as $id => &$option) { $attr = $option['attr']; $attr['data-modal-title'] = $option['title']; if (in_array($option['modal-size'], array('small', 'medium', 'large'))) { $attr['data-modal-size'] = $option['modal-size']; } else { $attr['data-modal-size'] = $defaults['modal-size']; } $attr['id'] = $data['id_prefix'] . $id; $html .= '<div ' . fw_attr_to_html($attr) . '>' . '<p class="popup-button-wrapper">' . fw_html_tag('button', array('type' => 'button', 'class' => 'button button-secondary popup-button'), $option['title']) . '</p>' . (empty($option['desc']) ? '' : '<div class="popup-desc">' . $option['desc'] . '</div>') . '<div class="popup-options fw-hidden">' . fw()->backend->render_options($option['options'], $values, $data) . '</div>' . '</div>'; } return $html; } } FW_Container_Type::register('FW_Container_Type_Popup');
<?php if (!defined('FW')) { die('Forbidden'); } class FW_Container_Type_Tab extends FW_Container_Type { public function get_type() { return 'tab'; } protected function _get_defaults() { return array('title' => ''); } protected function _enqueue_static($id, $option, $values, $data) { // } protected function _render($containers, $values, $data) { return fw_render_view(dirname(__FILE__) . '/view.php', array('tabs' => &$containers, 'values' => &$values, 'options_data' => &$data)); } } FW_Container_Type::register('FW_Container_Type_Tab');
{ return 'group'; } protected function _get_defaults() { return array(); } protected function _enqueue_static($id, $option, $values, $data) { // } protected function _render($containers, $values, $data) { $html = ''; foreach ($containers as $id => &$group) { $attr = isset($group['attr']) ? $group['attr'] : array(); $attr['id'] = 'fw-backend-options-group-' . $id; if (!isset($attr['class'])) { $attr['class'] = 'fw-backend-options-group'; } else { $attr['class'] = 'fw-backend-options-group ' . $attr['class']; } $html .= '<div ' . fw_attr_to_html($attr) . '>'; $html .= fw()->backend->render_options($group['options'], $values, $data); $html .= '</div>'; } return $html; } } FW_Container_Type::register('FW_Container_Type_Group');