public static function CustomFieldInterface($customFieldId, $groupCounter = 1, $fieldCounter = 1, $customGroup_id = 0)
{
global $mf_domain;
require_once "RC_Format.php";
$customField = RCCWP_CustomField::Get($customFieldId);
$customFieldName = $customField->name;
$customFieldTitle = esc_attr($customField->description);
$customFieldHelp = $customField->help_text;
// htmlentities($customField->help_text,ENT_COMPAT,'UTF-8');
$groupId = $customGroup_id;
$inputCustomName = $customFieldId . "_" . $groupCounter . "_" . $fieldCounter . "_" . $groupId . "_" . $customFieldName;
// Create input tag name
$inputName = "magicfields[{$customFieldName}][{$groupCounter}][{$fieldCounter}]";
if ($fieldCounter > 1 && $customField->duplicate == 0) {
return;
}
if ($fieldCounter > 1) {
$titleCounter = " (<span class='counter_{$customFieldName}_{$groupCounter}'>{$fieldCounter}</span>)";
}
$field_group = RCCWP_CustomGroup::Get($customField->group_id);
/*
* Add the lang attribute if last part of the field name matches defined languages
*
* define( 'ADMIN_LANGS', 'en|fr|de' );
* example: field name 'the_about_text_en' matches 'en' and sets ' lang="en"'
*
*/
if (defined('ADMIN_LANGS')) {
$customFieldNameParts = explode('_', $customFieldName);
$lang_switch = preg_match('/' . ADMIN_LANGS . '/', $customFieldNameParts[sizeof($customFieldNameParts) - 1]) ? ' lang="' . $customFieldNameParts[sizeof($customFieldNameParts) - 1] . '"' : '';
} else {
$lang_switch = '';
}
if (isset($customField->properties['strict-max-length']) && $customField->properties['strict-max-length'] == 1) {
$fieldMaxLengthClass = ' maxlength';
} else {
$fieldMaxLengthClass = '';
}
$fieldCustomClass = "mf-field-{$customFieldName}";
// allows some special styling in wordpress filters
$duplicateClass = "";
if ($fieldCounter > 1) {
$duplicateClass = "mf-field-duplicate";
}
?>
<div class="mf-field <?php
echo $duplicateClass;
?>
<?php
echo $fieldCustomClass;
?>
mf-t-<?php
echo strtolower(str_replace(" ", "-", $customField->type));
?>
<?php
echo str_replace(" ", "_", $customField->type);
echo $fieldMaxLengthClass;
?>
" id="row_<?php
echo $inputCustomName;
?>
"<?php
echo $lang_switch;
?>
>
<div class="mf-field-title">
<label for="<?php
echo $inputCustomName;
?>
">
<?php
if (empty($titleCounter)) {
$titleCounter = "";
}
?>
<span class="name"><?php
echo $customFieldTitle;
?>
<em><?php
echo $titleCounter;
?>
</em></span>
<?php
if ($customField->required_field == 1) {
?>
<span class="required">*</span><?php
}
if (!empty($customFieldHelp)) {
?>
<small class="tip"><?php
_e("what's this?", $mf_domain);
?>
<span class="field_help"><?php
echo $customFieldHelp;
?>
</span></small>
<?php
}
if (isset($customField->properties['strict-max-length']) && $customField->properties['strict-max-length'] == 1) {
if ($customField->type == 'Multiline Textbox') {
$charsRemainingSize = $customField->properties['height'] * $customField->properties['width'];
} else {
$charsRemainingSize = $customField->properties['size'];
}
?>
<small class="remaining"><?php
_e('Characters left', $mf_domain);
?>
: <span class="charsRemaining" title="<?php
_e('Characters left', $mf_domain);
?>
"><?php
echo $charsRemainingSize;
?>
</span></small><?php
}
?>
</label>
</div>
<!-- /.mf-field-title -->
<div>
<p class="error_msg_txt" id="fieldcellerror_<?php
echo $inputCustomName;
?>
" style="display:none"></p>
<?php
switch ($customField->type) {
case 'Textbox':
RCCWP_WritePostPage::TextboxInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Multiline Textbox':
RCCWP_WritePostPage::MultilineTextboxInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Checkbox':
RCCWP_WritePostPage::CheckboxInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Checkbox List':
RCCWP_WritePostPage::CheckboxListInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Radiobutton List':
RCCWP_WritePostPage::RadiobuttonListInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Dropdown List':
RCCWP_WritePostPage::DropdownListInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Listbox':
RCCWP_WritePostPage::ListboxInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'File':
RCCWP_WritePostPage::FileInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Image':
RCCWP_WritePostPage::PhotoInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Date':
RCCWP_WritePostPage::DateInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Audio':
RCCWP_WritePostPage::AudioInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Color Picker':
RCCWP_WritePostPage::ColorPickerInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Slider':
RCCWP_WritePostPage::SliderInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Related Type':
RCCWP_WritePostPage::RelatedTypeInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Markdown Textbox':
RCCWP_WritePostPage::MarkdownTextboxInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
case 'Image (Upload Media)':
RCCWP_WritePostPage::MediaPhotoInterface($customField, $inputName, $groupCounter, $fieldCounter);
break;
default:
}
?>
<div class="mf-duplicate-controls">
<?php
$cfd = Inflect::singularize($customField->description);
if ($fieldCounter == 1) {
?>
<?php
if ($customField->duplicate != 0) {
?>
<a href="javascript:void(0);" id="type_handler-<?php
echo $inputCustomName;
?>
" class="typeHandler duplicate_field"><span><?php
_e('Add Another', $mf_domain);
?>
</span> <?php
echo $cfd;
?>
</a>
<?php
}
?>
<?php
} else {
?>
<a class="delete_duplicate_field" href="javascript:void(0)" id="delete_field_repeat-<?php
echo $inputCustomName;
?>
"><span><?php
_e('Remove', $mf_domain);
?>
</span> <?php
echo $cfd;
?>
</a>
<?php
}
?>
</div>
<!-- ./title-controls -->
</div>
</div>
<?php
}