<?php /** * Class FMControllerWidget_fmc */ class FMControllerWidget_fmc extends WP_Widget { /** * PLUGIN = 2 points to Contact Form Maker */ const PLUGIN = 2; private $view; private $model; public function __construct() { $widget_ops = array( 'classname' => 'form_maker_widget', 'description' => sprintf(__('Add %s widget.', WDFMInstance(self::PLUGIN)->prefix), WDFMInstance(self::PLUGIN)->nicename), ); // Widget Control Settings. $control_ops = array( 'id_base' => 'form_maker_widget' ); // Create the widget. parent::__construct('form_maker_widget', WDFMInstance(self::PLUGIN)->nicename, $widget_ops, $control_ops); require_once WDFMInstance(self::PLUGIN)->plugin_dir . "/admin/models/Widget.php"; $this->model = new FMModelWidget_fmc(); require_once WDFMInstance(self::PLUGIN)->plugin_dir . "/admin/views/Widget.php"; $this->view = new FMViewWidget_fmc($this->model); } /** * Widget. * * @param array $args * @param array $instance */ public function widget( $args = array(), $instance = array() ) { if( get_the_title() == 'Preview' && get_post_type() == 'form-maker' . WDFMInstance(self::PLUGIN)->plugin_postfix ) { return; } $contact_form_forms = explode(',', get_option('contact_form_forms')); $instance['title'] = isset($instance['title']) ? $instance['title'] : ''; $instance['form_id'] = isset($instance['form_id']) ? $instance['form_id'] : 0; if ( !WDFMInstance(self::PLUGIN)->is_free || !in_array($instance['form_id'], $contact_form_forms) ) { if ( class_exists('WDFM') ) { require_once(WDFMInstance(self::PLUGIN)->plugin_dir . '/frontend/controllers/form_maker.php'); $controller_class = 'FMControllerForm_maker'; } else { return; } } else { if ( class_exists('WDCFM') ) { require_once(WDFMInstance(2)->plugin_dir . '/frontend/controllers/form_maker.php'); $controller_class = 'FMControllerForm_maker_fmc'; } else { return; } } $controller = new $controller_class(); $execute = $controller->execute($instance['form_id']); $this->view->widget($args, $instance, $execute); } /** * Form. * * @param array $instance */ public function form( $instance = array() ) { $ids_FM = $this->model->get_gallery_rows_data(); // ids_Form_Maker $this->view->form($instance, $ids_FM, parent::get_field_id('title'), parent::get_field_name('title'), parent::get_field_id('form_id'), parent::get_field_name('form_id')); } /** * Update. * * @param $new_instance * @param $old_instance * @return mixed */ public function update( $new_instance = array(), $old_instance = array() ) { $instance['title'] = isset($new_instance['title']) ? $new_instance['title'] : ''; $instance['form_id'] = isset($new_instance['form_id']) ? $new_instance['form_id'] : 0; return $instance; } }