コード例 #1
0
ファイル: ImageController.php プロジェクト: studentneil/cms
 /**
  * A route to retrieve images from the database and present
  * them to the user for adding to content.
  *
  * @param request object
  * @param app object
  *
  * @return twig template
  */
 public function viewImagesAction(Request $request, Application $app)
 {
     $db = new DbRepository($app['dbh']);
     $images = $db->viewImages();
     $content = $db->getAllPagesContent();
     $args_array = array('user' => $app['session']->get('user'), 'images' => $images, 'content' => $content);
     $templateName = '_viewImages';
     return $app['twig']->render($templateName . '.html.twig', $args_array);
 }
コード例 #2
0
ファイル: UploadController.php プロジェクト: studentneil/cms
 /**
  * A controller for processing the upload images form.
  * Validations: a jpg or png, under 1M and file must not already exist.
  * The image path will be stored in the db.
  *
  * @param request object
  * @param app object
  *
  * @return twig template
  */
 public function processImageUploadAction(Request $request, Application $app)
 {
     $file = $request->files->get('image');
     $pic = $file->getClientOriginalName();
     $constraint = new Assert\Image(array('mimeTypes' => array('image/jpeg', 'image/png'), 'maxSize' => '2M'));
     $validfile = true;
     $message = '';
     $errors = $app['validator']->validate($file, $constraint);
     if (count($errors) > 0) {
         foreach ($errors as $error) {
             $message = $error->getPropertyPath() . ' ' . $error->getMessage() . "\n";
         }
         $validfile = false;
     }
     if (file_exists($request->getBasePath() . 'images/' . $file->getClientOriginalName())) {
         $message = 'Sorry, file already exists';
         $validfile = false;
     }
     # if the validation variable is false, re-render the upload form with an error message
     if ($validfile == false) {
         $args_array = array('user' => $app['session']->get('user'), 'result' => $message);
         $templateName = '_uploadImageForm';
         return $app['twig']->render($templateName . '.html.twig', $args_array);
     } elseif ($validfile == true) {
         $file->move($request->getBasePath() . 'images/', $file->getClientOriginalName());
         $path = $file->getClientOriginalName();
         $newImage = new Image();
         $newImage->setImagePath($path);
         $image = $newImage->getImagePath();
         $db = new DbRepository($app['dbh']);
         $result = $db->uploadImage($image);
         $images = $db->viewImages();
         $content = $db->getAllPagesContent();
         $args_array = array('user' => $app['session']->get('user'), 'result' => $result, 'images' => $images, 'content' => $content);
         $templateName = '_viewImages';
         return $app['twig']->render($templateName . '.html.twig', $args_array);
     }
 }
コード例 #3
0
ファイル: bootstrap.php プロジェクト: studentneil/cms
    $app['image'] = '/images/' . $config['bg-image']['image'];
}
# store regularly used variables(services?) in the app container
$dbmanager = new DbManager();
# app['dbh'] is a connection instance and is passed to the constructor
# of the database repository.
$app['dbh'] = $dbmanager->getPdoInstance();
$db = new DbRepository($app['dbh']);
# The $pages variable will be accessible in twig templates as app.pages.
# and will (usually) be an array of page objects
# so you can loop through with a twig for loop.
# e.g {% for page in app.pages %}{{ page.pageName or page.pageTemplate }}
# this will save having to query the database every time you want to access
# the page objects.
$app['pages'] = $db->getAllPages();
$app['images'] = $db->viewImages();
# twig loaders for templates: a database loader for dynamically created templates,
# and a filesystem loader for templates stored on the filesystem.
$app['loader1'] = new Twig_Loader_Filesystem(array($myTemplatesPath1, $myTemplatesPath2));
$app['loader2'] = new DatabaseTwigLoader($app['dbh']);
$app['debug'] = true;
# ______________________________________________________________
#              ADD PROVIDERS HERE
# ______________________________________________________________
#
$app->register(new Silex\Provider\ValidatorServiceProvider());
$app->register(new Silex\Provider\UrlGeneratorServiceProvider());
$app->register(new Silex\Provider\SessionServiceProvider());
$app->register(new Silex\Provider\TwigServiceProvider(), array('twig.loader' => $app->share(function () use($app) {
    return new Twig_Loader_Chain(array($app['loader1'], $app['loader2']));
})));