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; }
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()); } }
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); }