function mfn_offer_show_box() { global $MFN_Options, $mfn_offer_meta_box, $post; $MFN_Options->_enqueue(); // Use nonce for verification echo '<div id="mfn-wrapper">'; echo '<input type="hidden" name="mfn_offer_meta_nonce" value="', wp_create_nonce(basename(__FILE__)), '" />'; echo '<table class="form-table">'; echo '<tbody>'; foreach ($mfn_offer_meta_box['fields'] as $field) { $meta = get_post_meta($post->ID, $field['id'], true); if (!key_exists('std', $field)) { $field['std'] = false; } $meta = $meta || $meta === '0' ? $meta : stripslashes(htmlspecialchars($field['std'], ENT_QUOTES)); mfn_meta_field_input($field, $meta); } echo '</tbody>'; echo '</table>'; echo '</div>'; }
/** * PRINT single ITEM * * @param array $item_std * @param string $item * @param string $section_id */ function mfn_builder_item($item_type, $item = false, $parent_id = false) { $item_std = mfn_get_fields_item($item_type); // input names - only for existing items, not for items to clone ----------- $n_item_type = $item ? 'mfn-item-type[]' : ''; $n_item_size = $item ? 'mfn-item-size[]' : ''; $n_item_parent = $item ? 'mfn-item-parent[]' : ''; $sizes = array('1/6' => 0.1666, '1/5' => 0.2, '1/4' => 0.25, '1/3' => 0.3333, '2/5' => 0.4, '1/2' => 0.5, '3/5' => 0.6, '2/3' => 0.6667, '3/4' => 0.75, '4/5' => 0.8, '5/6' => 0.8333, '1/1' => 1); $item_std['size'] = $item['size'] ? $item['size'] : $item_std['size']; echo '<div class="mfn-element mfn-item mfn-item-' . $item_std['type'] . '" data-size="' . $sizes[$item_std['size']] . '" data-title="' . $item_std['title'] . '">'; echo '<div class="mfn-element-content">'; echo '<input type="hidden" class="mfn-item-type" name="' . $n_item_type . '" value="' . $item_std['type'] . '">'; echo '<input type="hidden" class="mfn-item-size" name="' . $n_item_size . '" value="' . $item_std['size'] . '">'; echo '<input type="hidden" class="mfn-item-parent" name="' . $n_item_parent . '" value="' . $parent_id . '" />'; echo '<div class="mfn-element-header">'; echo '<div class="mfn-item-size">'; echo '<a class="mfn-element-btn mfn-item-size-dec" href="javascript:void(0);">-</a>'; echo '<a class="mfn-element-btn mfn-item-size-inc" href="javascript:void(0);">+</a>'; echo '<span class="mfn-element-btn mfn-item-desc">' . $item_std['size'] . '</span>'; echo '</div>'; echo '<div class="mfn-element-tools">'; echo '<a class="mfn-element-btn mfn-fr mfn-element-edit dashicons dashicons-edit" title="' . __('Edit', 'mfn-opts') . '" href="javascript:void(0);"></a>'; echo '<a class="mfn-element-btn mfn-fr mfn-element-clone mfn-item-clone dashicons dashicons-share-alt2" title="' . __('Clone', 'mfn-opts') . '" href="javascript:void(0);"></a>'; echo '<a class="mfn-element-btn mfn-fr mfn-element-delete dashicons dashicons-no" title="' . __('Delete', 'mfn-opts') . '" href="javascript:void(0);"></a>'; echo '</div>'; echo '</div>'; echo '<div class="mfn-item-content">'; echo '<div class="mfn-item-inside">'; echo '<div class="mfn-item-icon"></div>'; echo '<div class="mfn-item-inside-desc">'; echo '<span class="mfn-item-title">' . $item_std['title'] . '</span>'; $item_label = $item && key_exists('fields', $item) && key_exists('title', $item['fields']) ? $item['fields']['title'] : ''; echo '<span class="mfn-item-label">' . $item_label . '</span>'; echo '</div>'; echo '</div>'; echo '</div>'; echo '</div>'; echo '<div class="mfn-element-meta">'; echo '<table class="form-table">'; echo '<tbody>'; // Fields for Item foreach ($item_std['fields'] as $field) { // values for existing items if ($item && key_exists('fields', $item) && key_exists($field['id'], $item['fields'])) { $meta = $item['fields'][$field['id']]; } else { $meta = false; } if (!key_exists('std', $field)) { $field['std'] = false; } $meta = $meta || $meta === '0' ? $meta : stripslashes(htmlspecialchars($field['std'], ENT_QUOTES)); // field ID $field['id'] = 'mfn-items[' . $item_std['type'] . '][' . $field['id'] . ']'; // field ID except accordion, faq & tabs if ($field['type'] != 'tabs') { $field['id'] .= '[]'; } // PRINT Single Muffin Options FIELD if ($item) { $input_type = 'existing'; } else { $input_type = 'new'; } mfn_meta_field_input($field, $meta, $input_type); } echo '</tbody>'; echo '</table>'; echo '</div>'; echo '</div>'; }
function mfn_builder_item($item_std, $item = false) { $item_std['size'] = $item['size'] ? $item['size'] : $item_std['size']; $name_type = $item ? 'name="mfn-item-type[]"' : ''; $name_size = $item ? 'name="mfn-item-size[]"' : ''; $label = $item && key_exists('title', $item['fields']) ? $item['fields']['title'] : ''; $classes = array('1/4' => 'mfn-item-1-4', '1/3' => 'mfn-item-1-3', '1/2' => 'mfn-item-1-2', '2/3' => 'mfn-item-2-3', '3/4' => 'mfn-item-3-4', '1/1' => 'mfn-item-1-1'); echo '<div class="mfn-item mfn-item-' . $item_std['type'] . ' ' . $classes[$item_std['size']] . '">'; echo '<div class="mfn-item-content">'; echo '<input type="hidden" class="mfn-item-type" ' . $name_type . ' value="' . $item_std['type'] . '">'; echo '<input type="hidden" class="mfn-item-size" ' . $name_size . ' value="' . $item_std['size'] . '">'; echo '<div class="mfn-item-size">'; echo '<a href="javascript:void(0);" class="mfn-item-btn mfn-item-size-dec">-</a>'; echo '<a href="javascript:void(0);" class="mfn-item-btn mfn-item-size-inc">+</a>'; echo '<span class="mfn-item-desc">' . $item_std['size'] . '</span>'; echo '</div>'; echo '<span class="mfn-item-label">' . $item_std['title'] . ' <small>' . $label . '</small></span>'; echo '<div class="mfn-item-tool">'; echo '<a href="javascript:void(0);" class="mfn-item-btn mfn-item-delete">delete</a>'; echo '<a href="javascript:void(0);" class="mfn-item-btn mfn-item-edit">edit</a>'; echo '</div>'; echo '</div>'; echo '<div class="mfn-item-meta">'; echo '<table class="form-table">'; echo '<tbody>'; foreach ($item_std['fields'] as $field) { if ($item) { $meta = $item['fields'][$field['id']]; } else { $meta = false; } if (!key_exists('std', $field)) { $field['std'] = false; } $meta = $meta || $meta === '0' ? $meta : stripslashes(htmlspecialchars($field['std'], ENT_QUOTES)); $field['id'] = 'mfn-items[' . $item_std['type'] . '][' . $field['id'] . ']'; if (!in_array($item_std['type'], array('accordion', 'faq', 'tabs'))) { // except accordion & faq & tabs $field['id'] .= '[]'; } mfn_meta_field_input($field, $meta); } echo '</tbody>'; echo '</table>'; echo '</div>'; echo '</div>'; }
function mfn_builder_section($item_std, $section_std, $section = false, $section_id = false) { // input's 'name' only for existing sections, not for section to clone $name_row_id = $section ? 'name="mfn-row-id[]"' : ''; $label = $section && key_exists('attr', $section) && key_exists('title', $section['attr']) ? $section['attr']['title'] : ''; echo '<div class="mfn-element mfn-row">'; echo '<div class="mfn-element-content">'; // Section ID echo '<input type="hidden" class="mfn-row-id" ' . $name_row_id . ' value="' . $section_id . '" />'; echo '<div class="mfn-element-header">'; echo '<div class="mfn-item-add">'; echo '<a class="mfn-item-add-btn" href="javascript:void(0);">' . __('Add Item', 'mfn-opts') . '</a>'; echo '<ul class="mfn-item-add-list">'; // List of available Items foreach ($item_std as $item) { echo '<li><a class="' . $item['type'] . '" href="javascript:void(0);">' . $item['title'] . '</a></li>'; } echo '</ul>'; echo '</div>'; echo '<span class="mfn-item-label">' . $label . '</span>'; echo '<div class="mfn-element-tools">'; echo '<a class="mfn-element-btn mfn-element-edit" title="' . __('Edit', 'mfn-opts') . '" href="javascript:void(0);">E</a>'; echo '<a class="mfn-element-btn mfn-element-clone mfn-row-clone" title="' . __('Clone', 'mfn-opts') . '" href="javascript:void(0);">C</a>'; echo '<a class="mfn-element-btn mfn-element-delete" title="' . __('Delete', 'mfn-opts') . '" href="javascript:void(0);">D</a>'; echo '</div>'; echo '</div>'; // .mfn-element-droppable echo '<div class="mfn-droppable mfn-sortable clearfix">'; // Existing Items for Section if ($section && key_exists('items', $section) && is_array($section['items'])) { foreach ($section['items'] as $item) { mfn_builder_item($item_std[$item['type']], $item, $section_id); } } echo '</div>'; echo '</div>'; echo '<div class="mfn-element-meta">'; echo '<table class="form-table" style="display: table;">'; echo '<tbody>'; // Fields for Section foreach ($section_std as $field) { // values for existing sections if ($section) { $meta = $section['attr'][$field['id']]; } else { $meta = false; } if (!key_exists('std', $field)) { $field['std'] = false; } $meta = $meta || $meta === '0' ? $meta : stripslashes(htmlspecialchars($field['std'], ENT_QUOTES)); // field ID $field['id'] = 'mfn-rows[' . $field['id'] . ']'; // field ID except accordion, faq & tabs if ($field['type'] != 'tabs') { $field['id'] .= '[]'; } // PRINT Single Muffin Options FIELD mfn_meta_field_input($field, $meta); } echo '</tbody>'; echo '</table>'; echo '</div>'; echo '</div>'; }