Gets a write panel id based on write panel name.
public GetIdByName ( string $name ) : the | ||
$name | string | |
return | the | write panel id |
/** * Import a write panel given the file path. * @param string $panelFilePath the full path of the panel file * @param string $writePanelName the write panel name, if this value if false, the function will * use the pnl filename as the write panel name. The default value is false * @param boolean $overwrite whether to overwrite existing panels with the same name * @return the panel id, or false in case of error. */ function Import($panelFilePath, $writePanelName = false, $overwrite = false) { global $wpdb; include_once 'RCCWP_CustomGroup.php'; include_once 'RCCWP_CustomField.php'; include_once 'RCCWP_Application.php'; if (!$writePanelName) { //use filename $writePanelName = basename($panelFilePath, ".pnl"); } if ($writePanelName == '') { return false; } $writePanelID = RCCWP_CustomWritePanel::GetIdByName($writePanelName); if ($writePanelID && !$overwrite) { // Append a number if the panel already exists, $i = 2; $temp_name = $writePanelName . "_1"; while (RCCWP_CustomWritePanel::GetIdByName($temp_name)) { $temp_name = $writePanelName . "_" . $i++; } $writePanelName = $temp_name; } // Unserialize file $imported_data = unserialize(file_get_contents($panelFilePath)); $types_results = RCCWP_CustomField::GetCustomFieldTypes(); $types = array(); foreach ($types_results as $types_result) { $types[$types_result->name] = $types_result->id; } // Prepare categories list $assignedCategories = array(); if (is_array($imported_data['panel']->assignedCategories)) { foreach ($imported_data['panel']->assignedCategories as $cat_name) { wp_create_category($cat_name); $assignedCategories[] = $cat_name; } } //Create write panel if ($writePanelID && $overwrite) { RCCWP_CustomWritePanel::Update($existingPanelId, $writePanelName, $imported_data['panel']->description, $imported_data['panel']->standardFieldsIDs, $assignedCategories, $imported_data['panel']->display_order, $imported_data['panel']->type, false, $imported_data['panel']->single, $imported_data['panel']->theme, $imported_data['panel']->parent_page); foreach (RCCWP_CustomWritePanel::GetCustomGroups($writePanelID) as $group) { RCCWP_CustomGroup::Delete($group->id); } } else { $writePanelID = RCCWP_CustomWritePanel::Create($writePanelName, $imported_data['panel']->description, $imported_data['panel']->standardFieldsIDs, $assignedCategories, $imported_data['panel']->display_order, $imported_data['panel']->type, false, $imported_data['panel']->single, $imported_data['panel']->theme, $imported_data['panel']->parent_page); } if (is_array($imported_data['fields'])) { foreach ($imported_data['fields'] as $groupName => $group) { // For backward compatability if (!isset($group->fields)) { $newGroup->fields = $group; $group = $newGroup; } // Import group $groupID = RCCWP_CustomGroup::Create($writePanelID, $groupName, $group->duplicate, $group->at_right); // Import group fields foreach ($group->fields as $field) { $fieldOptions = @implode("\n", $field->options); $fieldDefault = @implode("\n", $field->default_value); if ($field->type == "Related Type") { $field->properties["panel_id"] = RCCWP_CustomWritePanel::GetIdByName($field->properties["panel_name"]); unset($field->properties["panel_name"]); } RCCWP_CustomField::Create($groupID, $field->name, $field->description, $field->display_order, $field->required_field, $types[$field->type], $fieldOptions, $fieldDefault, $field->properties, $field->duplicate, $field->help_text); } } } return $writePanelID; }