Multiopcje nawigacji
@return array
352975
public static function getMultioptions()
    {
        return [null => '---'] + (new CmsCategoryQuery)
                ->lang()
                ->andFieldStatus()->equals(\Cms\Orm\CmsCategoryRecord::STATUS_ACTIVE)
                ->orderAscParentId()
                ->orderAscOrder()->findPairs('id', 'name');
    }
1198312
private function multiPoint()
    {
        $values = array();
        $count  = $this->readCount();

        for ($i = 0; $i < $count; $i++) {
            $this->readByteOrder();

            $type = $this->readType();

            if ($this->getDimensionedPrimitive(self::WKB_TYPE_POINT) !== $type) {
                throw new UnexpectedValueException($this->getBadTypeInTypeMessage($type, self::WKB_TYPE_MULTIPOINT, array(self::WKB_TYPE_POINT)));
            }

            $values[] = $this->point();
        }

        return $values;
    }
80559
public function getMvcPreviewParamsAsRequest()
    {
        $mvcParams = [];
        //parsowanie ciągu
        parse_str($this->mvcPreviewParams, $mvcParams);
        return new \Mmi\Http\Request($mvcParams);
    }
1047125
public function updateAction()
    {
        $msg = $this->view->getTranslate()->_('Zmiana właściwości nie powiodła się.');
        $this->getResponse()->setTypePlain();
        $params = explode('-', $this->id);

        //błędne dane wejściowe
        if (!($this->getPost()->selected) || count($params) != 3) {
            return $msg;
        }
        $record = (new \Cms\Orm\CmsAclQuery)->findPk($params[2]);
        if (!$record) {
            return $msg;
        }
        //zmiana zasobu
        if ($params[1] == 'resource') {
            $resource = [];
            parse_str($this->getPost()->selected, $resource);
            $record->module = strtolower($resource['module']);
            $record->controller = isset($resource['controller']) ? strtolower($resource['controller']) : null;
            $record->action = isset($resource['action']) ? strtolower($resource['action']) : null;
        } else {
            //zmiana uprawnienia z allow na deny lub odwrotnie
            $record->access = $this->getPost()->selected == 'allow' ? 'allow' : 'deny';
        }
        $record->save();
        return 1;
    }
1007283
protected function _handleUpload(array $data)
    {
        $files = [];
        //iteracja po tablicy plików
        foreach ($data as $fieldName => $fieldFiles) {
            //brak pliku o podanej nazwie
            if (!isset($files[$fieldName])) {
                $files[$fieldName] = [];
            }
            //pojedynczy plik
            if (null !== ($file = $this->_handleSingleUpload($fieldFiles))) {
                $files[$fieldName] = $file;
                continue;
            }
            //obsługa multiuploadu HTML5
            $files[$fieldName] = $this->_handleMultiUpload($fieldFiles);
        }
        return $files;
    }
702452
public function dispatch()
    {
        //wpięcie dla pluginów przed routingiem
        $this->routeStartup();
        $frontController = FrontController::getInstance();
        //ustawianie requestu po zdekodowaniu żądania przez router
        $frontController->getRequest()
            ->setParams($frontController->getRouter()->decodeUrl($frontController->getEnvironment()->requestUri));
        //informacja o zakończeniu ustawiania routingu
        $frontController->getProfiler()->event('Mvc\Dispatcher: routing applied');
        //wpięcie dla pluginów przed dispatchem
        $this->preDispatch();
        //ustawianie contentu po wykonaniu requestu
        return $frontController->getResponse()->setContent(\Mmi\Mvc\ActionHelper::getInstance()->forward($frontController->getRequest()));
    }
641635
protected function _synchronizeDrafts()
    {
        //iteracja po draftach bieżącego dokumentu
        foreach ((new CmsCategoryQuery())->whereCmsCategoryOriginalId()->equals($this->id)
            ->andFieldStatus()->equals(self::STATUS_DRAFT)
            ->find()
            as $draftRecord) {
            //synchronizacja uri
            $draftRecord->uri = $this->uri;
            //synchronizacja parentId
            $draftRecord->parentId = $this->parentId;
            //synchronizacja kolejności
            $draftRecord->order = $this->order;
            //bez przebudowy kolejności
            $draftRecord->setOption('block-ordering', true);
            //zapis
            $draftRecord->save();
        }
    }
983188
public final function getDataCollection()
    {
        if (null !== $this->_data) {
            return $this->_data;
        }
        //aktualizuje zapytanie i pobiera dane
        return $this->_data = $this->getState()
            ->setupQuery($this->getQuery())
            ->find();
    }
362004
public function pluploadAction()
    {
        set_time_limit(5 * 60);
        //obiekt handlera plupload
        $pluploadHandler = new Model\PluploadHandler();
        //jeśli wystąpił błąd
        if (!$pluploadHandler->handle()) {
            return $this->_jsonError($pluploadHandler->getErrorCode(), $pluploadHandler->getErrorMessage());
        }
        //jeśli wykonać operację po przesłaniu całego pliku i zapisaniu rekordu
        if ($this->getPost()->afterUpload && null !== $record = $pluploadHandler->getSavedCmsFileRecord()) {
            $this->_operationAfter($this->getPost()->afterUpload, $record);
        }
        return json_encode(['result' => 'OK', 'cmsFileId' => $pluploadHandler->getSavedCmsFileId()]);
    }
