Example #1
0
 public static function createWidget($widgetName, $data, $skin, $revisionId, $languageId, $blockName, $position, $visible = true)
 {
     $widgetObject = Model::getWidgetObject($widgetName);
     if (!$widgetObject) {
         throw new \Ip\Exception("Widget '" . esc($widgetName) . "' doesn't exist");
     }
     if ($data === null) {
         $data = $widgetObject->defaultData();
     }
     if ($skin === null) {
         $skins = $widgetObject->getSkins();
         $skin = $skins[0]['name'];
     }
     $widgetId = Model::createWidget($widgetName, $data, $skin, $revisionId, $languageId, $blockName, $position, $visible);
     return $widgetId;
 }
Example #2
0
 public function widgetPost()
 {
     $widgetId = ipRequest()->getPost('widgetId');
     if (!$widgetId) {
         return \Ip\Response\JsonRpc::error('Missing widgetId POST variable');
     }
     $widgetId = $_POST['widgetId'];
     $widgetRecord = Model::getWidgetRecord($widgetId);
     try {
         if (!$widgetRecord) {
             return \Ip\Response\JsonRpc::error("Can't find requested Widget: " . $widgetId, 10);
         }
         $widgetObject = Model::getWidgetObject($widgetRecord['name']);
         if (!$widgetObject) {
             return \Ip\Response\JsonRpc::error("Can't find requested Widget: " . $widgetRecord['name'], 20);
         }
         return $widgetObject->post($widgetId, $widgetRecord['data']);
     } catch (\Ip\Exception\Content $e) {
         return \Ip\Response\JsonRpc::error($e->getMessage());
     }
 }
Example #3
0
 public function updateWidget()
 {
     $updateData = array();
     if (!isset($_POST['widgetId'])) {
         return $this->_errorAnswer('Missing POST variable widgetId');
     }
     $widgetId = $_POST['widgetId'];
     $record = Model::getWidgetRecord($widgetId);
     if (!$record) {
         return $this->_errorAnswer('Unknown widget. ' . $widgetId);
     }
     if (!isset($_POST['widgetData']) || !is_array($_POST['widgetData'])) {
         $_POST['widgetData'] = array();
     }
     $postData = $_POST['widgetData'];
     $widgetObject = Model::getWidgetObject($record['name']);
     $newData = $widgetObject->update($record['id'], $postData, $record['data']);
     $updateData['data'] = $newData;
     Model::updateWidget($record['id'], $updateData);
     $data = array('status' => 'success', 'action' => '_updateWidget', 'widgetId' => $widgetId);
     if (!empty($_POST['generatePreview'])) {
         $data['html'] = Model::generateWidgetPreview($widgetId, true);
     }
     return new \Ip\Response\Json($data);
 }