/**
  * Executes edit action
  *
  * @param sfRequest $request A request object
  */
 public function executeEdit($request)
 {
     $this->forward404If($this->id && !$this->isEditCommunity);
     $this->community = Doctrine::getTable('Community')->find($this->id);
     if (!$this->community) {
         $this->community = new Community();
     } else {
         if ($request->isMethod('post') && $request->hasParameter('is_delete')) {
             $this->redirect('@community_delete');
         }
     }
     $this->communityForm = new CommunityForm($this->community);
     $this->communityConfigForm = new CommunityConfigForm(array(), array('community' => $this->community));
     $this->communityFileForm = isset($this->enableImage) && $this->enableImage ? new CommunityFileForm(array(), array('community' => $this->community)) : new CommunityFileForm();
     if ($request->isMethod('post')) {
         $params = $request->getParameter('community');
         $params['id'] = $this->id;
         $this->communityForm->bind($params);
         $this->communityConfigForm->bind($request->getParameter('community_config'));
         $this->communityFileForm->bind($request->getParameter('community_file'), $request->getFiles('community_file'));
         if ($this->communityForm->isValid() && $this->communityConfigForm->isValid() && $this->communityFileForm->isValid()) {
             $this->communityForm->save();
             $this->communityConfigForm->save();
             $this->communityFileForm->save();
             $this->redirect('@community_home?id=' . $this->community->getId());
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function execute($request)
 {
     sfContext::getInstance()->getConfiguration()->loadHelpers('Url');
     $this->editForm = new dayForm();
     $this->day = DaysOrderTable::getInstance()->findOneById($this->getRequest()->getParameter('id'));
     if ($this->day) {
         $this->editForm->setDefaults($this->day->toArray());
     }
     if ($this->getRequest()->hasParameter('editDay')) {
         $this->editForm->bind($this->getRequest()->getParameter('editDay'), $this->getRequest()->getFiles('editDay'));
         if ($this->editForm->isValid()) {
             $files = $request->getFiles('editDay');
             $i = '';
             foreach ($files as $key => $file) {
                 if ($file['name']) {
                     $image = new UploadService();
                     $image->setPath('./uploads/');
                     $image->setFile($file);
                     $image->setFileName(md5($file['name'] . date('YmdGis')) . '.' . UploadService::findexts($file['name']));
                     $image->save();
                     $this->day['image_name' . $i] = $image->getFileName();
                 }
                 $i = 2;
             }
             $this->day->fromArray(array('day_number' => $this->editForm->getValue('day_number'), 'day_tip' => $this->editForm->getValue('day_tip'), 'day_letter' => $this->editForm->getValue('day_letter')));
             $this->day->save();
             $this->getUser()->setFlash('editSuccess', true);
             $this->redirect(url_for2('default', array('module' => 'days', 'action' => 'index')));
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * Executes feedback action
  *
  */
 public function executeFeedback(sfRequest $request)
 {
     $section = $request->getParameter('section', false);
     $this->form = new aFeedbackForm($section);
     $this->feedbackSubmittedBy = false;
     $this->failed = false;
     sfContext::getInstance()->getConfiguration()->loadHelpers(array('Tag', 'Url'));
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter('feedback'), $request->getFiles('feedback'));
         // $this->form->bind(array_merge($request->getParameter('feedback'), array('captcha' => $request->getParameter('captcha'))), $request->getFiles('feedback'));
         if ($this->form->isValid()) {
             $feedback = $this->form->getValues();
             $feedback['browser'] = $_SERVER['HTTP_USER_AGENT'];
             try {
                 aZendSearch::registerZend();
                 $mail = new Zend_Mail();
                 $mail->setBodyText($this->getPartial('feedbackEmailText', array('feedback' => $feedback)))->setFrom($feedback['email'], $feedback['name'])->addTo(sfConfig::get('app_aFeedback_email_auto'))->setSubject($this->form->getValue('subject', 'New aBugReport submission'));
                 if ($screenshot = $this->form->getValue('screenshot')) {
                     $mail->createAttachment(file_get_contents($screenshot->getTempName()), $screenshot->getType());
                 }
                 $mail->send();
                 // A new form for a new submission
                 $this->form = new aFeedbackForm();
             } catch (Exception $e) {
                 $this->logMessage('Request email failed: ' . $e->getMessage(), 'err');
                 $this->failed = true;
                 return 'Success';
             }
             $this->getUser()->setFlash('reportSubmittedBy', $feedback['name']);
             $this->redirect($feedback['section']);
         }
     }
 }
Ejemplo n.º 4
0
 public function executeApply(sfRequest $request)
 {
     //If user is logged in, we're forwarding him to settings page from apply
     $this->forwardIf($this->getUser()->isAuthenticated(), 'sfApply', 'settings');
     // we're getting default or customized applyForm for the task
     if (!($this->form = $this->newForm('applyForm')) instanceof sfGuardUserProfileForm) {
         // if the form isn't instance of sfApplyApplyForm, we don't accept it
         throw new InvalidArgumentException('The custom apply form should be instance of sfApplyApplyForm');
     }
     //Code below is used when user is sending his application!
     if ($request->isMethod('post')) {
         //gathering form request in one array
         $formValues = $request->getParameter($this->form->getName());
         if (sfConfig::get('app_recaptcha_enabled')) {
             $captcha = array('recaptcha_challenge_field' => $request->getParameter('recaptcha_challenge_field'), 'recaptcha_response_field' => $request->getParameter('recaptcha_response_field'));
             //Adding captcha to form array
             $formValues = array_merge($formValues, array('captcha' => $captcha));
         }
         //binding request form parameters with form
         $this->form->bind($formValues, $request->getFiles($this->form->getName()));
         if ($this->form->isValid()) {
             $guid = "n" . self::createGuid();
             $this->form->getObject()->setValidate($guid);
             $date = new DateTime();
             $this->form->getObject()->setValidateAt($date->format('Y-m-d H:i:s'));
             $this->form->save();
             $confirmation = sfConfig::get('app_sfForkedApply_confirmation');
             if ($confirmation['apply']) {
                 try {
                     //Extracting object and sending creating verification mail
                     $profile = $this->form->getObject();
                     $this->sendVerificationMail($profile);
                     return 'After';
                 } catch (Exception $e) {
                     //Cleaning after possible exception thrown in ::sendVerificationMail() method
                     $profile = $this->form->getObject();
                     $user = $profile->getUser();
                     $profile->delete();
                     $user->delete();
                     //We rethrow exception for the dev environment. This catch
                     //catches other than mailer exception, i18n as well. So developer
                     //now knows what he's up to.
                     if (sfContext::getInstance()->getConfiguration()->getEnvironment() === 'dev') {
                         throw $e;
                     }
                     return 'MailerError';
                 }
             } else {
                 $this->activateUser($this->form->getObject()->getUser());
                 $this->getUser()->setFlash('notice', "<h3>Поздравляем с успешной регистрацией!</h3>\n\n                <p>Теперь Вы можете пользоваться всеми возможностями сервиса:</p>\n                <ul>\n                    <li>Добавлять новые места</li>\n                    <li>Добавлять отчеты</li>\n                    <li>Добавлять события</li>\n                    <li>Открывать обсуждения</li>\n                    <li>Голосовать комментировать и все подряд</li>\n                    <li>Заводить друзей</li>\n                    <li>И многое другое...</li>\n                </ul>");
                 return $this->redirect('@homepage');
             }
         }
     }
 }
 /**
  * Executes create action
  *
  * @param sfRequest $request A request object
  */
 public function executeCreate($request)
 {
     $this->form = new BbsCommentForm();
     $this->form->getObject()->setMemberId($this->getUser()->getMemberId());
     $this->form->getObject()->setBbs($this->bbs);
     $this->form->bind($request->getParameter($this->form->getName()), $request->getFiles($this->form->getName()));
     if ($this->form->isValid()) {
         $this->form->save();
         $this->redirect('@bbs_show?id=' . $this->bbs->getId());
     }
     $this->setTemplate('../../bbs/templates/show');
     return sfView::SUCCESS;
 }
 /**
  * Executes create action
  *
  * @param sfRequest $request A request object
  */
 public function executeCreate($request)
 {
     $this->forward404Unless($this->communityTopic->isCreatableCommunityTopicComment($this->getUser()->getMemberId()));
     $this->form = new CommunityTopicCommentForm();
     $this->form->getObject()->setMemberId($this->getUser()->getMemberId());
     $this->form->getObject()->setCommunityTopic($this->communityTopic);
     $this->form->bind($request->getParameter($this->form->getName()), $request->getFiles($this->form->getName()));
     if ($this->form->isValid()) {
         $this->form->save();
         $this->redirect('@communityTopic_show?id=' . $this->communityTopic->getId());
     }
     $this->setTemplate('../../communityTopic/templates/show');
     return sfView::SUCCESS;
 }
 /**
  * Executes create action
  *
  * @param sfRequest $request A request object
  */
 public function executeCreate($request)
 {
     $this->forward404Unless($this->communityEvent->isCreatableCommunityEventComment($this->getUser()->getMemberId()));
     $this->form = new CommunityEventCommentForm();
     $this->form->getObject()->setMemberId($this->getUser()->getMemberId());
     $this->form->getObject()->setCommunityEvent($this->communityEvent);
     $this->form->bind($request->getParameter($this->form->getName()), $request->getFiles($this->form->getName()));
     if ($this->form->isValid()) {
         try {
             if (!$request->getParameter('comment')) {
                 $this->form->getObject()->toggleEventMember($this->getUser()->getMemberId());
             }
             $this->form->save();
             $this->redirect('@communityEvent_show?id=' . $this->communityEvent->getId());
         } catch (opCommunityEventMemberAppendableException $e) {
             $this->getUser()->setFlash('error', $e->getMessage(), false);
         }
     }
     $this->setTemplate('../../communityEvent/templates/show');
     return sfView::SUCCESS;
 }
Ejemplo n.º 8
0
 public function executeSettings(sfRequest $request)
 {
     // sfApplySettingsForm inherits from sfApplyApplyForm, which
     // inherits from sfGuardUserProfile. That minimizes the amount
     // of duplication of effort. If you want, you can use a different
     // form class. I suggest inheriting from sfApplySettingsForm and
     // making further changes after calling parent::configure() from
     // your own configure() method.
     $profile = $this->getUser()->getProfile();
     $this->form = $this->newForm('sfApplySettingsForm', $profile);
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter('sfApplySettings'), $request->getFiles('sfApplySettings'));
         if ($this->form->isValid()) {
             $this->form->save();
             return $this->redirect('people/show?username=' . $this->getUser()->getUsername());
         }
     }
 }
Ejemplo n.º 9
0
 /**
  * Executes configImage action
  *
  * @param sfRequest $request A request object
  */
 public function executeConfigImage($request)
 {
     $options = array('member' => $this->getUser()->getMember());
     $this->form = new MemberImageForm(array(), $options);
     if ($request->isMethod(sfWebRequest::POST)) {
         try {
             if (!$this->form->bindAndSave($request->getParameter('member_image'), $request->getFiles('member_image'))) {
                 $errors = $this->form->getErrorSchema()->getErrors();
                 if (isset($errors['file'])) {
                     $error = $errors['file'];
                     $i18n = $this->getContext()->getI18N();
                     $this->getUser()->setFlash('error', $i18n->__($error->getMessageFormat(), $error->getArguments()));
                 }
             }
         } catch (opRuntimeException $e) {
             $this->getUser()->setFlash('error', $e->getMessage());
         }
         $this->redirect('@member_config_image');
     }
 }
Ejemplo n.º 10
0
 public function executeEditImages(sfRequest $request)
 {
     $this->forward404Unless(aMediaTools::userHasUploadPrivilege());
     // I'd put these in the form class, but I can't seem to access them
     // there unless the whole form is valid. I need them as metadata
     // to control the form's behavior, so that won't cut it.
     // Perhaps I could put them in a second form, since there's
     // no actual restriction on multiple form objects inside a
     // single HTML form element.
     $this->firstPass = $request->getParameter('first_pass');
     $active = $request->getParameter('active');
     $this->forward404Unless(preg_match("/^\\d+[\\d\\,]*\$/", $active));
     $this->active = explode(",", $request->getParameter('active'));
     $this->form = new aMediaEditImagesForm($this->active);
     $this->form->bind($request->getParameter('a_media_items'), $request->getFiles('a_media_items'));
     if ($this->form->isValid()) {
         $values = $this->form->getValues();
         // This is NOT automatic since this isn't a Doctrine form. http://thatsquality.com/articles/can-the-symfony-forms-framework-be-domesticated-a-simple-todo-list
         foreach ($this->form->getEmbeddedForms() as $key => $itemForm) {
             $itemForm->updateObject($values[$key]);
             $object = $itemForm->getObject();
             if ($object->getId()) {
                 // We're creating new objects only here, but the embedded form
                 // supports an id for an existing object, which is useful in
                 // other contexts. Prevent hackers from stuffing in changes
                 // to media items they don't own.
                 $this->forward404();
             }
             // updateObject doesn't handle one-to-many relations, only save() does, and we
             // can't do save() in this embedded form, so we need to implement the categories
             // relation ourselves
             $object->unlink('MediaCategories');
             $object->link('MediaCategories', $values[$key]['media_categories_list']);
             // Everything except the actual copy which can't succeed
             // until the slug is cast in stone
             $file = $values[$key]['file'];
             $object->preSaveImage($file->getTempName());
             $object->save();
             $object->saveImage($file->getTempName());
         }
         return $this->redirect('aMedia/resume');
     }
 }
Ejemplo n.º 11
0
 public function executeSettings(sfRequest $request)
 {
     // sfApplySettingsForm inherits from sfApplyApplyForm, which
     // inherits from sfGuardUserProfile. That minimizes the amount
     // of duplication of effort. If you want, you can use a different
     // form class. I suggest inheriting from sfApplySettingsForm and
     // making further changes after calling parent::configure() from
     // your own configure() method.
     $profile = $this->getUser()->getProfile();
     // we're getting default or customized settingsForm for the task
     if (!($this->form = $this->newForm('settingsForm', $profile)) instanceof sfGuardUserProfileForm) {
         // if the form isn't instance of sfApplySettingsForm, we don't accept it
         throw new InvalidArgumentException(sfContext::getInstance()->getI18N()->__('The custom %action% form should be instance of %form%', array('%action%' => 'settings', '%form%' => 'sfApplySettingsForm'), 'sfForkedApply'));
     }
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter($this->form->getName()), $request->getFiles($this->form->getName()));
         if ($this->form->isValid()) {
             $this->form->save();
             return $this->redirect('@homepage');
         }
     }
 }
