public function executeEdit(dmWebRequest $request) { $widget = $this->requireWidget(); try { $widgetType = $this->getService('widget_type_manager')->getWidgetType($widget); $formClass = $widgetType->getFormClass(); $form = new $formClass($widget); } catch (Exception $e) { if (sfConfig::get('dm_debug')) { throw $e; } return $this->renderError(); } if ($request->isMethod('post') && $form->bindAndValid($request)) { $form->updateWidget(); if ($request->hasParameter('and_save')) { $widget->save(); return $this->renderText('saved'); } $widgetArray = $widget->toArrayWithMappedValue(); try { $widgetRenderer = $this->getServiceContainer()->setParameter('widget_renderer.widget', $widgetArray)->getService('widget_renderer'); $js = $widgetRenderer->getJavascripts(); $css = $widgetRenderer->getStylesheets(); } catch (Exception $e) { $js = $css = array(); } return $this->renderAsync(array('html' => $this->renderEdit(new $formClass($widget), $widgetType, false) . dmString::ENCODING_SEPARATOR . $this->getService('page_helper')->renderWidget($widgetArray), 'js' => $js, 'css' => $css), true); } return $this->renderAsync(array('html' => $this->renderEdit($form, $widgetType, $request->isMethod('get')), 'js' => array_merge(array('lib.hotkeys'), $form->getJavascripts()), 'css' => $form->getStylesheets()), true); }
public function executeEdit(dmWebRequest $request) { $this->forward404Unless($this->autoSeo = dmDb::table('DmAutoSeo')->find($request->getParameter('pk'))); if (!$this->autoSeo->getTargetDmModule() instanceof dmProjectModule) { throw new dmException($this->autoSeo->getTargetDmModule() . ' is not a project module'); } $this->form = new DmAutoSeoForm($this->autoSeo); if ($request->isMethod('post')) { $this->form->setSeoSynchronizer($this->getService('seo_synchronizer')); if ($this->form->bindAndValid($request)) { if ($request->getParameter('save')) { $this->form->save(); $this->getUser()->logInfo('The item was updated successfully.'); return $this->redirectBack(); } else { $tryMode = true; } } } $this->previewRules = array(); foreach ($this->form->getRules() as $ruleKey) { $this->previewRules[$ruleKey] = isset($tryMode) ? $this->form->getValue($ruleKey) : $this->form->getDefault($ruleKey); } $this->dispatcher->notify(new sfEvent($this, 'admin.edit_object', array('object' => $this->autoSeo))); $this->autoSeos = $this->getDmAutoSeos(); }
public function executeSaveFile(dmWebRequest $request) { // modify existing media if ($mediaId = dmArray::get($request->getParameter('dm_admin_media_form'), 'id')) { $this->forward404Unless($media = dmDb::table('DmMedia')->find($mediaId)); $form = new DmAdminMediaForm($media); } else { $media = null; $this->forward404Unless($folder = dmDb::table('DmMediaFolder')->find($request->getParameter('folder_id'))); if (!$folder->isWritable()) { $this->getUser()->logAlert($this->getI18n()->__('Folder %1% is not writable', array('%1%' => $folder->fullPath))); } $form = new DmAdminMediaForm(); $form->setDefault('dm_media_folder_id', $folder->id); } if ($request->isMethod('post') && $form->bindAndValid($request)) { $redirect = $form->getValue('file') || $media->dm_media_folder_id != $form->getValue('dm_media_folder_id'); $media = $form->save(); if ($redirect) { $this->getUser()->setFlash('dm_media_open', $media->id, false); return $this->renderText($this->getRouting()->getMediaUrl(dmDb::table('DmMediaFolder')->find($media->dm_media_folder_id))); } } $action = $media ? 'dmMediaLibrary/saveFile' : 'dmMediaLibrary/saveFile?folder_id=' . $folder->id; return $this->renderText($form->render('.dm_form.list.little action="' . $action . '"')); }
/** * Allows the upload of multiple files * * @param sfWebRequest $request */ public function executeNewMultipleFile(dmWebRequest $request) { // Retrived the folder by folder_id or by object in case of usage in dmMedia/gallery module if ($request->hasParameter('folder_id')) { $folderId = $request->getParameter('folder_id'); } else { $objectModel = $request->getParameter('model'); $objectPk = $request->getParameter('pk'); $object = dmDb::table($objectModel)->find($objectPk); $folderId = $object->getDmMediaFolder()->getId(); } $this->forward404Unless($folder = dmDb::table('DmMediaFolder')->find($folderId)); if (!$folder->isWritable()) { $this->getUser()->logAlert($this->getI18n()->__('Folder %1% is not writable', array('%1%' => $folder->fullPath))); } $form = new dmMediaUploadifyForm(); $form->setDefault('dm_media_folder_id', $folder->id); if ($request->isMethod('post') && $form->bindAndValid($request)) { $media = $form->save(); if (isset($object)) { $object->addMedia($media); // In dmMedia/gallery usage, we also need to associate with the object } return $this->renderText('success'); } $action = '+/dmMediaUploadifyerAdmin/newMultipleFile?' . (isset($object) ? "&model={$objectModel}&pk={$objectPk}" : 'folder_id=' . $folder->id); return $this->renderAsync(array('html' => $form->render('.dm_form.list.little action="' . $action . '"'), 'css' => $form->getStylesheets(), 'js' => $form->getJavascripts())); }
public function executeFormWidget(dmWebRequest $request) { $form = $this->forms['DmTestComment']; if ($request->isMethod('post') && $form->bindAndValid($request)) { $form->save(); $this->redirectBack(); } }
public function executeFormWidget(dmWebRequest $request) { $form = new PluginCommentForm(); if ($request->isMethod('post') && $form->bindAndValid($request)) { $form->save(); $this->redirectBack(); } $this->forms['PluginComment'] = $form; }
public function executeReportAnonymousData(dmWebRequest $request) { $this->forward404Unless($request->isMethod('post')); try { dmDb::table('AnonymousReport')->register($request->getParameter('hash'), $request->getParameter('plugins'), $request->getParameter('version')); } catch (Exception $e) { throw $e; $this->forward404(); } return $this->renderText('ok'); }
public function executeFormWidget(dmWebRequest $request) { $form = new respuestaBusquedaForm(); if ($request->isMethod('post') && $form->bindAndValid($request)) { $form->save(); $user = $this->getUser()->getDmUser(); $this->getService('mail')->setTemplate('respuesta_busqueda')->addValues(array('busqueda_id' => $form->getValue('busqueda_id'), 'email' => $user->getEmail(), 'mensaje' => $form->getValue('mensaje'), 'username' => $user->getUsername(), 'nombre' => $user->getNombre(), 'apellidos' => $user->getApellidos(), 'create_at' => $form->getValue('create_at')))->send(); $this->redirectBack(); } $this->forms['respuestaBusqueda'] = $form; }
public function executeIndex(dmWebRequest $request) { $setting = dmDb::table('DmSetting')->fetchOneByName('gwt_key'); if ($this->getUser()->can($setting->get('credentials'))) { $this->form = new dmConfigForm(); $this->form->addSetting($setting); if ($request->isMethod('post') && $this->form->bindAndValid($request)) { $this->form->save(); return $this->redirect('@dm_google_webmaster_tools'); } } }
public function executeFormWidget(dmWebRequest $request) { $form = new busquedaForm(); if ($request->isMethod('post') && $form->bindAndValid($request)) { $form->save(); $this->getUser()->setFlash('busqueda_form_valid', true); $user = $this->getUser()->getDmUser(); $this->getService('mail')->setTemplate('solicitud_busqueda_especializada')->addValues(array('titulo' => $form->getValue('titulo'), 'email' => $user->getEmail(), 'mensaje' => $form->getValue('mensaje'), 'tematica' => $form->getValue('tematica'), 'fecha_antes' => $form->getValue('fecha_antes'), 'fecha_despues' => $form->getValue('fecha_despues'), 'nombre' => $user->getNombre(), 'apellidos' => $user->getApellidos()))->send(); $this->redirectBack(); } $this->forms['busqueda'] = $form; }
public function executeFormWidget(dmWebRequest $request) { $form = new preguntaForm(); if ($request->isMethod('post') && $form->bindAndValid($request)) { $form->save(); $this->getUser()->setFlash('pregunta_form_valid', true); $user = $this->getUser()->getDmUser(); $this->getService('mail')->setTemplate('pregunte_al_bibliotecario')->addValues(array('titulo' => $form->getValue('titulo'), 'email' => $user->getEmail(), 'mensaje' => $form->getValue('mensaje'), 'username' => $user->getUsername(), 'nombre' => $user->getNombre(), 'apellidos' => $user->getApellidos()))->send(); $this->redirectBack(); } $this->forms['pregunta'] = $form; }
public function executeSignin(dmWebRequest $request) { if ($this->getUser()->isAuthenticated()) { return $this->redirect('@homepage'); } $this->setLayout(realpath(dirname(__FILE__) . '/..') . '/templates/layout'); if ($request->getParameter('skip_browser_detection')) { $this->getService('browser_check')->markAsChecked(); } elseif (!$this->getService('browser_check')->check()) { return 'Browser'; } $this->form = new DmSigninAdminForm(); if ($request->isMethod('post')) { if ($request->getReferer() != '') { if (!strpos($request->getReferer(), $request->getHost(), 0) > -1) { $this->getResponse()->setStatusCode(403); return; } } else { $this->getResponse()->setStatusCode(403); return; } $this->form->bindRequest($request); if ($this->form->isValid()) { $this->getUser()->signin($this->form->getValue('user'), $this->form->getValue('remember')); if ($this->getUser()->can('admin')) { $redirectUrl = $this->getUser()->getReferer($request->getReferer()); $this->redirect($redirectUrl ? $redirectUrl : '@homepage'); } else { try { $this->redirect($this->getService('script_name_resolver')->get('front')); } catch (dmException $e) { // user can't go in admin, and front script_name can't be found. $this->redirect('@homepage'); } } } } else { if ($request->isXmlHttpRequest()) { $this->getResponse()->setHeaderOnly(true); $this->getResponse()->setStatusCode(401); return sfView::NONE; } // if we have been forwarded, then the referer is the current URL // if not, this is the referer of the current request $this->getUser()->setReferer($this->getContext()->getActionStack()->getSize() > 1 ? $request->getUri() : $request->getReferer()); $module = sfConfig::get('sf_login_module'); if ($this->getModuleName() != $module) { return $this->redirect($module . '/' . sfConfig::get('sf_login_action')); } $this->getResponse()->setStatusCode(401); } }
public function executeUpdateFromGit(dmWebRequest $request) { $this->forward404Unless($request->isMethod('post')); $repoDir = sfConfig::get('sf_root_dir') . '/data/diem-docs'; // include phpGitRepo require_once sfConfig::get('sf_root_dir') . '/lib/vendor/php-git-repo/lib/phpGitRepo.php'; // create a git repo instance $repo = new phpGitRepo($repoDir); // run the synchronizer passing it the repo instance $synchronizer = new gitDocumentationSynchronizer($repo); $synchronizer->execute(); $this->getService('cache_cleaner')->setOption('applications', array('front'))->clearTemplate(); return $this->renderText('done'); }
public function executeFormWidget(dmWebRequest $request) { $form = new SnippetCommentForm(); if ($request->isMethod('post')) { $captcha = array('recaptcha_challenge_field' => $request->getParameter('recaptcha_challenge_field'), 'recaptcha_response_field' => $request->getParameter('recaptcha_response_field')); $form->bind(array_merge($request->getParameter($form->getName()), array('captcha' => $captcha))); if ($form->isValid()) { $form->save(); $this->getUser()->setFlash('form_saved', true); $this->redirectBack(); } } $this->forms['SnippetComment'] = $form; }
/** * Handle dmUser/form form validation and creates the user account, then authenticates the user */ public function executeFormWidget(dmWebRequest $request) { $form = new DmUserForm(); if ($request->isMethod('post') && $request->hasParameter($form->getName())) { $data = $request->getParameter($form->getName()); // if the form uses captcha, include the additional data if ($form->isCaptchaEnabled()) { $data = array_merge($data, array('captcha' => array('recaptcha_challenge_field' => $request->getParameter('recaptcha_challenge_field'), 'recaptcha_response_field' => $request->getParameter('recaptcha_response_field')))); } $form->bind($data, $request->getFiles($form->getName())); if ($request->isMethod('post') && $form->bindAndValid($request)) { $form->save(); $this->getUser()->setFlash('busqueda_form_valid', true); $this->redirectBack(); } if ($form->isValid()) { $user = $form->save(); $this->getUser()->signin($user); $this->redirectRegisteredUser($request); } } // pass the form to the component $this->forms['DmUser'] = $form; }
public function executeShowWidget(dmWebRequest $request) { $form = new PluginCommentForm(); if ($request->isMethod('post') && ($data = $request->getParameter($form->getName()))) { if ($form->isCaptchaEnabled()) { $data = array_merge($data, array('captcha' => array('recaptcha_challenge_field' => $request->getParameter('recaptcha_challenge_field'), 'recaptcha_response_field' => $request->getParameter('recaptcha_response_field')))); } $form->bind($data); if ($form->isValid()) { $form->save(); $this->getUser()->setFlash('form_saved', true); $this->redirectBack(); } } $this->forms['PluginComment'] = $form; }
/** * Handle dmUser/form form validation and creates the user account, then authenticates the user */ public function executeFormWidget(dmWebRequest $request) { $form = new DmUserForm(); if ($request->isMethod('post') && $request->hasParameter($form->getName())) { $data = $request->getParameter($form->getName()); if ($form->isCaptchaEnabled()) { $data = array_merge($data, array('captcha' => array('recaptcha_challenge_field' => $request->getParameter('recaptcha_challenge_field'), 'recaptcha_response_field' => $request->getParameter('recaptcha_response_field')))); } $form->bind($data, $request->getFiles($form->getName())); if ($form->isValid()) { $user = $form->save(); $this->getUser()->signin($user); $this->redirectRegisteredUser($request); } } $this->forms['DmUser'] = $form; }
/** * Allows the upload of multiple files * * @param sfWebRequest $request */ public function executeNewMultipleFile(dmWebRequest $request) { // create new media $media = null; $this->forward404Unless($folder = dmDb::table('DmMediaFolder')->find($request->getParameter('folder_id'))); if (!$folder->isWritable()) { $this->getUser()->logAlert($this->getI18n()->__('Folder %1% is not writable', array('%1%' => $folder->fullPath))); } $form = new dmMediaUploadifyForm(); $form->setDefault('dm_media_folder_id', $folder->id); if ($request->isMethod('post') && $form->bindAndValid($request)) { $media = $form->save(); return $this->renderText('success'); } $action = '+/dmMediaUploadifyerAdmin/newMultipleFile?folder_id=' . $folder->id; $uploadify_widget = new sfWidgetFormDmUploadify(); return $this->renderAsync(array('html' => $form->render('.dm_form.list.little action="' . $action . '"'), 'css' => $uploadify_widget->getStylesheets(), 'js' => $uploadify_widget->getJavascripts())); }
public function executeNew(dmWebRequest $request) { $this->forward404Unless($this->page = $this->getPage(), 'no current DmPage'); $this->form = new DmPageFrontNewForm(); $this->form->removeCsrfProtection(); if ($request->isMethod('post') && $this->form->bindAndValid($request)) { $newPage = $this->form->save(); return $this->renderText($this->getHelper()->link($newPage)->getAbsoluteHref()); } $this->form->setDefaults(array('parent_id' => $this->page->id, 'dm_layout_id' => $this->page->PageView->dmLayoutId, 'slug' => $this->page->slug ? $this->page->slug . '/?' : '?')); $_parentSlugs = dmDb::query('DmPage p')->where('p.record_id = 0')->withI18n()->select('p.id, pTranslation.slug')->fetchPDO(); $parentSlugs = array(); foreach ($_parentSlugs as $values) { $parentSlugs[$values[0]] = $values[1]; } $this->parentSlugsJson = json_encode($parentSlugs); $this->transliterationJson = json_encode(sfConfig::get('dm_string_transliteration')); return $this->renderAsync(array('js' => array('front.pageAddForm'), 'html' => $this->getPartial('dmPage/new')), true); }
public function executeFormEditWidget(dmWebRequest $request) { $this->forward404Unless($hash = $request->getParameter('hash')); $this->forward404Unless($snippet = dmDb::table('Snippet')->findOneByHash($hash)); $form = $this->forms['Snippet'] = new SnippetForm($snippet); if ($request->isMethod('post')) { if ($request->getParameter('recaptcha_challenge_field')) { $captcha = array('recaptcha_challenge_field' => $request->getParameter('recaptcha_challenge_field'), 'recaptcha_response_field' => $request->getParameter('recaptcha_response_field')); $form->bind(array_merge($request->getParameter($form->getName()), array('captcha' => $captcha))); } else { $form->bind($request->getParameter($form->getName())); } if ($form->isValid()) { $form->save(); $this->getUser()->setFlash('form_saved', true); return $this->redirect($this->getSnippetUrl($form->getObject())); } } }
public function executeIndex(dmWebRequest $request) { $this->form = new dmConfigForm(); $this->settings = dmDb::table('DmSetting')->fetchGrouped(); $this->groups = array(); foreach ($this->settings as $group => $settings) { if ('internal' == $group) { continue; } foreach ($settings as $index => $setting) { if ($this->getUser()->can($setting->get('credentials'))) { $this->form->addSetting($setting); if (!in_array($setting->get('group_name'), $this->groups)) { $this->groups[] = $setting->get('group_name'); } } else { unset($this->settings[$group][$index]); } } if (empty($this->settings[$group])) { unset($this->settings[$group]); } } $this->getDispatcher()->notify(new sfEvent($this->form, 'form.post_configure')); if ($request->isMethod('post')) { if ($this->form->bindAndValid($request)) { $formValues = $this->form->getValues(); foreach ($this->settings as $group => $settings) { foreach ($settings as $index => $setting) { $settingName = $setting->get('name'); if (isset($formValues[$settingName]) && $formValues[$settingName] != $setting->value) { dmConfig::set($settingName, $formValues[$settingName]); } } } $this->getUser()->logInfo('Your modifications have been saved', true); return $this->redirect('@dm_config_panel'); } else { $this->getUser()->logAlert('The item has not been saved due to some errors.', true); } } }
public function executeIndex(dmWebRequest $request) { if ($this->getUser()->can('google_analytics')) { $this->form = new dmGoogleAnalyticsForm(); $this->form->setGapi($this->getService('gapi')); if ($request->isMethod('post')) { dmConfig::set('ga_key', dmArray::get($request->getParameter($this->form->getName()), 'key')); if ($this->form->bindAndValid($request)) { $this->form->save(); return $this->redirect('@dm_google_analytics'); } } } $this->gapiConnected = false; if (dmConfig::get('ga_token')) { try { $this->getService('gapi')->authenticate(null, null, dmConfig::get('ga_token')); $this->gapiConnected = true; } catch (dmGapiException $e) { // bad token } } }
/** * Handle dmUser/forgotPassword form validation and sends an email with a new password */ public function executeForgotPasswordWidget(dmWebRequest $request) { // step 1 if (!($forgotPasswordCode = $request->getParameter('_code'))) { $form = new DmForgotPasswordStep1Form(); if ($request->isMethod('post') && $request->hasParameter($form->getName())) { $data = $request->getParameter($form->getName()); if ($form->isCaptchaEnabled()) { $data = array_merge($data, array('captcha' => array('recaptcha_challenge_field' => $request->getParameter('recaptcha_challenge_field'), 'recaptcha_response_field' => $request->getParameter('recaptcha_response_field')))); } $form->bind($data, $request->getFiles($form->getName())); if ($form->isValid()) { $user = $form->getUserByEmail($form->getValue('email')); $user->forgot_password_code = dmString::random(12); $user->save(); $this->getService('mail')->setTemplate('dm_user_forgot_password')->addValues(array('username' => $user->username, 'email' => $user->email, 'step2_url' => $this->getHelper()->link($this->getPage())->param('_code', $user->forgot_password_code)->getAbsoluteHref()))->send(); $this->getUser()->setFlash('dm_forgot_password_email_sent', $user->email); $this->redirectBack(); } } $this->forms['DmForgotPasswordStep1'] = $form; } else { $this->forward404Unless($user = dmDb::table('DmUser')->retrieveByForgotPasswordCode($forgotPasswordCode)); $form = new DmForgotPasswordStep2Form($user); if ($request->isMethod('post') && $request->hasParameter($form->getName())) { if ($form->bindAndValid($request)) { $user->password = $form->getValue('password'); $user->forgot_password_code = null; $user->save(); $this->getUser()->setFlash('dm_forgot_password_changed', true); $this->redirectBack(); } } $this->forms['DmForgotPasswordStep2'] = $form; } }
/** * Sort sequence of execution of the behaviors for the page content of part of layout area */ public function executeSortBehaviors(dmWebRequest $request) { if (!$this->getUser()->can('behavior_sort')) { return $this->renderError($this->getI18n()->__('Error'), $this->getI18n()->__('You do not have privileges to sort behaviors')); } if ($request->hasParameter('dm_behavior_attached_to') && $request->hasParameter('dm_behavior_attached_to_id') && $request->hasParameter('dm_action_sort') && $request->getParameter('dm_action_sort')) { $behaviorsManager = $this->getService('behaviors_manager'); try { $behaviors = $behaviorsManager->getBehaviorsForSort($request->getParameter('dm_behavior_attached_to'), $request->getParameter('dm_behavior_attached_to_id')); } catch (Exception $e) { return $this->renderText(sprintf('<p class="s16 s16_error">%s</p> <div class="clearfix mt30"><a class="dm cancel close_dialog button mr10">%s</a></div>', $this->getI18n()->__('There are no behaviors for this content to be sorted.'), $this->getI18n()->__('Cancel'))); } try { $form = new dmBehaviorsSortForm($behaviors); } catch (Exception $e) { return $this->renderError($this->getI18n()->__('Error'), $e->getMessage()); } if ($request->isMethod('post') && $form->bindAndValid($request) && $request->hasParameter('and_save')) { if ($form->saveSortOrder()) { return $this->renderJson(array('error' => false, 'dm_behavior_data' => json_decode($form->getValue('behaviors'), true))); } else { return $this->renderError($this->getI18n()->__('Error'), $this->getI18n()->__('New behaviors sequence could not be saved.')); } } return $this->renderAsync(array('html' => $this->getHelper()->tag('div.dm.dm_behavior_sort.dm_behavior_sort_form', $form->render('.dm_form.list.little'))), true); } else { return $this->renderError($this->getI18n()->__('Error'), $this->getI18n()->__('You must supply container for sort')); } }