On Thu, May 1, 2008 at 1:45 PM, J. Philip <jphi
...@noatak.com> wrote:
> The way I wanted it is to have a single Tagging class for all taggable
> models with
> Tag_id
> Taggable_id
> Taggable_model
> It is the principle used by Ror plugin or
> sfPropelActAsTaggableBehaviorPlugin, but it might just be because they
> don't have the power of Doctrine's plugins and templates to generate
> models on the fly.
> The way you suggest, although creating more tables seems more sound as
> it takes advantage of referencial integrity and automatic relation
> management from Doctrine.
> -----Original Message-----
> From: doctrine-dev@googlegroups.com
> [mailto:doctrine-dev@googlegroups.com] On Behalf Of Jonathan Wage
> Sent: Thursday, May 01, 2008 6:03 AM
> To: doctrine-dev@googlegroups.com
> Subject: [doctrine-dev] Re: Taggable Plugin
> Hmm. You should be able to create this model setup with the behavior
> system.
> BlogPost - actAs Taggable - This would create the following:
> BlogPostTag
> - blog_post_id(primary)
> - tag_id(primary)
> Tag(only created if it doesn't already exist, or if it is configured to
> use an existing Tag model)
> - name
> Now you can create the following relationships:
> BlogPost hasMany Tag as Tags(local: blog_post_id, foreign: tag_id,
> refClass: BlogPostTag)
> Tag hasMany BlogPost as BlogPosts(local: tag_id, foreign: blog_post_id,
> refClass: BlogPostTag)
> On Thu, May 1, 2008 at 1:16 AM, J. Philip <jphi...@noatak.com> wrote:
> I created a couple of tickets.
> Another question:
> The relation between the Taggale class and the Tag class is polymorphic,
> so it is not possible to have a regular Doctrine relation between the 2
> because Doctrine want to export a foreign key and it is not possible.
> Turning off constrain export for the table turns off export of the other
> foreign keys. (Not good)
> So the alternative would be to keep track of the tags collection
> manually in the template and save, insert it in a listener.
> Is there a way to take advantage of Doctrine's automatic relation
> management in a case like this ?
> -----Original Message-----
> From: doctrine-dev@googlegroups.com
> [mailto:doctrine-dev@googlegroups.com] On Behalf Of Jonathan Wage
> Sent: Wednesday, April 30, 2008 7:17 PM
> To: doctrine-dev@googlegroups.com
> Subject: [doctrine-dev] Re: Taggable Plugin
> Can you create tickets for the issues you are finding? Their are known
> bugs that have not been worked on yet but now would be a good time to
> get this component stabilized.
> Thanks
> On Apr 30, 2008, at 5:48 PM, "J. Philip" <jphi...@noatak.com> wrote:
> > Thanks Jon,
> > I made a little progress.
> > I got to export the sql without relations yet.
> > I used a child class extending from Doctrine_Record_Generator for the
> > Tagging model. I instanciate the TaggingGenerator class in the
> > Taggable template contructor and add it to the clildren options before
> > instanciating the TagGenerator class.
> > I works but I had to override the buildChildDefinitions method as it
> > seems buggy.
> > Replacing:
> > $child->setTable($this->_table);
> > $child->setUp();
> > With
> > $child->initialize($this->_table);
> > Seems to work. (I don't think there is any setTable method in
> > Doctrine_Record_Generator)
> > I got the sql for both tables exported, but the option 'generateFiles'
> > does not seem to do anything. I tought it would generate model files,
> > but I could not find any call to it anywhere.
> > Now I have work on the relationships.
> > Jacques
> > -----Original Message-----
> > From: doctrine-dev@googlegroups.com
> > [mailto:doctrine-dev@googlegroups.com] On Behalf Of Jonathan Wage
> > Sent: Wednesday, April 30, 2008 6:03 AM
> > To: doctrine-dev@googlegroups.com
> > Subject: [doctrine-dev] Re: Taggable Plugin
> > I think the best way to do this right now would be you just have a
> > standalone child class extending from Doctrine_Record and have the
> > behavior configurable for the Tag model to use. It will default to the
> > one bundled with the behavior, but the plugin could be configured to
> > use
> > something else if required.
> > - Jon
> > On Wed, Apr 30, 2008 at 4:44 AM, Mushing Fan <jphi...@noatak.com>
> > wrote:
> > I was trying to create a Taggable plugin, I followed the documentation
> > and example of the Versionable plugin, but I am not sure how to
> > implement a plugin that needs 2 tables. (A Tag and Taggable class)
> > I understood I have to create a Template to extend the classes that
> > will be taggable.
> > The template instantiates a generator that is placed in its_plugin
> > property and eventually adds a listener to act upon changes in the
> > records.
> > But is it possible to add 2 generators to a template?
> > --
> > Jonathan Wage
> > http://www.jwage.com
> > http://www.centresource.com
> --
> Jonathan Wage
> http://www.jwage.com
> http://www.centresource.com