From 4a3ec0ca3f7d0ca8776a6ee7f2a2615234395eb8 Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Mon, 16 Jul 2018 00:09:33 +0200 Subject: Cake 3.6.7 fresh install --- fai_gestion/src/Application.php | 89 +++++++ fai_gestion/src/Console/Installer.php | 246 ++++++++++++++++++ fai_gestion/src/Controller/AppController.php | 55 ++++ fai_gestion/src/Controller/Component/empty | 0 fai_gestion/src/Controller/ErrorController.php | 70 ++++++ fai_gestion/src/Controller/PagesController.php | 69 +++++ fai_gestion/src/Model/Behavior/empty | 0 fai_gestion/src/Model/Entity/empty | 0 fai_gestion/src/Model/Table/empty | 0 fai_gestion/src/Shell/ConsoleShell.php | 81 ++++++ fai_gestion/src/Template/Cell/empty | 1 + fai_gestion/src/Template/Element/Flash/default.ctp | 10 + fai_gestion/src/Template/Element/Flash/error.ctp | 6 + fai_gestion/src/Template/Element/Flash/success.ctp | 6 + fai_gestion/src/Template/Email/html/default.ctp | 20 ++ fai_gestion/src/Template/Email/text/default.ctp | 16 ++ fai_gestion/src/Template/Error/error400.ctp | 38 +++ fai_gestion/src/Template/Error/error500.ctp | 43 ++++ .../src/Template/Layout/Email/html/default.ctp | 24 ++ .../src/Template/Layout/Email/text/default.ctp | 16 ++ fai_gestion/src/Template/Layout/ajax.ctp | 16 ++ fai_gestion/src/Template/Layout/default.ctp | 57 +++++ fai_gestion/src/Template/Layout/error.ctp | 47 ++++ fai_gestion/src/Template/Layout/rss/default.ctp | 11 + fai_gestion/src/Template/Pages/home.ctp | 278 +++++++++++++++++++++ fai_gestion/src/View/AjaxView.php | 49 ++++ fai_gestion/src/View/AppView.php | 40 +++ fai_gestion/src/View/Cell/empty | 0 fai_gestion/src/View/Helper/empty | 0 29 files changed, 1288 insertions(+) create mode 100644 fai_gestion/src/Application.php create mode 100644 fai_gestion/src/Console/Installer.php create mode 100644 fai_gestion/src/Controller/AppController.php create mode 100644 fai_gestion/src/Controller/Component/empty create mode 100644 fai_gestion/src/Controller/ErrorController.php create mode 100644 fai_gestion/src/Controller/PagesController.php create mode 100644 fai_gestion/src/Model/Behavior/empty create mode 100644 fai_gestion/src/Model/Entity/empty create mode 100644 fai_gestion/src/Model/Table/empty create mode 100644 fai_gestion/src/Shell/ConsoleShell.php create mode 100644 fai_gestion/src/Template/Cell/empty create mode 100644 fai_gestion/src/Template/Element/Flash/default.ctp create mode 100644 fai_gestion/src/Template/Element/Flash/error.ctp create mode 100644 fai_gestion/src/Template/Element/Flash/success.ctp create mode 100644 fai_gestion/src/Template/Email/html/default.ctp create mode 100644 fai_gestion/src/Template/Email/text/default.ctp create mode 100644 fai_gestion/src/Template/Error/error400.ctp create mode 100644 fai_gestion/src/Template/Error/error500.ctp create mode 100644 fai_gestion/src/Template/Layout/Email/html/default.ctp create mode 100644 fai_gestion/src/Template/Layout/Email/text/default.ctp create mode 100644 fai_gestion/src/Template/Layout/ajax.ctp create mode 100644 fai_gestion/src/Template/Layout/default.ctp create mode 100644 fai_gestion/src/Template/Layout/error.ctp create mode 100644 fai_gestion/src/Template/Layout/rss/default.ctp create mode 100644 fai_gestion/src/Template/Pages/home.ctp create mode 100644 fai_gestion/src/View/AjaxView.php create mode 100644 fai_gestion/src/View/AppView.php create mode 100644 fai_gestion/src/View/Cell/empty create mode 100644 fai_gestion/src/View/Helper/empty (limited to 'fai_gestion/src') diff --git a/fai_gestion/src/Application.php b/fai_gestion/src/Application.php new file mode 100644 index 0000000..48484b4 --- /dev/null +++ b/fai_gestion/src/Application.php @@ -0,0 +1,89 @@ +addPlugin('Bake'); + } catch (MissingPluginException $e) { + // Do not halt if the plugin is missing + } + + $this->addPlugin('Migrations'); + } + + /* + * Only try to load DebugKit in development mode + * Debug Kit should not be installed on a production system + */ + if (Configure::read('debug')) { + $this->addPlugin(\DebugKit\Plugin::class); + } + } + + /** + * Setup the middleware queue your application will use. + * + * @param \Cake\Http\MiddlewareQueue $middlewareQueue The middleware queue to setup. + * @return \Cake\Http\MiddlewareQueue The updated middleware queue. + */ + public function middleware($middlewareQueue) + { + $middlewareQueue + // Catch any exceptions in the lower layers, + // and make an error page/response + ->add(ErrorHandlerMiddleware::class) + + // Handle plugin/theme assets like CakePHP normally does. + ->add(AssetMiddleware::class) + + // Add routing middleware. + // Routes collection cache enabled by default, to disable route caching + // pass null as cacheConfig, example: `new RoutingMiddleware($this)` + // you might want to disable this cache in case your routing is extremely simple + ->add(new RoutingMiddleware($this, '_cake_routes_')) + + // Add csrf middleware. + ->add(new CsrfProtectionMiddleware([ + 'httpOnly' => true + ])); + + return $middlewareQueue; + } +} diff --git a/fai_gestion/src/Console/Installer.php b/fai_gestion/src/Console/Installer.php new file mode 100644 index 0000000..3bcef47 --- /dev/null +++ b/fai_gestion/src/Console/Installer.php @@ -0,0 +1,246 @@ +getIO(); + + $rootDir = dirname(dirname(__DIR__)); + + static::createAppConfig($rootDir, $io); + static::createWritableDirectories($rootDir, $io); + + // ask if the permissions should be changed + if ($io->isInteractive()) { + $validator = function ($arg) { + if (in_array($arg, ['Y', 'y', 'N', 'n'])) { + return $arg; + } + throw new Exception('This is not a valid answer. Please choose Y or n.'); + }; + $setFolderPermissions = $io->askAndValidate( + 'Set Folder Permissions ? (Default to Y) [Y,n]? ', + $validator, + 10, + 'Y' + ); + + if (in_array($setFolderPermissions, ['Y', 'y'])) { + static::setFolderPermissions($rootDir, $io); + } + } else { + static::setFolderPermissions($rootDir, $io); + } + + static::setSecuritySalt($rootDir, $io); + + $class = 'Cake\Codeception\Console\Installer'; + if (class_exists($class)) { + $class::customizeCodeceptionBinary($event); + } + } + + /** + * Create the config/app.php file if it does not exist. + * + * @param string $dir The application's root directory. + * @param \Composer\IO\IOInterface $io IO interface to write to console. + * @return void + */ + public static function createAppConfig($dir, $io) + { + $appConfig = $dir . '/config/app.php'; + $defaultConfig = $dir . '/config/app.default.php'; + if (!file_exists($appConfig)) { + copy($defaultConfig, $appConfig); + $io->write('Created `config/app.php` file'); + } + } + + /** + * Create the `logs` and `tmp` directories. + * + * @param string $dir The application's root directory. + * @param \Composer\IO\IOInterface $io IO interface to write to console. + * @return void + */ + public static function createWritableDirectories($dir, $io) + { + foreach (static::WRITABLE_DIRS as $path) { + $path = $dir . '/' . $path; + if (!file_exists($path)) { + mkdir($path); + $io->write('Created `' . $path . '` directory'); + } + } + } + + /** + * Set globally writable permissions on the "tmp" and "logs" directory. + * + * This is not the most secure default, but it gets people up and running quickly. + * + * @param string $dir The application's root directory. + * @param \Composer\IO\IOInterface $io IO interface to write to console. + * @return void + */ + public static function setFolderPermissions($dir, $io) + { + // Change the permissions on a path and output the results. + $changePerms = function ($path) use ($io) { + $currentPerms = fileperms($path) & 0777; + $worldWritable = $currentPerms | 0007; + if ($worldWritable == $currentPerms) { + return; + } + + $res = chmod($path, $worldWritable); + if ($res) { + $io->write('Permissions set on ' . $path); + } else { + $io->write('Failed to set permissions on ' . $path); + } + }; + + $walker = function ($dir) use (&$walker, $changePerms) { + $files = array_diff(scandir($dir), ['.', '..']); + foreach ($files as $file) { + $path = $dir . '/' . $file; + + if (!is_dir($path)) { + continue; + } + + $changePerms($path); + $walker($path); + } + }; + + $walker($dir . '/tmp'); + $changePerms($dir . '/tmp'); + $changePerms($dir . '/logs'); + } + + /** + * Set the security.salt value in the application's config file. + * + * @param string $dir The application's root directory. + * @param \Composer\IO\IOInterface $io IO interface to write to console. + * @return void + */ + public static function setSecuritySalt($dir, $io) + { + $newKey = hash('sha256', Security::randomBytes(64)); + static::setSecuritySaltInFile($dir, $io, $newKey, 'app.php'); + } + + /** + * Set the security.salt value in a given file + * + * @param string $dir The application's root directory. + * @param \Composer\IO\IOInterface $io IO interface to write to console. + * @param string $newKey key to set in the file + * @param string $file A path to a file relative to the application's root + * @return void + */ + public static function setSecuritySaltInFile($dir, $io, $newKey, $file) + { + $config = $dir . '/config/' . $file; + $content = file_get_contents($config); + + $content = str_replace('__SALT__', $newKey, $content, $count); + + if ($count == 0) { + $io->write('No Security.salt placeholder to replace.'); + + return; + } + + $result = file_put_contents($config, $content); + if ($result) { + $io->write('Updated Security.salt value in config/' . $file); + + return; + } + $io->write('Unable to update Security.salt value.'); + } + + /** + * Set the APP_NAME value in a given file + * + * @param string $dir The application's root directory. + * @param \Composer\IO\IOInterface $io IO interface to write to console. + * @param string $appName app name to set in the file + * @param string $file A path to a file relative to the application's root + * @return void + */ + public static function setAppNameInFile($dir, $io, $appName, $file) + { + $config = $dir . '/config/' . $file; + $content = file_get_contents($config); + $content = str_replace('__APP_NAME__', $appName, $content, $count); + + if ($count == 0) { + $io->write('No __APP_NAME__ placeholder to replace.'); + + return; + } + + $result = file_put_contents($config, $content); + if ($result) { + $io->write('Updated __APP_NAME__ value in config/' . $file); + + return; + } + $io->write('Unable to update __APP_NAME__ value.'); + } +} diff --git a/fai_gestion/src/Controller/AppController.php b/fai_gestion/src/Controller/AppController.php new file mode 100644 index 0000000..49fa03f --- /dev/null +++ b/fai_gestion/src/Controller/AppController.php @@ -0,0 +1,55 @@ +loadComponent('Security');` + * + * @return void + */ + public function initialize() + { + parent::initialize(); + + $this->loadComponent('RequestHandler', [ + 'enableBeforeRedirect' => false, + ]); + $this->loadComponent('Flash'); + + /* + * Enable the following component for recommended CakePHP security settings. + * see https://book.cakephp.org/3.0/en/controllers/components/security.html + */ + //$this->loadComponent('Security'); + } +} diff --git a/fai_gestion/src/Controller/Component/empty b/fai_gestion/src/Controller/Component/empty new file mode 100644 index 0000000..e69de29 diff --git a/fai_gestion/src/Controller/ErrorController.php b/fai_gestion/src/Controller/ErrorController.php new file mode 100644 index 0000000..43bd2fb --- /dev/null +++ b/fai_gestion/src/Controller/ErrorController.php @@ -0,0 +1,70 @@ +loadComponent('RequestHandler', [ + 'enableBeforeRedirect' => false, + ]); + } + + /** + * beforeFilter callback. + * + * @param \Cake\Event\Event $event Event. + * @return \Cake\Http\Response|null|void + */ + public function beforeFilter(Event $event) + { + } + + /** + * beforeRender callback. + * + * @param \Cake\Event\Event $event Event. + * @return \Cake\Http\Response|null|void + */ + public function beforeRender(Event $event) + { + parent::beforeRender($event); + + $this->viewBuilder()->setTemplatePath('Error'); + } + + /** + * afterFilter callback. + * + * @param \Cake\Event\Event $event Event. + * @return \Cake\Http\Response|null|void + */ + public function afterFilter(Event $event) + { + } +} diff --git a/fai_gestion/src/Controller/PagesController.php b/fai_gestion/src/Controller/PagesController.php new file mode 100644 index 0000000..d023661 --- /dev/null +++ b/fai_gestion/src/Controller/PagesController.php @@ -0,0 +1,69 @@ +redirect('/'); + } + if (in_array('..', $path, true) || in_array('.', $path, true)) { + throw new ForbiddenException(); + } + $page = $subpage = null; + + if (!empty($path[0])) { + $page = $path[0]; + } + if (!empty($path[1])) { + $subpage = $path[1]; + } + $this->set(compact('page', 'subpage')); + + try { + $this->render(implode('/', $path)); + } catch (MissingTemplateException $exception) { + if (Configure::read('debug')) { + throw $exception; + } + throw new NotFoundException(); + } + } +} diff --git a/fai_gestion/src/Model/Behavior/empty b/fai_gestion/src/Model/Behavior/empty new file mode 100644 index 0000000..e69de29 diff --git a/fai_gestion/src/Model/Entity/empty b/fai_gestion/src/Model/Entity/empty new file mode 100644 index 0000000..e69de29 diff --git a/fai_gestion/src/Model/Table/empty b/fai_gestion/src/Model/Table/empty new file mode 100644 index 0000000..e69de29 diff --git a/fai_gestion/src/Shell/ConsoleShell.php b/fai_gestion/src/Shell/ConsoleShell.php new file mode 100644 index 0000000..2eb9395 --- /dev/null +++ b/fai_gestion/src/Shell/ConsoleShell.php @@ -0,0 +1,81 @@ +err('Unable to load Psy\Shell.'); + $this->err(''); + $this->err('Make sure you have installed psysh as a dependency,'); + $this->err('and that Psy\Shell is registered in your autoloader.'); + $this->err(''); + $this->err('If you are using composer run'); + $this->err(''); + $this->err('$ php composer.phar require --dev psy/psysh'); + $this->err(''); + + return self::CODE_ERROR; + } + + $this->out("You can exit with `CTRL-C` or `exit`"); + $this->out(''); + + Log::drop('debug'); + Log::drop('error'); + $this->_io->setLoggers(false); + restore_error_handler(); + restore_exception_handler(); + + $psy = new PsyShell(); + $psy->run(); + } + + /** + * Display help for this console. + * + * @return \Cake\Console\ConsoleOptionParser + */ + public function getOptionParser() + { + $parser = new ConsoleOptionParser('console'); + $parser->setDescription( + 'This shell provides a REPL that you can use to interact ' . + 'with your application in an interactive fashion. You can use ' . + 'it to run adhoc queries with your models, or experiment ' . + 'and explore the features of CakePHP and your application.' . + "\n\n" . + 'You will need to have psysh installed for this Shell to work.' + ); + + return $parser; + } +} diff --git a/fai_gestion/src/Template/Cell/empty b/fai_gestion/src/Template/Cell/empty new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/fai_gestion/src/Template/Cell/empty @@ -0,0 +1 @@ + diff --git a/fai_gestion/src/Template/Element/Flash/default.ctp b/fai_gestion/src/Template/Element/Flash/default.ctp new file mode 100644 index 0000000..736b27d --- /dev/null +++ b/fai_gestion/src/Template/Element/Flash/default.ctp @@ -0,0 +1,10 @@ + +
diff --git a/fai_gestion/src/Template/Element/Flash/error.ctp b/fai_gestion/src/Template/Element/Flash/error.ctp new file mode 100644 index 0000000..e7c4af1 --- /dev/null +++ b/fai_gestion/src/Template/Element/Flash/error.ctp @@ -0,0 +1,6 @@ + +
diff --git a/fai_gestion/src/Template/Element/Flash/success.ctp b/fai_gestion/src/Template/Element/Flash/success.ctp new file mode 100644 index 0000000..becd5a1 --- /dev/null +++ b/fai_gestion/src/Template/Element/Flash/success.ctp @@ -0,0 +1,6 @@ + +
diff --git a/fai_gestion/src/Template/Email/html/default.ctp b/fai_gestion/src/Template/Email/html/default.ctp new file mode 100644 index 0000000..ac3daa7 --- /dev/null +++ b/fai_gestion/src/Template/Email/html/default.ctp @@ -0,0 +1,20 @@ + ' . $line . "

\n"; +endforeach; diff --git a/fai_gestion/src/Template/Email/text/default.ctp b/fai_gestion/src/Template/Email/text/default.ctp new file mode 100644 index 0000000..862cd9f --- /dev/null +++ b/fai_gestion/src/Template/Email/text/default.ctp @@ -0,0 +1,16 @@ +layout = 'error'; + +if (Configure::read('debug')) : + $this->layout = 'dev_error'; + + $this->assign('title', $message); + $this->assign('templateName', 'error400.ctp'); + + $this->start('file'); +?> +queryString)) : ?> +

+ SQL Query: + queryString) ?> +

