Admin_SlideshowController::createAction PHP Метод

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

public createAction ( )
    public function createAction()
    {
        $form = new Admin_Form_SlideshowCreate();
        $form->rendition->setMultiOptions($this->_helper->service('image.rendition')->getOptions());
        $request = $this->getRequest();
        $postParams = $request->getPost();
        $image = isset($postParams['image']) ? $postParams['image'] : null;
        $checkedImages = isset($postParams['checked-images']) ? $postParams['checked-images'] : array();
        if ($request->isPost() && $form->isValid($postParams)) {
            $values = $form->getValues();
            $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)));
            }
            if (!empty($checkedImages)) {
                foreach ($checkedImages as $key => $value) {
                    $this->addItemToPackage($value, $slideshow);
                }
            }
            if (!is_null($image) && $image !== "") {
                $this->addItemToPackage(array_pop(explode('-', $image)), $slideshow);
            }
            $this->_helper->redirector('edit', 'slideshow', 'admin', array('article_number' => $this->_getParam('article_number'), 'slideshow' => $slideshow->getId()));
        }
        $this->view->form = $form;
        $this->view->images = $this->_helper->service('image')->findByArticle($this->_getParam('article_number'));
    }