Exemplo n.º 1
0
 public function saveAjaxAction(\Difra\Param\AjaxInt $perpage, \Difra\Param\AjaxString $imgSizes, \Difra\Param\AjaxString $format, \Difra\Param\AjaxCheckbox $waterOn, \Difra\Param\AjaxCheckbox $waterPreviewOn, \Difra\Param\AjaxString $waterText = null, \Difra\Param\AjaxFile $waterFile = null)
 {
     $imgSizes2 = explode("\n", str_replace("\r", '', $imgSizes));
     $imgSizes3 = [];
     foreach ($imgSizes2 as $str) {
         $arr = explode(' ', $str);
         if (sizeof($arr) != 3 or !ctype_alpha($arr[0]) or !ctype_digit($arr[1]) or !ctype_digit($arr[2]) or $arr[0] == 'f' or isset($imgSizes3[$arr[0]]) or !$arr[1] or !$arr[2]) {
             $this->ajax->invalid('imgSizes');
             return;
         }
         $imgSizes3[$arr[0]] = [(int) $arr[1], (int) $arr[2]];
     }
     $conf = \Difra\Config::getInstance();
     $conf->setValue('gallery', 'perpage', $perpage->val());
     $conf->setValue('gallery', 'imgSizes', $imgSizes3);
     $conf->setValue('gallery', 'watermark', $waterOn->val());
     $conf->setValue('gallery', 'waterOnPreview', $waterPreviewOn->val());
     $waterText = !is_null($waterText) ? $waterText->val() : '';
     $conf->setValue('gallery', 'waterText', $waterText);
     $conf->setValue('gallery', 'format', $format->val());
     if (!is_null($waterFile)) {
         $path = DIR_DATA . 'gallery/';
         @mkdir($path, 0777, true);
         file_put_contents($path . 'watermark.png', \Difra\Libs\Images::convert($waterFile->val(), 'png'));
     }
     $this->ajax->notify($this->locale->getXPath('gallery/adm/config/saved'));
 }
Exemplo n.º 2
0
 public function savesettingsAjaxAction(\Difra\Param\AjaxString $consumerKey, \Difra\Param\AjaxString $consumerSecret, \Difra\Param\AjaxString $oauthToken, \Difra\Param\AjaxString $oauthSecret, \Difra\Param\AjaxCheckbox $postToTwitter)
 {
     $oAuthArray = ['consumerKey' => $consumerKey->val(), 'consumerSecret' => $consumerSecret->val(), 'accessToken' => $oauthToken->val(), 'accessTokenSecret' => $oauthSecret->val(), 'postToTwitter' => $postToTwitter->val()];
     \Difra\Config::getInstance()->set('oAuth', $oAuthArray);
     \Difra\Ajaxer::refresh();
     \Difra\Ajaxer::notify(\Difra\Locales::getInstance()->getXPath('twitter/adm/oAuth/settingsSaved'));
 }
Exemplo n.º 3
0
 public function saveAjaxAction(\Difra\Param\AjaxString $name, \Difra\Param\AjaxString $description, \Difra\Param\AjaxCheckbox $hidden, \Difra\Param\AjaxInt $id = null)
 {
     if ($id) {
         \Difra\Plugins\Gallery::getInstance()->albumUpdate($id->val(), $name->val(), $description->val(), !$hidden->val());
     } else {
         \Difra\Plugins\Gallery::getInstance()->albumAdd($name->val(), $description->val(), !$hidden->val());
     }
     $this->ajax->redirect('/adm/gallery/albums/');
 }
