'icon', // id of the field
'hide' => false, // hide the image upload button
'show_image_data' => true, // show image name / title etc in interface.
'show_hover_link' => true, // show a link to include a hover image
'conditional' => false, // show this field only on conditional
'label' => __('Image', 'maxbuttons-pro'), // the label
'data' => array(), // where to find the data of the image
'admin' => null, // the admin object to add the fields to
);
$args = wp_parse_args($args, $default_args);
$admin = $args['admin'];
if (! is_object($admin))
{
return false;
}
$id = $args['id'];
$data = $args['data'];
$icon_id = isset($data[$id . '_id']) ? $data[$id . '_id'] : false;
$icon_url = isset($data[$id . '_url']) ? $data[$id . '_url'] : false;
$icon_alt = isset($data[$id . '_alt']) ? $data[$id . '_alt'] : false;
$icon_size = isset($data[$id . '_size']) ? $data[$id . '_size'] : false;
//**Icon section.
$iconid = new maxField('hidden');
$iconid->id = $id . '_id';
$iconid->name = $iconid->id;
$iconid->value = $icon_id;
$admin->addField($iconid, '', '');
$iconurl = new maxField('hidden');
$iconurl->id = $id . '_url';
$iconurl->name = $iconurl->id;
$iconurl->value = $icon_url;
$admin->addField($iconurl, '','');
$iconsize = new maxField('hidden');
$iconsize->id = $id . '_size';
$iconsize->name = $iconsize->id;
$iconsize->value = $icon_size;
$admin->addField($iconsize, '','');
$iconpreview = new maxField('generic');
$iconpreview->id = $id . '_option_preview';
if ($args['hide'])
$iconpreview->main_class = 'option hidden';
$iconpreview->label =$args['label'];
$iconpreview->name = $iconpreview->id;
$iconpreview->start_conditional = $args['conditional'];
// $iconpreview->main_class = 'option icon_preview';
if ($icon_id > 0)
{
$data = get_post($icon_id);
if (! is_null($data))
{
$icon_title = $data->post_title;
$icon_alt = get_post_meta( $icon_id, '_wp_attachment_image_alt', true );
$data = wp_get_attachment_image_src($icon_id, $icon_size);
$filename = basename($data[0]);
$width = $data[1];
$height = $data[2];
}
else {
$icon_id = -1; // error state
$icon_url = '';
}
}
else {
$filename = $icon_alt = $icon_title = '';
}
$content = '';
$content .= '';
if (isset($icon_url) && $icon_url != '')
{
$content .= '';
}
$content .= '';
if ($args['show_image_data'])
{
$content .= "";
$content .= "
" . $filename . "
" . $icon_alt . "
" . $icon_title . "
";
}
$iconpreview->content = $content;
$admin->addField($iconpreview, 'start', 'end');
$image_button = new maxField('generic');
$image_button->label = ' ';
$image_button->id = $id . '_image_button';
$image_button->name = $image_button->id;
$image_button->start_conditional = $args['conditional'] ;
if ($args['hide'])
$image_button->main_class = 'option hidden';
$image_button->content = '';
$end = $args['show_hover_link'] ? '' : 'end';
$admin->addField($image_button, 'start', $end);
if ($args['show_hover_link'])
{
$hover_link = new maxField('generic');
$hover_link->id = $id . '_hover_link';
$hover_link->name = $hover_link->id;
$hover_link->content = "