Get a list of the custom fields of a group
public static GetCustomFields ( integer $customGroupId ) : an | ||
$customGroupId | integer | the group id |
return | an | array of objects containing information about fields. Each object contains 3 objects: properties, options and default_value |
/** * Delete a group given id * * @param integer $customGroupId */ public static function Delete($customGroupId = null) { include_once 'RCCWP_CustomField.php'; if (isset($customGroupId)) { global $wpdb; $customFields = RCCWP_CustomGroup::GetCustomFields($customGroupId); foreach ($customFields as $field) { RCCWP_CustomField::Delete($field->id); } $wpdb->delete(MF_TABLE_PANEL_GROUPS, array('id' => $customGroupId), array('%d')); } }
/** * Delete a group given id * * @param integer $customGroupId */ function Delete($customGroupId = null) { include_once 'RCCWP_CustomField.php'; if (isset($customGroupId)) { global $wpdb; $customFields = RCCWP_CustomGroup::GetCustomFields($customGroupId); foreach ($customFields as $field) { RCCWP_CustomField::Delete($field->id); } $sql = sprintf("DELETE FROM " . RC_CWP_TABLE_PANEL_GROUPS . " WHERE id = %d", $customGroupId); $wpdb->query($sql); } }
function DisplayGroupFields($customGroupId, $intended = false) { global $mf_domain; $custom_fields = RCCWP_CustomGroup::GetCustomFields($customGroupId); foreach ($custom_fields as $field) { ?> <tr> <td><a href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('edit-custom-field') . "&custom-field-id={$field->id}"; ?> " ><?php if ($intended) { ?> <img align="top" src="<?php echo MF_URI; ?> images/arrow_right.gif" alt=""/> <?php } echo $field->description; ?> </a></td> <td><?php echo $field->type; ?> </td> <td><a onclick="return confirmBeforeDelete();" href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('delete-custom-field') . "&custom-field-id={$field->id}"; ?> " >X <?php _e('Delete', $mf_domain); ?> </a></td> </tr> <?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) { 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); $writePanel->parent_page = RCCWP_CustomWritePanel::GetParentPage($writePanel->name); $assignedCategories = RCCWP_CustomWritePanel::GetAssignedCategories($panelID); foreach ($assignedCategories as $assignedCategory) { $writePanel->assignedCategories[] = $assignedCategory->cat_id; } $moduleGroups = RCCWP_CustomWritePanel::GetCustomGroups($panelID); foreach ($moduleGroups as $moduleGroup) { $fields = RCCWP_CustomGroup::GetCustomFields($moduleGroup->id); foreach ($fields as $field) { if ($field->type == "Related Type") { $tmp = RCCWP_CustomWritePanel::Get($field->properties["panel_id"]); $field->properties["panel_name"] = $tmp->name; unset($field->properties["panel_id"]); } } $groupFields[$moduleGroup->name]->fields = $fields; $groupFields[$moduleGroup->name]->duplicate = $moduleGroup->duplicate; $groupFields[$moduleGroup->name]->at_right = $moduleGroup->at_right; } $exported_data['panel'] = $writePanel; $exported_data['fields'] = $groupFields; return serialize($exported_data); }
/** * 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_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); $writePanel->parent_page = RCCWP_CustomWritePanel::GetParentPage($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); }
/** * * @param object $customGroup * @param integer $groupCounter * @param boolean $fromAjax * */ function GroupDuplicate($customGroup, $groupCounter, $order, $fromAjax = true) { global $mf_domain; //getting the custom fields $customFields = RCCWP_CustomGroup::GetCustomFields($customGroup->id); //if don't have fields then finish if (count($customFields) == 0) { return; } require_once "RC_Format.php"; if ($customGroup->duplicate != 0) { $add_class_rep = "mf_duplicate_group"; } else { $add_class_rep = ""; } ?> <div class="magicfield_group <?php echo $add_class_rep; ?> " id="freshpostdiv_group_<?php echo $customGroup->id . '_' . $groupCounter; ?> "> <div> <div class="inside"> <?php foreach ($customFields as $field) { $customFieldName = RC_Format::GetInputName(attribute_escape($field->name)); $customFieldTitle = attribute_escape($field->description); $groupId = $customGroup->id; $inputName = $field->id . "_" . $groupCounter . "_1_" . $groupId . "_" . $customFieldName; if (isset($_REQUEST['post'])) { $fc = RCCWP_CustomField::GetFieldDuplicates($_REQUEST['post'], $field->name, $groupCounter); $fields_order = RCCWP_CustomField::GetFieldsOrder($_REQUEST['post'], $field->name, $groupCounter); foreach ($fields_order as $element) { RCCWP_WritePostPage::CustomFieldInterface($field->id, $groupCounter, $element, $customGroup->id); } } else { RCCWP_WritePostPage::CustomFieldInterface($field->id, $groupCounter, 1, $customGroup->id); $fc = 1; } if (!empty($fields_order)) { $tmp = $fields_order; sort($tmp); $top = $tmp[count($tmp) - 1]; } else { $top = 1; } ?> <span style="display:none" id="<?php echo "c" . $inputName . "Duplicate"; ?> "> <input type="text" name="c<?php echo $inputName; ?> Counter" id="c<?php echo $inputName; ?> Counter" value='<?php echo $top; ?> ' /> </span> <?php } ?> <br /> <?php if ($customGroup->duplicate != 0) { ?> <div class="mf_toolbox"> <span class="hndle sortable_mf row_mf"> <img title="Order" src="<?php echo MF_URI; ?> /images/move.png"/> </span> <span class="mf_counter" id="counter_<?php echo $customGroup->id; ?> _<?php echo $groupCounter; ?> "> (<?php echo $order; ?> ) </span> <span class="add_mf"> <?php if ($groupCounter != 1) { ?> <a class ="delete_duplicate_button" href="javascript:void(0);" id="delete_duplicate-freshpostdiv_group_<?php echo $customGroup->id . '_' . $groupCounter; ?> "> <img class="duplicate_image" src="<?php echo MF_URI; ?> images/delete.png" alt="<?php _e('Remove field duplicate', $mf_domain); ?> "/><?php _e('Remove Group', $mf_domain); ?> </a> <?php } else { ?> <a id="add_duplicate_<?php echo $customGroup->id . "Duplicate" . "_" . $customGroup->id . "_" . $order; ?> " class="duplicate_button" href="javascript:void(0);"> <img class="duplicate_image" src="<?php echo MF_URI; ?> images/duplicate.png" alt="<?php _e('Add group duplicate', $mf_domain); ?> " title="Duplicate Field"/> </a> <?php } ?> </span> <br style="height:2px"/> </div> <?php } ?> </div> </div> <input type="hidden" name="order_<?php echo $customGroup->id; ?> _<?php echo $groupCounter; ?> " id="order_<?php echo $customGroup->id; ?> _<?php echo $groupCounter; ?> " value="<?php echo $order; ?> " /> </div> <?php }
/** * * @param object $customGroup * @param integer $groupCounter * @param boolean $fromAjax * */ public static function GroupDuplicate($customGroup, $groupCounter, $order, $fromAjax = true) { global $mf_domain; global $CUSTOM_WRITE_PANEL; $ex_class = $customGroup->expanded ? "mf-group-expanded" : ''; if ($customGroup->name == "__default") { // for the default group (top level), check the expand flag on the WRITE PANEL instead $ex_class = $CUSTOM_WRITE_PANEL->expanded ? "mf-group-expanded" : ''; } $mf_post_id = apply_filters('mf_source_post_data', @$_REQUEST['post']); //getting the custom fields $customFields = RCCWP_CustomGroup::GetCustomFields($customGroup->id); //if don't have fields then finish if (count($customFields) == 0) { return; } require_once "RC_Format.php"; if ($customGroup->duplicate != 0) { $add_class_rep = "mf_duplicate_group"; } else { $add_class_rep = ""; } ?> <div class="magicfield_group <?php echo $add_class_rep; ?> <?php echo $ex_class; ?> " id="freshpostdiv_group_<?php echo $customGroup->id . '_' . $groupCounter; ?> "> <a id="collapse_<?php echo $customGroup->id . "Duplicate" . "_" . $customGroup->id . "_" . $order; ?> " class="collapse_button" href="javascript:void(0);">Collapse</a> <div class="mf-group-loading"><?php _e('Loading Data…', $mf_domain); ?> </div> <div> <div class="inside"> <div class="mf-fields"> <?php foreach ($customFields as $field) { $customFieldName = $field->name; $customFieldTitle = esc_attr($field->description); $groupId = $customGroup->id; $inputName = $field->id . "_" . $groupCounter . "_1_" . $groupId . "_" . $customFieldName; if (isset($mf_post_id)) { $fc = RCCWP_CustomField::GetFieldDuplicates($mf_post_id, $field->name, $groupCounter); $fields_order = RCCWP_CustomField::GetFieldsOrder($mf_post_id, $field->name, $groupCounter); foreach ($fields_order as $element) { RCCWP_WritePostPage::CustomFieldInterface($field->id, $groupCounter, $element, $customGroup->id); } } else { RCCWP_WritePostPage::CustomFieldInterface($field->id, $groupCounter, 1, $customGroup->id); $fc = 1; } if (!empty($fields_order)) { $tmp = $fields_order; sort($tmp); $top = $tmp[count($tmp) - 1]; } else { $top = 1; } ?> <span style="display:none" id="<?php echo "c" . $inputName . "Duplicate"; ?> "> <input type="text" name="c<?php echo $inputName; ?> Counter" id="c<?php echo $inputName; ?> Counter" value='<?php echo $top; ?> ' /> </span> <?php } ?> </div> <!-- /.mf-fields --> <?php if ($customGroup->duplicate != 0) { $sgn = Inflect::singularize($customGroup->name); ?> <div class="mf_toolbox"> <span class="mf_counter sortable_mf" id="counter_<?php echo $customGroup->id; ?> _<?php echo $groupCounter; ?> "><?php echo $order; ?> </span> <span class="hndle sortable_mf row_mf"> </span> <span class="mf_toolbox_controls"> <?php if ($groupCounter != 1) { ?> <a class ="delete_duplicate_button { lang: { confirm: '<?php _e("Are you sure?", $mf_domain); ?> ' } }" href="javascript:void(0);" id="delete_duplicate-freshpostdiv_group_<?php echo $customGroup->id . '_' . $groupCounter; ?> "><span><?php _e('Remove', $mf_domain); ?> </span> <?php echo $sgn; ?> </a> <?php } else { ?> <a id="add_duplicate_<?php echo $customGroup->id . "Duplicate" . "_" . $customGroup->id . "_" . $order; ?> " class="duplicate_button" href="javascript:void(0);" title="<?php _e('Note: hold down the SHIFT key as you click to collapse this item before the new item is added', $mf_domain); ?> "><span><?php _e('Add Another', $mf_domain); ?> </span> <?php echo $sgn; ?> </a> <?php } ?> </span> </div> <?php } ?> </div> </div> <input type="hidden" name="order_<?php echo $customGroup->id; ?> _<?php echo $groupCounter; ?> " id="order_<?php echo $customGroup->id; ?> _<?php echo $groupCounter; ?> " value="<?php echo $order; ?> " /> </div> <?php }
/** * This function is for duplicate a group (When is clicked the button "Duplicate Group" * @param object $customGroup * @param integer $groupCounter * @param boolean $fromAjax * */ function GroupDuplicate($customGroup, $groupCounter, $fromAjax = true) { global $flutter_domain; //getting the custom fields $customFields = RCCWP_CustomGroup::GetCustomFields($customGroup->id); //if don't have any custom field then finish if (count($customFields) == 0) { return; } //if this group can't be duplicated and the group conter is != to 1 then finish if ($customGroup->duplicate == 0 && $groupCounter != 1) { return; } //formating require_once "RC_Format.php"; ?> <div id="freshpostdiv_group_<?php echo $customGroup->id . '_' . $groupCounter; ?> " class="postbox1"> <div class="postbox"> <h3 class="hndle sortable_flutter"> <span><?php echo $customGroup->name . " ({$groupCounter})"; ?> </span> </h3> <div class="inside"> <table class="form-table" style="width: 100%;" cellspacing="2" cellpadding="5"> <?php foreach ($customFields as $field) { // Render a row for each field in the group $customField = RCCWP_CustomField::Get($field->id); $customFieldName = RC_Format::GetInputName(attribute_escape($field->name)); $customFieldTitle = attribute_escape($customField->description); $groupId = $customGroup->id; $inputName = $field->id . "_" . $groupCounter . "_1_" . $groupId . "_" . $customFieldName; RCCWP_WritePostPage::CustomFieldInterface($field->id, $groupCounter, 1, $customGroup->id); $fc = 1; } ?> <tr style="display:none" id="<?php echo "c" . $inputName . "Duplicate"; ?> "> <th valign="top" scope="row"> </th> <td> <img class="duplicate_image" src="<?php echo FLUTTER_URI; ?> images/spinner.gif" alt=""/> <?php _e('Loading', $flutter_domain); ?> ... <input type="hidden" name="c<?php echo $inputName; ?> Counter" id="c<?php echo $inputName; ?> Counter" value='<?php echo $fc; ?> ' /> </td> </tr> </table> </div> <br /> <a class ="delete_duplicate_button" href="javascript:void(0);" id="delete_duplicate-freshpostdiv_group_<?php echo $customGroup->id . '_' . $groupCounter; ?> "> <img class="duplicate_image" src="<?php echo FLUTTER_URI; ?> images/delete.png" alt="<?php _e('Remove field duplicate', $flutter_domain); ?> "/><?php _e('Remove Group', $flutter_domain); ?> </a> <br style="height:2px"/> </div> <input type="hidden" name="order_<?php echo $customGroup->id; ?> _<?php echo $groupCounter; ?> " id="order_<?php echo $customGroup->id; ?> _<?php echo $groupCounter; ?> " value="0" /> </div> <?php }
function DisplayGroupFields($customGroupId, $intended = false) { global $mf_domain; $custom_fields = RCCWP_CustomGroup::GetCustomFields($customGroupId); foreach ($custom_fields as $field) { if (isset($field->properties['strict-max-length']) && $field->properties['strict-max-length'] == 1) { if ($field->type == 'Multiline Textbox') { $maxlength = ' <sup class="help_text strict">[max:' . $field->properties['width'] * $field->properties['height'] . ']</sup>'; } else { $maxlength = ' <sup class="help_text strict">[max:' . $field->properties['size'] . ']</sup>'; } } else { $maxlength = ''; } ?> <tr> <td> <a id="field_<?php echo $field->id; ?> " class="handler" href="javascript:void();"><img src="<?php echo MF_URI; ?> /images/mf_arrows.png"></a> <input type="hidden" name="mf_order[<?php print $customGroupId; ?> ][]" value="<?php echo $field->id; ?> " /> </td> <td><a href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('edit-custom-field') . "&custom-field-id={$field->id}"; ?> " ><?php if ($intended) { ?> <img align="top" src="<?php echo MF_URI; ?> images/arrow_right.gif" alt=""/> <?php } echo $field->description . $maxlength; ?> </a><?php if ($field->required_field == 1) { echo ' <span class="required">*</span>'; } ?> </td> <td><tt><?php echo $field->name . ' <span style="color: #999;">(' . $field->display_order . ')</span>'; ?> </tt><?php if ($field->type == 'Textbox' && isset($field->properties['size'])) { echo ' <sup class="help_text">[' . $field->properties['size'] . ']</sup>'; } if ($field->type == 'Multiline Textbox' && isset($field->properties['height']) && isset($field->properties['width'])) { echo ' <sup class="help_text">[' . $field->properties['height'] . '×' . $field->properties['width'] . ']</sup>'; } ?> </td> <td><?php echo $field->type; if ($field->type == 'Multiline Textbox' && isset($field->properties['hide-visual-editor']) && $field->properties['hide-visual-editor'] == 1) { echo ' <sup class="help_text">[simple]</sup>'; } ?> </td> <td><a onclick="return confirmBeforeDelete();" href="<?php echo RCCWP_ManagementPage::GetCustomWritePanelGenericUrl('delete-custom-field') . "&custom-field-id={$field->id}"; ?> " >× <?php _e('Delete', $mf_domain); ?> </a></td> </tr> <?php } }