public function indexAction() { $ilchdate = new IlchDate(); $mediaMapper = new MediaMapper(); $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('media'), array('controller' => 'index', 'action' => 'index'))->add($this->getTranslator()->trans('import'), array('action' => 'index')); $directory = $this->getConfig()->get('media_uploadpath'); $filetypes = $this->getConfig()->get('media_ext_img'); $globMediaArray = glob($directory . "*.*"); if ($this->getRequest()->getPost('save') === 'save') { foreach ($this->getRequest()->getPost('check_medias') as $media) { $upload = new \Ilch\Upload(); $upload->setFile($media); $upload->setTypes($filetypes); $upload->setPath($directory); $upload->save(); $model = new \Modules\Media\Models\Media(); $model->setUrl($upload->getUrl()); $model->setUrlThumb($upload->getUrlThumb()); $model->setEnding($upload->getEnding()); $model->setName($upload->getName()); $model->setDatetime($ilchdate->toDb()); $mediaMapper->save($model); } $this->addMessage('Success'); $this->redirect(array('action' => 'index')); } $mediaListAll = $mediaMapper->getMediaListAll(); $existsMediaArray = array(); if (!empty($mediaListAll)) { foreach ($mediaListAll as $existsMedia) { $existsMediaArray[] = $directory . $existsMedia->getName() . '.' . $existsMedia->getEnding(); } } $newMediaArray = array(); foreach ($globMediaArray as $globMedia) { $upload = new \Ilch\Upload(); $upload->setFile($globMedia); $existsUrl = $mediaMapper->getByWhere(array('url' => $directory . $upload->getName() . '.' . $upload->getEnding())); $existsUrlThumb = $mediaMapper->getByWhere(array('url_thumb' => $directory . $upload->getName() . '.' . $upload->getEnding())); if (!$existsUrl && !$existsUrlThumb) { $newMediaArray[] = $directory . $upload->getName() . '.' . $upload->getEnding(); } } $this->getView()->set('media', array_diff($newMediaArray, $existsMediaArray)); $this->getView()->set('media_ext_img', $this->getConfig()->get('media_ext_img')); $this->getView()->set('path', $directory); }
public function uploadAction() { $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('media'), array('action' => 'index'))->add($this->getTranslator()->trans('mediaUpload'), array('action' => 'upload')); if (!is_writable(APPLICATION_PATH . '/modules/media/static/upload/')) { $this->addMessage('writableMedia', 'danger'); } $ilchdate = new IlchDate(); $mediaMapper = new MediaMapper(); if ($this->getRequest()->isPost()) { $upload = new \Ilch\Upload(); $upload->setFile($_FILES['upl']['name']); $upload->setPath($this->getConfig()->get('media_uploadpath')); $upload->upload(); $model = new \Modules\Media\Models\Media(); $model->setUrl($upload->getUrl()); $model->setUrlThumb($upload->getUrlThumb()); $model->setEnding($upload->getEnding()); $model->setName($upload->getName()); $model->setDatetime($ilchdate->toDb()); $mediaMapper->save($model); } }
public function indexAction() { $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('checkout'), array('action' => 'index')); $ilchdate = new IlchDate(); $checkoutMapper = new CheckoutMapper(); if ($this->getRequest()->isPost()) { $name = $this->getRequest()->getPost('name'); $datetime = trim($this->getRequest()->getPost('datetime')); $usage = trim($this->getRequest()->getPost('usage')); $amount = trim($this->getRequest()->getPost('amount')); if (empty($name)) { $this->addMessage('missingName', 'danger'); } elseif (empty($usage)) { $this->addMessage('missingUsage', 'danger'); } elseif (empty($amount)) { $this->addMessage('missingAmount', 'danger'); } else { $model = new \Modules\Checkout\Models\Entry(); $model->setName($name); $model->setDatetime($datetime); $model->setUsage($usage); $model->setAmount($amount); $checkoutMapper->save($model); $this->addMessage('saveSuccess'); } } $checkout = $checkoutMapper->getEntries(); $amount = $checkoutMapper->getAmount(); $amountplus = $checkoutMapper->getAmountPlus(); $amountminus = $checkoutMapper->getAmountMinus(); $this->getView()->set('checkout', $checkout); $this->getView()->set('checkoutdate', $ilchdate->toDb()); $this->getView()->set('amount', $amount); $this->getView()->set('amountplus', $amountplus); $this->getView()->set('amountminus', $amountminus); }
public function newEntryAction() { $this->getLayout()->getHmenu()->add($this->getTranslator()->trans('guestbook'), array('action' => 'index'))->add($this->getTranslator()->trans('entry'), array('action' => 'newentry')); $guestbookMapper = new GuestbookMapper(); $ilchdate = new IlchDate(); $post = ['name' => '', 'email' => '', 'text' => '', 'homepage' => '']; if ($this->getRequest()->isPost() and $this->getRequest()->getPost('bot') === '') { $post = ['name' => $this->getRequest()->getPost('name'), 'email' => trim($this->getRequest()->getPost('email')), 'text' => trim($this->getRequest()->getPost('text')), 'homepage' => trim($this->getRequest()->getPost('homepage')), 'captcha' => trim($this->getRequest()->getPost('captcha'))]; /* Selbstverständlich können auch eigene Validatoren hinzugefügt werden. Hier gibt es zwei Möglichkeiten: Möglichkeit 1: Eine Closure oder auch anonyme Funktion Zu beachten ist hier, dass der Name des Validators nicht bereits vorhanden sein darf, 'same' würde eine Exception werfen! Ansonsten wird immer der Parameter $data übergeben, in dem am Ende alle Informationen stecken, die der Validator braucht. $data->getValue() -> Der Wert, der durch den Benutzer im Formular eingetragen wurde $data->getInput() -> Alle Daten, die durch den Benutzer eingetragen wurden $data->getParam() -> Hier koennen die an den Validator übergebenen Parameter gefunden werden $data->getParams() -> Gibt einfach das komplette Array an Parametern zurück Zurückgeben muss diese Closure nun immer ein Array mit mindestens dem Ergebnis der Validation ('result') und dem Übersetzungsschlüssel für die Fehlermeldung ('error_key'). Alternativ können noch weitere Parameter für die Fehlermeldung übergeben werden ('error_params'). Soll ein Parameter Übersetzt werden, muss er als Array übergeben werden, wo zunächst der der Übersetzungsschlüssel und dann ein true hineingehört ['key', true]. Siehe Beispiel, hier soll der Name des anderen Feldes ebenfalls übersetzt werden. Möglichkeit 2: Eine eigene Validatorklasse, die von \Ilch\Validation\Validators\Base erben sollte Validation::addValidator('same2', '\my\namespace\Validators\Same'); Als Vergleich können die bestehenden Validators genommen werden. */ Validation::addValidator('same2', function ($data) { $validation = $data->getValue() == array_dot($data->getInput(), $data->getParam('as')); return ['result' => $validation, 'error_key' => 'validation.errors.differentValues', 'error_params' => [[$data->getParam('as'), true]]]; }); /* Standardmäßig werden alle Feldnamen automatisch übersetzt. D.h. wenn ein Input-Feld mit name="email" existiert, dann wird bei der Generierung der Fehlermeldungen eine Übersetzung mit dem Schlüssel 'email' gesucht. In den meisten Fällen sollte das kein Problem sein. Falls doch, können mit Validation::setCustomFieldAliases() aliase festgelegt werden, nach denen stattdessen gesucht werden soll. Als Beispiel dient in diesem Fall das Feld 'homepage'. Das Feld hat den Namen 'homepage', bei der Übersetzung wurde jedoch der Schlüssel 'page' gewählt. */ Validation::setCustomFieldAliases(['homepage' => 'page']); /* Validation rules werden als ein Array übergeben und sind immer im Format wie unten zu sehen. Bei multidimensionalen Arrays wird ebenfalls die Punktnotation unterstützt, d.h. um an $post['foo']['bar'] zu kommen, muss einfach nur 'foo.bar' als Schlüssel gesetzt werden. Die einzelnen Validatoren werden mit | getrennt. Weitere Parameter werden mit einem Komma getrennt, während Schlüssel und Wert mit einem Doppelpunkt getrennt werden, Beispiel: 'name' => 'required|length,max:16,min:3', Um für eine Validation rule eine eigene Fehlermeldung anzugeben, die alle vom Validator selbst generierten Fehlermeldungen überschreibt, kann jeder Validation rule ein customErrorAlias:translation.key als Parameter mitgegeben werden. Siehe Beispiel: 'email' => 'required,customErrorAlias:unsupportedEmailAddress|email Bei Validatoren, die unterschiedliche Fehlermeldungen generieren können, können stattdessen auch die einzelnen, spezifischen Fehlermeldungen überschrieben werden. Dies ist dann allerdings immer vom genutzten Validator abhängig. */ $validation = Validation::create($post, ['captcha' => 'captcha', 'name' => 'required', 'email' => 'required|email', 'text' => 'required', 'homepage' => 'url']); /* Um herauszufinden, ob eine Validation nun erfolgreich war oder ob Fehler gefunden wurden, ist die Methode isValid nötig. */ if ($validation->isValid()) { $model = new \Modules\Guestbook\Models\Entry(); $model->setName($post['name']); $model->setEmail($post['email']); $model->setText($post['text']); $model->setHomepage($post['homepage']); $model->setDatetime($ilchdate->toDb()); $model->setFree($this->getConfig()->get('gbook_autosetfree')); $guestbookMapper->save($model); if ($this->getConfig()->get('gbook_autosetfree') == 0) { $this->addMessage('check', 'success'); } unset($_SESSION['captcha']); $this->redirect(array('action' => 'index')); } unset($_SESSION['captcha']); /* Nun werden noch die Fehler generiert und an das View übergeben. $validation->getErrors() benötigt immer die aktuelle Translator-Instanz, damit die Fehlermeldungen übersetzt werden können. Zurückgegeben wird einfach nur ein Array mit Fehler-Strings Ansonsten siehe newEntry.php */ $this->getView()->set('errors', $validation->getErrors($this->getTranslator())); /* $validation->getFieldsWithError() gibt ein Array mit allen Feldern, die Fehler beinhalten, zurück. */ $errorFields = $validation->getFieldsWithError(); } $this->getView()->set('post', $post); /* Um die Felder mit Fehlern dementsprechen Kennzeichnen zu können, wird noch ein Array mit allen Feldernamen, die Fehler beinhalten, ans View übergeben. Falls $errorFields nicht existiert wird einfach ein leeres Array übergeben, um eine Fehlermeldung zu vermeiden. */ $this->getView()->set('errorFields', isset($errorFields) ? $errorFields : []); }
public function uploadGalleryAction() { $ilchdate = new IlchDate(); $mediaMapper = new MediaMapper(); $this->getLayout()->getHmenu()->add($this->getTranslator()->trans('media'), array('action' => 'index'))->add($this->getTranslator()->trans('mediaUpload'), array('action' => 'upload')); if (!is_writable(APPLICATION_PATH . '/../' . $this->getConfig()->get('usergallery_uploadpath'))) { $this->addMessage('writableMedia', 'danger'); } if ($this->getRequest()->isPost()) { if (!is_dir(APPLICATION_PATH . '/../' . $this->getConfig()->get('usergallery_uploadpath') . $this->getUser()->getId())) { mkdir(APPLICATION_PATH . '/../' . $this->getConfig()->get('usergallery_uploadpath') . $this->getUser()->getId(), 0777); } $upload = new \Ilch\Upload(); $upload->setFile($_FILES['upl']['name']); $upload->setTypes($this->getConfig()->get('usergallery_filetypes')); $upload->setPath($this->getConfig()->get('usergallery_uploadpath') . $this->getUser()->getId() . '/'); $upload->upload(); $model = new MediaModel(); $model->setUserId($this->getUser()->getId()); $model->setUrl($upload->getUrl()); $model->setUrlThumb($upload->getUrlThumb()); $model->setEnding($upload->getEnding()); $model->setName($upload->getName()); $model->setDatetime($ilchdate->toDb()); $mediaMapper->save($model); } }
public function dialognewAction() { $DialogMapper = new DialogMapper(); $ilchdate = new IlchDate(); $user_one = $this->getUser()->getId(); $user_two = $this->getRequest()->getParam('id'); if ($user_one != $user_two) { $c_exist = $DialogMapper->getDialogCheck($user_one, $user_two); if ($c_exist == 0) { $model = new \Modules\User\Models\Dialog(); $model->setUserOne($user_one); $model->setUserTwo($user_two); $model->setTime($ilchdate->toDb()); $DialogMapper->save($model); $c_id = $DialogMapper->getDialogId($user_one); $this->redirect(array('action' => 'dialogview', 'id' => $c_id->getCId())); } $c_id = $DialogMapper->getDialogId($user_one); $this->redirect(array('action' => 'dialogview', 'id' => $c_id->getCId())); } }