1224253
public function getAperture()
    {
        //brak przysłony
        if (!isset($this->_exif['FNumber'])) {
            return;
        }
        //obliczanie przysłony do eleganckiej postaci
        $arr = explode('/', $this->_exif['FNumber']);
        if (count($arr) == 2 && $arr[1] > 0) {
            return round(($arr[0] / $arr[1]), 1);
        }
        return round($this->_exif['FNumber'], 1);
    }
1272788
public function uploadAction()
    {
        $files = $this->getFiles()->toArray();
        //brak plików lub klasy
        $error = null;
        if (empty($files) || !isset($files['file']) || empty($files['file']) || !$this->class) {
            $error = 'Błąd: nie przesłano pliku';
        }
        //nieprawidłowy hash zabezpieczający
        if ($this->hash != md5($this->t . '+' . \Mmi\Session\Session::getId() . '+' . $this->class)) {
            $error = 'Błąd: nieprawidłowy hash';
        }
        //jeśli nie było błędu
        if ($error === null) {
            //dołączanie plików
            if (!\Cms\Model\File::appendFiles($this->object, $this->objectId, $files, $this->types ? $this->types : [])) {
                $error = 'Nieprawidłowy typ pliku';
            }
        }
        //rendering widgeta uploadera
        return $this->view->widget('cms', 'file', 'uploader', [
                'object' => $this->object,
                'objectId' => $this->objectId,
                'types' => $this->types,
                'error' => $error
        ]);
    }
1206451
public function toggleAction()
    {
        //wyszukiwanie relacji do edycji
        if (null === $widgetRelation = (new \Cms\Orm\CmsCategoryWidgetCategoryQuery)
            ->whereCmsCategoryId()->equals($this->categoryId)
            ->findPk($this->id)) {
            return '';
        }
        //zmiana widoczności relacji
        $widgetRelation->toggle();
        return '';
    }
1330312
public function getAttributeValues()
    {
        //próba pobrania atrybutów z cache
        if (null === $attributeValues = \App\Registry::$cache->load($cacheKey = 'category-attributes-' . $this->id)) {
            //pobieranie atrybutów
            \App\Registry::$cache->save($attributeValues = (new \Cms\Model\AttributeValueRelationModel('category', $this->id))->getGrouppedAttributeValues(), $cacheKey, 0);
        }
        //zwrot atrybutów
        return $attributeValues;
    }
267821
public final function fetchBegin()
    {
        $class = get_class($this);
        //dodawanie klasy z klasą forma
        $this->addClass(strtolower(substr($class, strrpos($class, '\\') + 1)));
        //dodawanie klasy błędu jeśli wystąpiły
        if ($this->getErrors()) {
            $this->addClass('error');
        }
        //element do widoku
        \Mmi\App\FrontController::getInstance()->getView()->_element = $this;
        //render szablonu
        return \Mmi\App\FrontController::getInstance()->getView()->renderTemplate(static::TEMPLATE_BEGIN);
    }
1279870
protected function getMultisite()
    {
        $sites = [];
        $multiSiteFile = sprintf(
            '%s/sites/sites.php',
            $this->appRoot
        );

        if (file_exists($multiSiteFile)) {
            include $multiSiteFile;
        }

        if (!$sites) {
            $this->getIo()->error(
                $this->trans('commands.debug.multisite.messages.no-multisites')
            );

            return 1;
        }

        return $sites;
    }
1152999
public function index(): array
    {
        /** @var Client[] $clients */
        $clients = parent::index();
        foreach ($clients as $client) {
            $this->addScopeAndRedirectUris($client);
        }

        return $clients;
    }
440377
public function getGrouppedAttributeValues()
    {
        $grouppedByAttributeKey = new \Mmi\DataObject();
        //wyszukiwanie wartości
        foreach ($this->getAttributeValues() as $record) {
            //pobieranie klucza atrybutu (w celu zgrupowania
            $key = $record->getJoined('cms_attribute')->key;
            if ($record->getJoined('cms_attribute_type')->multiple) {
                if (!$grouppedByAttributeKey->$key) {
                    $grouppedByAttributeKey->$key = new \Mmi\Orm\RecordCollection;
                }
                $grouppedByAttributeKey->$key->append($record);
                continue;
            }
            //atrybut to uploader
            if ($record->getJoined('cms_attribute_type')->uploader) {
                //dołączanie plików
                $grouppedByAttributeKey->$key = \Cms\Orm\CmsFileQuery::byObject($record->value, $this->_objectId)->find();
                continue;
            }
            //atrybut zwykły
            $grouppedByAttributeKey->$key = $record->value;
        }
        //zwrot zgrupowanych wartości atrybutów
        return $grouppedByAttributeKey;
    }