-
Notifications
You must be signed in to change notification settings - Fork 1
Home
__ __
/`_ \ / _`\
|':\ \ / /:'|
\':\ \ / /:'/
\':\ \ / /:'/
\':\ \ / /:'/
\ `\ \/ /` /
> <
/ \
.' '.
/ 0 __ 0 \
>| _ \/ _ |<
\ \ / /
'._ '----' _.'
/` '. __ .' `\
| |-. `| |
_\_(_(_/ \/\_)_)_/_
/ ` /\__/`\__/`\_\ ` \
| / () (\ |
| ; (), , () , ; |
; | /^\ /^\ /^\ | ;
\|\/ \/ \/ \|/
| /`\ /`\ /`\ |
;\/ \/ \/ ()\;
_\ () /_
_.-'` '._ () _.' `'-._
/` .'` ``""""`` `'. `\
\_(_(,'` `'.)_)_/
Pour nettoyer les fichiers modifiés/ajoutés et etre au dernier commit sur la branche master
, dans la ligne de commande executez :
git reset --hard && git clean -fd && git checkout master
Ajoutez un slash '/' devant les assets css :
<link rel="stylesheet" href="/css/pure-min.css">
Pensez aussi à modifier host et user dans src/app.php :
// Doctrine
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'db.options' => array(
'driver' => 'pdo_mysql',
'host' => 'XXXXXXXXXXXXXXXXXXXXXX',
'dbname' => 'c9',
'port' => 3306,
'user' => 'XXXXXXXXXXXXXXXXXXXXXX',
'charset' => 'utf8'
),
));
pour le host faites en ligne de commande mysql-ctl cli
puis :
SHOW VARIABLES WHERE Variable_name = 'hostname';
Utilisez la valeur de hostname
et faites exit
pur revenir à la ligne de commande
-
Modifiez le contenu de la page cv cf. template
pages/cv.html.twig
, ajoutez un "lorem ipsum" ou n'importe quel contenu text/html dans le blockcontenu
-
Ajoutez une route "/goodies" à votre application
Dans src/routes.php
, dupliquez le code du "contrôleur" de la page CV :
$app->get('/mon-cv', function () use ($app) {
return $app['twig']->render('pages/cv.html.twig');
})->bind('cv');
Changez la route /mon-cv
en /goodies
Créez le template pages/goodies.html.twig
en s'inspirant de pages/cv.html.twig
(n'oubliez pas de changer le nom du template et le "binding" (i.e. ->bind('cv')
) dans le contrôleur que vous venez de créer.
Mettez le contenu que vous voulez dans le template pages/goodies.html.twig
- Passez un tableau à la vue
Dans le contrôleur que vous avez créer, ajoutez un tableau que vous passez en paramètre à la "vue"
Ex.:
$goodies = [
"Stickers",
"T-shirts",
"what else ?"
];
- Affichez les éléments dans la vue
à l'aide de la boucle for de twig (cf. doc. http://twig.sensiolabs.org/doc/tags/for.html)
- Ajoutez la classe suivante dans
src/Lpimash/Model/Realisation.php
:
<?php
namespace Lpimash\Model;
class Realisation {
protected $db;
public function __construct(\Doctrine\DBAL\Connection $db){
$this->db = $db;
}
public function getRealisations(){
return $this->db->fetchAll('SELECT * FROM realisations');
}
}
Dans src/app.php ajoutez :
$app['realisation'] = function ($app) {
return new Lpimash\Model\Realisation($app['db']);
};
- Modifiez la route
realisations
pour lister les réalisations :
Dans le contrôleur :
$realisations = $app['realisation']->getRealisations();
Passez cette variable à la vue et affichez la, Ex. :
<ul>
{% for realisation in realisations %}
<li>{{ realisation.description }}</li>
{% endfor %}
</ul>
- Faire une route pour une réalisation
Ajoutez la route
$app->get('/realisation/{id}', function ($id) use ($app) {
})->bind('realisation');
- Ajoutez la méthode suivante dans la classe
Realisation
public function getRealisation($id){
return $this->db->executeQuery("SELECT * FROM realisations WHERE id_realisation = ?", array($id))->fetch();
}
Dans la route realisation
ajoutez
$realisation = $app['realisation']->getRealisation($id);
return $app['twig']->render('pages/realisation.html.twig', array('realisation' => $realisation));
- Créez le template correspondant (i.e.
pages/realisation.html.twig
)
Avec pour contenu du bloc contenu
{{ realisation.description }}
Testez avec votre URL Ex. : https://cours-o-revollat-2.c9.io/realisation/5 (remplacer avec VOTRE nom de domaine)
-
Dans le template d'une réalisation, ajoutez l'affichage des champs
lien_image
(avec une balise<img/>
) etlien_realisation
(avec une balise<a>
) -
Last but not least
Dans le template qui liste les réalisations (pages/realisations.html.twig
) ajouter dans la boucle un lien vers chaque réalisation :
{% for realisation in realisations %}
<li><a href="{{ path('realisation', {id: ????????Guess what????????}) }}">{{ realisation.description }}</a></li>
{% endfor %}
- Question bonus : que sont les Opcodes PHP ? (explications en moins de 140 caractères)