Symfony jobeet
Salut, je lis le tutoriel Jobeet mais je me disais en même temps en paralèlle je voudrais développer un petit blog avec des articles + commentaires + catégories.
C'est assez simple mais j'ai un peu du mal avec le tutoriel Jobeet.
Je voulais savoir si c'est une bonne idée ! Et genre si je fais mon fichier schema.yml tu pourrais me le valider.
Merci :)
Réponses apportées à cette discussion
Oui c'est très facile de monter son propre blog en symfony.
Ok, je le fais pour poser des questions car tu répond bien mieux que sur le chan :p !!
Premièrement j'ai creer mon projet blog.(c'est ok).
Deuxièment je ne sais pas trop quoi creer comme application...
En faite j'ai chercher la traduction de "frontend" qui est la première application sur jobeet mais je n'ai pas eu de traduction.
J'ai cru comprendre qu'il faut creer une application pour l'utilisateur et une pour l'administration.
Pourrais tu me dire par quoi commencer !??
Merci :)
Ok donc voici mon schema.yml ultra simpliste
BlogCategory: actAs: Timestampable: ~ columns: name: type: string(255) notnull: true BlogArticle: actAs: Timestampable: ~ columns: category_id: type: integer notnull: true title: type: string(255) content: type: string(200000) relations: BlogCategory: local: category_id foreign: id
Je dois rajouter un espace membre?Pour que seul moi(=admin) puisse poster les articles.
Merci de ton aide ;)
Ton schema.yml semble correct. Par contre tu ne gères pas les commentaires ?
Pour l'espace membre tu as deux solutions :
- Installer le sfDoctrineGuardPlugin qui permet de faire du "user management" mais pour un seul admin, c'est dommage d'installer tout ça.
- Tu stockes les identifiants (pass et login) dans le fichier app.yml de ton application backend, et tu crées le formulaire de login. Il suffit ensuite de faire un validateur qui teste le couple d'identifiants et si le formulaire est valide ($form->isValid()), tu set l'authentification à true ($this->getUser()->setAuthenticated(true)) de ton objet myUser (apps/backend/lib/myUser.class.php) et bien sûr tu n'oublies pas de sécuriser ton backend dans le fichier apps/backend/config/security.yml
++
Ok j'ai rajouté une table commentaire. J'ai généré mon application + module...
Donc sa fonctionne bien mais sur la page d'accueil je souhaiterai afficher que, par exemple, 100 caratères de chaque article. Ou dois-je mettre cette fonction substr? Je la met simplement dans le template ou je créer une méthode?
Sinon sur chaque article je souhaite afficher le nom de la catégorie auquel il appartient.
Par défaut il affiche l'id ->
J'ai essayer avec mais nan.
Je me dis donc qu'il faut que je fasse une jointure pour récuperer le nom de la cat?(CF mon schema.yml).
Merci
Pour la troncature, utilise le helper "truncate_text()" en prenant soin de bien l'appeler avant de l'utiliser avec "user_helper('Text');" dans ton template.
Pour la catégorie, il faut que tu fasses soit :
<?php echo $article->getCategory()->getName(); ?>
Ou bien simplement ceci si ta class Category dispose d'une méthode __toString() qui retourne le name :
<?php echo $article->getCategory(); ?>
++
Pour la catégorie cela ne marche pas j'ai essayé les deux.
Avec l'erreur est
Notice: Undefined variable: getCategory in C:\development\sfprojects\blog\apps\frontend\modules\article\templates\indexSuccess.php on line 7 Fatal error: Method name must be a string in C:\development\sfprojects\blog\apps\frontend\modules\article\templates\indexSuccess.php on line 7
Tu peux me filé le lien pour la doc qui explique comment utiliser truncate_text^^ car je cherche mais je trouve pas :p
Merci
Normal que ça ne marche pas, pourquoi mets-tu un dollar $ devant le nom de la méthode ???
Lool new error Unknown method BlogArticle::getCategory
Sinon j'ai une question sur ce bout de code du controleur
public function executeIndex(sfWebRequest $request)
{
$this->blog_article_list = Doctrine::getTable('BlogArticle')
->createQuery('a')
->execute();
}
En faite (dit moi si c'est faux) ce bout de code est appelé quand on va sur l'index.
Comme c'est le controleur c'est normal qu'il n'y ai pas de requête dans ce code.
La si je lis sa rempli la list des articles dans blog article mais cela les rempli avec quoi?? Car il n'y a pas de requête qui sélectionne tout les articles :S
Et ou je peux trouver ce que fait exactement
Doctrine::getTable('BlogArticle')
->createQuery('a')
->execute();
Je suppose sur la doc mais j'ai du mal à trouver ce que sa fait concrétement!
Merci
Lis la doc de doctrine sur le site officiel de Doctrine :)
Loooool le truc qui fait 100 pages et qui est en anglais^^ tu es marrant.
Ce que je ne comprend pas c'est pourqu'oi dans createQuery il met 'a' .
Je vais continuer de chercher dans la doc, mais ta réponse pourrait me faire gagner de nombreuses heures.
merci
Sa veut pas dire "all" pour * ?
Merci sérieux je feuillete la doc mais toujours pas trouvé !
Regarde ça pour le createQuery() : http://www.symfony-project.org/book/doctrine/1_2/en/06-Working-With-Data
ok merci, je l'ai mis dans mes favoris !