RCCWP_CustomWritePanel::GetIdByName PHP Method

GetIdByName() public method

Gets a write panel id based on write panel name.
public GetIdByName ( string $name ) : the
$name string
return the write panel id
    function GetIdByName($name)
    {
        global $wpdb;
        $sql = $wpdb->prepare("SELECT id FROM " . MF_TABLE_PANELS . " WHERE name = %s", array($name));
        return $wpdb->get_var($sql);
    }

Usage Example

 /**
  * 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;
 }