Wysyłka z kolejki
431386
public function sendAction()
    {
        $result = \Cms\Model\Mail::send();
        if ($result['success'] > 0) {
            $this->getMessenger()->addMessage('messenger.mail.queue.sent', true);
        }
        if ($result['error'] > 0) {
            $this->getMessenger()->addMessage('messenger.mail.queue.error', false);
        }
        if ($result['success'] + $result['error'] == 0) {
            $this->getMessenger()->addMessage('messenger.mail.queue.empty');
        }
        $this->getResponse()->redirect('cmsAdmin', 'mail', 'index');
    }
129777
public function filesAction()
    {
        //formularz
        $form = new Form\ConnectorImportFilesForm;
        //formularz zapisany
        if ($form->isSaved()) {
            //przekazanie listy plików do downloadu
            $this->view->files = $form->getOption('data');
            //otwarcie sesji
            $session = new \Mmi\Session\SessionSpace(\Cms\Model\ConnectorModel::SESSION_SPACE);
            $this->view->downloadUrl = base64_encode($session->url);
        } else {
            //form do widoku
            $this->view->form = $form;
        }
    }
682575
public function beforeSave()
    {
        $auth = new \Cms\Model\Auth;
        $record = $auth->authenticate(\App\Registry::$auth->getUsername(), $this->getElement('password')->getValue());
        //logowanie niepoprawne
        if (!$record) {
            $this->getElement('password')->addError('form.index.password.current.invalid');
            return false;
        }
        //hasła niezgodne
        if ($this->getElement('changePassword')->getValue() != $this->getElement('confirmPassword')->getValue()) {
            $this->getElement('confirmPassword')->addError('form.index.password.repeat.invalid');
            return false;
        }
        //znajdowanie rekordu użytkownika
        $authRecord = (new \Cms\Orm\CmsAuthQuery)->findPk(\App\Registry::$auth->getId());
        if (null === $authRecord) {
            return false;
        }
        $authRecord->password = \Cms\Model\Auth::getSaltedPasswordHash($this->getElement('changePassword')->getValue());
        return $authRecord->save();
    }
1358776
public function redactorPreviewAction()
    {
        //żądanie o wersję artykułu (rola redaktora)
        if (!$this->_hasRedactorRole()) {
            throw new \Mmi\Mvc\MvcForbiddenException('Preview not allowed');
        }
        //wyszukiwanie kategorii
        if (null === $category = (new Orm\CmsCategoryQuery)
            ->withType()
            ->whereCmsCategoryOriginalId()->equals($this->originalId ? $this->originalId : null)
            ->findPk($this->versionId)) {
            //404
            throw new \Mmi\Mvc\MvcNotFoundException('Version not found');
        }
        //kategoria do widoku
        $this->view->category = $category;
        //nadpisanie tytułu i opisu (gdyż inaczej brany jest z kategorii oryginalnej)
        $this->view->navigation()->setTitle($category->title)
            ->setDescription($category->description);
        //renderowanie docelowej akcji
        return $this->_decorateHtmlWithEditButton(\Mmi\Mvc\ActionHelper::getInstance()->forward($this->_prepareForwardRequest($category)), $category);
    }
1133328
public function mailgun() {
        $rand_id = '96';
        $task = "experiments";
        $title = "NiePozwalam -- USer Control Panel";

        Mail::raw('Drugi mail POWINIEN BYć z eventu', function ($message) {
            $message->to('peter.gavagai@gmail.com');

            $message->subject('Mail testujący wysłany z widoku. ID=');
        });

        // Send email to Peter
        \Event::fire(new \App\Events\SendEmailWithFeedback());

        // $user = User::findOrFail(5);

        // Mail::send('emails.reminder', ['user' => $user], function ($m) use ($user) {
        //     $m->to($user->email, $user->name)->subject('Your Reminder!');
        // });

        $view = View::make('emails.test_status', compact('title', 'task'))->with('itemkind', 'experiments', 'message_content');

        return Response::make($view);
    }