Exemplo n.º 4
0
 public function deleteAjaxAction(\Difra\Param\AnyInt $id, \Difra\Param\AjaxCheckbox $confirm = null)
 {
     if (!$confirm or !$confirm->val()) {
         $cat = \Difra\Plugins\Catalog\Category::get($id->val());
         $this->ajax->display('<span>' . $this->locale->getXPath('catalog/adm/category-delete-confirm-1') . htmlspecialchars($cat->getName()) . $this->locale->getXPath('catalog/adm/category-delete-confirm-2') . '</span>' . '<form action="/adm/catalog/categories/delete/' . $id . '" method="post" class="ajaxer">' . '<input type="hidden" name="confirm" value="1"/>' . '<input type="submit" value="Да"/>' . '<a href="#" onclick="ajaxer.close(this)" class="button">Нет</a>' . '</form>');
     } else {
         \Difra\Plugins\Catalog::getInstance()->deleteCategory($id->val());
         $this->ajax->refresh();
     }
 }
Exemplo n.º 5
0
 /**
  * Delete page
  * @param \Difra\Param\AnyInt $id
  * @param \Difra\Param\AjaxCheckbox $confirm
  */
 public function deleteAjaxAction(\Difra\Param\AnyInt $id, \Difra\Param\AjaxCheckbox $confirm = null)
 {
     if ($confirm and $confirm->val()) {
         \Difra\Plugins\CMS\Page::get($id->val())->delete();
         Ajaxer::close();
         Ajaxer::redirect('/adm/content/pages');
         return;
     }
     $page = \Difra\Plugins\CMS\Page::get($id->val());
     Ajaxer::display('<span>' . \Difra\Locales::get('cms/adm/delete-page-confirm-1') . $page->getTitle() . \Difra\Locales::get('cms/adm/delete-page-confirm-2') . '</span>' . '<form action="/adm/content/pages/delete/' . $id . '" method="post" class="ajaxer">' . '<input type="hidden" name="confirm" value="1"/>' . '<input type="submit" value="Да"/>' . '<a href="#" onclick="ajaxer.close(this)" class="button">Нет</a>' . '</form>');
 }
Exemplo n.º 6
0
 /**
  * Edit user (submit)
  * @param Param\AnyInt $id
  * @param Param\AjaxEmail $email
  * @param Param\AjaxCheckbox $change_pw
  * @param Param\AjaxString|null $new_pw
  * @param Param\AjaxData|null $fieldName
  * @param Param\AjaxData|null $fieldValue
  */
 public function saveAjaxAction(Param\AnyInt $id, Param\AjaxEmail $email, Param\AjaxCheckbox $change_pw, Param\AjaxString $new_pw = null, Param\AjaxData $fieldName = null, Param\AjaxData $fieldValue = null)
 {
     $user = User::getById($id->val());
     $user->setEmail($email->val());
     //        $userData['addonFields'] = !is_null($fieldName) ? $fieldName->val() : null;
     //        $userData['addonValues'] = !is_null($fieldValue) ? $fieldValue->val() : null;
     if ($change_pw->val() and $new_pw and $new_pw->val()) {
         $user->setPassword($new_pw->val());
         Ajaxer::notify(Locales::get('auth/adm/userDataSavedPassChanged'));
     } else {
         Ajaxer::notify(Locales::get('auth/adm/userDataSaved'));
     }
     Ajaxer::refresh();
 }
Exemplo n.º 7
0
 /**
  * User login
  * @param Difra\Param\AjaxString $login
  * @param Difra\Param\AjaxString $password
  * @param Difra\Param\AjaxCheckbox $rememberMe
  */
 public function indexAjaxAction(Param\AjaxString $login, Param\AjaxString $password, Param\AjaxCheckbox $rememberMe)
 {
     try {
         User::loginByPassword($login->val(), $password->val(), $rememberMe->val() == 1 ? true : false);
         $this->afterLoginAjax();
     } catch (\Difra\Exception $ex) {
         switch ($error = $ex->getMessage()) {
             case User::LOGIN_BADPASS:
                 Ajaxer::status('password', Locales::get('auth/login/' . $error), 'problem');
                 break;
             default:
                 Ajaxer::status('login', Locales::get('auth/login/' . $error), 'problem');
         }
     }
 }
