Admin_SlideshowController::addVideoItemAction PHP Метод

addVideoItemAction() публичный Метод

public addVideoItemAction ( )
    public function addVideoItemAction()
    {
        $form = new Admin_Form_SlideshowVideoItem();
        $form->setMethod('POST')->setAction($this->view->url(array('action' => 'add-video-item')));
        $slideshow = null;
        if ($this->_getParam('slideshow')) {
            $slideshow = $this->getSlideshow();
        }
        if ($this->_getParam('slideshow_name') && !$slideshow) {
            $values = array('rendition' => $this->_getParam('rendition'), 'headline' => $this->_getParam('slideshow_name'));
            $values['rendition'] = $this->_helper->service('image.rendition')->getRendition($values['rendition']);
            $slideshow = $this->_helper->service('package')->save($values);
            if ($this->_getParam('article_number', false)) {
                $slideshows = $this->_helper->service('package')->findByArticle($this->_getParam('article_number'));
                $slideshows[] = $slideshow;
                $this->_helper->service('package')->saveArticle(array('id' => $this->_getParam('article_number'), 'slideshows' => array_map(function ($slideshow) {
                    return array('id' => $slideshow->getId());
                }, $slideshows)));
            }
        }
        $request = $this->getRequest();
        if ($request->isPost() && $form->isValid($request->getPost())) {
            $this->_helper->service('package')->addItem($slideshow, new \Newscoop\Package\RemoteVideo($form->url->getValue()));
            $this->_helper->redirector('edit', 'slideshow', 'admin', array('article_number' => $this->_getParam('article_number'), 'slideshow' => $slideshow->getId()));
        }
        $this->view->form = $form;
    }