898837
protected function _getData()
    {
        //pobranie kolekcji rekordów
        $rawCollection = $this->_grid->getState()
            ->setupQuery($this->_grid->getQuery())
            //eksport maksimum 100k rekordów
            ->limit(100000)
            ->offset(null)
            ->find();
        $exportTable = [];
        //iteracja po kolekcji
        foreach ($rawCollection as $record) {
            $recordTable = [];
            //iteracja po kolumnach
            foreach ($this->_grid->getColumns() as $column) {
                if ('?' === $value = $column->getValueFromRecord($record)) {
                    //jeśli kolumna typu custom i eksportowalna
                    if ($column instanceof Column\CustomColumn && $column->getExporting()) {
                        $recordTable[] = $column->renderCell($record);
                    }
                    continue;
                }
                //kolumna to select ale nie checkbox
                if ($column instanceof Column\SelectColumn && !($column instanceof Column\CheckboxColumn)) {
                    $recordTable[] = html_entity_decode($column->renderCell($record));
                    continue;
                }
                //domyślnie przepisujemy wartość z rekordu
                $recordTable[] = $value;
            }
            $exportTable[] = $recordTable;
        }
        return $exportTable;
    }
943274
public function toArray()
    {
        //tworzy array z opcji
        $array = $this->_options;
        //dołącza joinowane tabele
        foreach ($this->_joined as $name => $value) {
            if ($value instanceof \Mmi\Orm\RecordRo) {
                $value = $value->toArray();
            }
            $array[$name] = $value;
        }
        //dołącza pola obiektu
        foreach ($this as $name => $value) {
            //tylko publiczne zmienne
            if (substr($name, 0, 1) == '_') {
                continue;
            }
            $array[$name] = $value;
        }
        return $array;
    }
650539
public function beforeSave()
    {
        //brak domyślnej wartości
        if (null === $defaultValue = $this->getElement('defaultValue')->getValue()) {
            return true;
        }
        //wszukiwanie rekordu z domyślną wartością
        if (null === $record = (new \Cms\Orm\CmsAttributeValueQuery)
            ->whereCmsAttributeId()->equals($this->getRecord()->cmsAttributeId)
            ->whereValue()->equals($defaultValue)
            ->findFirst()) {
            //tworzenie rekordu domyślnej wartości
            $record = new \Cms\Orm\CmsAttributeValueRecord;
            $record->value = $defaultValue;
            $record->cmsAttributeId = $this->getRecord()->cmsAttributeId;
            $record->save();
        }
        //ustawianie domyślnej wartości
        $this->getRecord()->cmsAttributeValueId = $record->id;
        return true;
    }
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 '';
    }
940315
public function fetchLabel()
    {
        //brak labelki
        if (!$this->getOption('data-label')) {
            return;
        }
        $requiredClass = '';
        $required = '';
        //html znaku wymagania
        if ($this->getRequired()) {
            $requiredClass = ' class="required"';
            $required = '<span class="required">' . $this->getOption('data-requiredAsterisk') . '</span>';
        }
        //tłumaczenie labelki
        $label = $this->getOption('data-label');
        //rendering
        return '<label' . $requiredClass . '>' . $label . $this->getOption('data-labelPostfix') . $required . '</label>';
    }
856070
protected function _bufferingAllowed()
    {
        //jeśli zdefiniowano własny obiekt sprawdzający, czy można buforować
        if (\App\Registry::$config->category instanceof \Cms\Config\CategoryConfig && \App\Registry::$config->category->bufferingAllowedClass) {
            $class = \App\Registry::$config->category->bufferingAllowedClass;
            $buffering = new $class($this->_request);
        } else {
            //domyślny cmsowy obiekt sprawdzający, czy można buforować
            $buffering = new \Cms\Model\CategoryBuffering($this->_request);
        }
        return $buffering->isAllowed();
    }
