1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
<?php
namespace hji\homevalue\controllers;
class HomeValueWidget extends \WP_Widget
{
static $supportedFields = array(
'title',
'street',
'city',
'state',
'zip'
);
function __construct()
{
parent::__construct(
'home-value',
__('HJI Home Value', 'hji_home-value'),
array( 'description' => __('Property Valuation Widget', 'hji_home-value' ))
);
}
public function widget($args, $instance)
{
$title = apply_filters('widget_title', $instance['title']);
echo $args['before_widget'];
if (!empty($title))
{
echo $args['before_title'] . $title . $args['after_title'];
}
echo do_shortcode("[home_value_form]");
echo $args['after_widget'];
}
public function form($instance)
{
foreach (self::$supportedFields as $name)
{
$this->addField($name, $instance);
}
$view = new \hji\common\utils\Views(\hji\homevalue\HomeValue::$dir . '/classes/views');
echo $view->render('home-value-widget',
array('fields' => $this->getFields(), 'instance' => $instance, 'widget' => $this));
}
function addField($fieldName, $instance)
{
$this->fieldsArray[$fieldName]['id'] = $this->get_field_id($fieldName);
$this->fieldsArray[$fieldName]['name'] = $this->get_field_name($fieldName);
$this->fieldsArray[$fieldName]['value'] = (isset($instance[$fieldName])) ? $instance[$fieldName] : false;
}
function getFields()
{
return (!isset($this->fieldsArray)) ? false : $this->fieldsArray;
}
public function update($new_instance, $old_instance)
{
$instance = $new_instance;
return $instance;
}
}