+ +params)) : ?> + SQL Query Params: + params) ?> + +element('auto_table_warning') ?> +end(); +endif; +?> +

+

+ : + '{$url}'") ?> +

diff --git a/fai_gestion/src/Template/Error/error500.ctp b/fai_gestion/src/Template/Error/error500.ctp new file mode 100644 index 0000000..3328cc5 --- /dev/null +++ b/fai_gestion/src/Template/Error/error500.ctp @@ -0,0 +1,43 @@ +layout = 'error'; + +if (Configure::read('debug')) : + $this->layout = 'dev_error'; + + $this->assign('title', $message); + $this->assign('templateName', 'error500.ctp'); + + $this->start('file'); +?> +queryString)) : ?> +

+ SQL Query: + queryString) ?> +

+ +params)) : ?> + SQL Query Params: + params) ?> + + + Error in: + getFile()), $error->getLine()) ?> + +element('auto_table_warning'); + + if (extension_loaded('xdebug')) : + xdebug_print_function_stack(); + endif; + + $this->end(); +endif; +?> +

+

+ : + +

diff --git a/fai_gestion/src/Template/Layout/Email/html/default.ctp b/fai_gestion/src/Template/Layout/Email/html/default.ctp new file mode 100644 index 0000000..3ff87ff --- /dev/null +++ b/fai_gestion/src/Template/Layout/Email/html/default.ctp @@ -0,0 +1,24 @@ + + + + + <?= $this->fetch('title') ?> + + + fetch('content') ?> + + diff --git a/fai_gestion/src/Template/Layout/Email/text/default.ctp b/fai_gestion/src/Template/Layout/Email/text/default.ctp new file mode 100644 index 0000000..29b439c --- /dev/null +++ b/fai_gestion/src/Template/Layout/Email/text/default.ctp @@ -0,0 +1,16 @@ +fetch('content'); diff --git a/fai_gestion/src/Template/Layout/ajax.ctp b/fai_gestion/src/Template/Layout/ajax.ctp new file mode 100644 index 0000000..29b439c --- /dev/null +++ b/fai_gestion/src/Template/Layout/ajax.ctp @@ -0,0 +1,16 @@ +fetch('content'); diff --git a/fai_gestion/src/Template/Layout/default.ctp b/fai_gestion/src/Template/Layout/default.ctp new file mode 100644 index 0000000..caf014e --- /dev/null +++ b/fai_gestion/src/Template/Layout/default.ctp @@ -0,0 +1,57 @@ + + + + + Html->charset() ?> + + + <?= $cakeDescription ?>: + <?= $this->fetch('title') ?> + + Html->meta('icon') ?> + + Html->css('base.css') ?> + Html->css('style.css') ?> + + fetch('meta') ?> + fetch('css') ?> + fetch('script') ?> + + + + Flash->render() ?> +
+ fetch('content') ?> +
+ + + diff --git a/fai_gestion/src/Template/Layout/error.ctp b/fai_gestion/src/Template/Layout/error.ctp new file mode 100644 index 0000000..7367c1b --- /dev/null +++ b/fai_gestion/src/Template/Layout/error.ctp @@ -0,0 +1,47 @@ + + + + + Html->charset() ?> + + <?= $this->fetch('title') ?> + + Html->meta('icon') ?> + + Html->css('base.css') ?> + Html->css('style.css') ?> + + fetch('meta') ?> + fetch('css') ?> + fetch('script') ?> + + +
+ +
+ Flash->render() ?> + + fetch('content') ?> +
+ +
+ + diff --git a/fai_gestion/src/Template/Layout/rss/default.ctp b/fai_gestion/src/Template/Layout/rss/default.ctp new file mode 100644 index 0000000..8269be2 --- /dev/null +++ b/fai_gestion/src/Template/Layout/rss/default.ctp @@ -0,0 +1,11 @@ +fetch('title'); +endif; + +echo $this->Rss->document( + $this->Rss->channel([], $channel, $this->fetch('content')) +); diff --git a/fai_gestion/src/Template/Pages/home.ctp b/fai_gestion/src/Template/Pages/home.ctp new file mode 100644 index 0000000..a393d0e --- /dev/null +++ b/fai_gestion/src/Template/Pages/home.ctp @@ -0,0 +1,278 @@ +layout = false; + +if (!Configure::read('debug')) : + throw new NotFoundException( + 'Please replace src/Template/Pages/home.ctp with your own version or re-enable debug mode.' + ); +endif; + +$cakeDescription = 'CakePHP: the rapid development PHP framework'; +?> + + + + Html->charset() ?> + + + <?= $cakeDescription ?> + + + Html->meta('icon') ?> + Html->css('base.css') ?> + Html->css('style.css') ?> + Html->css('home.css') ?> + + + + +
+
Html->image('cake.logo.svg') ?>
+
+

