get::widget() * @see WP_Widget::widget() * * @param array $args Argumenti widgeta. * @param array $instance Sačuvane vrijednosti iz baze podataka. */ public function widget( $args, $instance ) { $this->load_defaults(); $instance = $this->parse_args( $this->defaults, $instance ); echo $args['before_widget']; // izbjegnuto prije unutar WP-a $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->base_widget_id ); if ( ! empty( $title ) && $this->with_title ) { echo $args['before_title'] . $title . $args['after_title']; // izbjegnuto prije unutar WP-a } echo BF_Shortcodes_Manager::factory( $this->base_widget_id, [], true )->handle_widget( $instance ); // izbjegnuto prije unutar WP-a echo $args['after_widget']; // izbjegnuto prije unutar WP-a } /** * Očisti vrijednosti obrasca widgeta prilikom njihovog spremanja. * * @see WP_Widget::update() * * @param array $new_instance Vrijednosti upravo poslane za spremanje. * @param array $old_instance Prethodno spremljene vrijednosti iz baze podataka. * * @return array Ažurirane sigurne vrijednosti koje će biti spremljene. */ public function update( $new_instance, $old_instance ) { $this->load_defaults(); return $this->parse_args( $this->defaults, $new_instance ); } /** * Back-end obrazac widgeta. * * @see WP_Widget::form() * * @param array $instance Prethodno sačuvane vrijednosti iz baze podataka. * * @return string|void */ public function form( $instance ) { $this->load_defaults(); $instance = $this->parse_args( $this->defaults, $instance ); Better_Framework::factory( 'widgets-field-generator', false, true ); // priprema polja za generator $this->load_fields(); $this->prepare_fields(); $options = array( 'fields' => $this->fields ); /** * Zadržavanje stanja grupe widgeta nakon spremanja postavki widgeta */ if ( ! empty( $_POST['_group_status'] ) ) { foreach ( $options['fields'] as $idx => $field ) { if ( $field['type'] === 'group' && ! empty( $field['id'] ) ) { $id = &$field['id']; if ( ! empty( $_POST['_group_status'][ $id ] ) ) { $options['fields'][ $idx]['state'] = $_POST['_group_status'][ $id ]; } } } } $generator = new BF_Widgets_Field_Generator( $options, $instance ); echo $generator->get_fields(); // izbjegnuto prije } public function get_fields() { return $this->fields; } }