GetCustomFields() public static method

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&hellip;', $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">&nbsp;</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 
    }
Beispiel #8
0
    /**
     * 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'] . '&times;' . $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}";
            ?>
" >&times; <?php 
            _e('Delete', $mf_domain);
            ?>
</a></td>
			</tr>
		<?php 
        }
    }