Welcome to CakePHP Red Velvet. Build fast. Grow solid.

+
+
+ +
+
+
+

Please be aware that this page will not be shown if you turn off debug mode unless you replace src/Template/Pages/home.ctp with your own version.

+
+
+ +
+ +
+
+ +
+
+

Environment

+
    + =')) : ?> +
  • Your version of PHP is 5.6.0 or higher (detected ).
  • + +
  • Your version of PHP is too low. You need PHP 5.6.0 or higher to use CakePHP (detected ).
  • + + + +
  • Your version of PHP has the mbstring extension loaded.
  • + +
  • Your version of PHP does NOT have the mbstring extension loaded.
  • + + + +
  • Your version of PHP has the openssl extension loaded.
  • + +
  • Your version of PHP has the mcrypt extension loaded.
  • + +
  • Your version of PHP does NOT have the openssl or mcrypt extension loaded.
  • + + + +
  • Your version of PHP has the intl extension loaded.
  • + +
  • Your version of PHP does NOT have the intl extension loaded.
  • + +
+
+
+

Filesystem

+
    + +
  • Your tmp directory is writable.
  • + +
  • Your tmp directory is NOT writable.
  • + + + +
  • Your logs directory is writable.
  • + +
  • Your logs directory is NOT writable.
  • + + + + +
  • The Engine is being used for core caching. To change the config edit config/app.php
  • + +
  • Your cache is NOT working. Please check the settings in config/app.php
  • + +