Exemplo n.º 8
0
 public function savesettingsAjaxAction(\Difra\Param\AjaxCheckbox $onLine, \Difra\Param\AjaxString $title, \Difra\Param\AjaxString $link, \Difra\Param\AjaxInt $ttl, \Difra\Param\AjaxInt $size, \Difra\Param\AjaxCheckbox $image, \Difra\Param\AjaxCheckbox $cache, \Difra\Param\AjaxString $desc = null, \Difra\Param\AjaxString $copyright = null, \Difra\Param\AjaxFile $rsslogo = null)
 {
     $settingsArray = ['onLine' => $onLine->val(), 'title' => $title->val(), 'link' => $link->val(), 'ttl' => $ttl->val(), 'size' => $size->val(), 'image' => $image->val(), 'cache' => $cache->val()];
     if (!is_null($desc)) {
         $settingsArray['description'] = $desc->val();
     }
     if (!is_null($copyright)) {
         $settingsArray['copyright'] = $copyright->val();
     }
     if (!is_null($rsslogo)) {
         $settingsArray['logo'] = $rsslogo;
     }
     Difra\Plugins\Rss::saveSettings($settingsArray);
     $this->ajax->notify(\Difra\Locales::getInstance()->getXPath('rss/adm/saved'));
     $this->ajax->refresh();
 }
Exemplo n.º 9
0
 public function saveAjaxAction(\Difra\Param\AjaxString $title, \Difra\Param\AjaxString $pubDate, \Difra\Param\AjaxString $viewDate, \Difra\Param\AjaxCheckbox $visible, \Difra\Param\AjaxCheckbox $important, \Difra\Param\AjaxHTML $body, \Difra\Param\AjaxString $stopDate = null, \Difra\Param\AjaxHTML $announcement = null, \Difra\Param\AjaxString $sourceName = null, \Difra\Param\AjaxString $sourceURL = null, \Difra\Param\AjaxInt $id = null)
 {
     $data = ['title' => $title->val(), 'pubDate' => $pubDate->val(), 'viewDate' => $viewDate->val(), 'visible' => $visible->val(), 'important' => $important->val(), 'body' => $body];
     $data['stopDate'] = !is_null($stopDate) ? $stopDate->val() : null;
     $data['announcement'] = !is_null($announcement) ? $announcement : null;
     $data['sourceName'] = !is_null($sourceName) ? $sourceName->val() : null;
     $data['sourceURL'] = !is_null($sourceURL) ? $sourceURL->val() : null;
     $data['id'] = !is_null($id) ? $id->val() : null;
     \Difra\Plugins\News::getInstance()->addNews($data);
     if (!is_null($id)) {
         $this->ajax->notify(\Difra\Locales::getInstance()->getXPath('news/adm/updated'));
     } else {
         $this->ajax->notify(\Difra\Locales::getInstance()->getXPath('news/adm/add/added'));
     }
     $this->ajax->redirect('/adm/news/');
 }
