Zmiana nazwy strony
517675
public function renameAction()
    {
        $this->getResponse()->setTypeJson();
        if (null !== $cat = (new \Cms\Orm\CmsCategoryQuery)->findPk($this->getPost()->id)) {
            $name = trim($this->getPost()->name);
            if (mb_strlen($name) < 2 || mb_strlen($name) > 64) {
                return json_encode(['status' => false, 'error' => $this->view->_('controller.category.rename.validator')]);
            }
            $cat->name = $name;
            if ($cat->save()) {
                return json_encode(['status' => true, 'id' => $cat->id, 'name' => $name, 'message' => $this->view->_('controller.category.rename.message')]);
            }
        }
        return json_encode(['status' => false, 'error' => $this->view->_('controller.category.rename.error')]);
    }
256465
public function getOrderMethod()
    {
        //iteracja po sortowaniach w gridzie
        foreach ($this->_grid->getState()->getOrder() as $order) {
            //znalezione sortowanie tego pola
            //gdy jest podana nazwa tabeli
            if ($order->getTableName()) {
                if ($order->getTableName() . '.' . $order->getField() == $this->getName()) {
                    //zwrot metody sortowania
                    return $order->getMethod();
                }
            } else { //bez tabeli
                if ($order->getField() == $this->getName()) {
                    //zwrot metody sortowania
                    return $order->getMethod();
                }
            }
        }
    }
1010706
public function headMeta(array $params = [], $replace = false, $conditional = '')
    {
        //jeśli brak parametrów - wyjście
        if (empty($params)) {
            return $this;
        }
        //warunek
        $params['conditional'] = $conditional;
        if (!array_key_exists(reset($params), $this->_data) || $replace) {
            //wstawienie pod danym kluczem
            $this->_data[reset($params)] = $params;
        }
        return '';
    }
377323
protected function _saveRoles()
        {
                //role zaznaczone w formularzu
                $formRoles = $this->getElement('roles')->getValue();
                //role zapisane w bazie
                $savedRoles = (new \Cms\Orm\CmsCategoryRoleQuery)
                        ->whereCmsCategoryId()->equals($this->getRecord()->getPk())
                        ->findPairs('cms_role_id', 'cms_role_id');
                //usuwanie zbędnych
                if (!$this->_deleteRoles(array_diff($savedRoles, $formRoles))) {
                        return false;
                }
                //wstawianie brakujących
                if (!$this->_insertRoles(array_diff($formRoles, $savedRoles))) {
                        return false;
                }
                return true;
        }
201756
public function fetchField()
    {
        $value = $this->getValue();
        if ($this->issetOption('multiple')) {
            $this->setName($this->getName() . '[]');
        }
        unset($this->_options['value']);
        //nagłówek selecta
        $html = '<select ' . $this->_getHtmlOptions() . '>';
        //generowanie opcji
        foreach (($this->getMultioptions() ? $this->getMultioptions() : []) as $key => $caption) {
            $disabled = '';
            //disabled
            if (strpos($key, ':disabled') !== false && !is_array($caption)) {
                $key = '';
                $disabled = ' disabled="disabled"';
            }
            //jeśli wystąpi zagnieżdżenie - generowanie grupy opcji
            if (is_array($caption)) {
                $html .= '<optgroup label="' . $key . '">';
                foreach ($caption as $k => $c) {
                    $html .= '<option value="' . $k . '" ' . $this->_calculateSelected($k, $value) . $disabled . '>' . \App\Registry::$translate->_($c) . '</option>';
                }
                $html .= '</optgroup>';
                continue;
            }
            //dodawanie pojedynczej opcji
            $html .= '<option value="' . $key . '"' . $this->_calculateSelected($key, $value) . $disabled . '>' . \App\Registry::$translate->_($caption) . '</option>';
        }
        $html .= '</select>';
        return $html;
    }
1314591
public function deploy()
    {
        //wyłączenie bufora lokalnego
        \App\Registry::$config->localCache->active = false;
        //wyłączenie bufora aplikacji
        \App\Registry::$config->cache->active = false;
        //inicjalizacja tablicy inkrementali
        $incrementals = [];
        //iteracja po modułach aplikacji
        foreach (\Mmi\Mvc\StructureParser::getModules() as $module) {
            //moduł nie zawiera incrementali
            if (!file_exists($module . '/Resource/incremental/' . \App\Registry::$config->db->driver)) {
                continue;
            }
            //iteracja po incrementalach
            foreach (glob($module . '/Resource/incremental/' . \App\Registry::$config->db->driver . '/*.sql') as $file) {
                //dodawanie incrementala do tablicy
                $incrementals[basename($file)] = $file;
            }
        }
        //sortowanie plików po nazwach
        ksort($incrementals);
        //przywracanie incrementali
        foreach ($incrementals as $incremental) {
            //importowanie incrementala
            $this->_importIncremental($incremental);
            //flush wyniku na ekran
            flush();
        }
    }
