sfLexikDoctrineActAsCommentablePlugin ou comment rendre des objets commentables via un behavior / plugin

Aujourd’hui je vais vous montrer comment rendre des objets commentables grâce à un behavior Doctrine que j’ai créé, et le plugin qui permet de l’exploiter.

Le behavior donne les fonctionnalités, le plugin donne le modèle et l’affichage ainsi que les actions (listing des commentaires, formulaire d’ajout de commentaire, …)

Je me suis basé sur le behavior Doctrine Taggable fourni à l’origine pour réaliser ceci.

Le behavior et le plugin ne sont pas utilisable l’un sans l’autre.

Lire la suite de l’article

Liste d’objets ordonnable via AJAX partie 1 bis

Ce post a pour but de reprendre la première version de la liste, en utilisant le plugin csDoctrineActAsSortablePlugin.
Ce plugin gère exactement la situation décrite dans la partie 1 en utilisant simplement un behavior dans le schema.

Voilà le lien du plugin : csDoctrineActAsSortablePlugin

Le readme est assez bien fait, cependant pour plus de clarté reprenons l’exemple précédent.
Lire la suite de l’article

Liste d’objets ordonnable via AJAX partie 1

Aujourd’hui, voyons les fonctions sortables permettant de changer la position d’objet, de les ordonner et de sauvegarder l’ordre. C’est toujours pratique pour organiser une galerie photo, ou des éléments dans votre site internet.

Toutes les informations sur l’objet que nous souhaitons ordonner et/ou classer seront stockées en base :
schema.yml

Item:
  columns:
    name:
      type: string(255)
    rank:
      type: integer
      notnull: true
      unique: true

Lire la suite de l’article

Formulaires i18n et ajout de langues automatisé

Ce post à pour but de faciliter les embedI18n pour les formulaires ayant des champs en i18n.
Lire la suite de l’article

Colonnes de recherche perso dans le filter de l’admin generator, avec Doctrine

Comment faire pour filtrer l’affichage dans l’admin generator lorsqu’on a à faire à un champs qui n’est pas dans la table considérée ?

Un exemple ici : j’ai des utilisateurs, avec la table User, mais j’ai aussi une table sfGuardUser.

Ma table User contient les infos globales de mes utilisateurs, alors que la table sfGuardUser contient les informations d’identification et permet également de récupérer les infos sur les permissions, les groupes, etc.

Voilà le problème : j’ai dans le listing de mes utilisateurs ajouté la colonne « Administrateur ? », indiquant si l’utilisateur est admin ou non (vous l’aurez compris…), pour cela il m’a suffit de rajouter la méthode getIsAdmin() dans ma classe User.class.php (lib/model/doctrine/User.class.php), et le champs is_admin dans le generator.yml de mon module user dans le backend (apps/backend/modules/user/config/generator.yml). (cf jobeet n°12) Lire la suite de l’article

Petit système de vote en AJAX

Le système que je vous propose est assez simpliste : il s’agit d’un vote type « j’aime / j’aime pas ».

On dispose d’un ensemble d’éléments (ici des messages) que l’on nous propose de noter.

Dans une première étape, le principe est de créer le système de vote, dans une deuxième étape on limitera les votes : un visiteur ne peut voter sur un élément qu’une fois par jour.
(Attention, ne pas pas oublier d’ajouter les include et use_javascript dans le layout de votre appli)
Lire la suite de l’article