use Galette\Controllers\PdfController;
use Galette\Controllers\CsvController;
use Galette\Controllers\AdminToolsController;
+use Galette\Controllers\TextController;
use Galette\DynamicFields\DynamicField;
use Galette\Repository\Members;
$app->get(
'/texts[/{lang}/{ref}]',
- function ($request, $response, $args) {
- if (!isset($args['lang'])) {
- $args['lang'] = $this->preferences->pref_lang;
- }
- if (!isset($args['ref'])) {
- $args['ref'] = Texts::DEFAULT_REF;
- }
-
- $texts = new Texts(
- $this->preferences,
- $this->router
- );
-
- $mtxt = $texts->getTexts($args['ref'], $args['lang']);
-
- // display page
- $this->view->render(
- $response,
- 'gestion_textes.tpl',
- [
- 'page_title' => _T("Automatic emails texts edition"),
- 'reflist' => $texts->getRefs($args['lang']),
- 'langlist' => $this->i18n->getList(),
- 'cur_lang' => $args['lang'],
- 'cur_ref' => $args['ref'],
- 'mtxt' => $mtxt,
- ]
- );
- return $response;
- }
+ TextController::class . ':list'
)->setName('texts')->add($authenticate);
$app->post(
'/texts/change',
- function ($request, $response) {
- $post = $request->getParsedBody();
- return $response
- ->withStatus(301)
- ->withHeader(
- 'Location',
- $this->router->pathFor(
- 'texts',
- [
- 'lang' => $post['sel_lang'],
- 'ref' => $post['sel_ref']
- ]
- )
- );
- }
+ TextController::class . ':change'
)->setName('changeText')->add($authenticate);
$app->post(
'/texts',
- function ($request, $response) {
- $post = $request->getParsedBody();
- $texts = new Texts($this->preferences, $this->router);
-
- //set the language
- $cur_lang = $post['cur_lang'];
- //set the text entry
- $cur_ref = $post['cur_ref'];
-
- $mtxt = $texts->getTexts($cur_ref, $cur_lang, $this->router);
- $res = $texts->setTexts(
- $cur_ref,
- $cur_lang,
- $post['text_subject'],
- $post['text_body']
- );
-
- if (!$res) {
- $this->flash->addMessage(
- 'error_detected',
- preg_replace(
- '(%s)',
- $mtxt->tcomment,
- _T("Email: '%s' has not been modified!")
- )
- );
- } else {
- $this->flash->addMessage(
- 'success_detected',
- preg_replace(
- '(%s)',
- $mtxt->tcomment,
- _T("Email: '%s' has been successfully modified.")
- )
- );
- }
-
- return $response
- ->withStatus(301)
- ->withHeader('Location', $this->router->pathFor('texts'));
- }
+ TextController::class . ':edit'
)->setName('texts')->add($authenticate);
$app->get(
--- /dev/null
+<?php
+
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Galette texts controller
+ *
+ * PHP version 5
+ *
+ * Copyright © 2020 The Galette Team
+ *
+ * This file is part of Galette (http://galette.tuxfamily.org).
+ *
+ * Galette is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Galette is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Galette. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category Controllers
+ * @package Galette
+ *
+ * @author Johan Cwiklinski <johan@x-tnd.be>
+ * @copyright 2020 The Galette Team
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
+ * @version SVN: $Id$
+ * @link http://galette.tuxfamily.org
+ * @since Available since 0.9.4dev - 2020-06-08
+ */
+
+namespace Galette\Controllers;
+
+use Slim\Http\Request;
+use Slim\Http\Response;
+use Galette\Entity\Texts;
+use Analog\Analog;
+
+/**
+ * Galette texts controller
+ *
+ * @category Controllers
+ * @name TextController
+ * @package Galette
+ * @author Johan Cwiklinski <johan@x-tnd.be>
+ * @copyright 2020 The Galette Team
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
+ * @link http://galette.tuxfamily.org
+ * @since Available since 0.9.4dev - 2020-06-08
+ */
+
+class TextController extends AbstractController
+{
+ /**
+ * List texts
+ *
+ * @param Request $request PSR Request
+ * @param Response $response PSR Response
+ * @param array $args Request arguments ['r']
+ *
+ * @return void
+ */
+ public function list(Request $request, Response $response, array $args = [])
+ {
+ if (!isset($args['lang'])) {
+ $args['lang'] = $this->preferences->pref_lang;
+ }
+ if (!isset($args['ref'])) {
+ $args['ref'] = Texts::DEFAULT_REF;
+ }
+
+ $texts = new Texts(
+ $this->preferences,
+ $this->router
+ );
+
+ $mtxt = $texts->getTexts($args['ref'], $args['lang']);
+
+ // display page
+ $this->view->render(
+ $response,
+ 'gestion_textes.tpl',
+ [
+ 'page_title' => _T("Automatic emails texts edition"),
+ 'reflist' => $texts->getRefs($args['lang']),
+ 'langlist' => $this->i18n->getList(),
+ 'cur_lang' => $args['lang'],
+ 'cur_ref' => $args['ref'],
+ 'mtxt' => $mtxt,
+ ]
+ );
+ return $response;
+ }
+
+ /**
+ * Change texts
+ *
+ * @param Request $request PSR Request
+ * @param Response $response PSR Response
+ * @param array $args Request arguments ['r']
+ *
+ * @return void
+ */
+ public function change(Request $request, Response $response, array $args = [])
+ {
+ $post = $request->getParsedBody();
+ return $response
+ ->withStatus(301)
+ ->withHeader(
+ 'Location',
+ $this->router->pathFor(
+ 'texts',
+ [
+ 'lang' => $post['sel_lang'],
+ 'ref' => $post['sel_ref']
+ ]
+ )
+ );
+ }
+
+ /**
+ * Edit text
+ *
+ * @param Request $request PSR Request
+ * @param Response $response PSR Response
+ * @param array $args Request arguments ['r']
+ *
+ * @return void
+ */
+ public function edit(Request $request, Response $response, array $args = [])
+ {
+ $post = $request->getParsedBody();
+ $texts = new Texts($this->preferences, $this->router);
+
+ //set the language
+ $cur_lang = $post['cur_lang'];
+ //set the text entry
+ $cur_ref = $post['cur_ref'];
+
+ $mtxt = $texts->getTexts($cur_ref, $cur_lang, $this->router);
+ $res = $texts->setTexts(
+ $cur_ref,
+ $cur_lang,
+ $post['text_subject'],
+ $post['text_body']
+ );
+
+ if (!$res) {
+ $this->flash->addMessage(
+ 'error_detected',
+ preg_replace(
+ '(%s)',
+ $mtxt->tcomment,
+ _T("Email: '%s' has not been modified!")
+ )
+ );
+ } else {
+ $this->flash->addMessage(
+ 'success_detected',
+ preg_replace(
+ '(%s)',
+ $mtxt->tcomment,
+ _T("Email: '%s' has been successfully modified.")
+ )
+ );
+ }
+
+ return $response
+ ->withStatus(301)
+ ->withHeader('Location', $this->router->pathFor('texts'));
+ }
+}