271595
public function sortAction()
    {
        $this->getResponse()->setTypePlain();
        //brak pola
        if (null === $serial = $this->getPost()->__get('widget-item')) {
            return $this->view->getTranslate()->_('Przenoszenie nie powiodło się');
        }
        //sortowanie
        (new \Cms\Model\CategoryWidgetModel($this->categoryId))
            ->sortBySerial($serial);
        //pusty zwrot
        return '';
    }
248744
public function _insert()
    {
        //data dodania
        $this->dateAdd = date('Y-m-d H:i:s');
        //adres IP
        $this->ip = \Mmi\App\FrontController::getInstance()->getEnvironment()->remoteAddress;
        $this->active = 1;
        //zapis znanego użytkownika
        if (\App\Registry::$auth->hasIdentity()) {
            $this->cmsAuthId = \App\Registry::$auth->getId();
        }
        //namespace w sesji
        $namespace = new \Mmi\Session\SessionSpace('contact');
        $this->uri = $namespace->referer;
        //wysyłka do maila zdefiniowanego w opcjach
        $option = (new CmsContactOptionQuery)->findPk($this->cmsContactOptionId);
        //niepoprawna opcja
        if (!$option) {
            return false;
        }
        //wysyłka maila
        if ($option->sendTo) {
            \Cms\Model\Mail::pushEmail('admin_cms_contact', $option->sendTo, ['contact' => $this, 'option' => $option], null, $this->email);
        }
        return parent::_insert();
    }
1221674
private function _getHtmlTree()
    {
        //pobranie struktury
        $structure = $this->getOption('structure');
        //bez struktury zwraca pusty string
        if (!is_array($structure) || empty($structure)) {
            return '';
        }
        //bez dzieci rowniez zwraca pusty string
        if (!isset($structure['children'])) {
            return '';
        }
        //skladam identyfikator galezi
        $treeId = $this->getOption('id') . '_tree';
        //zidentyfikowana gałąź drzewa
        $html = '<div class="tree_structure" id="' . $treeId . '">';
        $html .= $this->_generateTree($structure, '');
        $html .= '</div>';
        $html .= '<button type="button" id="' . $treeId . '_clear" class="tree_clear btn" /> Wyczyść wybór </button>';

        $this->_generateJs($treeId);

        return $html;
    }
138286
public function editAction()
    {
        $this->getResponse()->setTypeJson();
        $error = json_encode(['error' => 'Edycja nie powiodła się, brak pliku']);
        //brak id
        if (!$this->id) {
            return $error;
        }
        //brak pliku
        if (null === ($file = (new CmsFileQuery)->findPk($this->id))) {
            return $error;
        }
        //błędny plik
        if ($this->hash != $file->getHashName()) {
            return $error;
        }
        //zapis
        $postData = $this->getPost()->toArray();
        if (!empty($postData)) {
            $file->setFromArray($postData)
                ->save();
        }
        //json na potrzeby wyświetlenia formularza
        return $file->toJson();
    }
786422
public function authenticate()
    {
        if (!($model = $this->_modelName)) {
            return false;
        }
        //błąd logowania na modelu
        if (null === ($record = $model::authenticate($this->_identity, $this->_credential))) {
            return false;
        }
        //zła klasa rekordu
        if (!$record instanceof \Mmi\Security\AuthRecord) {
            throw new SecurityException('Authentication record is not an instance of \Mmi\Security\AuthRecord');
        }
        //ustawia autoryzację
        return $this->_setAuthentication($record);
    }