Exemplo n.º 10
0
 public function updateAjaxAction(\Difra\Param\AjaxString $title, \Difra\Param\AjaxString $eventDate, \Difra\Param\AjaxString $beginDate, \Difra\Param\AjaxInt $priorityValue, \Difra\Param\AjaxCheckbox $visible, \Difra\Param\AjaxSafeHTML $shortDescription, \Difra\Param\AjaxInt $id, \Difra\Param\AjaxSafeHTML $description = null, \Difra\Param\AjaxInt $group = null, \Difra\Param\AjaxString $endDate = null, \Difra\Param\AjaxFile $eventImage = null)
 {
     $data = ['title' => $title->val(), 'eventDate' => $eventDate->val(), 'beginDate' => $beginDate->val(), 'id' => $id->val(), 'priority' => $priorityValue->val(), 'visible' => $visible->val(), 'shortDescription' => $shortDescription->val()];
     $data['description'] = is_null($description) ? null : $description->val();
     $data['group'] = is_null($group) ? null : $group->val();
     $data['endDate'] = is_null($endDate) ? null : $endDate->val();
     // из админки пока ставим так, потом добавим выбор юзера.
     $data['user'] = 1;
     $Announcements = \Difra\Plugins\Announcements::getInstance();
     // апдейтим анонс
     $eventId = $Announcements->create($data);
     if (is_null($eventId)) {
         $this->ajax->error(\Difra\Locales::getInstance()->getXPath('announcements/adm/notify/updateError'));
         return;
     }
     if (!is_null($eventImage)) {
         $Announcements->saveImage($eventId, $eventImage->val());
     }
     \Difra\Libs\Cookies::getInstance()->notify(\Difra\Locales::getInstance()->getXPath('announcements/adm/notify/goodUpdate'));
     $this->ajax->redirect('/adm/announcements/');
 }
Exemplo n.º 11
0
 public function saveAjaxAction(\Difra\Param\AjaxInt $maxdepth, \Difra\Param\AjaxInt $perpage, \Difra\Param\AjaxString $imgSizes, \Difra\Param\AjaxCheckbox $hideempty, \Difra\Param\AjaxCheckbox $allownoimage, \Difra\Param\AjaxCheckbox $usescale)
 {
     $imgSizes2 = explode("\n", str_replace("\r", '', $imgSizes));
     $imgSizes3 = [];
     foreach ($imgSizes2 as $str) {
         $arr = explode(' ', $str);
         if (sizeof($arr) != 3 or !ctype_alpha($arr[0]) or !ctype_digit($arr[1]) or !ctype_digit($arr[2]) or $arr[0] == 'f' or isset($imgSizes3[$arr[0]]) or !$arr[1] or !$arr[2]) {
             $this->ajax->invalid('imgSizes');
             return;
         }
         $imgSizes3[$arr[0]] = [(int) $arr[1], (int) $arr[2]];
     }
     $conf = \Difra\Config::getInstance();
     $conf->setValue('catalog', 'maxdepth', $maxdepth->val());
     $conf->setValue('catalog', 'perpage', $perpage->val());
     $conf->setValue('catalog', 'hideempty', $hideempty->val());
     $conf->setValue('catalog', 'imgSizes', $imgSizes3);
     $conf->setValue('catalog', 'allownoimage', $allownoimage->val());
     $conf->setValue('catalog', 'usescale', $usescale->val());
     $this->ajax->notify($this->locale->getXPath('catalog/adm/config/saved'));
 }
Exemplo n.º 12
0
 /**
  * Registration form submit (registration page version)
  * @param AjaxCheckbox $accept
  * @param AjaxCheckbox $redirect
  * @param AjaxString|null $email
  * @param AjaxString|null $password1
  * @param AjaxString|null $password2
  * @param AjaxString|null $login
  * @param AjaxString|null $capcha
  * @throws Exception
  */
 public function submitAjaxAction(AjaxCheckbox $accept, AjaxCheckbox $redirect, AjaxString $email = null, AjaxString $password1 = null, AjaxString $password2 = null, AjaxString $login = null, AjaxString $capcha = null)
 {
     $register = new Users\Register();
     $register->setEmail($email);
     $register->setLogin($login);
     $register->setPassword1($password1);
     $register->setPassword2($password2);
     $register->setCaptcha($capcha);
     if (!$register->validate()) {
         $register->callAjaxerEvents();
         return;
     }
     // EULA
     if (!$accept->val() and \Difra\Config::getInstance()->getValue('auth', 'eula')) {
         $this->root->appendChild($this->xml->createElement('eula'));
         Ajaxer::display(View::render($this->xml, 'auth-ajax', true));
         return;
     }
     $register->register();
     $this->afterSuccess();
 }