Ejemplo n.º 12
0
 /**
  * Загрузить данные пользователя, AJAX
  */
 public function executeImportCsv(sfRequest $request)
 {
     $csvFile = $request->getFiles('data');
     $import = new myImportCsvVkoshelke($csvFile['tmp_name']);
     if (!$import->execute($this->getUser()->getUserRecord())) {
         $errorMessage = 'Не удалось разобрать CSV';
         $this->myLogMessage(__METHOD__, 'fail', $errorMessage, $errorMessage, file_get_contents($csvFile['tmp_name']));
         return $this->renderJsonError($errorMessage);
     }
     $ymlFileName = sprintf("%s/php_%s_%s.yml", sys_get_temp_dir(), __CLASS__, rand(1000000.0, 10000000.0));
     try {
         file_put_contents($ymlFileName, $import->getYmlData());
         Doctrine::loadData($ymlFileName, true);
         unlink($ymlFileName);
     } catch (Exception $e) {
         $errorMessage = 'Импорт не удалось загрузить данные в БД';
         $this->myLogMessage(__METHOD__, 'fail', $errorMessage, $errorMessage, file_get_contents($csvFile['tmp_name']));
         return $this->renderJsonError($errorMessage);
     }
     return $this->renderJsonSuccess('Импорт данных успешно завершён');
 }