757616
public function describeAction()
    {
        //sprawdzamy, czy jest id pliku i form
        if (!$this->getPost()->cmsFileId || !is_array($this->getPost()->form)) {
            return $this->_jsonError(186);
        }
        //szukamy rekordu pliku
        if (null === $record = (new CmsFileQuery)->findPk($this->getPost()->cmsFileId)) {
            return $this->_jsonError(186);
        }
        //pobranie danych
        $form = array_merge(['active' => 0, 'sticky' => null], $this->getPost()->form);
        foreach ($form as $field) {
            $form[$field['name']] = $field['value'];
            if ($field['name'] == 'active' || $field['name'] == 'sticky') {
                continue;
            }
            if ($field['name'] == 'original') {
                //dodajemy rozszerzenie
                //pozycja ostatniej kropki w nazwie - rozszerzenie pliku
                $pointPosition = strrpos($record->name, '.');
                if ($pointPosition !== false) {
                    $form['original'] .= substr($record->name, $pointPosition);
                }
                $record->data->original = $form['original'];
                continue;
            }
            $record->data->{$field['name']} = $field['value'];
        }
        //próba zapisu postera
        if (isset($form['poster']) && $form['poster']) {
            $form['posterFileName'] = $this->_savePoster($form['poster'], $record);
        }
        unset($form['poster']);
        if ($record->data instanceof \Mmi\DataObject) {
            //czyszczenie nieprzesłanych checkboxów
            foreach (array_keys($record->data->toArray()) as $name) {
                //nie czyścimy postera jeśli był wgrany
                if ($name == 'posterFileName') {
                    continue;
                }
                if (!isset($form[$name])) {
                    $record->data->{$name} = null;
                }
            }
        }
        $record->active = isset($form['active']) ? $form['active'] : $record->active;
        $record->sticky = isset($form['sticky']) ? $form['sticky'] : $record->sticky;
        $record->original = isset($form['original']) ? $form['original'] : $record->original;
        if ($record->sticky) {
            $result = $record->setSticky();
        } else {
            $result = $record->save();
        }
        if ($result) {
            //jeśli wykonać operację po edycji
            if ($this->getPost()->afterEdit) {
                $this->_operationAfter($this->getPost()->afterEdit, $record);
            }
            return json_encode(['result' => 'OK']);
        }
        return $this->_jsonError(186);
    }
1307383
public function init()
    {

        //nazwa
        $this->addElement((new Element\Text('name'))
            ->setLabel('form.contact.option.name.label'));

        //wyślij wiadomość
        $this->addElement((new Element\Text('sendTo'))
            ->setLabel('form.contact.option.sendTo.label')
            ->setDescription('form.contact.option.sendTo.description')
            ->addValidator(new \Mmi\Validator\EmailAddressList([])));

        //submit
        $this->addElement((new Element\Submit('submit'))
            ->setLabel('form.contact.option.submit.label'));
    }
515386
public function getCreationDate()
    {
        //DateTimeOriginal to najlepsze źródło
        if (isset($this->_exif['DateTimeOriginal']) && substr($this->_exif['DateTimeOriginal'], 0, 4) != '0000') {
            return date('Y-m-d H:i:s', strtotime($this->_exif['DateTimeOriginal']));
        }
        //brak DateTimeOriginal, próba z DateTime
        if (isset($this->_exif['DateTime']) && substr($this->_exif['DateTime'], 0, 4) != '0000') {
            return date('Y-m-d H:i:s', strtotime($this->_exif['DateTime']));
        }
        //w pozostałych przypadkach - data utworzenia pliku
        if (!isset($this->_exif['FileDateTime']) && substr($this->_exif['DateTime'], 0, 4) != '0000') {
            return date('Y-m-d H:i:s', strtotime($this->_exif['FileDateTime']));
        }
    }
117252
public function navigation()
    {
        //brak wygenerowanych breadcrumbów
        if (null === $this->_breadcrumbs) {
            return $this->_buildBreadcrumbs();
        }
        //ustawienia domyślne
        return $this->setMaxDepth()
                ->setMinDepth()
                ->setActiveBranchOnly(false)
                ->setAllowedOnly(true);
    }
519222
public function run()
    {
        $request = new \Mmi\Http\Request;
        //ustawianie domyślnego języka jeśli istnieje
        if (isset(\App\Registry::$config->languages[0])) {
            $request->lang = \App\Registry::$config->languages[0];
        }
        $request->setModuleName('mmi')
            ->setControllerName('index')
            ->setActionName('index');
        //ustawianie żądania
        FrontController::getInstance()->setRequest($request)
            ->getView()->setRequest($request);
        FrontController::getInstance()->getResponse()->clearHeaders();
    }
874665
public function save()
    {
        //próba wstawienia - częstsza operacja
        try {
            //insert
            return $this->_insert();
        } catch (DbException $e) {
            //próba aktualizacji
            try {
                //update
                return $this->_update();
            } catch (DbException $e) {
                return false;
            }
        }
    }