Exemplo n.º 13
0
 public function test_CheckBox()
 {
     $cb1 = new \Difra\Param\AjaxCheckbox('on');
     $this->assertTrue($cb1->val());
     $this->assertEquals((string) $cb1, '1');
     $cb2 = new \Difra\Param\AjaxCheckbox();
     $this->assertFalse($cb2->val());
     $this->assertEquals((string) $cb2, '');
     $this->assertEquals(\Difra\Param\AjaxCheckbox::getSource(), 'ajax');
     $this->assertTrue(\Difra\Param\AjaxCheckbox::isNamed());
     $this->assertTrue(\Difra\Param\AjaxCheckbox::isAuto());
 }
Exemplo n.º 14
0
 /**
  * Delete menu element
  * @param Difra\Param\AnyInt $id
  * @param Difra\Param\AjaxCheckbox $confirm
  */
 public function deleteAjaxAction(\Difra\Param\AnyInt $id, \Difra\Param\AjaxCheckbox $confirm = null)
 {
     if (!$confirm or !$confirm->val()) {
         \Difra\Ajaxer::display('<span>' . \Difra\Locales::get('cms/adm/menuitem/delete-item-confirm') . '</span>' . '<form action="/adm/content/menu/delete/' . $id . '" method="post" class="ajaxer">' . '<input type="hidden" name="confirm" value="1"/>' . '<input type="submit" value="Да"/>' . '<a href="#" onclick="ajaxer.close(this)" class="button">Нет</a>' . '</form>');
     } else {
         \Difra\Plugins\CMS\MenuItem::get($id->val())->delete();
         \Difra\Ajaxer::refresh();
         \Difra\Ajaxer::close();
     }
 }
Exemplo n.º 15
0
 /**
  * Save typograph settings
  * @param \Difra\Param\AjaxCheckbox $spaceAfterShortWord
  * @param \Difra\Param\AjaxInt $lengthShortWord
  * @param \Difra\Param\AjaxCheckbox $spaceBeforeLastWord
  * @param \Difra\Param\AjaxInt $lengthLastWord
  * @param \Difra\Param\AjaxCheckbox $spaceAfterNum
  * @param \Difra\Param\AjaxCheckbox $spaceBeforeParticles
  * @param \Difra\Param\AjaxCheckbox $delRepeatSpace
  * @param \Difra\Param\AjaxCheckbox $delSpaceBeforePunctuation
  * @param \Difra\Param\AjaxCheckbox $delSpaceBeforeProcent
  * @param \Difra\Param\AjaxCheckbox $doReplaceBefore
  * @param \Difra\Param\AjaxCheckbox $doReplaceAfter
  * @param \Difra\Param\AjaxCheckbox $doMacros
  */
 public function saveAjaxAction(\Difra\Param\AjaxCheckbox $spaceAfterShortWord, \Difra\Param\AjaxInt $lengthShortWord, \Difra\Param\AjaxCheckbox $spaceBeforeLastWord, \Difra\Param\AjaxInt $lengthLastWord, \Difra\Param\AjaxCheckbox $spaceAfterNum, \Difra\Param\AjaxCheckbox $spaceBeforeParticles, \Difra\Param\AjaxCheckbox $delRepeatSpace, \Difra\Param\AjaxCheckbox $delSpaceBeforePunctuation, \Difra\Param\AjaxCheckbox $delSpaceBeforeProcent, \Difra\Param\AjaxCheckbox $doReplaceBefore, \Difra\Param\AjaxCheckbox $doReplaceAfter, \Difra\Param\AjaxCheckbox $doMacros)
 {
     $settingsArray = ['spaceAfterShortWord' => $spaceAfterShortWord->val(), 'lengthShortWord' => $lengthShortWord->val(), 'spaceBeforeLastWord' => $spaceBeforeLastWord->val(), 'lengthLastWord' => $lengthLastWord->val(), 'spaceAfterNum' => $spaceAfterNum->val(), 'spaceBeforeParticles' => $spaceBeforeParticles->val(), 'delRepeatSpace' => $delRepeatSpace->val(), 'delSpaceBeforePunctuation' => $delSpaceBeforePunctuation->val(), 'delSpaceBeforeProcent' => $delSpaceBeforeProcent->val(), 'doReplaceBefore' => $doReplaceBefore->val(), 'doReplaceAfter' => $doReplaceAfter->val(), 'doMacros' => $doMacros->val()];
     \Difra\Config::getInstance()->set('typograph', $settingsArray);
     $this->ajax->notify(\Difra\Locales::getInstance()->getXPath('adm/typograph/saved'));
 }