1129372
public function dispatchAction()
    {
        //pobranie kategorii
        $category = $this->_getPublishedCategoryByUri($this->uri);
        //wpięcie kategorii do głównego widoku aplikacji
        FrontController::getInstance()->getView()->category = $category;
        //klucz bufora
        $cacheKey = 'category-html-' . $category->id;
        //buforowanie dozwolone
        $bufferingAllowed = $this->_bufferingAllowed();
        //wczytanie zbuforowanej strony (dla niezalogowanych i z pustym requestem)
        if ($bufferingAllowed && (null !== $html = \App\Registry::$cache->load($cacheKey))) {
            //wysyłanie nagłówka o buforowaniu strony
            $this->getResponse()->setHeader('X-Cache', 'HIT');
            //zwrot html
            return $this->_decorateHtmlWithEditButton($html, $category);
        }
        //wysyłanie nagłówka o braku buforowaniu strony
        $this->getResponse()->setHeader('X-Cache', 'MISS');
        //przekazanie rekordu kategorii do widoku
        $this->view->category = $category;
        //renderowanie docelowej akcji
        $html = \Mmi\Mvc\ActionHelper::getInstance()->forward($this->_prepareForwardRequest($category));
        //buforowanie niedozwolone
        if (!$bufferingAllowed || 0 == $cacheLifetime = $this->_getCategoryCacheLifetime($category)) {
            //zwrot html
            return $this->_decorateHtmlWithEditButton($html, $category);
        }
        //zapis html kategorii do cache
        \App\Registry::$cache->save($html, $cacheKey, $cacheLifetime);
        //zwrot html
        return $this->_decorateHtmlWithEditButton($html, $category);
    }
198021
public function beforeSave()
    {
        if ($this->getElement('password')->getValue() != $this->getElement('confirmPassword')->getValue()) {
            $this->getElement('confirmPassword')->addError('form.register.confirmPassword.error');
            return false;
        }
        //opcja zmiany (w tym przypadku ustawienia nowego) hasłą
        $this->getRecord()->password = \Cms\Model\Auth::getSaltedPasswordHash($this->getElement('password')->getValue());
        //domyślny język
        $this->getRecord()->lang = \App\Registry::$translate->getLocale();
        return true;
    }
1057314
public function thumbnailAction()
    {
        if (!$this->getPost()->cmsFileId) {
            return $this->_jsonError(179);
        }
        //szukamy rekordu pliku
        if (null !== $record = (new CmsFileQuery)->findPk($this->getPost()->cmsFileId)) {
            //sprawdzenie czy obrazek
            if ($record->class === 'image') {
                try {
                    $thumb = new \Cms\Mvc\ViewHelper\Thumb();
                    $url = $thumb->thumb($record, 'scaley', '60');
                    if (!empty($url)) {
                        return json_encode(['result' => 'OK', 'url' => $url]);
                    }
                } catch (\Exception $ex) {
                    
                }
            }
        }
        return $this->_jsonError(179);
    }
401454
public function save()
    {
        $this->_calculateUri();
        //domyślnie wstawienie na koniec
        if (null === $this->order) {
            $this->order = $this->_maxChildOrder() + 1;
        }
        //zapis
        return parent::save() && $this->clearCache();
    }
1332056
protected static function _createSysDirs() 
    { 
        //iteracja po katalogach obowiązkowych 
        foreach (self::$_sysDirs as $dir) { 
            //tworzenie katalogu 
            !file_exists(BASE_PATH . '/' . $dir) ? mkdir(BASE_PATH . '/' . $dir, 0777, true) : null; 
            chmod($dir, 0777); 
        } 
    }
1088996
public function beforeSave()
    {
        //iteracja po elementach dodanych przez atrybuty
        foreach ($this->_cmsAttributeElements as $attributeId => $element) {
            //wyszukiwanie atrybutu
            $attribute = $this->_findAttributeById($attributeId);
            //jeśli atrybut jest zmaterializowany
            if (null !== $attribute && $attribute->getJoined('cms_attribute_relation')->isMaterialized()) {
                //ustawienie wartości w rekordzie
                $this->getRecord()->{$attribute->key} = $element->getValue();
            }
        }
    }