j'essaie de créer un plugin et j'ai un probleme.
le plugin est tout simple: du contenu en i18n. C'est mon premier test.
mon code est simple voir piece jointe...
sinon voici un petit aperçu:
schema.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
sfLexikContent:
tableName: sfLexik_content
actAs:
I18n:
tableName: sfLexik_content_translation
fields: [h1, text, is_activated, meta_title, meta_key, meta_description]
actAs:
Sluggable:
uniqueBy: [lang]
fields: [h1]
columns:
name: { type: string(255), notnull: true }
h1: { type: string(255) }
text: { type: clob }
is_activated: { type: boolean, notnull: true, default: true }
meta_title: { type: string(255) }
meta_key: { type: clob }
meta_description: { type: clob } |
pluginsfLexikContentForm.php pour avoir le i18n
1 2 3 4 5 6 7 8 9 10
|
class PluginsfLexikContentForm extends BasesfLexikContentForm
{
public function configure()
{
$this->embedI18n(array('en', 'fr'));
$this->widgetSchema->setLabel('en', 'English');
$this->widgetSchema->setLabel('fr', 'French');
}
} |
le model est vide:
pluginsfLexikContent.class.php
1 2 3 4
| class PluginsfLexikContent extends BasesfLexikContent
{
} |
et dans le module:
- action.class.php juste un index et un show avec les templates correspondant.
rien de bien compliquer.
le problème que je rencontre:
quand je fais mon doctrine:build-all-reload
des fichiers sont générés dans lib/form/doctrine/sfLexikContenuPlugin (ok), mais aussi dans les fichiers suivant: lib/form/doctrine/PluginsfLexikContentForm.class.php et lib/form/doctrine/PluginsfLexikContentTranslationForm.class.php ce qui n'est pas normal et ils viennent surcharger les fichiers identique dans mon plugin. donc dans ce cas je perds mon formulaire I18N.
donc j'ai lu qu'il fallait déclarer les class du plugin comme abstract, et là du coup les fichiers gênant ne sont plus créés, MAIS j'obtiens maintenant l'erreur suivante:
Fatal error: Cannot instantiate abstract class PluginsfLexikContent in C:\wamp\www\absoconseil\lib\vendor\symfony\lib\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Table.php on line 270
pour le moment quand j'enleve le abstract et que je supprime les fichiers générés: dans form/lib/doctrine, alors ça marche sauf qu'il faut supprimer a chaque build-all... et à mon avis ce n'est pas normal..
Partager