Exemplo n.º 16
0
 public function updateAjaxAction(\Difra\Param\AjaxString $title, \Difra\Param\AjaxString $eventDate, \Difra\Param\AjaxString $beginDate, \Difra\Param\AjaxInt $priorityValue, \Difra\Param\AjaxCheckbox $visible, \Difra\Param\AjaxInt $id, \Difra\Param\AjaxHTML $description, \Difra\Param\AjaxInt $group = null, \Difra\Param\AjaxString $shortDescription = null, \Difra\Param\AjaxString $endDate = null, \Difra\Param\AjaxFile $eventImage = null, \Difra\Param\AjaxData $additionalField = null, \Difra\Param\AjaxString $fromEventDate = null, \Difra\Param\AjaxInt $category = null, \Difra\Param\AjaxString $scheduleName = null, \Difra\Param\AjaxData $scheduleField = null, \Difra\Param\AjaxData $scheduleValue = null, \Difra\Param\AjaxInt $location = null, Param\AjaxInt $userId = null)
 {
     $data = ['title' => $title->val(), 'eventDate' => $eventDate->val(), 'beginDate' => $beginDate->val(), 'id' => $id->val(), 'priority' => $priorityValue->val(), 'visible' => $visible->val(), 'description' => $description];
     $data['shortDescription'] = is_null($shortDescription) ? null : $shortDescription->val();
     $data['group'] = is_null($group) ? null : $group->val();
     $data['endDate'] = is_null($endDate) ? null : $endDate->val();
     $data['category'] = is_null($category) ? null : $category->val();
     $data['fromEventDate'] = is_null($fromEventDate) ? null : $fromEventDate->val();
     $data['location'] = is_null($location) ? null : $location->val();
     if (is_null($data['fromEventDate']) || $data['fromEventDate'] == '' || $data['fromEventDate'] == 'null') {
         $data['fromEventDate'] = $eventDate->val();
     }
     // из админки пока ставим так, потом добавим выбор юзера.
     if (!is_null($userId)) {
         $data['user'] = $userId->val();
     } else {
         $data['user'] = 1;
     }
     $Announcements = \Difra\Plugins\Announcements::getInstance();
     // апдейтим анонс
     $eventId = $Announcements->create($data);
     if (is_null($eventId)) {
         $this->ajax->error(\Difra\Locales::getInstance()->getXPath('announcements/adm/notify/updateError'));
         return;
     }
     // сохраняем дополнительные поля
     if (!is_null($additionalField)) {
         \Difra\Plugins\Announcements\Additionals::saveData($eventId, $additionalField->val());
     }
     if (!is_null($eventImage)) {
         $Announcements->saveImage($eventId, $eventImage);
     }
     // смотрим есть ли расписание
     if (!is_null($scheduleField) && !is_null($scheduleValue)) {
         $scheduleName = !is_null($scheduleName) ? $scheduleName->val() : null;
         $Announcements->saveSchedules($eventId, $scheduleName, $scheduleField->val(), $scheduleValue->val());
     }
     $this->ajax->notify(\Difra\Locales::getInstance()->getXPath('announcements/adm/notify/goodUpdate'));
     $this->ajax->redirect('/adm/announcements/');
 }