/** * Fill the new column Panel name * This is executed if the "condense menu" option is active */ function ColumnWritePanelData($column_name) { global $post; if ($column_name == "WritePanel") { $name = RCCWP_CustomWritePanel::GetWritePanelName($post->ID); if (!$name) { echo " - "; } else { echo $name; } } }
function install() { require_once dirname(__FILE__) . '/../magic-fields/RCCWP_CustomWritePanel.php'; // Create default write pages $existing_write_panels = array(); foreach (RCCWP_CustomWritePanel::GetCustomWritePanels() as $panel) { array_push($existing_write_panels, $panel->name); } $panels_dir_name = dirname(__FILE__) . '/panels/'; $panels_dir = opendir($panels_dir_name); $panels = array(); while (false !== ($panel_file = readdir($panels_dir))) { $panel_name = basename($panel_file, ".pnl"); if (!is_dir($panel_file) && $panel_name && $panel_name != $panel_file && !in_array($panel_name, $existing_write_panels)) { // If this file isn't a directory, ends with .pnl, and isn't already an existing panel, create and store it for import. // $panel_id = RCCWP_CustomWritePanel::Create($panel_name, '', array(), array(), 1, "post", false); RCCWP_CustomWritePanel::Import($panels_dir_name . $panel_file); $panels[$panel_name] = $panel_file; } } foreach ($panels as $panel_name => $panel_file) { RCCWP_CustomWritePanel::Import($panels_dir_name . $panel_file, $panel_name, true); } }
function Edit() { global $FIELD_TYPES; global $mf_domain; $custom_field = RCCWP_CustomField::Get((int) $_GET['custom-field-id']); $customGroupID = $custom_field->group_id; if (in_array($custom_field->type, array('Image'))) { $cssVlaue = $custom_field->CSS; } ?> <div class="wrap"> <h2><?php _e('Edit Custom Field', $mf_domain); ?> - <?php echo $custom_field->description; ?> </h2> <br class="clear" /> <?php if (isset($_GET['err_msg'])) { switch ($_GET['err_msg']) { case -1: ?> <div class="error"><p> <?php _e('A field with the same name already exists in this write panel. Please choose a different name.', $mf_domain); ?> </p></div> <?php } } ?> <form action="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('submit-edit-custom-field') . "&custom-group-id={$customGroupID}"; ?> " method="post" id="edit-custom-field-form" onsubmit="return checkEmpty();"> <input type="hidden" name="custom-field-id" value="<?php echo $custom_field->id; ?> "> <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6"> <tbody> <tr valign="top"> <th scope="row"><?php _e('Name', $mf_domain); ?> :</th> <td><input name="custom-field-name" id="custom-field-name" size="40" type="text" value="<?php echo htmlspecialchars($custom_field->name); ?> " /></td> </tr> <tr valign="top"> <th scope="row"><?php _e('Label', $mf_domain); ?> :</th> <td><input name="custom-field-description" id="custom-field-description" size="40" type="text" value="<?php echo htmlspecialchars($custom_field->description); ?> " /></td> </tr> <tr valign="top"> <th scope="row"><?php _e('Help text', $mf_domain); ?> :</th> <td><input name="custom-field-helptext" id="custom-field-helptext" size="40" type="text" value="<?php echo htmlspecialchars($custom_field->help_text); ?> " /><br/><small><?php _e('If set, this will be displayed in a tooltip next to the field label', $mf_domain); ?> </small></td> </tr> <tr valign="top"> <th scope="row"><?php _e('Can be duplicated', $mf_domain); ?> :</th> <td><input name="custom-field-duplicate" id="custom-field-duplicate" type="checkbox" value="1" <?php echo $custom_field->duplicate == 0 ? "" : "checked"; ?> /></td> </tr> <tr valign="top"> <th scope="row"><?php _e('Order', $mf_domain); ?> :</th> <td> <input name="custom-field-order" id="custom-field-order" size="2" type="text" value="<?php echo $custom_field->display_order; ?> " /> </td> </tr> <?php if (in_array($custom_field->type_id, array($FIELD_TYPES['textbox'], $FIELD_TYPES['multiline_textbox'], $FIELD_TYPES['checkbox'], $FIELD_TYPES['checkbox_list'], $FIELD_TYPES['radiobutton_list'], $FIELD_TYPES['dropdown_list'], $FIELD_TYPES['listbox'], $FIELD_TYPES['file'], $FIELD_TYPES['image'], $FIELD_TYPES['audio'], $FIELD_TYPES['related_type']))) { ?> <tr valign="top"> <th scope="row"><?php _e('Required', $mf_domain); ?> :</th> <td> <select name="custom-field-required" id="custom-field-required"> <option value="0" <?php echo $custom_field->required_field == 0 ? 'selected="selected"' : ''; ?> ><?php _e('Not Required - can be empty', $mf_domain); ?> </option> <option value="1" <?php echo $custom_field->required_field == 1 ? 'selected="selected"' : ''; ?> ><?php _e('Required - can not be empty', $mf_domain); ?> </option> </select> </td> </tr> <?php } ?> <?php if (in_array($custom_field->type, array('Textbox', 'Listbox'))) { ?> <tr valign="top"> <th scope="row"><?php _e('Size', $mf_domain); ?> :</th> <td><input type="text" name="custom-field-size" id="custom-field-size" size="2" value="<?php echo $custom_field->properties['size']; ?> " /></td> </tr> <?php } ?> <?php if (in_array($custom_field->type, array('Multiline Textbox'))) { ?> <tr valign="top"> <th scope="row"><?php _e('Height', $mf_domain); ?> :</th> <td><input type="text" name="custom-field-height" id="custom-field-height" size="2" value="<?php echo $custom_field->properties['height']; ?> " /></td> </tr> <tr valign="top"> <th scope="row"><?php _e('Width', $mf_domain); ?> :</th> <td><input type="text" name="custom-field-width" id="custom-field-width" size="2" value="<?php echo $custom_field->properties['width']; ?> " /></td> </tr> <?php } ?> <?php if (in_array($custom_field->type, array('Date'))) { ?> <tr valign="top"> <th scope="row"><?php _e('Format', $mf_domain); ?> :</th> <td> <select name="custom-field-date-format" id="custom-field-date-format"> <option value="m/d/Y" <?php if ($custom_field->properties['format'] == "m/d/Y") { echo " selected "; } ?> >4/20/2008</option> <option value="l, F d, Y" <?php if ($custom_field->properties['format'] == "l, F d, Y") { echo " selected "; } ?> >Sunday, April 20, 2008</option> <option value="F d, Y" <?php if ($custom_field->properties['format'] == "F d, Y") { echo " selected "; } ?> >April 20, 2008</option> <option value="m/d/y" <?php if ($custom_field->properties['format'] == "m/d/y") { echo " selected "; } ?> >4/20/08</option> <option value="Y-d-m" <?php if ($custom_field->properties['format'] == "Y-m-d") { echo " selected "; } ?> >2008-04-20</option> <option value="d-M-y" <?php if ($custom_field->properties['format'] == "d-M-y") { echo " selected "; } ?> >20-Apr-08</option> <option value="m.d.Y" <?php if ($custom_field->properties['format'] == "m.d.Y") { echo " selected "; } ?> >4.20.2008</option> <option value="m.d.y" <?php if ($custom_field->properties['format'] == "m.d.y") { echo " selected "; } ?> >4.20.08</option> </select> </td> </tr> <?php } ?> <?php if (in_array($custom_field->type, array('Slider'))) { ?> <tr valign="top"> <th scope="row"><?php echo _e('Value min', $mf_domain); ?> :</th> <td><input type="text" name="custom-field-slider-min" id="custom-field-slider-min" size="2" value="<?php echo $custom_field->properties['min']; ?> " /></td> </tr> <tr valign="top"> <th scope="row"><?php echo _e('Value max', $mf_domain); ?> :</th> <td><input type="text" name="custom-field-slider-max" id="custom-field-slider-max" size="2" value="<?php echo $custom_field->properties['max']; ?> " /></td> </tr> <tr valign="top"> <th scope="row"><?php echo _e('Stepping', $mf_domain); ?> :</th> <td><input type="text" name="custom-field-slider-step" id="custom-field-slider-step" size="2" value="<?php echo $custom_field->properties['step']; ?> " /></td> </tr> <?php } ?> <?php //eeble if (in_array($custom_field->type, array('Related Type'))) { $customWritePanels = RCCWP_CustomWritePanel::GetCustomWritePanels(); ?> <tr valign="top"> <th scope="row"><?php _e('Related Type Panel', $mf_domain); ?> :</th> <td><select name="custom-field-related-type-panel-id" id="custom-field-related-type-panel-id"> <option value="-4" <?php if ($custom_field->properties['panel_id'] == -4) { echo 'selected'; } ?> >All Post</option> <option value="-3" <?php if ($custom_field->properties['panel_id'] == -3) { echo 'selected'; } ?> >All Page</option> <option value="-2" <?php if ($custom_field->properties['panel_id'] == -2) { echo 'selected'; } ?> >All Post with Write Panel</option> <option value="-1" <?php if ($custom_field->properties['panel_id'] == -1) { echo 'selected'; } ?> >All Page with Write Panel</option> <?php foreach ($customWritePanels as $panel) { ?> <option value="<?php echo $panel->id; ?> " <?php if ($custom_field->properties['panel_id'] == $panel->id) { echo 'selected'; } ?> ><?php echo $panel->name; ?> </option> <?php } ?> </select></td> </tr> <?php } ?> <?php if ($custom_field->has_options == "true") { $options = implode("\n", (array) $custom_field->options); ?> <tr valign="top"> <th scope="row"><?php _e('Options', $mf_domain); ?> :</th> <td> <textarea name="custom-field-options" id="custom-field-options" rows="2" cols="38"><?php echo htmlspecialchars($options); ?> </textarea><br /> <em><?php _e('Separate each option with a newline.', $mf_domain); ?> </em> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Default Value', $mf_domain); ?> :</th> <td> <?php $default_value = implode("\n", (array) $custom_field->default_value); if ($custom_field->allow_multiple_values == "true") { ?> <textarea name="custom-field-default-value" id="custom-field-default-value" rows="2" cols="38"><?php echo htmlspecialchars($default_value); ?> </textarea><br /> <em><?php _e('Separate each value with a newline.', $mf_domain); ?> </em> <?php } else { ?> <input type="text" name="custom-field-default-value" id="custom-field-default-value" size="25" value="<?php echo htmlspecialchars($default_value); ?> " /> <?php } ?> </td> </tr> <?php } ?> <tr valign="top"> <th scope="row"><?php _e('Type', $mf_domain); ?> :</th> <td> <!-- START :: Javascript for Image/Photo' Css Class --> <script type="text/javascript" language="javascript"> submitForm = false; function fun(name) { if(name == "Image") { document.getElementById('divCSS').style.display = 'inline'; document.getElementById('divLbl').style.display = 'inline'; document.getElementById('lblHeight').style.display = 'inline'; document.getElementById('txtHeight').style.display = 'inline'; document.getElementById('lblWidth').style.display = 'inline'; document.getElementById('txtWidth').style.display = 'inline'; } else { document.getElementById('divCSS').style.display = 'none'; document.getElementById('divLbl').style.display = 'none'; document.getElementById('lblHeight').style.display = 'none'; document.getElementById('txtHeight').style.display = 'none'; document.getElementById('lblWidth').style.display = 'none'; document.getElementById('txtWidth').style.display = 'none'; } } function checkEmpty() { if (submitForm && (document.getElementById('custom-field-name').value == "" || document.getElementById('custom-field-description').value == "")){ alert("<?php _e('Please fill in the name and the label of the field', $mf_domain); ?> "); return false; } return true; } </script> <!-- END :: Javascript for Image/Photo' Css Class --> <?php $field_types = RCCWP_CustomField::GetCustomFieldTypes(); foreach ($field_types as $field) { $checked = $field->name == $custom_field->type ? 'checked="checked"' : ''; ?> <label><input name="custom-field-type" value="<?php echo $field->id; ?> " type="radio" <?php echo $checked; ?> onclick='fun("<?php echo $field->name; ?> ");'/> <?php echo $field->name; ?> </label><br /> <?php } ?> </td> </tr> <!-- START :: For Image/Photo' Css --> <?php $isDisplay = $custom_field->type == "Image" ? 'display:inline;' : 'display:none;'; $size = explode("&", $custom_field->properties['params']); if (isset($size[3])) { $c = $size[3]; } if (substr($size[1], 0, 1) == "h") { $h = substr($size[1], 2); } elseif (substr($size[1], 0, 1) == "w") { $w = substr($size[1], 2); } if (substr($size[2], 0, 1) == "h") { $h = substr($size[2], 2); } elseif (substr($size[2], 0, 1) == "w") { $w = substr($size[2], 2); } $cssVlaue = $custom_field->CSS; ?> <tr valign="top"> <th scope="row"><span id="lblHeight" style="<?php echo $isDisplay; ?> "><?php _e('Max Height', $mf_domain); ?> :</span></th> <td><span id="txtHeight" style="<?php echo $isDisplay; ?> "><input type="text" name="custom-field-photo-height" id="custom-field-photo-height" size="3" value="<?php echo $h; ?> " /></span></td> </tr> <tr valign="top"> <th scope="row"><span id="lblWidth" style="<?php echo $isDisplay; ?> "><?php _e('Max Width', $mf_domain); ?> :</span></th> <td><span id="txtWidth" style="<?php echo $isDisplay; ?> "><input type="text" name="custom-field-photo-width" id="custom-field-photo-width" size="3" value="<?php echo $w; ?> " /></span></td> </tr> <tr valign="top"> <th scope="row"><span id="lblWidth" style="<?php echo $isDisplay; ?> "><?php _e('Custom', $mf_domain); ?> :</span></th> <td><span id="txtWidth" style="<?php echo $isDisplay; ?> "><input type="text" name="custom-field-custom-params" id="custom-field-custom-params" value="<?php echo $c; ?> " /></span> </td> </tr> <tr valign="top"> <th scope="row"><div id="divLbl" style="<?php echo $isDisplay; ?> "><?php _e('Css Class', $mf_domain); ?> :</div></th> <td> <div id="divCSS" style="<?php echo $isDisplay; ?> "> <input name="custom-field-css" id="custom-field-css" size="40" type="text" value="<?php echo $cssVlaue; ?> " /> </div> </td> </tr> <!-- END :: For Image/Photo' Css --> </tbody> </table> <input name="mf_action" type="hidden" value="submit-edit-custom-field" /> <p class="submit" > <a style="color:black" href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('cancel-create-custom-field') . "&custom-group-id={$customGroupID}"; ?> " class="button"><?php _e('Cancel', $mf_domain); ?> </a> <input type="submit" id="submit-edit-custom-field" value="<?php _e('Update', $mf_domain); ?> " onclick="submitForm=true;" /> </p> </form> </div> <?php }
/** * Get a custom write panel by reading $_REQUEST['custom-write-panel-id'] or the * To see whether $_GET['post'] has a custom write panel associated to it. * * @return Custom Write Panel as an object, returns null if there is no write panels. */ public static function GetCustomWritePanel() { global $wpdb; if (isset($_GET['post'])) { $customWritePanelId = get_post_meta((int) $_GET['post'], RC_CWP_POST_WRITE_PANEL_ID_META_KEY, true); if (empty($customWritePanelId)) { if (array_key_exists('custom-write-panel-id', $_REQUEST)) { $customWritePanelId = (int) $_REQUEST['custom-write-panel-id']; } else { $customWritePanelId = 0; } } } else { if (function_exists('icl_t') && isset($_GET['trid'])) { $t_name = $wpdb->prefix . "icl_translations"; $sql = $wpdb->prepare("SELECT element_id FROM {$t_name} WHERE element_type='post' AND trid = %d", array($_GET['trid'])); $element_id = $wpdb->get_col($sql); $customWritePanelId = get_post_meta((int) $element_id, RC_CWP_POST_WRITE_PANEL_ID_META_KEY, true); if (empty($customWritePanelId)) { if (array_key_exists('custom-write-panel-id', $_REQUEST)) { $customWritePanelId = (int) $_REQUEST['custom-write-panel-id']; } else { $customWritePanelId = 0; } } } else { if (isset($_REQUEST['custom-write-panel-id'])) { $customWritePanelId = (int) $_REQUEST['custom-write-panel-id']; } } } $customWritePanel = FALSE; if (isset($customWritePanelId)) { include_once 'RCCWP_Application.php'; $customWritePanel = RCCWP_CustomWritePanel::Get($customWritePanelId); } return $customWritePanel; }
/** * Get a custom write panel by reading $_REQUEST['custom-write-panel-id'] or the * To see whether $_GET['post'] has a custom write panel associated to it. * * @return Custom Write Panel as an object, returns null if there is no write panels. */ function GetCustomWritePanel() { global $wpdb; if (isset($_GET['post'])) { $customWritePanelId = get_post_meta((int) $_GET['post'], RC_CWP_POST_WRITE_PANEL_ID_META_KEY, true); if (empty($customWritePanelId)) { $customWritePanelId = (int) isset($_REQUEST['custom-write-panel-id']); } } else { if (function_exists('icl_t') && isset($_GET['trid'])) { $element_id = $wpdb->get_col("SELECT element_id FROM {$wpdb->prefix}icl_translations WHERE element_type='post' AND trid = " . intval($_GET['trid'])); $customWritePanelId = get_post_meta((int) $element_id, RC_CWP_POST_WRITE_PANEL_ID_META_KEY, true); if (empty($customWritePanelId)) { $customWritePanelId = (int) $_REQUEST['custom-write-panel-id']; } } else { if (isset($_REQUEST['custom-write-panel-id'])) { $customWritePanelId = (int) $_REQUEST['custom-write-panel-id']; } } } $customWritePanel = FALSE; if (isset($customWritePanelId)) { include_once 'RCCWP_Application.php'; $customWritePanel = RCCWP_CustomWritePanel::Get($customWritePanelId); } return $customWritePanel; }
function SetCurrentCustomWritePanelMenuItem() { global $submenu_file; global $menu; require_once 'RCCWP_Options.php'; $options = RCCWP_Options::Get(); if (!empty($options['default-custom-write-panel'])) { require_once 'RCCWP_CustomWritePanel.php'; $customWritePanel = RCCWP_CustomWritePanel::Get((int) $options['default-custom-write-panel']); if ($customWritePanel->type == "post") { $menu[5][2] = 'post-new.php?custom-write-panel-id=' . (int) $options['default-custom-write-panel']; } else { $menu[5][2] = 'page-new.php?custom-write-panel-id=' . (int) $options['default-custom-write-panel']; } } if (empty($_REQUEST['custom-write-panel-id'])) { $_REQUEST['custom-write-panel-id'] = ""; } if ($_REQUEST['custom-write-panel-id']) { $customWritePanel = RCCWP_CustomWritePanel::Get((int) $_REQUEST['custom-write-panel-id']); if (isset($_REQUEST['filter-posts'])) { if ($customWritePanel->type == "post") { $submenu_file = 'edit.php?filter-posts=1&custom-write-panel-id=' . (int) $_REQUEST['custom-write-panel-id']; } else { $submenu_file = 'edit-pages.php?filter-posts=1&custom-write-panel-id=' . (int) $_REQUEST['custom-write-panel-id']; } } else { if ($customWritePanel->type == "post") { $submenu_file = 'post-new.php?custom-write-panel-id=' . (int) $_REQUEST['custom-write-panel-id']; } else { $submenu_file = 'page-new.php?custom-write-panel-id=' . (int) $_REQUEST['custom-write-panel-id']; } } } }
function SetOptions() { global $mf_domain; $current_field = RCCWP_CustomField::GetCustomFieldTypes($_POST['custom-field-type']); $customGroupID = $_REQUEST['custom-group-id']; ?> <div class="wrap"> <h2><?php _e("Create Custom Field", $mf_domain); ?> </h2> <form action="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('finish-create-custom-field'); ?> " method="post" id="continue-create-new-field-form"> <input type="hidden" name="custom-group-id" value="<?php echo $_POST['custom-group-id']; ?> " /> <input type="hidden" name="custom-field-name" value="<?php echo htmlspecialchars($_POST['custom-field-name']); ?> " /> <input type="hidden" name="custom-field-description" value="<?php echo htmlspecialchars($_POST['custom-field-description']); ?> " /> <input type="hidden" name="custom-field-duplicate" value="<?php echo htmlspecialchars($_POST['custom-field-duplicate']); ?> " /> <input type="hidden" name="custom-field-order" value="<?php echo $_POST['custom-field-order']; ?> " /> <input type="hidden" name="custom-field-required" value="<?php echo $_POST['custom-field-required']; ?> " /> <input type="hidden" name="custom-field-type" value="<?php echo $_POST['custom-field-type']; ?> " /> <input type="hidden" name="custom-field-helptext" value="<?php echo $_POST['custom-field-helptext']; ?> " /> <!-- Hidden value for Image/Photo' Css Class--> <input type="hidden" name="custom-field-css" value="<?php echo $_POST['custom-field-css']; ?> " /> <h3><?php echo $current_field->name; ?> </h3> <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6"> <tbody> <?php if ($current_field->has_properties == "true") { ?> <?php if (in_array($current_field->name, array('Textbox', 'Listbox'))) { if ($current_field->name == 'Textbox') { $size = 25; } else { if ($current_field->name == 'Listbox') { $size = 3; } } ?> <tr valign="top"> <th scope="row"><?php _e('Size', $mf_domain); ?> :</th> <td><input type="text" name="custom-field-size" id="custom-field-size" size="2" value="<?php echo $size; ?> " /></td> </tr> <?php } ?> <?php if (in_array($current_field->name, array('Multiline Textbox'))) { $height = 3; $width = 23; ?> <tr valign="top"> <th scope="row"><?php _e('Height', $mf_domain); ?> :</th> <td><input type="text" name="custom-field-height" id="custom-field-height" size="2" value="<?php echo $height; ?> " /></td> </tr> <tr valign="top"> <th scope="row"><?php _e('Width', $mf_domain); ?> :</th> <td><input type="text" name="custom-field-width" id="custom-field-width" size="2" value="<?php echo $width; ?> " /></td> </tr> <?php } ?> <?php if (in_array($current_field->name, array('Slider'))) { $min_val = 0; $max_val = 10; $step = 1; ?> <tr valign="top"> <th scope="row"><?php _e('Value min', $mf_domain); ?> :</th> <td><input type="text" name="custom-field-slider-min" id="custom-field-slider-min" size="2" value="<?php echo $min_val; ?> " /></td> </tr> <tr valign="top"> <th scope="row"><?php _e('Value max', $mf_domain); ?> :</th> <td><input type="text" name="custom-field-slider-max" id="custom-field-slider-max" size="2" value="<?php echo $max_val; ?> " /></td> </tr> <tr valign="top"> <th scope="row"><?php _e('Stepping', $mf_domain); ?> :</th> <td><input type="text" name="custom-field-slider-step" id="custom-field-slider-step" size="2" value="<?php echo $step; ?> " /></td> </tr> <?php } ?> <?php //eeble if (in_array($current_field->name, array('Related Type'))) { $customWritePanels = RCCWP_CustomWritePanel::GetCustomWritePanels(); ?> <tr valign="top"> <th scope="row"><?php _e('Related Type Panel', $mf_domain); ?> :</th> <td><select name="custom-field-related-type-panel-id" id="custom-field-related-type-panel-id"> <option value="-4">All Post</option> <option value="-3">All Page</option> <option value="-2">All Post with Write Panel</option> <option value="-1">All Page with Write Panel</option> <?php foreach ($customWritePanels as $panel) { ?> <option value="<?php echo $panel->id; ?> "><?php echo $panel->name; ?> </option> <?php } ?> </select></td> </tr> <?php } ?> <?php } // has_properties ?> <?php if ($current_field->has_options == "true") { ?> <tr valign="top"> <th scope="row"><?php _e('Options', $mf_domain); ?> :</th> <td> <textarea name="custom-field-options" id="custom-field-options" rows="2" cols="38"></textarea><br /> <em><?php _e('Separate each option with a newline.', $mf_domain); ?> </em> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Default Value', $mf_domain); ?> :</th> <td> <?php if ($current_field->allow_multiple_values == "true") { ?> <textarea name="custom-field-default-value" id="custom-field-default-value" rows="2" cols="38"></textarea><br /> <em><?php _e('Separate each value with a newline.', $mf_domain); ?> </em> <?php } else { ?> <input type="text" name="custom-field-default-value" id="custom-field-default-value" size="25" /> <?php } ?> </td> </tr> <?php } ?> <?php if ($current_field->has_properties && $current_field->name == 'Image') { ?> <tr valign="top"> <th scope="row"><?php _e('Options', $mf_domain); ?> :</th> <td> <?php _e('Max Height', $mf_domain); ?> : <input type="text" name="custom-field-photo-height" id="custom-field-photo-height"/> <?php _e('Max Width', $mf_domain); ?> : <input type="text" name="custom-field-photo-width" id="custom-field-photo-width" /> <?php _e('Custom', $mf_domain); ?> : <input type="text" name="custom-field-custom-params" id="custom-field-custom-params" /> <div style="color:blue;text-decoration:underline;" onclick="div=document.getElementById('params');div.style.display='';" > <?php _e('Custom Options List', $mf_domain); ?> </div> <div id="params" style="display:none;" onclick="this.style.display='none';"> <pre><?php echo param_list(); ?> </pre> </div> </td> </tr> <?php } ?> <!-- Date Custom Field --> <?php if ($current_field->has_properties && $current_field->name == 'Date') { ?> <tr valign="top"> <th scope="row"><?php _e('Options', $mf_domain); ?> :</th> <td> <?php _e('Format', $mf_domain); ?> : <select name="custom-field-date-format" id="custom-field-date-format"> <option value="m/d/Y">4/20/2008</option> <option value="l, F d, Y">Sunday, April 20, 2008</option> <option value="F d, Y">April 20, 2008</option> <option value="m/d/y">4/20/08</option> <option value="Y-m-d">2008-04-20</option> <option value="d-M-y">20-Apr-08</option> <option value="m.d.Y">4.20.2008</option> <option value="m.d.y">4.20.08</option> </select> </td> </tr> <?php } ?> <!-- Date Custom Field --> </tbody> </table> <p class="submit" > <a style="color:black" href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('cancel-create-custom-field') . "&custom-group-id={$customGroupID}"; ?> " class="button"><?php _e('Cancel', $mf_domain); ?> </a> <input type="submit" id="finish-create-custom-field" value="<?php _e('Finish', $mf_domain); ?> " /> </p> </form> </div> <?php }
/** * This function is executed every time to something related with the Magic Fields happen * this function update,delete,create a customfield,writepanel,group. */ function Main() { require_once 'RC_Format.php'; global $CUSTOM_WRITE_PANEL, $wp_version; if (isset($_POST['edit-with-no-custom-write-panel'])) { $type = RCCWP_Post::GetCustomWritePanel(); if (is_object($type)) { $ptype = $type->type; } else { $ptype = strpos($_SERVER['REQUEST_URI'], 'page.php') !== FALSE ? 'page' : 'post'; } wp_redirect($ptype . '.php?action=edit&post=' . $_POST['post-id'] . '&no-custom-write-panel'); } else { if (isset($_POST['edit-with-custom-write-panel']) && isset($_POST['custom-write-panel-id']) && (int) $_POST['custom-write-panel-id'] > 0) { if (substr($wp_version, 0, 3) >= 3.0) { $ptype = 'post'; } else { $type = RCCWP_Post::GetCustomWritePanel(); if (is_object($type)) { $ptype = $type->type; } else { $ptype = strpos($_SERVER['REQUEST_URI'], 'page.php') !== FALSE ? 'page' : 'post'; } } wp_redirect($ptype . '.php?action=edit&post=' . $_POST['post-id'] . '&custom-write-panel-id=' . $_POST['custom-write-panel-id']); } } if (empty($_REQUEST['mf_action'])) { $currentAction = ""; } else { $currentAction = $_REQUEST['mf_action']; } switch ($currentAction) { // ------------ Write Panels case 'finish-create-custom-write-panel': include_once 'RCCWP_CustomWritePanel.php'; $default_theme_page = NULL; if ($_POST['radPostPage'] == 'page') { $default_theme_page = $_POST['page_template']; $default_parent_page = $_POST['parent_id']; } $customWritePanelId = RCCWP_CustomWritePanel::Create($_POST['custom-write-panel-name'], $_POST['custom-write-panel-description'], $_POST['custom-write-panel-standard-fields'], $_POST['custom-write-panel-categories'], $_POST['custom-write-panel-order'], FALSE, true, $_POST['single'], $default_theme_page, $default_parent_page, $_POST['custom-write-panel-expanded']); wp_redirect(RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('view-custom-write-panel', $customWritePanelId)); break; case 'submit-edit-custom-write-panel': include_once 'RCCWP_CustomWritePanel.php'; $default_theme_page = $default_parent_page = NULL; if ($_POST['radPostPage'] == 'page') { $default_theme_page = $_POST['page_template']; $default_parent_page = $_POST['parent_id']; } $default = array('custom-write-panel-id' => '', 'custom-write-panel-name' => '', 'custom-write-panel-standard-fields' => '', 'custom-write-panel-categories' => '', 'custom-write-panel-order' => '', 'single' => '', 'theme_page' => '', 'parent_page' => '', 'expanded' => ''); $_POST['theme_page'] = $default_theme_page; $_POST['parent_page'] = $default_parent_page; $save = array_merge($default, $_POST); RCCWP_CustomWritePanel::Update($save['custom-write-panel-id'], $save['custom-write-panel-name'], NULL, $save['custom-write-panel-standard-fields'], $save['custom-write-panel-categories'], $save['custom-write-panel-order'], FALSE, true, $save['single'], $save['theme_page'], $save['parent_page'], $save['custom-write-panel-expanded']); RCCWP_CustomWritePanel::AssignToRole($_POST['custom-write-panel-id'], 'administrator'); break; case 'export-custom-write-panel': require_once 'RCCWP_CustomWritePanel.php'; $panelID = $_REQUEST['custom-write-panel-id']; $writePanel = RCCWP_CustomWritePanel::Get($panelID); // send file in header header('Content-type: binary'); header('Content-Disposition: attachment; filename="' . $writePanel->name . '.pnl"'); print RCCWP_CustomWritePanel::Export($panelID); exit; break; case 'delete-custom-write-panel': include_once 'RCCWP_CustomWritePanel.php'; RCCWP_CustomWritePanel::Delete($_GET['custom-write-panel-id']); break; // ------------ Groups // ------------ Groups case 'finish-create-custom-group': include_once 'RCCWP_CustomGroup.php'; $default = array('custom-write-panel-id' => '', 'custom-group-name' => '', 'custom-group-duplicate' => '', 'custom-group-expanded' => ''); $values = array_merge($default, $_POST); $customGroupId = RCCWP_CustomGroup::Create($values['custom-write-panel-id'], $values['custom-group-name'], $values['custom-group-duplicate'], $values['custom-group-expanded'], NULL); break; case 'delete-custom-group': include_once 'RCCWP_CustomGroup.php'; $customGroup = RCCWP_CustomGroup::Get((int) $_REQUEST['custom-group-id']); RCCWP_CustomGroup::Delete($_GET['custom-group-id']); break; case 'unlink-write-panel': global $wpdb; $postId = (int) preg_replace('/post-/', '', $_REQUEST['post-id']); $dashboard = $_REQUEST['dashboard']; if ($postId) { //only delete images and postmeta fields with write panels if (count(get_post_meta($postId, RC_CWP_POST_WRITE_PANEL_ID_META_KEY))) { $query = sprintf('SELECT wp_pm.meta_value FROM %s mf_pm, %s mf_cf, %s wp_pm WHERE mf_pm.field_name = mf_cf.name AND mf_cf.type = 9 AND mf_pm.post_id = %d AND wp_pm.meta_id = mf_pm.id', MF_TABLE_POST_META, MF_TABLE_GROUP_FIELDS, $wpdb->postmeta, $postId); $images = $wpdb->get_results($query); foreach ($images as $image) { if ($image->meta_value != '') { $tmp = sprintf('%s%s', MF_FILES_PATH, $image->meta_value); @unlink($tmp); } } //delete all data of postmeta (WP and MF) $query = sprintf('DELETE a,b from %s a INNER JOIN %s b WHERE a.meta_id = b.id AND a.post_id = %d', $wpdb->postmeta, MF_TABLE_POST_META, $postId); $wpdb->query($query); } delete_post_meta($postId, RC_CWP_POST_WRITE_PANEL_ID_META_KEY); wp_redirect($dashboard); exit; } break; case 'submit-edit-custom-group': include_once 'RCCWP_CustomGroup.php'; $default = array('custom-write-panel-id' => '', 'custom-group-name' => '', 'custom-group-duplicate' => '', 'custom-group-expanded' => ''); $all = $_POST; $all['custom-group-id'] = $_REQUEST['custom-group-id']; $values = array_merge($default, $all); RCCWP_CustomGroup::Update($values['custom-group-id'], $values['custom-group-name'], $values['custom-group-duplicate'], $values['custom-group-expanded'], NULL); break; // ------------ Fields // ------------ Fields case 'copy-custom-field': include_once 'RCCWP_CustomField.php'; $fieldToCopy = RCCWP_CustomField::Get($_REQUEST['custom-field-id']); if (RCCWP_Processor::CheckFieldName($fieldToCopy->name, $_REQUEST['custom-write-panel-id'])) { $newURL = RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('create-custom-field') . '&custom-group-id=' . $_REQUEST['custom-group-id'] . '&err_msg=-1'; wp_redirect($newURL); exit; } RCCWP_CustomField::Create($_REQUEST['custom-group-id'], $fieldToCopy->name, $fieldToCopy->description, $fieldToCopy->display_order, $fieldToCopy->required_field, $fieldToCopy->type_id, $fieldToCopy->options, $fieldToCopy->default_value, $fieldToCopy->properties, $fieldToCopy->duplicate, $fieldToCopy->helptext); case 'continue-create-custom-field': if (RCCWP_Processor::CheckFieldName($_POST['custom-field-name'], $_REQUEST['custom-write-panel-id'])) { $newURL = RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('create-custom-field') . '&custom-group-id=' . $_REQUEST['custom-group-id'] . '&err_msg=-1'; wp_redirect($newURL); exit; } break; case 'finish-create-custom-field': include_once 'RCCWP_CustomField.php'; if (RCCWP_Processor::CheckFieldName($_POST['custom-field-name'], $_REQUEST['custom-write-panel-id'])) { $newURL = RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('create-custom-field') . '&custom-group-id=' . $_REQUEST['custom-group-id'] . '&err_msg=-1'; wp_redirect($newURL); exit; } $current_field = RCCWP_CustomField::GetCustomFieldTypes((int) $_REQUEST['custom-field-type']); if ($current_field->has_properties) { $custom_field_properties = array(); if (in_array($current_field->name, array('Textbox', 'Listbox'))) { $custom_field_properties['size'] = $_POST['custom-field-size']; if (isset($_POST['strict-max-length'])) { $custom_field_properties['strict-max-length'] = $_POST['strict-max-length']; if (empty($custom_field_properties['size'])) { $custom_field_properties['size'] = 10; } } } else { if (in_array($current_field->name, array('Multiline Textbox'))) { $custom_field_properties['height'] = $_POST['custom-field-height']; $custom_field_properties['width'] = $_POST['custom-field-width']; if (isset($_POST['hide-visual-editor'])) { $custom_field_properties['hide-visual-editor'] = 1; } if (isset($_POST['strict-max-length'])) { $custom_field_properties['hide-visual-editor'] = 1; $custom_field_properties['strict-max-length'] = $_POST['strict-max-length']; if (empty($custom_field_properties['height'])) { $custom_field_properties['height'] = 4; } if (empty($custom_field_properties['width'])) { $custom_field_properties['width'] = 64; } } } else { if (in_array($current_field->name, array('Date'))) { $custom_field_properties['format'] = $_POST['custom-field-date-format']; } else { if (in_array($current_field->name, array('Image', 'Image (Upload Media)'))) { $params = ''; if ($_POST['custom-field-photo-height'] != '' && is_numeric($_POST['custom-field-photo-height'])) { $params .= '&h=' . $_POST['custom-field-photo-height']; } if ($_POST['custom-field-photo-width'] != '' && is_numeric($_POST['custom-field-photo-width'])) { $params .= '&w=' . $_POST['custom-field-photo-width']; } if ($_POST['custom-field-custom-params'] != '') { $params .= '&' . $_POST['custom-field-custom-params']; } if ($params) { $custom_field_properties['params'] = $params; } } else { if (in_array($current_field->name, array('Date'))) { $custom_field_properties['format'] = $_POST['custom-field-date-format']; } else { if (in_array($current_field->name, array('Slider'))) { $custom_field_properties['max'] = $_POST['custom-field-slider-max']; $custom_field_properties['min'] = $_POST['custom-field-slider-min']; $custom_field_properties['step'] = $_POST['custom-field-slider-step']; } else { if (in_array($current_field->name, array('Related Type'))) { $custom_field_properties['panel_id'] = $_POST['custom-field-related-type-panel-id']; } } } } } } } } $default = array('custom-group-id' => '', 'custom-field-name' => '', 'custom-field-description' => '', 'custom-field-order' => '', 'custom-field-required' => '', 'custom-field-type' => '', 'custom-field-options' => '', 'custom-field-default-value' => '', 'prop' => '', 'custom-field-duplicate' => '', 'custom-field-helptext' => ''); $_POST['prop'] = $custom_field_properties; $save = array_merge($default, $_POST); RCCWP_CustomField::Create($save['custom-group-id'], $save['custom-field-name'], $save['custom-field-description'], $save['custom-field-order'], $save['custom-field-required'], $save['custom-field-type'], $save['custom-field-options'], $save['custom-field-default-value'], $save['prop'], $save['custom-field-duplicate'], $save['custom-field-helptext']); break; case 'submit-edit-custom-field': include_once 'RCCWP_CustomField.php'; $current_field_obj = RCCWP_CustomField::Get($_POST['custom-field-id']); if ($_POST['custom-field-name'] != $current_field_obj->name && RCCWP_Processor::CheckFieldName($_POST['custom-field-name'], $_REQUEST['custom-write-panel-id'])) { $newURL = RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('edit-custom-field') . '&custom-field-id=' . $_POST['custom-field-id'] . '&err_msg=-1'; wp_redirect($newURL); exit; } $current_field = RCCWP_CustomField::GetCustomFieldTypes((int) $_POST['custom-field-type']); if ($current_field->has_properties) { $custom_field_properties = array(); if (in_array($current_field->name, array('Textbox', 'Listbox'))) { $custom_field_properties['size'] = $_POST['custom-field-size']; if (isset($_POST['strict-max-length'])) { $custom_field_properties['strict-max-length'] = $_POST['strict-max-length']; if (empty($custom_field_properties['size'])) { $custom_field_properties['size'] = 10; } } } else { if (in_array($current_field->name, array('Multiline Textbox'))) { $custom_field_properties['height'] = $_POST['custom-field-height']; $custom_field_properties['width'] = $_POST['custom-field-width']; if (isset($_POST['hide-visual-editor'])) { $custom_field_properties['hide-visual-editor'] = 1; } if (isset($_POST['strict-max-length'])) { $custom_field_properties['hide-visual-editor'] = 1; $custom_field_properties['strict-max-length'] = $_POST['strict-max-length']; if (empty($custom_field_properties['height'])) { $custom_field_properties['height'] = 4; } if (empty($custom_field_properties['width'])) { $custom_field_properties['width'] = 64; } } } else { if (in_array($current_field->name, array('Image', 'Image (Upload Media)'))) { $params = ''; if ($_POST['custom-field-photo-height'] != '' && is_numeric($_POST['custom-field-photo-height'])) { $params = '&h=' . $_POST['custom-field-photo-height']; } if ($_POST['custom-field-photo-width'] != '' && is_numeric($_POST['custom-field-photo-width'])) { $params .= '&w=' . $_POST['custom-field-photo-width']; } if ($_POST['custom-field-custom-params'] != '') { $params .= '&' . $_POST['custom-field-custom-params']; } if ($params) { $custom_field_properties['params'] = $params; } } else { if (in_array($current_field->name, array('Date'))) { $custom_field_properties['format'] = $_POST['custom-field-date-format']; } else { if (in_array($current_field->name, array('Slider'))) { $custom_field_properties['max'] = $_POST['custom-field-slider-max']; $custom_field_properties['min'] = $_POST['custom-field-slider-min']; $custom_field_properties['step'] = $_POST['custom-field-slider-step']; } else { if (in_array($current_field->name, array('Related Type'))) { $custom_field_properties['panel_id'] = $_POST['custom-field-related-type-panel-id']; } } } } } } } $default = array('custom-group-id' => '', 'custom-field-name' => '', 'custom-field-description' => '', 'custom-field-order' => '', 'custom-field-required' => '', 'custom-field-type' => '', 'custom-field-options' => '', 'custom-field-default-value' => '', 'prop' => '', 'custom-field-duplicate' => '', 'custom-field-helptext' => ''); $_POST['prop'] = $custom_field_properties; $save = array_merge($default, $_POST); RCCWP_CustomField::Update($save['custom-field-id'], $save['custom-field-name'], $save['custom-field-description'], $save['custom-field-order'], $save['custom-field-required'], $save['custom-field-type'], $save['custom-field-options'], $save['custom-field-default-value'], $save['prop'], $save['custom-field-duplicate'], $save['custom-field-helptext']); break; case 'delete-custom-field': include_once 'RCCWP_CustomField.php'; if (isset($_REQUEST['custom-field-id']) && !empty($_REQUEST['custom-field-id'])) { RCCWP_CustomField::Delete($_REQUEST['custom-field-id']); } break; case 'save-fields-order': RCCWP_CustomWritePanelPage::save_order_fields(); default: if (RCCWP_Application::InWritePostPanel()) { include_once 'RCCWP_Menu.php'; include_once 'RCCWP_WritePostPage.php'; $CUSTOM_WRITE_PANEL = RCCWP_Post::GetCustomWritePanel(); if (isset($CUSTOM_WRITE_PANEL) && !empty($CUSTOM_WRITE_PANEL)) { add_action('admin_head', array('RCCWP_WritePostPage', 'CustomFieldsCSS')); //adding javascripts files for the custom fields add_action('admin_print_scripts', array('RCCWP_WritePostPage', 'CustomFieldsJavascript')); add_action('admin_print_scripts', array('RCCWP_WritePostPage', 'ApplyWritePanelAssignedCategoriesOrTemplate')); add_action('admin_head', array('RCCWP_WritePostPage', 'ApplyCustomWritePanelHeader')); add_action('admin_menu', array('RCCWP_WritePostPage', 'CustomFieldCollectionInterface')); } else { if (!isset($_REQUEST['no-custom-write-panel']) && isset($_REQUEST['post'])) { include_once 'RCCWP_Options.php'; $promptEditingPost = RCCWP_Options::Get('prompt-editing-post'); if ($promptEditingPost == 1) { wp_redirect('?page=' . urlencode(MF_PLUGIN_DIR . DIRECTORY_SEPARATOR . 'RCCWP_Menu.php') . '&assign-custom-write-panel=' . (int) $_GET['post']); } } } } else { if (isset($_POST['update-custom-write-panel-options'])) { if ($_POST['uninstall-custom-write-panel'] == 'uninstall') { RCCWP_Application::Uninstall(); wp_redirect('options-general.php'); } else { if (isset($_POST['clear-cache-image-mf'])) { $dir = MF_CACHE_DIR; if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if (!is_dir($file)) { @unlink(MF_CACHE_DIR . $file); } } closedir($dh); } } } include_once 'RCCWP_Options.php'; $default = array('condense-menu' => 0, 'hide-non-standart-content' => 0, 'hide-write-post' => 0, 'hide-write-page' => 0, 'hide-visual-editor' => 0, 'dont-remove-tmce' => 0, 'prompt-editing-post' => 0, 'assign-to-role' => 0, 'default-custom-write-panel' => 0); $save_options = $_POST; unset($save_options['uninstall-custom-write-panel']); unset($save_options['update-custom-write-panel-options']); $save = array_merge($default, $save_options); RCCWP_Options::Update($save); } } } if (isset($_REQUEST['post'])) { // traversal addition to change write panel add_action('admin_menu', array('RCCWP_WritePostPage', 'CreateAttributesBox')); } } }
function ShowPanel($panel) { return true; require_once 'RCCWP_CustomWritePanel.php'; global $wpdb, $canvas; if ($panel->always_show) { return true; } $custom_panel_modules = RCCWP_CustomWritePanel::GetPanelCustomModules($panel->id); foreach ($custom_panel_modules as $panel_module) { //echo "SELECT * FROM ".$canvas->main." WHERE module_id = $panel_module->mod_id AND zone <> 'shelf'"; if ($wpdb->get_results("SELECT * FROM " . $canvas->main . " WHERE module_id = {$panel_module->mod_id} AND zone <> 'shelf'")) { return true; } } if (0 < $wpdb->get_var("SELECT count({$wpdb->postmeta}.meta_value)\n\t\t\tFROM {$wpdb->postmeta}\n\t\t\tWHERE {$wpdb->postmeta}.meta_key = '_rc_cwp_write_panel_id' and {$wpdb->postmeta}.meta_value = '{$panel->id}'")) { return true; } return false; }
function change_number_not_write_panel_manage($where) { global $parent_file; if (isset($_SESSION['change_number_not_write_panel_manage'])) { return $where; } $types = array('edit.php', 'edit-pages.php', 'edit.php?post_type=page'); if (!in_array($parent_file, $types)) { return $where; } if (isset($_GET['custom-write-panel-id'])) { return $where; } if (!RCCWP_Options::Get('hide-non-standart-content')) { return $where; } $type = 'post'; if (is_wp30()) { if ($parent_file == 'edit.php?post_type=page') { $type = 'page'; } } else { if ($parent_file == 'edit-pages.php') { $type = 'page'; } } $num_posts_mf = RCCWP_CustomWritePanel::GetCountPostNotWritePanel($type); printf("\n <script type=\"text/javascript\">\n //<![CDATA[\n jQuery().ready(function() {\n change_number_manage_not_write_panel('(%s)','(%s)','(%s)','(%s)','(%s)','(%s)','(%s)');\n });\n //]]>\n </script>", array_sum((array) $num_posts_mf) - $num_posts_mf->trash, $num_posts_mf->publish, $num_posts_mf->pending, $num_posts_mf->draft, $num_posts_mf->private, $num_posts_mf->trash, $num_posts_mf->future); $_SESSION['change_number_not_write_panel_manage'] = "1"; return $where; }
public static function attributesBoxContentPost($post) { global $wpdb; global $mf_domain; $single_panel = FALSE; $panel_id = get_post_meta($post->ID, "_mf_write_panel_id", TRUE); if ($panel_id) { $panel = RCCWP_CustomWritePanel::Get($panel_id); } ?> <p><strong><?php _e('Write Panel'); ?> </strong></p> <label class="screen-reader-text" for="parent_id"><?php _e('Write Panel'); ?> </label> <?php // get a list of the write panels $customWritePanels = RCCWP_CustomWritePanel::GetCustomWritePanels(); ?> <select name="rc-cwp-change-custom-write-panel-id" id="rc-cwp-change-custom-write-panel-id"> <option value="-1"><?php _e('(None)', $mf_domain); ?> </option> <?php $items = array(); foreach ($customWritePanels as $panel) { $selected = $panel->id == $panel_id ? 'selected="selected"' : ''; $allow = $panel->type == "post"; if ($panel->single && $panel->id != $panel_id) { // check to see if there are any posts with this panel already. If so, we can't allow it to be used. $sql = $wpdb->prepare("SELECT COUNT(*) FROM {$wpdb->postmeta} WHERE {$wpdb->postmeta}.meta_value = %d AND {$wpdb->postmeta}.meta_key = %s", array($panel->id, "_mf_write_panel_id")); $count = $wpdb->get_var($sql); $allow = $count == 0; } if ($allow) { // cannot change to "single" panels ?> <option value="<?php echo $panel->id; ?> " <?php echo $selected; ?> ><?php echo $panel->name; ?> </option> <?php } } ?> </select> <?php }
function CustomFieldCollectionInterface($rightOnly = false) { global $flutter_domain; global $CUSTOM_WRITE_PANEL; global $wpdb; global $post; //if no exists the write panel returni if (!isset($CUSTOM_WRITE_PANEL)) { return; } $customGroups = RCCWP_CustomWritePanel::GetCustomGroups($CUSTOM_WRITE_PANEL->id); foreach ($customGroups as $customGroup) { //render the elements $customFields = RCCWP_CustomGroup::GetCustomFields($customGroup->id); //when will be edit the Post if (isset($_REQUEST['post']) && count($customFields) > 0) { //using the first field name we can know //the order of the groups $firstFieldName = $customFields[0]->name; $order = RCCWP_CustomField::GetOrderDuplicates($_REQUEST['post'], $firstFieldName); ?> <div class="write_panel_wrapper" id="write_panel_wrap_<?php echo $customGroup->id; ?> "><?php //build the group duplicates foreach ($order as $key => $element) { ?> <?php RCCWP_WritePostPage::GroupDuplicate2($customGroup, $element, $key, false); ?> <?php } ?> <?php //knowing what is the biggest duplicate group if (!empty($order)) { $tmp = $order; sort($tmp); $top = $tmp[count($tmp) - 1]; } else { $top = 0; } ?> <input type='hidden' name='g<?php echo $customGroup->id; ?> counter' id='g<?php echo $customGroup->id; ?> counter' value='<?php echo $top; ?> ' /> <input type="hidden" name="rc-custom-write-panel-verify-key" id="rc-custom-write-panel-verify-key" value="<?php echo wp_create_nonce('rc-custom-write-panel'); ?> " /> <input type="hidden" name="rc-cwp-custom-write-panel-id" value="<?php echo $CUSTOM_WRITE_PANEL->id; ?> " /> </div> <?php } else { if (count($customFields) > 0) { ?> <div class="write_panel_wrapper" id="write_panel_wrap_<?php echo $customGroup->id; ?> "> <?php RCCWP_WritePostPage::GroupDuplicate2($customGroup, 1, 1, false); $gc = 1; ?> <input type='hidden' name='g<?php echo $customGroup->id; ?> counter' id='g<?php echo $customGroup->id; ?> counter' value='<?php echo $gc; ?> ' /> <input type='hidden' name="rc-custom-write-panel-verify-key" id="rc-custom-write-panel-verify-key" value="<?php echo wp_create_nonce('rc-custom-write-panel'); ?> " /> <input type='hidden' name="rc-cwp-custom-write-panel-id" value="<?php echo $CUSTOM_WRITE_PANEL->id; ?> " /> </div> <?php } } } }
function ViewWritePanels() { global $mf_domain; $customWritePanels = RCCWP_CustomWritePanel::GetCustomWritePanels(TRUE); ?> <div class="wrap"> <form action="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('import-write-panel'); ?> " method="post" id="posts-filter" name="ImportWritePanelForm" enctype="multipart/form-data"> <h2><?php _e('Custom Write Panel', $mf_domain); ?> </h2> <p id="post-search"> <input id="import-write-panel-file" name="import-write-panel-file" type="file" /> <input id="overwrite-existing" name="overwrite-existing" type="checkbox"/> Overwrite existing panel <a href="#none" class="button-secondary" style="display:inline" onclick="document.ImportWritePanelForm.submit();"><?php _e('Import a Write Panel', $mf_domain); ?> </a> <a href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('create-custom-write-panel'); ?> " class="button-secondary" style="display:inline">+ <?php _e('Create a Write Panel', $mf_domain); ?> </a> </p> </form> <br class="clear"/> <table cellpadding="3" cellspacing="3" width="100%" class="widefat"> <thead> <tr> <th scope="col" width="40%"><?php _e('Name (Order)', $mf_domain); ?> </th> <th width="10%"><?php _e('Id', $mf_domain); ?> </th> <th width="10%"><?php _e('Type', $mf_domain); ?> </th> <th width="40%" colspan="4" style="text-align:center"><?php _e('Actions', $mf_domain); ?> </th> </tr> </thead> <tbody> <?php foreach ($customWritePanels as $panel) { ?> <tr> <td><?php echo $panel->name; if ($panel->name != '_Global') { echo ' <span style="color: #999;">(' . $panel->display_order . ')</span>'; } ?> </td> <td><?php echo $panel->id; ?> </td> <td><?php echo ucwords($panel->type); if ($panel->single != 1) { echo ' <sup class="multiple" title="Multiple Posts/Pages">[+]</sup>'; } ?> </td> <td><a href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('view-custom-write-panel', $panel->id); ?> " ><?php _e('Edit Fields/Groups', $mf_domain); ?> </a></td> <td><?php if ($panel->name != '_Global') { ?> <a href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('edit-custom-write-panel', $panel->id); ?> " ><?php _e('Edit Write Panel', $mf_domain); ?> </a> <?php } ?> </td> <td><?php if ($panel->name != '_Global') { ?> <a href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('edit-custom-write-panel', $panel->id); ?> " ><a href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('export-custom-write-panel', $panel->id); ?> " ><?php _e('Export', $mf_domain); ?> </a><?php } ?> </td> </tr> <?php } ?> </tbody> </table> <br /> </div> <?php }
function Main() { global $mf_domain; $customWritePanels = RCCWP_CustomWritePanel::GetCustomWritePanels(); $customWritePanelOptions = RCCWP_Options::Get(); if (function_exists('is_site_admin') && !is_site_admin()) { update_option("Magic_Fields_notTopAdmin", true); } else { update_option("Magic_Fields_notTopAdmin", false); } ?> <div class="wrap"> <h2><?php _e('Magic Fields Options', $mf_domain); ?> </h2> <form action="#" method="post" id="custom-write-panel-options-form"> <h3><?php _e('Write Panel Options', $mf_domain); ?> </h3> <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6"> <tr valign="top"> <th scope="row"><?php _e('Condense Menu', $mf_domain); ?> </th> <td> <label for="condense-menu"> <input name="condense-menu" id="condense-menu" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['condense-menu']); ?> type="checkbox"> <?php _e('This option removes the write panel from the main navigation and places them inside of the post and menu pages.'); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Hide non-standart content in Post Panel', $mf_domain); ?> </th> <td> <label for="hide-non-standart-content" > <input name="hide-non-standart-content" id="hide-non-standart-content" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['hide-non-standart-content']); ?> type="checkbox"> <?php _e('Hide posts made with Write panels in the edit section in the Post panel'); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Hide Post Panel', $mf_domain); ?> </th> <td> <label for="hide-write-post"> <input name="hide-write-post" id="hide-write-post" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['hide-write-post']); ?> type="checkbox"> <?php _e('Hide Wordpress Post panel', $mf_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Hide Page Panel', $mf_domain); ?> </th> <td> <label for="hide-write-page"> <input name="hide-write-page" id="hide-write-page" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['hide-write-page']); ?> type="checkbox"> <?php _e('Hide Wordpress Page panel', $mf_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Hide Visual Editor (multiline)', $mf_domain); ?> </th> <td> <label for="hide-visual-editor"> <input name="hide-visual-editor" id="hide-visual-editor" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['hide-visual-editor']); ?> type="checkbox"> <?php _e('Hide Visual Editor (multiline)', $mf_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Editing Prompt', $mf_domain); ?> </th> <td> <label for="prompt-editing-post"> <input name="prompt-editing-post" id="prompt-editing-post" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['prompt-editing-post']); ?> type="checkbox"> <?php _e('Prompt when editing a Post not created with Custom Write Panel.', $mf_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Assign to Role', $mf_domain); ?> </th> <td> <label for="assign-to-role"> <input name="assign-to-role" id="assign-to-role" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['assign-to-role']); ?> type="checkbox"> <?php _e('This option will create a capability for each write panel such that the write panel is accessible by the Administrator only by default. You can assign the write panel to other roles using ', $mf_domain); ?> </label><a target="_blank" href="http://sourceforge.net/projects/role-manager">Role Manager Plugin</a>. </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Default Panel', $mf_domain); ?> </th> <td> <label for="default-custom-write-panel"> <select name="default-custom-write-panel" id="default-custom-write-panel"> <option value=""><?php _e('(None)', $mf_domain); ?> </option> <?php $defaultCustomWritePanel = $customWritePanelOptions['default-custom-write-panel']; foreach ($customWritePanels as $panel) { $selected = $panel->id == $defaultCustomWritePanel ? 'selected="selected"' : ''; ?> <option value="<?php echo $panel->id; ?> " <?php echo $selected; ?> ><?php echo $panel->name; ?> </option> <?php } ?> </select> </label> </td> </tr> </table> <h3><?php _e('Other Options', $mf_domain); ?> </h3> <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6"> <tr valign="top"> <th scope="row"><?php _e('Edit-n-place', $mf_domain); ?> </th> <td> <label for="enable-editnplace"> <input name="enable-editnplace" id="enable-editnplace" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['enable-editnplace']); ?> type="checkbox"> <?php _e('Edit posts instantly from the post page.', $mf_domain); ?> </label> </td> </tr> <script type='text/javascript' src='<?php echo MF_URI; ?> js/sevencolorpicker.js'></script> <script type="text/javascript"> jQuery('document').ready(function(){ jQuery('#eip-highlight-color').SevenColorPicker(); }); </script> <tr> <th scope="row"><?php _e('EIP highlight color', $mf_domain); ?> </th> <td> <label for="eip-highlight-color"> <input name="eip-highlight-color" id="eip-highlight-color" value="<?php echo $customWritePanelOptions['eip-highlight-color']; ?> " > <?php _e('Use color to highlight areas EIP', $mf_domain); ?> </label> </td> </tr> </table> <br /> <h3><?php _e('Uninstall Magic Fields', $mf_domain); ?> </h3> <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6"> <tr valign="top"> <th scope="row"><?php _e('Uninstall Magic Fields', $mf_domain); ?> </th> <td> <input type="text" id="uninstall-custom-write-panel" name="uninstall-custom-write-panel" size="25" /><br /> <label for="uninstall-custom-write-panel"> <?php _e('Type <strong>uninstall</strong> into the textbox, click <strong>Update Options</strong>, and all the tables created by this plugin will be deleted', $mf_domain); ?> </label> </td> </tr> </table> <p class="submit" ><input name="update-custom-write-panel-options" type="submit" value="<?php _e('Update Options', $mf_domain); ?> " /></p> </form> </div> <?php }
/** * Import default modules/panels in the theme if it is the first time to * activate the theme and add the theme settings to the database. * */ function ImportNewTheme($themeName) { // -- Add/update theme settings to the database FlutterLayoutBlock::UpdateModuleSettings(get_template_directory() . '/configure.xml', -1, '-', get_option('template')); FlutterLayoutBlock::UpdateAllModulesSettings(); // -- Import modules and panels if (RCCWP_Application::IsWordpressMu()) { if (get_site_option('Flutter_theme_ft_' . $themeName) == '1') { return; } update_site_option('Flutter_theme_ft_' . $themeName, '1'); } else { if (get_option('Flutter_theme_ft_' . $themeName) == '1') { return; } update_option('Flutter_theme_ft_' . $themeName, '1'); } $modulesFolder = get_template_directory() . '/Flutter_modules/'; $panelsFolder = get_template_directory() . '/Flutter_panels/'; // Import modules if ($handle = @opendir($modulesFolder)) { while (false !== ($file = readdir($handle))) { $filePath = $modulesFolder . $file; RCCWP_CustomWriteModule::Import($filePath); } } // Import panels if ($handle = @opendir($panelsFolder)) { while (false !== ($file = readdir($handle))) { $filePath = $panelsFolder . $file; RCCWP_CustomWritePanel::Import($filePath); } } }
public static function Main() { global $mf_domain; $customWritePanels = RCCWP_CustomWritePanel::GetCustomWritePanels(); $customWritePanelOptions = RCCWP_Options::Get(); //check dont-remove p and br if (!isset($customWritePanelOptions['dont-remove-tmce'])) { $customWritePanelOptions['dont-remove-tmce'] = 0; } if (!isset($customWritePanelOptions['use-standard-uploader'])) { $customWritePanelOptions['use-standard-uploader'] = 0; } if (function_exists('is_site_admin') && !is_site_admin()) { update_option("Magic_Fields_notTopAdmin", true); } else { update_option("Magic_Fields_notTopAdmin", false); } ?> <div class="wrap"> <h2><?php _e('Magic Fields Options', $mf_domain); ?> </h2> <form action="#" method="post" id="custom-write-panel-options-form"> <?php wp_nonce_field('update-custom-write-panel-options'); ?> <h3><?php _e('Write Panel Options', $mf_domain); ?> </h3> <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6"> <tr valign="top"> <th scope="row"><?php _e('Condense Menu', $mf_domain); ?> </th> <td> <label for="condense-menu"> <input name="condense-menu" id="condense-menu" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['condense-menu']); ?> type="checkbox"> <?php _e('This option removes the write panel from the main navigation and places them inside of the post and menu pages.'); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Hide non-standart content in Post Panel', $mf_domain); ?> </th> <td> <label for="hide-non-standart-content" > <input name="hide-non-standart-content" id="hide-non-standart-content" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['hide-non-standart-content']); ?> type="checkbox"> <?php _e('Hide posts made with Write panels in the edit section in the Post panel'); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Hide Post Panel', $mf_domain); ?> </th> <td> <label for="hide-write-post"> <input name="hide-write-post" id="hide-write-post" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['hide-write-post']); ?> type="checkbox"> <?php _e('Hide Wordpress Post panel', $mf_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Hide Page Panel', $mf_domain); ?> </th> <td> <label for="hide-write-page"> <input name="hide-write-page" id="hide-write-page" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['hide-write-page']); ?> type="checkbox"> <?php _e('Hide Wordpress Page panel', $mf_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Hide Visual Editor (multiline)', $mf_domain); ?> </th> <td> <label for="hide-visual-editor"> <input name="hide-visual-editor" id="hide-visual-editor" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['hide-visual-editor']); ?> type="checkbox"> <?php _e('Hide Visual Editor (multiline)', $mf_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Do not remove tags tmce. (multiline)', $mf_domain); ?> </th> <td> <label for="dont-remove-tmce"> <input name="dont-remove-tmce" id="dont-remove-tmce" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['dont-remove-tmce']); ?> type="checkbox"> <?php _e("Stop removing the <p> and <br /> tags when saving and show them in the HTML editor", $mf_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Use Standard File Uploader (non-ajax)', $mf_domain); ?> </th> <td> <label for="use-standard-uploader"> <input name="use-standard-uploader" id="use-standard-uploader" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['use-standard-uploader']); ?> type="checkbox"> <?php _e('Try using the standard file uploader if the AJAX loader fails to upload to your server', $mf_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Editing Prompt', $mf_domain); ?> </th> <td> <label for="prompt-editing-post"> <input name="prompt-editing-post" id="prompt-editing-post" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['prompt-editing-post']); ?> type="checkbox"> <?php _e('Prompt when editing a Post not created with Custom Write Panel.', $mf_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Assign to Role', $mf_domain); ?> </th> <td> <label for="assign-to-role"> <input name="assign-to-role" id="assign-to-role" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['assign-to-role']); ?> type="checkbox"> <?php _e('This option will create a capability for each write panel such that the write panel is accessible by the Administrator only by default. You can assign the write panel to other roles using ', $mf_domain); ?> </label><a target="_blank" href="http://sourceforge.net/projects/role-manager">Role Manager Plugin</a>. </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Default Panel', $mf_domain); ?> </th> <td> <label for="default-custom-write-panel"> <select name="default-custom-write-panel" id="default-custom-write-panel"> <option value=""><?php _e('(None)', $mf_domain); ?> </option> <?php $defaultCustomWritePanel = $customWritePanelOptions['default-custom-write-panel']; foreach ($customWritePanels as $panel) { $selected = $panel->id == $defaultCustomWritePanel ? 'selected="selected"' : ''; ?> <option value="<?php echo $panel->id; ?> " <?php echo $selected; ?> ><?php echo $panel->name; ?> </option> <?php } ?> </select> </label> </td> </tr> </table> <h3><?php _e('Extra', $mf_domain); ?> </h3> <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6"> <tr valign="top"> <th scope="row"><?php _e('Clear cache', $mf_domain); ?> </th> <td> <label for="clear-cache-image-mf"> <input name="clear-cache-image-mf" id="clear-cache-image-mf" value="1" type="checkbox"> <?php _e('delete all image thumbs', $mf_domain); ?> </label> </td> </tr> </table> <h3><?php _e('Uninstall Magic Fields', $mf_domain); ?> </h3> <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6"> <tr valign="top"> <th scope="row"><?php _e('Uninstall Magic Fields', $mf_domain); ?> </th> <td> <input type="text" id="uninstall-custom-write-panel" name="uninstall-custom-write-panel" size="25" /><br /> <label for="uninstall-custom-write-panel"> <?php _e('Type <strong>uninstall</strong> into the textbox, click <strong>Update Options</strong>, and all the tables created by this plugin will be deleted', $mf_domain); ?> </label> </td> </tr> </table> <p class="submit" ><input name="update-custom-write-panel-options" type="submit" value="<?php _e('Update Options', $mf_domain); ?> " /></p> </form> </div> <?php }
/** * Export a write panel to file * * @param integer $panelID * @param string $exportedFilename the full path of the file to which the panel will be exported */ function Export($panelID, $exportedFilename) { include_once 'RCCWP_CustomWriteModule.php'; include_once 'RCCWP_CustomGroup.php'; include_once 'RCCWP_CustomField.php'; $exported_data = array(); $writePanel = RCCWP_CustomWritePanel::Get($panelID); $writePanel->standardFieldsIDs = RCCWP_CustomWritePanel::GetStandardFields($panelID); $writePanel->assignedCategories = array(); $writePanel->theme = RCCWP_CustomWritePanel::GetThemePage($writePanel->name); $assignedCategories = RCCWP_CustomWritePanel::GetAssignedCategories($panelID); foreach ($assignedCategories as $assignedCategory) { $writePanel->assignedCategories[] = $assignedCategory->cat_name; } $moduleGroups = RCCWP_CustomWritePanel::GetCustomGroups($panelID); foreach ($moduleGroups as $moduleGroup) { $groupFields[$moduleGroup->name]->fields = RCCWP_CustomGroup::GetCustomFields($moduleGroup->id); $groupFields[$moduleGroup->name]->duplicate = $moduleGroup->duplicate; $groupFields[$moduleGroup->name]->at_right = $moduleGroup->at_right; } $exported_data['panel'] = $writePanel; $exported_data['fields'] = $groupFields; $handle = fopen($exportedFilename, "w"); $result = fwrite($handle, serialize($exported_data)); @fclose($handle); }
function ViewWritePanels() { global $mf_domain; $customWritePanels = RCCWP_CustomWritePanel::GetCustomWritePanels(); ?> <div class="wrap"> <form action="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('import-write-panel'); ?> " method="post" id="posts-filter" name="ImportWritePanelForm" enctype="multipart/form-data"> <h2><?php _e('Custom Write Panel', $mf_domain); ?> </h2> <p id="post-search"> <input id="import-write-panel-file" name="import-write-panel-file" type="file" /> <a href="#none" class="button-secondary" style="display:inline" onclick="document.ImportWritePanelForm.submit();"><?php _e('Import a Write Panel', $mf_domain); ?> </a> <a href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('create-custom-write-panel'); ?> " class="button-secondary" style="display:inline">+ <?php _e('Create a Write Panel', $mf_domain); ?> </a> </p> </form> <br class="clear"/> <table cellpadding="3" cellspacing="3" width="100%" class="widefat"> <thead> <tr> <th scope="col" width="60%"><?php _e('Name', $mf_domain); ?> </th> <th colspan="4" style="text-align:center"><?php _e('Actions', $mf_domain); ?> </th> </tr> </thead> <tbody> <?php foreach ($customWritePanels as $panel) { ?> <tr> <td><?php echo $panel->name; ?> </td> <td><a href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('view-custom-write-panel', $panel->id); ?> " ><?php _e('Edit Fields/Groups', $mf_domain); ?> </a></td> <td><a href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('edit-custom-write-panel', $panel->id); ?> " ><?php _e('Edit Write Panel', $mf_domain); ?> </a></td> <td><a href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('export-custom-write-panel', $panel->id); ?> " ><?php _e('Export', $mf_domain); ?> </a></td> </tr> <?php } ?> </tbody> </table> <br /> </div> <?php }
/** * Drawing our custom fields */ function CustomFieldCollectionInterface() { global $CUSTOM_WRITE_PANEL, $wpdb, $mf_domain, $post; if (empty($CUSTOM_WRITE_PANEL)) { return false; } //getting information of the CustomWrite Panel $groups = RCCWP_CustomWritePanel::GetCustomGroups($CUSTOM_WRITE_PANEL->id); foreach ($groups as $group) { //Only is drawed the group if has at least one field $hasfields = RCCWP_CustomGroup::HasCustomfields($group->id); if (!$hasfields) { continue; } if ($group->name == "__default") { $name = "Magic Fields Custom Fields"; } else { $name = $group->name; } add_meta_box('panel_' . $group->id, $name, array('RCCWP_WritePostPage', 'metaboxContent'), $CUSTOM_WRITE_PANEL->type, 'normal', 'high', $group); } }
function AssignCustomWritePanel() { global $mf_domain; $postId = (int) $_GET['assign-custom-write-panel']; $customWritePanels = RCCWP_CustomWritePanel::GetCustomWritePanels(); $customWritePanelOptions = RCCWP_Options::Get(); $message = 'The Post that you\'re about to edit is not associated with any Custom Write Panel.'; ?> <div id="message" class="updated"><p><?php _e($message); ?> </p></div> <div class="wrap"> <h2><?php _e('Assign Custom Write Panel'); ?> </h2> <form action="" method="post" id="assign-custom-write-panel-form"> <table class="optiontable"> <tbody> <tr valign="top"> <th scope="row"><?php _e('Custom Write Panel', $mf_domain); ?> :</th> <td> <select name="custom-write-panel-id" id="custom-write-panel-id"> <option value=""><?php _e('(None)', $mf_domain); ?> </option> <?php $defaultCustomWritePanel = $customWritePanelOptions['default-custom-write-panel']; foreach ($customWritePanels as $panel) { $selected = $panel->id == $defaultCustomWritePanel ? 'selected="selected"' : ''; ?> <option value="<?php echo $panel->id; ?> " <?php echo $selected; ?> ><?php echo $panel->name; ?> </option> <?php } ?> </select> </td> </tr> </tbody> </table> <input type="hidden" name="post-id" value="<?php echo $postId; ?> " /> <p class="submit" > <input name="edit-with-no-custom-write-panel" type="submit" value="<?php _e("Don't Assign Custom Write Panel", $mf_domain); ?> " /> <input name="edit-with-custom-write-panel" type="submit" value="<?php _e('Edit with Custom Write Panel', $mf_domain); ?> " /> </p> </form> </div> <?php }
function Main() { require_once 'RC_Format.php'; global $CUSTOM_WRITE_PANEL; wp_enqueue_script('jquery-ui-sortable'); if (isset($_POST['edit-with-no-custom-write-panel'])) { wp_redirect('post.php?action=edit&post=' . $_POST['post-id'] . '&no-custom-write-panel=' . $_POST['custom-write-panel-id']); } else { if (isset($_POST['edit-with-custom-write-panel'])) { wp_redirect('post.php?action=edit&post=' . $_POST['post-id'] . '&custom-write-panel-id=' . $_POST['custom-write-panel-id']); } } if (empty($_REQUEST['flutter_action'])) { $currentAction = ""; } else { $currentAction = $_REQUEST['flutter_action']; } switch ($currentAction) { // ------------ Write Panels case 'finish-create-custom-write-panel': include_once 'RCCWP_CustomWritePanel.php'; $default_theme_page = NULL; if ($_POST['radPostPage'] == 'page') { $default_theme_page = $_POST['page_template']; } $customWritePanelId = RCCWP_CustomWritePanel::Create($_POST['custom-write-panel-name'], $_POST['custom-write-panel-description'], $_POST['custom-write-panel-standard-fields'], $_POST['custom-write-panel-categories'], $_POST['custom-write-panel-order'], FALSE, true, $_POST['single'], $default_theme_page); wp_redirect(RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('view-custom-write-panel', $customWritePanelId)); break; case 'submit-edit-custom-write-panel': include_once 'RCCWP_CustomWritePanel.php'; $default_theme_page = NULL; if ($_POST['radPostPage'] == 'page') { $default_theme_page = $_POST['page_template']; } RCCWP_CustomWritePanel::Update($_POST['custom-write-panel-id'], $_POST['custom-write-panel-name'], $_POST['custom-write-panel-description'], $_POST['custom-write-panel-standard-fields'], $_POST['custom-write-panel-categories'], $_POST['custom-write-panel-order'], FALSE, true, $_POST['single'], $default_theme_page); RCCWP_CustomWritePanel::AssignToRole($_POST['custom-write-panel-id'], 'administrator'); break; case 'export-custom-write-panel': require_once 'RCCWP_CustomWritePanel.php'; $panelID = $_REQUEST['custom-write-panel-id']; $writePanel = RCCWP_CustomWritePanel::Get($panelID); $exportedFilename = $tmpPath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $writePanel->name . '.pnl'; RCCWP_CustomWritePanel::Export($panelID, $exportedFilename); // send file in header header('Content-type: binary'); header('Content-Disposition: attachment; filename="' . $writePanel->name . '.pnl"'); readfile($exportedFilename); unlink($exportedFilename); exit; break; case 'delete-custom-write-panel': include_once 'RCCWP_CustomWritePanel.php'; RCCWP_CustomWritePanel::Delete($_GET['custom-write-panel-id']); //wp_redirect('?page=' . urlencode(FLUTTER_PLUGIN_DIR . DIRECTORY_SEPARATOR . 'RCCWP_Menu.php')); break; // ------------ Modules // ------------ Groups // ------------ Modules // ------------ Groups case 'finish-create-custom-group': include_once 'RCCWP_CustomGroup.php'; $customGroupId = RCCWP_CustomGroup::Create($_POST['custom-write-panel-id'], $_POST['custom-group-name'], $_POST['custom-group-duplicate'], $_POST['custom-group-at_right']); break; case 'delete-custom-group': include_once 'RCCWP_CustomGroup.php'; $customGroup = RCCWP_CustomGroup::Get((int) $_REQUEST['custom-group-id']); RCCWP_CustomGroup::Delete($_GET['custom-group-id']); break; case 'submit-edit-custom-group': include_once 'RCCWP_CustomGroup.php'; RCCWP_CustomGroup::Update($_REQUEST['custom-group-id'], $_POST['custom-group-name'], $_POST['custom-group-duplicate'], $_POST['custom-group-at_right']); break; // ------------ Fields // ------------ Fields case 'copy-custom-field': include_once 'RCCWP_CustomField.php'; $fieldToCopy = RCCWP_CustomField::Get($_REQUEST['custom-field-id']); if (RCCWP_Processor::CheckFieldName($fieldToCopy->name, $_REQUEST['custom-write-panel-id'])) { $newURL = RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('create-custom-field') . '&custom-group-id=' . $_REQUEST['custom-group-id'] . '&err_msg=-1'; wp_redirect($newURL); exit; } RCCWP_CustomField::Create($_REQUEST['custom-group-id'], $fieldToCopy->name, $fieldToCopy->description, $fieldToCopy->display_order, $fieldToCopy->required_field, $fieldToCopy->type_id, $fieldToCopy->options, $fieldToCopy->default_value, $fieldToCopy->properties, $fieldToCopy->duplicate); case 'continue-create-custom-field': if (RCCWP_Processor::CheckFieldName($_POST['custom-field-name'], $_REQUEST['custom-write-panel-id'])) { $newURL = RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('create-custom-field') . '&custom-group-id=' . $_REQUEST['custom-group-id'] . '&err_msg=-1'; wp_redirect($newURL); exit; } break; case 'finish-create-custom-field': include_once 'RCCWP_CustomField.php'; if (RCCWP_Processor::CheckFieldName($_POST['custom-field-name'], $_REQUEST['custom-write-panel-id'])) { $newURL = RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('create-custom-field') . '&custom-group-id=' . $_REQUEST['custom-group-id'] . '&err_msg=-1'; wp_redirect($newURL); exit; } $current_field = RCCWP_CustomField::GetCustomFieldTypes((int) $_REQUEST['custom-field-type']); if ($current_field->has_properties) { $custom_field_properties = array(); if (in_array($current_field->name, array('Textbox', 'Listbox'))) { $custom_field_properties['size'] = $_POST['custom-field-size']; } else { if (in_array($current_field->name, array('Multiline Textbox'))) { $custom_field_properties['height'] = $_POST['custom-field-height']; $custom_field_properties['width'] = $_POST['custom-field-width']; } else { if (in_array($current_field->name, array('Date'))) { $custom_field_properties['format'] = $_POST['custom-field-date-format']; } else { if (in_array($current_field->name, array('Image'))) { $params = ''; if ($_POST['custom-field-photo-height'] != '' && is_numeric($_POST['custom-field-photo-height'])) { $params .= '&h=' . $_POST['custom-field-photo-height']; } if ($_POST['custom-field-photo-width'] != '' && is_numeric($_POST['custom-field-photo-width'])) { $params .= '&w=' . $_POST['custom-field-photo-width']; } if ($_POST['custom-field-custom-params'] != '') { $params .= '&' . $_POST['custom-field-custom-params']; } if ($params) { $custom_field_properties['params'] = $params; } } else { if (in_array($current_field->name, array('Date'))) { $custom_field_properties['format'] = $_POST['custom-field-date-format']; } else { if (in_array($current_field->name, array('Slider'))) { $custom_field_properties['max'] = $_POST['custom-field-slider-max']; $custom_field_properties['min'] = $_POST['custom-field-slider-min']; $custom_field_properties['step'] = $_POST['custom-field-slider-step']; } } } } } } } RCCWP_CustomField::Create($_POST['custom-group-id'], $_POST['custom-field-name'], $_POST['custom-field-description'], $_POST['custom-field-order'], $_POST['custom-field-required'], $_POST['custom-field-type'], $_POST['custom-field-options'], $_POST['custom-field-default-value'], $custom_field_properties, $_POST['custom-field-duplicate']); break; case 'submit-edit-custom-field': include_once 'RCCWP_CustomField.php'; $current_field_obj = RCCWP_CustomField::Get($_POST['custom-field-id']); if ($_POST['custom-field-name'] != $current_field_obj->name && RCCWP_Processor::CheckFieldName($_POST['custom-field-name'], $_REQUEST['custom-write-panel-id'])) { $newURL = RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('edit-custom-field') . '&custom-field-id=' . $_POST['custom-field-id'] . '&err_msg=-1'; wp_redirect($newURL); exit; } $current_field = RCCWP_CustomField::GetCustomFieldTypes((int) $_POST['custom-field-type']); if ($current_field->has_properties) { $custom_field_properties = array(); if (in_array($current_field->name, array('Textbox', 'Listbox'))) { $custom_field_properties['size'] = $_POST['custom-field-size']; } else { if (in_array($current_field->name, array('Multiline Textbox'))) { $custom_field_properties['height'] = $_POST['custom-field-height']; $custom_field_properties['width'] = $_POST['custom-field-width']; } else { if (in_array($current_field->name, array('Image'))) { $params = ''; if ($_POST['custom-field-photo-height'] != '' && is_numeric($_POST['custom-field-photo-height'])) { $params = '&h=' . $_POST['custom-field-photo-height']; } if ($_POST['custom-field-photo-width'] != '' && is_numeric($_POST['custom-field-photo-width'])) { $params .= '&w=' . $_POST['custom-field-photo-width']; } if ($_POST['custom-field-custom-params'] != '') { $params .= '&' . $_POST['custom-field-custom-params']; } if ($params) { $custom_field_properties['params'] = $params; } } else { if (in_array($current_field->name, array('Date'))) { $custom_field_properties['format'] = $_POST['custom-field-date-format']; } else { if (in_array($current_field->name, array('Slider'))) { $custom_field_properties['max'] = $_POST['custom-field-slider-max']; $custom_field_properties['min'] = $_POST['custom-field-slider-min']; $custom_field_properties['step'] = $_POST['custom-field-slider-step']; } } } } } } RCCWP_CustomField::Update($_POST['custom-field-id'], $_POST['custom-field-name'], $_POST['custom-field-description'], $_POST['custom-field-order'], $_POST['custom-field-required'], $_POST['custom-field-type'], $_POST['custom-field-options'], $_POST['custom-field-default-value'], $custom_field_properties, $_POST['custom-field-duplicate']); break; case 'delete-custom-field': include_once 'RCCWP_CustomField.php'; if (isset($_REQUEST['custom-group-id']) && !empty($_REQUEST['custom-group-id'])) { $customGroupId = (int) $_REQUEST['custom-group-id']; } $customGroup = RCCWP_CustomGroup::Get($customGroupId); RCCWP_CustomField::Delete($_REQUEST['custom-field-id']); break; case 'delete-theme-settings': include_once 'RCCWP_ThemeSettingsPage.php'; $settings = new RCCWP_ThemeSettingsPage(); $settings->remove_layout_setting(); break; case 'create-layout-setting': include_once 'RCCWP_ThemeSettingsPage.php'; if (!empty($_POST['variable_name'])) { RCCWP_ThemeSettingsPage::finish_create_layout_element(); break; } default: if (RCCWP_Application::InWritePostPanel()) { include_once 'RCCWP_Menu.php'; include_once 'RCCWP_WritePostPage.php'; $CUSTOM_WRITE_PANEL = RCCWP_Post::GetCustomWritePanel(); if (isset($CUSTOM_WRITE_PANEL) && $CUSTOM_WRITE_PANEL > 0) { ob_start(array('RCCWP_WritePostPage', 'ApplyCustomWritePanelAssignedCategories')); add_action('admin_head', array('RCCWP_WritePostPage', 'ApplyCustomWritePanelHeader')); // Allows fields to be added to right // commented to test add_action('submitpost_box', array('RCCWP_WritePostPage', 'CustomFieldCollectionInterfaceRight'), 5); // add_action('submitpage_box', array('RCCWP_WritePostPage', 'CustomFieldCollectionInterfaceRight'), 5); // commented to test add_action('add_meta_box', 'post', 'side', array('RCCWP_WritePostPage', 'CustomFieldCollectionInterfaceRight')); // Allows fields to be added to the post edit body add_action('simple_edit_form', array('RCCWP_WritePostPage', 'CustomFieldCollectionInterface'), 5); add_action('edit_form_advanced', array('RCCWP_WritePostPage', 'CustomFieldCollectionInterface'), 5); add_action('edit_page_form', array('RCCWP_WritePostPage', 'CustomFieldCollectionInterface'), 5); } else { if (!isset($_REQUEST['no-custom-write-panel']) && isset($_REQUEST['post'])) { include_once 'RCCWP_Options.php'; $promptEditingPost = RCCWP_Options::Get('prompt-editing-post'); if ($promptEditingPost == 1) { wp_redirect('?page=' . urlencode(FLUTTER_PLUGIN_DIR . DIRECTORY_SEPARATOR . 'RCCWP_Menu.php') . '&assign-custom-write-panel=' . (int) $_GET['post']); } } } } else { if (isset($_POST['finish-create-custom-write-module'])) { include_once 'RCCWP_CustomWriteModule.php'; $customWriteModuleId = RCCWP_CustomWriteModule::Create($_POST['custom-write-module-name'], $_POST['custom-write-module-description']); //RCCWP_CustomWritePanel::AssignToRole($customWritePanelId, 'administrator'); if ($customWriteModuleId == -1) { //$_POST['create-custom-write-module'] = 1; $modulesURL = '?page=' . 'FlutterManageModules' . '&view-modules=1&create-custom-write-module=1&err_msg=-1'; wp_redirect($modulesURL); } else { wp_redirect(RCCWP_ManagementPage::GetCustomWriteModuleEditUrl($customWriteModuleId)); } } else { if (isset($_POST['submit-edit-custom-write-module'])) { include_once 'RCCWP_CustomWriteModule.php'; $customWriteModuleId = RCCWP_CustomWriteModule::Update($_REQUEST['custom-write-module-id'], $_REQUEST['custom-write-module-name'], $_REQUEST['custom-write-module-description']); if ($customWriteModuleId == -1) { $customWriteModuleId = $_REQUEST['custom-write-module-id']; $modulesURL = '?page=' . 'FlutterManageModules' . "&edit-custom-write-module=1&view-custom-write-module={$customWriteModuleId}&custom-write-module-id={$customWriteModuleId}&err_msg=-1"; wp_redirect($modulesURL); } //RCCWP_CustomWritePanel::AssignToRole($_POST['custom-write-panel-id'], 'administrator'); } else { if (isset($_POST['update-custom-write-panel-options'])) { if ($_POST['uninstall-custom-write-panel'] == 'uninstall') { RCCWP_Application::Uninstall(); wp_redirect('options-general.php'); } else { include_once 'RCCWP_Options.php'; $options['hide-write-post'] = $_POST['hide-write-post']; $options['hide-write-page'] = $_POST['hide-write-page']; $options['hide-visual-editor'] = $_POST['hide-visual-editor']; $options['prompt-editing-post'] = $_POST['prompt-editing-post']; $options['assign-to-role'] = $_POST['assign-to-role']; $options['use-snipshot'] = $_POST['use-snipshot']; $options['enable-editnplace'] = $_POST['enable-editnplace']; $options['eip-highlight-color'] = $_POST['eip-highlight-color']; $options['enable-swfupload'] = $_POST['enable-swfupload']; $options['enable-browserupload'] = $_POST['enable-browserupload']; $options['default-custom-write-panel'] = $_POST['default-custom-write-panel']; $options['enable-HTMLPurifier'] = $_POST['enable-HTMLPurifier']; $options['tidy-level'] = $_POST['tidy-level']; $options['canvas_show_instructions'] = $_POST['canvas_show_instructions']; $options['canvas_show_zone_name'] = $_POST['canvas_show_zone_name']; $options['canvas_show'] = $_POST['canvas_show']; $options['ink_show'] = $_POST['ink_show']; RCCWP_Options::Update($options); } } else { if (isset($_REQUEST['create-module-duplicate'])) { include_once 'RCCWP_ModuleDuplicate.php'; $moduleID = $_REQUEST['custom-write-module-id']; RCCWP_ModuleDuplicate::Create($moduleID); wp_redirect(RCCWP_ManagementPage::GetCustomWriteModuleEditUrl($moduleID)); } else { if (isset($_POST['submit-edit-module-duplicate'])) { include_once 'RCCWP_ModuleDuplicate.php'; $moduleID = $_REQUEST['custom-write-module-id']; RCCWP_ModuleDuplicate::Update($_REQUEST['module-duplicate-id'], $_REQUEST['module-duplicate-name']); wp_redirect('?page=' . urlencode(FLUTTER_PLUGIN_DIR . DIRECTORY_SEPARATOR . 'RCCWP_Menu.php') . '&view-custom-write-module=' . $moduleID . '&custom-write-module-id=' . $moduleID); } else { if (isset($_REQUEST['delete-module-duplicate'])) { include_once 'RCCWP_ModuleDuplicate.php'; $moduleID = $_REQUEST['custom-write-module-id']; RCCWP_ModuleDuplicate::Delete($_REQUEST['module-duplicate-id']); wp_redirect(RCCWP_ManagementPage::GetCustomWriteModuleEditUrl($moduleID)); } else { if (isset($_POST['delete-custom-write-module'])) { include_once 'RCCWP_CustomWriteModule.php'; $moduleID = $_REQUEST['custom-write-module-id']; RCCWP_CustomWriteModule::Delete($moduleID); wp_redirect('?page=' . urlencode(FLUTTER_PLUGIN_DIR . DIRECTORY_SEPARATOR . 'RCCWP_Menu.php') . '&view-modules=1'); } } } } } } } } } }
/** * Import a module given the zip file path. Importing a module means inserting it in * the database and copying its folder to modules folder. If a module with the same * name already exists, the function will append a number to the module name. You must * have either php ZipArchive extension or unzip program installed. * * @param string $zipFilePath the full path of the zip file * @param string $moduleName the module name, if this value if false, the function will * use the zip filename as the module name. The default value is false * @return the module id, or false in case of error. */ function Import($zipFilePath, $moduleName = false) { include_once 'RCCWP_CustomGroup.php'; include_once 'RCCWP_CustomField.php'; include_once 'RCCWP_CustomWritePanel.php'; include_once 'RCCWP_Application.php'; include_once 'RCCWP_CustomWritePanel.php'; global $flutter_domain; if (!strpos($zipFilePath, ".zip")) { return false; } if (!$moduleName) { //use zip filename $moduleName = basename($zipFilePath, ".zip"); } if ($moduleName == '') { return false; } // Append a number if the module already exists, $i = 1; $newModuleName = $moduleName; while (file_exists(FLUTTER_MODULES_DIR . $newModuleName)) { $newModuleName = $moduleName . "_" . $i++; } $moduleName = $newModuleName; mkdir(FLUTTER_MODULES_DIR . $moduleName); chmod(FLUTTER_MODULES_DIR . $moduleName, 0777); $destPath = FLUTTER_MODULES_DIR . $moduleName . DIRECTORY_SEPARATOR; if (class_exists('ZipArchive')) { $zip = new ZipArchive(); // open archive if ($zip->open($zipFilePath) !== TRUE) { die(__('Could not open archive', $flutter_domain)); } // extract contents to destination directory $zip->extractTo($destPath); // close archive $zip->close(); } else { if (RCCWP_Application::CheckDecompressionProgramUnzip()) { $command = "unzip {$zipFilePath} -d " . $destPath; } else { die(__('Cannot find unzip program!', $flutter_domain)); } exec($command, $out, $err); } $moduleInfo_imported_data = unserialize(file_get_contents($destPath . 'module_info.exp')); //Import module $moduleID = RCCWP_CustomWriteModule::Create($moduleName, $moduleInfo_imported_data['moduleinfo']->description, false); //Import any panels if ($handle = @opendir($destPath)) { while (false !== ($file = readdir($handle))) { if (substr($file, 0, 1) == "_") { $panelName = basename(substr($file, 1), ".pnl"); RCCWP_CustomWritePanel::Import($destPath . $file, $panelName); } } } //Create Duplicates foreach ($moduleInfo_imported_data['duplicates'] as $moduleDuplicate) { RCCWP_ModuleDuplicate::Create($moduleID, $moduleDuplicate->duplicate_name); } return $moduleID; }
/** * Return the name of the write panel giving the post_id * * @param integer $post_id * @return string */ function GetWritePanelName($post_id) { global $wpdb; if ($the_post = wp_is_post_revision($post_id)) { $post_id = $the_post; } //getting the panel id $sql = $wpdb->prepare("SELECT meta_value FROM {$wpdb->postmeta} WHERE post_id = %s AND meta_key = %s", array($post_id, '_mf_write_panel_id')); $panel_id = $wpdb->get_var($sql); if (empty($panel_id)) { return false; } //Getting the write panel name using the id $properties = RCCWP_CustomWritePanel::Get($panel_id); return $properties->name; }
$command = "zip -r {$zipFile} ./*"; } else { _e('Cannot find zip program', $flutter_domain); return; } exec($command, $out, $err); // send file in header header('Content-type: binary'); header('Content-Disposition: attachment; filename="' . $module->name . '.zip"'); readfile($zipFile); // Remove file and directory unlink($zipFile); advancedRmdir($moduleTmpPath); exit; } $customWritePanels = RCCWP_CustomWritePanel::GetCustomWritePanels(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-basic11.dtd" > <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?> > <head> <title><?php _e('Export Module', $flutter_domain); ?> </title> <link rel='stylesheet' href='<?php echo get_bloginfo('wpurl'); ?>
function Main() { global $flutter_domain; $customWritePanels = RCCWP_CustomWritePanel::GetCustomWritePanels(); $customWritePanelOptions = RCCWP_Options::Get(); if (function_exists('is_site_admin') && !is_site_admin()) { update_option("Flutter_notTopAdmin", true); } else { update_option("Flutter_notTopAdmin", false); } ?> <div class="wrap"> <h2><?php _e('Flutter Options', $flutter_domain); ?> </h2> <form action="" method="post" id="custom-write-panel-options-form"> <h3><?php _e('Write Panel Options', $flutter_domain); ?> </h3> <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6"> <tr valign="top"> <th scope="row"><?php _e('Hide Post Panel', $flutter_domain); ?> </th> <td> <label for="hide-write-post"> <input name="hide-write-post" id="hide-write-post" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['hide-write-post']); ?> type="checkbox"> <?php _e('Hide Wordpress Post panel', $flutter_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Hide Page Panel', $flutter_domain); ?> </th> <td> <label for="hide-write-page"> <input name="hide-write-page" id="hide-write-page" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['hide-write-page']); ?> type="checkbox"> <?php _e('Hide Wordpress Page panel', $flutter_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Hide Visual Editor (multiline)', $flutter_domain); ?> </th> <td> <label for="hide-visual-editor"> <input name="hide-visual-editor" id="hide-visual-editor" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['hide-visual-editor']); ?> type="checkbox"> <?php _e('Hide Visual Editor (multiline)', $flutter_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Editing Prompt', $flutter_domain); ?> </th> <td> <label for="prompt-editing-post"> <input name="prompt-editing-post" id="prompt-editing-post" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['prompt-editing-post']); ?> type="checkbox"> <?php _e('Prompt when editing a Post not created with Custom Write Panel.', $flutter_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Assign to Role', $flutter_domain); ?> </th> <td> <label for="assign-to-role"> <input name="assign-to-role" id="assign-to-role" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['assign-to-role']); ?> type="checkbox"> <?php _e('This option will create a capability for each write panel such that the write panel is accessible by the Administrator only by default. You can assign the write panel to other roles using ', $flutter_domain); ?> </label><a target="_blank" href="http://sourceforge.net/projects/role-manager"> Role Manager Plugin</a>. </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Default Panel', $flutter_domain); ?> </th> <td> <label for="default-custom-write-panel"> <select name="default-custom-write-panel" id="default-custom-write-panel"> <option value=""><?php _e('(None)', $flutter_domain); ?> </option> <?php $defaultCustomWritePanel = $customWritePanelOptions['default-custom-write-panel']; foreach ($customWritePanels as $panel) { $selected = $panel->id == $defaultCustomWritePanel ? 'selected="selected"' : ''; ?> <option value="<?php echo $panel->id; ?> " <?php echo $selected; ?> ><?php echo $panel->name; ?> </option> <?php } ?> </select> </label> </td> </tr> </table> <br /> <h3><?php _e('Layout Options', $flutter_domain); ?> </h3> <p><?php _e('Allows you to add modules to the blog.', $flutter_domain); ?> </p> <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6"> <tr valign="top"> <th scope="row"><?php _e('Layout Tab', $flutter_domain); ?> </th> <td> <label for="canvas_show"> <input name="canvas_show" id="canvas_show" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['canvas_show']); ?> type="checkbox"> <?php _e('Show Layout tab.', $flutter_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Style Tab', $flutter_domain); ?> </th> <td> <label for="ink_show"> <input name="ink_show" id="ink_show" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['ink_show']); ?> type="checkbox"> <?php _e('Show Style tab.', $flutter_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Layout Instructions', $flutter_domain); ?> </th> <td> <label for="canvas_show_instructions"> <input name="canvas_show_instructions" id="canvas_show_instructions" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['canvas_show_instructions']); ?> type="checkbox"> <?php _e('Display the instructions on the Layout page.', $flutter_domain); ?> </label> </td> </tr> <tr valign="top"> <th scope="row"><?php _e('Zones Names', $flutter_domain); ?> </th> <td> <label for="canvas_show_zone_name"> <input name="canvas_show_zone_name" id="canvas_show_zone_name" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['canvas_show_zone_name']); ?> type="checkbox"> <?php _e('Show zones names on droppable zones.', $flutter_domain); ?> </label> </td> </tr> </table> <h3><?php _e('Other Options', $flutter_domain); ?> </h3> <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6"> <!-- <tr valign="top"> <th scope="row"><?php _e('Snipshot', $flutter_domain); ?> </th> <td> <label for="use-snipshot"> <input name="use-snipshot" id="use-snipshot" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['use-snipshot']); ?> type="checkbox"> <?php _e('Use Snipshot services instead of cropper to edit photos.', $flutter_domain); ?> </label> </td> </tr> --> <tr valign="top"> <th scope="row"><?php _e('Edit-n-place', $flutter_domain); ?> </th> <td> <label for="enable-editnplace"> <input name="enable-editnplace" id="enable-editnplace" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['enable-editnplace']); ?> type="checkbox"> <?php _e('Edit posts instantly from the post page.', $flutter_domain); ?> </label> </td> </tr> <script type='text/javascript' src='<?php echo FLUTTER_URI; ?> js/sevencolorpicker.js'></script> <script type="text/javascript"> jQuery('document').ready(function(){ jQuery('#eip-highlight-color').SevenColorPicker(); }); </script> <tr> <th scope="row"><?php _e('EIP highlight color', $flutter_domain); ?> </th> <td> <label for="eip-highlight-color"> <input name="eip-highlight-color" id="eip-highlight-color" value="<?php echo $customWritePanelOptions['eip-highlight-color']; ?> " > <?php _e('Use color to highlight areas EIP', $flutter_domain); ?> </label> </td> </tr> <tr> <th scope="row"><?php _e('Browser uploader', $flutter_domain); ?> </th> <td> <label for="enable-browserupload"> <input name="enable-browserupload" id="enable-browserupload" value="1" <?php echo RCCWP_OptionsPage::GetCheckboxState($customWritePanelOptions['enable-browserupload']); ?> type="checkbox"> <?php _e('Use Browser uploader instead Flash Uploader', $flutter_domain); ?> </label> </td> </tr> </table> <br /> <h3><?php _e('Uninstall Flutter', $flutter_domain); ?> </h3> <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6"> <tr valign="top"> <th scope="row"><?php _e('Uninstall Flutter', $flutter_domain); ?> </th> <td> <input type="text" id="uninstall-custom-write-panel" name="uninstall-custom-write-panel" size="25" /><br /> <label for="uninstall-custom-write-panel"> <?php _e('Type <strong>uninstall</strong> into the textbox, click <strong>Update Options</strong>, and all the tables created by this plugin will be deleted', $flutter_domain); ?> </label> </td> </tr> </table> <p class="submit" ><input name="update-custom-write-panel-options" type="submit" value="<?php _e('Update Options', $flutter_domain); ?> " /></p> </form> </div> <?php }
function Main() { require_once 'RC_Format.php'; global $CUSTOM_WRITE_PANEL; wp_enqueue_script('jquery-ui-sortable'); if (isset($_POST['edit-with-no-custom-write-panel'])) { $type = RCCWP_Post::GetCustomWritePanel(); if (is_object($type)) { $ptype = $type->type; } else { $ptype = strpos($_SERVER['REQUEST_URI'], 'page.php') !== FALSE ? 'page' : 'post'; } wp_redirect($ptype . '.php?action=edit&post=' . $_POST['post-id'] . '&no-custom-write-panel'); } else { if (isset($_POST['edit-with-custom-write-panel']) && isset($_POST['custom-write-panel-id']) && (int) $_POST['custom-write-panel-id'] > 0) { $type = RCCWP_Post::GetCustomWritePanel(); if (is_object($type)) { $ptype = $type->type; } else { $ptype = strpos($_SERVER['REQUEST_URI'], 'page.php') !== FALSE ? 'page' : 'post'; } wp_redirect($type->type . '.php?action=edit&post=' . $_POST['post-id'] . '&custom-write-panel-id=' . $_POST['custom-write-panel-id']); } } if (empty($_REQUEST['mf_action'])) { $currentAction = ""; } else { $currentAction = $_REQUEST['mf_action']; } switch ($currentAction) { // ------------ Write Panels case 'finish-create-custom-write-panel': include_once 'RCCWP_CustomWritePanel.php'; $default_theme_page = NULL; if ($_POST['radPostPage'] == 'page') { $default_theme_page = $_POST['page_template']; } $customWritePanelId = RCCWP_CustomWritePanel::Create($_POST['custom-write-panel-name'], $_POST['custom-write-panel-description'], $_POST['custom-write-panel-standard-fields'], $_POST['custom-write-panel-categories'], $_POST['custom-write-panel-order'], FALSE, true, $_POST['single'], $default_theme_page); wp_redirect(RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('view-custom-write-panel', $customWritePanelId)); break; case 'submit-edit-custom-write-panel': include_once 'RCCWP_CustomWritePanel.php'; $default_theme_page = NULL; if ($_POST['radPostPage'] == 'page') { $default_theme_page = $_POST['page_template']; } RCCWP_CustomWritePanel::Update($_POST['custom-write-panel-id'], $_POST['custom-write-panel-name'], $_POST['custom-write-panel-description'], $_POST['custom-write-panel-standard-fields'], $_POST['custom-write-panel-categories'], $_POST['custom-write-panel-order'], FALSE, true, $_POST['single'], $default_theme_page); RCCWP_CustomWritePanel::AssignToRole($_POST['custom-write-panel-id'], 'administrator'); break; case 'export-custom-write-panel': require_once 'RCCWP_CustomWritePanel.php'; $panelID = $_REQUEST['custom-write-panel-id']; $writePanel = RCCWP_CustomWritePanel::Get($panelID); $exportedFilename = $tmpPath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $writePanel->name . '.pnl'; RCCWP_CustomWritePanel::Export($panelID, $exportedFilename); // send file in header header('Content-type: binary'); header('Content-Disposition: attachment; filename="' . $writePanel->name . '.pnl"'); readfile($exportedFilename); unlink($exportedFilename); exit; break; case 'delete-custom-write-panel': include_once 'RCCWP_CustomWritePanel.php'; RCCWP_CustomWritePanel::Delete($_GET['custom-write-panel-id']); break; // ------------ Groups // ------------ Groups case 'finish-create-custom-group': include_once 'RCCWP_CustomGroup.php'; $customGroupId = RCCWP_CustomGroup::Create($_POST['custom-write-panel-id'], $_POST['custom-group-name'], $_POST['custom-group-duplicate'], $_POST['custom-group-at_right']); break; case 'delete-custom-group': include_once 'RCCWP_CustomGroup.php'; $customGroup = RCCWP_CustomGroup::Get((int) $_REQUEST['custom-group-id']); RCCWP_CustomGroup::Delete($_GET['custom-group-id']); break; case 'submit-edit-custom-group': include_once 'RCCWP_CustomGroup.php'; RCCWP_CustomGroup::Update($_REQUEST['custom-group-id'], $_POST['custom-group-name'], $_POST['custom-group-duplicate'], $_POST['custom-group-at_right']); break; // ------------ Fields // ------------ Fields case 'copy-custom-field': include_once 'RCCWP_CustomField.php'; $fieldToCopy = RCCWP_CustomField::Get($_REQUEST['custom-field-id']); if (RCCWP_Processor::CheckFieldName($fieldToCopy->name, $_REQUEST['custom-write-panel-id'])) { $newURL = RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('create-custom-field') . '&custom-group-id=' . $_REQUEST['custom-group-id'] . '&err_msg=-1'; wp_redirect($newURL); exit; } RCCWP_CustomField::Create($_REQUEST['custom-group-id'], $fieldToCopy->name, $fieldToCopy->description, $fieldToCopy->display_order, $fieldToCopy->required_field, $fieldToCopy->type_id, $fieldToCopy->options, $fieldToCopy->default_value, $fieldToCopy->properties, $fieldToCopy->duplicate, $fieldToCopy->helptext); case 'continue-create-custom-field': if (RCCWP_Processor::CheckFieldName($_POST['custom-field-name'], $_REQUEST['custom-write-panel-id'])) { $newURL = RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('create-custom-field') . '&custom-group-id=' . $_REQUEST['custom-group-id'] . '&err_msg=-1'; wp_redirect($newURL); exit; } break; case 'finish-create-custom-field': include_once 'RCCWP_CustomField.php'; if (RCCWP_Processor::CheckFieldName($_POST['custom-field-name'], $_REQUEST['custom-write-panel-id'])) { $newURL = RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('create-custom-field') . '&custom-group-id=' . $_REQUEST['custom-group-id'] . '&err_msg=-1'; wp_redirect($newURL); exit; } $current_field = RCCWP_CustomField::GetCustomFieldTypes((int) $_REQUEST['custom-field-type']); if ($current_field->has_properties) { $custom_field_properties = array(); if (in_array($current_field->name, array('Textbox', 'Listbox'))) { $custom_field_properties['size'] = $_POST['custom-field-size']; } else { if (in_array($current_field->name, array('Multiline Textbox'))) { $custom_field_properties['height'] = $_POST['custom-field-height']; $custom_field_properties['width'] = $_POST['custom-field-width']; } else { if (in_array($current_field->name, array('Date'))) { $custom_field_properties['format'] = $_POST['custom-field-date-format']; } else { if (in_array($current_field->name, array('Image'))) { $params = ''; if ($_POST['custom-field-photo-height'] != '' && is_numeric($_POST['custom-field-photo-height'])) { $params .= '&h=' . $_POST['custom-field-photo-height']; } if ($_POST['custom-field-photo-width'] != '' && is_numeric($_POST['custom-field-photo-width'])) { $params .= '&w=' . $_POST['custom-field-photo-width']; } if ($_POST['custom-field-custom-params'] != '') { $params .= '&' . $_POST['custom-field-custom-params']; } if ($params) { $custom_field_properties['params'] = $params; } } else { if (in_array($current_field->name, array('Date'))) { $custom_field_properties['format'] = $_POST['custom-field-date-format']; } else { if (in_array($current_field->name, array('Slider'))) { $custom_field_properties['max'] = $_POST['custom-field-slider-max']; $custom_field_properties['min'] = $_POST['custom-field-slider-min']; $custom_field_properties['step'] = $_POST['custom-field-slider-step']; } else { if (in_array($current_field->name, array('Related Type'))) { $custom_field_properties['panel_id'] = $_POST['custom-field-related-type-panel-id']; } } } } } } } } RCCWP_CustomField::Create($_POST['custom-group-id'], $_POST['custom-field-name'], $_POST['custom-field-description'], $_POST['custom-field-order'], $_POST['custom-field-required'], $_POST['custom-field-type'], $_POST['custom-field-options'], $_POST['custom-field-default-value'], $custom_field_properties, $_POST['custom-field-duplicate'], $_POST['custom-field-helptext']); break; case 'submit-edit-custom-field': include_once 'RCCWP_CustomField.php'; $current_field_obj = RCCWP_CustomField::Get($_POST['custom-field-id']); if ($_POST['custom-field-name'] != $current_field_obj->name && RCCWP_Processor::CheckFieldName($_POST['custom-field-name'], $_REQUEST['custom-write-panel-id'])) { $newURL = RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('edit-custom-field') . '&custom-field-id=' . $_POST['custom-field-id'] . '&err_msg=-1'; wp_redirect($newURL); exit; } $current_field = RCCWP_CustomField::GetCustomFieldTypes((int) $_POST['custom-field-type']); if ($current_field->has_properties) { $custom_field_properties = array(); if (in_array($current_field->name, array('Textbox', 'Listbox'))) { $custom_field_properties['size'] = $_POST['custom-field-size']; } else { if (in_array($current_field->name, array('Multiline Textbox'))) { $custom_field_properties['height'] = $_POST['custom-field-height']; $custom_field_properties['width'] = $_POST['custom-field-width']; } else { if (in_array($current_field->name, array('Image'))) { $params = ''; if ($_POST['custom-field-photo-height'] != '' && is_numeric($_POST['custom-field-photo-height'])) { $params = '&h=' . $_POST['custom-field-photo-height']; } if ($_POST['custom-field-photo-width'] != '' && is_numeric($_POST['custom-field-photo-width'])) { $params .= '&w=' . $_POST['custom-field-photo-width']; } if ($_POST['custom-field-custom-params'] != '') { $params .= '&' . $_POST['custom-field-custom-params']; } if ($params) { $custom_field_properties['params'] = $params; } } else { if (in_array($current_field->name, array('Date'))) { $custom_field_properties['format'] = $_POST['custom-field-date-format']; } else { if (in_array($current_field->name, array('Slider'))) { $custom_field_properties['max'] = $_POST['custom-field-slider-max']; $custom_field_properties['min'] = $_POST['custom-field-slider-min']; $custom_field_properties['step'] = $_POST['custom-field-slider-step']; } else { if (in_array($current_field->name, array('Related Type'))) { $custom_field_properties['panel_id'] = $_POST['custom-field-related-type-panel-id']; } } } } } } } RCCWP_CustomField::Update($_POST['custom-field-id'], $_POST['custom-field-name'], $_POST['custom-field-description'], $_POST['custom-field-order'], $_POST['custom-field-required'], $_POST['custom-field-type'], $_POST['custom-field-options'], $_POST['custom-field-default-value'], $custom_field_properties, $_POST['custom-field-duplicate'], $_POST['custom-field-helptext']); break; case 'delete-custom-field': include_once 'RCCWP_CustomField.php'; if (isset($_REQUEST['custom-group-id']) && !empty($_REQUEST['custom-group-id'])) { $customGroupId = (int) $_REQUEST['custom-group-id']; } $customGroup = RCCWP_CustomGroup::Get($customGroupId); RCCWP_CustomField::Delete($_REQUEST['custom-field-id']); break; default: if (RCCWP_Application::InWritePostPanel()) { include_once 'RCCWP_Menu.php'; include_once 'RCCWP_WritePostPage.php'; $CUSTOM_WRITE_PANEL = RCCWP_Post::GetCustomWritePanel(); if (isset($CUSTOM_WRITE_PANEL) && $CUSTOM_WRITE_PANEL > 0) { ob_start(array('RCCWP_WritePostPage', 'ApplyCustomWritePanelAssignedCategories')); add_action('admin_head', array('RCCWP_WritePostPage', 'CustomFieldsCSS')); //adding javascripts files for the custom fields add_action('admin_print_scripts', array('RCCWP_WritePostPage', 'CustomFieldsJavascript')); add_action('admin_head', array('RCCWP_WritePostPage', 'ApplyCustomWritePanelHeader')); add_action('admin_menu', array('RCCWP_WritePostPage', 'CustomFieldCollectionInterface')); } else { if (!isset($_REQUEST['no-custom-write-panel']) && isset($_REQUEST['post'])) { include_once 'RCCWP_Options.php'; $promptEditingPost = RCCWP_Options::Get('prompt-editing-post'); if ($promptEditingPost == 1) { wp_redirect('?page=' . urlencode(MF_PLUGIN_DIR . DIRECTORY_SEPARATOR . 'RCCWP_Menu.php') . '&assign-custom-write-panel=' . (int) $_GET['post']); } } } } else { if (isset($_POST['update-custom-write-panel-options'])) { if ($_POST['uninstall-custom-write-panel'] == 'uninstall') { RCCWP_Application::Uninstall(); wp_redirect('options-general.php'); } else { include_once 'RCCWP_Options.php'; $options['hide-write-post'] = $_POST['hide-write-post']; $options['hide-write-page'] = $_POST['hide-write-page']; $options['hide-visual-editor'] = $_POST['hide-visual-editor']; $options['prompt-editing-post'] = $_POST['prompt-editing-post']; $options['assign-to-role'] = $_POST['assign-to-role']; $options['use-snipshot'] = $_POST['use-snipshot']; $options['enable-editnplace'] = $_POST['enable-editnplace']; $options['eip-highlight-color'] = $_POST['eip-highlight-color']; $options['enable-swfupload'] = $_POST['enable-swfupload']; $options['enable-browserupload'] = $_POST['enable-browserupload']; $options['default-custom-write-panel'] = $_POST['default-custom-write-panel']; $options['enable-HTMLPurifier'] = $_POST['enable-HTMLPurifier']; $options['tidy-level'] = $_POST['tidy-level']; $options['canvas_show_instructions'] = $_POST['canvas_show_instructions']; $options['canvas_show_zone_name'] = $_POST['canvas_show_zone_name']; $options['canvas_show'] = $_POST['canvas_show']; $options['ink_show'] = $_POST['ink_show']; $options['hide-non-standart-content'] = $_POST['hide-non-standart-content']; $options['condense-menu'] = $_POST['condense-menu']; RCCWP_Options::Update($options); $EnP = RCCWP_Application::create_EditnPlace_css(TRUE); } } } } }
/** * Get a custom write panel by reading $_REQUEST['custom-write-panel-id'] or the * To see whether $_GET['post'] has a custom write panel associated to it. * * @return Custom Write Panel as an object, returns null if there is no write panels. */ function GetCustomWritePanel() { if (isset($_GET['post'])) { $customWritePanelId = get_post_meta((int) $_GET['post'], RC_CWP_POST_WRITE_PANEL_ID_META_KEY, true); if (empty($customWritePanelId)) { $customWritePanelId = (int) $_REQUEST['custom-write-panel-id']; } } else { if (isset($_REQUEST['custom-write-panel-id'])) { $customWritePanelId = (int) $_REQUEST['custom-write-panel-id']; } } if (isset($customWritePanelId)) { include_once 'RCCWP_Application.php'; $customWritePanel = RCCWP_CustomWritePanel::Get($customWritePanelId); } return $customWritePanel; }