Example #1
0
 public function editActionAuth(Param\AnyInt $id)
 {
     if (!($post = Blogs\Post::getById($id))) {
         \Difra\Libs\Cookies::getInstance()->notify(\Difra\Locales::getInstance()->getXPath('blogs/notifies/post_not_found'), true);
         $this->view->redirect('/');
     }
     $Auth = \Difra\Auth::getInstance();
     if ($post->getUser() != $Auth->getEmail() && !$Auth->isModerator()) {
         $group = $post->getBlog()->getGroup();
         if (!$group or $group->getOwner() != \Difra\Auth::getInstance()->getEmail()) {
             \Difra\Libs\Cookies::getInstance()->notify(\Difra\Locales::getInstance()->getXPath('blogs/notifies/edit_post_denied'), true);
             $this->view->redirect('/');
         }
     }
     $rootNode = $this->root->appendChild($this->xml->createElement('left'));
     /** @var \DOMElement $editNode */
     $editNode = $rootNode->appendChild($this->xml->createElement('blogsPostEdit'));
     $post->getXML($editNode, true);
     if ($tags = \Difra\Plugins\Tags::getInstance()->get('posts', $id->val())) {
         $tags = array_map(function ($t) {
             return $t['tag'];
         }, $tags);
         $tags = implode(', ', $tags);
         $editNode->setAttribute('tags', $tags);
     }
     // необходимо запомнить текущий редактируемый пост, что бы при загрузке картинки загружать туда, куда нужно
     $_SESSION['editPost'] = $post->getId();
 }
Example #2
0
 public function createaliaseAjaxAction(\Difra\Param\AjaxInt $tagId, \Difra\Param\AjaxString $module, \Difra\Param\AjaxString $aliase)
 {
     if (\Difra\Plugins\Tags::getInstance()->createAliase($module->val(), $tagId->val(), $aliase->val())) {
         \Difra\Libs\Cookies::getInstance()->notify(\Difra\Locales::getInstance()->getXPath('tags/adm/aliasCreated'));
         $this->ajax->reload();
     } else {
         $this->ajax->notify(\Difra\Locales::getInstance()->getXPath('tags/adm/aliasCreateError'));
     }
 }
Example #3
0
 /**
  * Возвращает XML с библиотекой канала
  * @param \DOMElement $node
  * @param string $sortMode
  */
 public function getLibraryXML($node, $sortMode = null)
 {
     switch ($sortMode) {
         case 'name':
             $order = " ORDER BY g.`name` ASC, t.`title` ASC";
             break;
         case 'weight':
             $order = " ORDER BY rt.`weight` DESC";
             break;
         case 'last':
         default:
             $order = " ORDER BY rt.`lastPlayed` ASC";
             $sortMode = 'last';
             break;
     }
     $node->setAttribute('sort', $sortMode);
     $node->setAttribute('minSongInQuery', $this->minSongInQuery);
     $db = \Difra\MySQL::getInstance();
     $res = $db->fetch("SELECT rt.`id`, t.`title`, g.`name`, rt.`weight`, rt.`played`, rt.`plays`, rt.`lastPlayed`, rt.`duration`,\n\t\t\t\t\tIF( UNIX_TIMESTAMP( rt.`lastPlayed` )>0, UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP( rt.`lastPlayed` ), NULL) AS `tdiff`\n\t\t\t\t\tFROM `radio_tracks` rt\n\t\t\t\t\tLEFT JOIN `tracks` AS `t` ON t.`id`=rt.`id`\n\t\t\t\t\tLEFT JOIN `groups` AS `g` ON g.`id`=rt.`group_id`\n\t\t\t\t\tWHERE rt.`channel`='" . $this->name . "'" . $order);
     if (!empty($res)) {
         $idArray = [];
         foreach ($res as $data) {
             $idArray[] = $data['id'];
         }
         $tags = \Difra\Plugins\Tags::getInstance()->getMassive('tracks', $idArray);
         foreach ($res as $data) {
             /** @var \DOMElement $itemXml */
             $itemXml = $node->appendChild($node->ownerDocument->createElement('track'));
             foreach ($data as $key => $value) {
                 if ($key == 'duration') {
                     $value = date('i:s', mktime(0, 0, $value));
                 }
                 if ($key == 'tdiff' && $value > 0) {
                     $value = floor($value / 60);
                 }
                 $itemXml->setAttribute($key, $value);
             }
             if (isset($tags[$data['id']])) {
                 $tagString = '';
                 foreach ($tags[$data['id']] as $tag) {
                     $tagString .= $tag . ', ';
                 }
                 $tagString = rtrim($tagString, " ,");
                 $itemXml->setAttribute('tags', $tagString);
             }
         }
     } else {
         $node->appendChild($node->ownerDocument->createElement('empty'));
     }
 }