public function indexAction(\Difra\Param\AnyString $link = null) { if (!is_null($link)) { // страница анонса события $this->eventRoot = $this->root->appendChild($this->xml->createElement('announcements-event-view')); $this->eventRoot->setAttribute('view', true); $this->_showEvent(rawurldecode($link->val())); } else { if (\Difra\Plugger::isEnabled('Blogs')) { $Group = \Difra\Plugins\Blogs\Group::current(); if ($Group) { // страница анонсов группы $this->eventRoot = $this->root->appendChild($this->xml->createElement('groupEvents')); $groupId = $Group->getId(); $this->_showGroupEvents($groupId); } else { throw new \Difra\View\HttpError(404); return; } } else { // общая страница анонсов $this->eventRoot = $this->root->appendChild($this->xml->createElement('allEvents')); $this->_showByPriority(); } } }
public function editAction(\Difra\Param\AnyInt $id) { $editNode = $this->root->appendChild($this->xml->createElement('announcementsEdit')); \Difra\Plugins\Announcements::getInstance()->getByIdXML($id->val(), $editNode); $additionalsFieldsNode = $editNode->appendChild($this->xml->createElement('additionalsFields')); $categoryNode = $editNode->appendChild($this->xml->createElement('announceCateroty')); \Difra\Plugins\Announcements\Additionals::getListXML($additionalsFieldsNode); \Difra\Plugins\Announcements\Category::getList($categoryNode); $locationsNode = $editNode->appendChild($this->xml->createElement('locations')); \Difra\Plugins\Announcements::getInstance()->getLocationsXML($locationsNode); if (\Difra\Plugger::isEnabled('blogs')) { \Difra\Plugins\Blogs\Group::getNewGroupsXml($editNode, 0, false); } }
/** * Возвращает объект анонса события в xml * @param \DOMNode $node */ public function getXML($node) { $Locale = Locales::getInstance(); $eventNode = $node->appendChild($node->ownerDocument->createElement('event')); $eventNode->appendChild($node->ownerDocument->createElement('id', $this->id)); $eventNode->appendChild($node->ownerDocument->createElement('user', $this->user)); $eventNode->appendChild($node->ownerDocument->createElement('group', $this->group)); $eventNode->appendChild($node->ownerDocument->createElement('category', $this->category)); $eventNode->appendChild($node->ownerDocument->createElement('location', $this->location)); $eventNode->appendChild($node->ownerDocument->createElement('title', htmlspecialchars($this->title))); $eventNode->appendChild($node->ownerDocument->createElement('link', $this->id . '-' . $this->link)); $eventNode->appendChild($node->ownerDocument->createElement('shortDescription', $this->shortDescription)); $eventNode->appendChild($node->ownerDocument->createElement('description', $this->description)); $eventNode->appendChild($node->ownerDocument->createElement('status', $this->getStatus())); if (!is_null($this->fromEventDate) && $this->fromEventDate != '' && $this->fromEventDate != '0000-00-00' && $this->fromEventDate != 'null') { $fromEventDate = $Locale->getDateFromMysql($this->fromEventDate . ' 00:00:00'); $dateNode = $eventNode->appendChild($node->ownerDocument->createElement('fromEventDate', $fromEventDate)); $this->reFormateDate($dateNode, $this->fromEventDate); $eventNode->appendChild($node->ownerDocument->createElement('fromToEventDiff', $this->getEventPeriodDays())); } $dateNode = $eventNode->appendChild($node->ownerDocument->createElement('eventDate', $Locale->getDateFromMysql($this->eventDate . ' 00:00:00'))); $this->reFormateDate($dateNode, $this->eventDate); $dateNode = $eventNode->appendChild($node->ownerDocument->createElement('beginDate', $Locale->getDateFromMysql($this->beginDate . ' 00:00:00'))); $this->reFormateDate($dateNode, $this->beginDate); $dateNode = $eventNode->appendChild($node->ownerDocument->createElement('endDate', $Locale->getDateFromMysql($this->endDate . ' 00:00:00'))); $this->reFormateDate($dateNode, $this->endDate); $isoDateNode = $eventNode->appendChild($eventNode->ownerDocument->createElement('isoDate')); $this->_getIsoDate($isoDateNode); $eventNode->appendChild($node->ownerDocument->createElement('visible', $this->visible)); $eventNode->appendChild($node->ownerDocument->createElement('priority', $this->priority)); $eventNode->appendChild($node->ownerDocument->createElement('modified', $Locale->getDateFromMysql($this->modified, true))); $eventNode->appendChild($node->ownerDocument->createElement('statusInDays', $this->statusInDays)); /** @var \DOMElement $userNode */ $userNode = $eventNode->appendChild($node->ownerDocument->createElement('userData')); if (!empty($this->userData)) { foreach ($this->userData as $k => $value) { $userNode->setAttribute($k, $value); } } $this->getAdditionalXML($eventNode); $this->getScheduleXML($eventNode); $this->getLocationXML($eventNode); if (Plugger::isEnabled('blogs') && !empty($this->groupData)) { /** @var \DOMElement $groupNode */ $groupNode = $eventNode->appendChild($node->ownerDocument->createElement('groupData')); foreach ($this->groupData as $k => $value) { $groupNode->setAttribute($k, $value); } } }