+
+
+
+ +
+
+

Database

+ connect(); + } catch (Exception $connectionError) { + $connected = false; + $errorMsg = $connectionError->getMessage(); + if (method_exists($connectionError, 'getAttributes')) : + $attributes = $connectionError->getAttributes(); + if (isset($errorMsg['message'])) : + $errorMsg .= '
' . $attributes['message']; + endif; + endif; + } + ?> +
    + +
  • CakePHP is able to connect to the database.
  • + +
  • CakePHP is NOT able to connect to the database.
  • + +
+
+
+

DebugKit

+
    + +
  • DebugKit is loaded.
  • + +
  • DebugKit is NOT loaded. You need to either install pdo_sqlite, or define the "debug_kit" connection name.
  • + +
+
+
+
+ +
+
+

Editing this Page

+
    +
  • To change the content of this page, edit: src/Template/Pages/home.ctp.
  • +
  • You can also add some CSS styles for your pages at: webroot/css/.
  • +
+
+ +
+ +
+
+

More about Cake

+

+ CakePHP is a rapid development framework for PHP which uses commonly known design patterns like Front Controller and MVC.
+ Our primary goal is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility. +

+
+
+
+ +
+
+ P +

Help and Bug Reports

+ +
+
+ r +

Docs and Downloads

+ +
+
+ s +

Training and Certification

+ +
+
+ + + diff --git a/fai_gestion/src/View/AjaxView.php b/fai_gestion/src/View/AjaxView.php new file mode 100644 index 0000000..3cb7869 --- /dev/null +++ b/fai_gestion/src/View/AjaxView.php @@ -0,0 +1,49 @@ +response = $this->response->withType('ajax'); + } +} diff --git a/fai_gestion/src/View/AppView.php b/fai_gestion/src/View/AppView.php new file mode 100644 index 0000000..7b92ebf --- /dev/null +++ b/fai_gestion/src/View/AppView.php @@ -0,0 +1,40 @@ +loadHelper('Html');` + * + * @return void + */ + public function initialize() + { + } +} diff --git a/fai_gestion/src/View/Cell/empty b/fai_gestion/src/View/Cell/empty new file mode 100644 index 0000000..e69de29 diff --git a/fai_gestion/src/View/Helper/empty b/fai_gestion/src/View/Helper/empty new file mode 100644 index 0000000..e69de29 -- cgit v1.1