Social\Model\AddThis::addWidgets PHP Method

addWidgets() public method

Add widgets
public addWidgets ( array $data, boolean $removeUndefined = false ) : boolean
$data array New widgets
$removeUndefined boolean Check if yes or no undefined widget will be removed
return boolean
    public function addWidgets(array $data, $removeUndefined = false)
    {
        if ($removeUndefined === true) {
            $widgets = array();
            foreach ($data as $widget) {
                $widgets[] = $widget;
            }
        } else {
            $widgets = $this->config['widgets'];
            foreach ($data as $fieldsetName => $fieldset) {
                $found = false;
                if (!empty($widgets)) {
                    foreach ($widgets as $idx => $widget) {
                        if ($widget['identifier'] == $fieldset['identifier']) {
                            $widgets[$idx] = $fieldset;
                            $found = true;
                            break;
                        }
                    }
                }
                if (!$found) {
                    $widgets[] = $fieldset;
                }
            }
        }
        $this->config['widgets'] = $widgets;
        return $this->saveConfig();
    }

Usage Example

Example #1
0
 /**
  * Save widget
  *
  * @return mixed
  */
 public function addWidgetAction()
 {
     $this->form->addWidget('widget-add');
     $postData = $this->getRequest()->getPost()->toArray();
     $this->form->setData($postData);
     if ($this->getRequest()->isPost()) {
         if ($this->form->isValid()) {
             $this->model->addWidgets($this->form->getData());
             $this->flashMessenger()->addSuccessMessage('Widget added');
             return $this->redirect()->toRoute('module/social/addthis');
         }
     }
     $this->flashMessenger()->addErrorMessage('Cannot saved widget');
     return $this->forward()->dispatch('AddThisController', array('action' => 'index', 'isForwarded' => 'widgets'));
 }