Sorry, I am referring to the sfPropelObjectPathBehaviorPlugin

On Thu, Apr 15, 2010 at 12:04 PM, Richard U <richard....@gmail.com> wrote:
> How is the sfDataSource different from dbFinder?
>
> On Wed, Apr 14, 2010 at 8:52 AM, Leon van der Ree <l...@fun4me.demon.nl> 
> wrote:
>> Hi All,
>>
>> today I have added the start of routing-engine for grids.
>>
>> DigitalBase has provided a redmine issue-tracker for us at
>> https://symfony.digitalbase.eu/
>> This way we can report bugs and cooperate much easier, so feel free to
>> report and improve the plugins!
>>
>> On 12 apr, 15:11, E_lexy <alexk...@gmail.com> wrote:
>>> Leon,
>>>
>>> I just checked out all required plugins to generate a grid.
>>> Using your old sfGridExtjs3plugin, i get inheritance errors.
>>> it seems the sfGrid class variables cannot be reached by any subclass
>>> (private).
>>> When I change them to 'protected' the subclasses are allowed access
>>> and all works fine.
>>>
>>> p.s. i am very curious to see your extjs grid plugin, I have am using
>>> old plugin so I can specify EXtjs column plugins is the meta data, and
>>> have Extjs generate the entire grid based on the 
>>> jsonhttp://www.extjs.com/deploy/dev/docs/source/Store.html#cls-Ext.data.S...
>>>
>>> Alex
>>>
>>> On Apr 12, 11:03 am, DigitalBase <i...@digitalbase.eu> wrote:
>>>
>>> > Leon,
>>>
>>> > i am trying out your sfGrid plugin and ran into few small issues
>>> > where do you want us to report problems/bugs ?
>>>
>>> > On Apr 11, 10:53 pm, Leon van der Ree <l...@fun4me.demon.nl> wrote:
>>>
>>> > > Today I will provide a tutorial, setting up a (propel-based)
>>> > > playground with some best practices I came up with so far. (If you
>>> > > prefer Doctrine, you can still follow the tutorial, but of course need
>>> > > to setup a Doctrine schema and use the Doctrine plugins)
>>>
>>> > > If you want to see where all the fuzz is about, peak ahead and look at
>>> > > the size of the controller and the template!
>>> > > All configuration can be done in an extended
>>>
>>> > > Lets begin with a new (Symfony 1.4) Project:
>>>
>>> > > Tip: create a new repository on your svn-server and check this out!
>>> > > (this is useful since we are using a lot of plugins from svn, that can
>>> > > be updated all at once by using svn:externals )
>>>
>>> > >   svn co your.svn.server/playground-project playground
>>> > > or, when not using svn
>>> > >   mkdir playground
>>>
>>> > >   cd playground
>>> > >   php /symfony14/data/bin/symfony generate:project --orm=propel
>>> > > playground
>>>
>>> > > we now have a new propel-based syfmony 1.4 project. Lets start by
>>> > > adding all required Plugins:
>>>
>>> > >   svn propedit svn:externals .
>>>
>>> > > and add the following lines to it:
>>>
>>> > > plugins/sfPropel15Pluginhttp://svn.symfony-project.com/plugins/sfPropel15Plugin/trunk
>>> > > plugins/sfPropelObjectPathBehaviorPluginhttp://svn.symfony-project.com/plugins/sfPropelObjectPathBehaviorPlug...
>>> > > plugins/sfDataSourcePlugin  
>>> > > http://svn.symfony-project.com/plugins/sfDataSourcePlugin/trunk
>>> > > plugins/sfGridPluginhttp://svn.symfony-project.com/plugins/sfGridPlugin/trunk
>>>
>>> > > Now we enable our plugins, first by editing our Project configuration,
>>>
>>> > > edit config/ProjectConfiguration.class.php
>>> > > and enable your plugins in the setup-function:
>>>
>>> > >     $this->enablePlugins(
>>> > >         'sfPropel15Plugin',
>>> > >         'sfPropelObjectPathBehaviorPlugin',
>>>
>>> > > //      'sfExtjs3Plugin', // soon people
>>>
>>> > >       'sfDataSourcePlugin',
>>> > >       'sfGridPlugin' //,
>>> > > //      'sfGridExtjsPlugin' // soon.... Just teasing ;)
>>> > >     );
>>>
>>> > > Setup propel, by editing propel.ini
>>> > > please note propel1.5 is requiring different behavior-paths and we are
>>> > > enabling the object-path plugin:
>>> > > So the behaviors section should look like this:
>>>
>>> > > ; behaviors
>>> > > propel.behavior.default                        =
>>> > > symfony,symfony_i18n,object_path
>>>
>>> > > propel.behavior.symfony.class                  =
>>> > > plugins.sfPropel15Plugin.lib.behavior.SfPropelBehaviorSymfony
>>> > > propel.behavior.symfony_i18n.class             =
>>> > > plugins.sfPropel15Plugin.lib.behavior.SfPropelBehaviorI18n
>>> > > propel.behavior.symfony_i18n_translation.class =
>>> > > plugins.sfPropel15Plugin.lib.behavior.SfPropelBehaviorI18nTranslation
>>> > > propel.behavior.symfony_behaviors.class        =
>>> > > plugins.sfPropel15Plugin.lib.behavior.SfPropelBehaviorSymfonyBehaviors
>>> > > propel.behavior.symfony_timestampable.class    =
>>> > > plugins.sfPropel15Plugin.lib.behavior.SfPropelBehaviorTimestampable
>>>
>>> > > propel.behavior.object_path.class              =
>>> > > plugins.sfPropelObjectPathBehaviorPlugin.lib.ObjectPathBehavior
>>>
>>> > > Currently I have a simple schema as an example:
>>>
>>> > > propel:
>>> > >   city:
>>> > >     id:
>>> > >     name:       varchar(255)
>>> > >     country_id:
>>> > >     created_at:
>>>
>>> > >   country:
>>> > >     id:
>>> > >     name:      varchar(255)
>>> > >     created_at:
>>>
>>> > > lets build the model
>>>
>>> > >   ./symfony propel:build-all
>>>
>>> > > Add an application and empty module:
>>>
>>> > >   ./symfony generate:app frontend
>>> > >   ./symfony generate: frontend cityGrid
>>>
>>> > > Now add a grid folder to your lib-folder and add a CityGrid.php file
>>>
>>> > >   mkdir lib/grid
>>> > >   edit lib/grid/CityGrid.php
>>>
>>> > > and add the following code to it:
>>>
>>> > > <?php
>>> > > class CityGrid extends sfWebGrid  // soon you can extend the
>>> > > sfGridExtjs3 - class
>>> > > {
>>> > >   /**
>>> > >    *
>>> > >    * @param sfWebRequest $request
>>> > >    */
>>> > >   public function __construct(sfWebRequest $request)
>>> > >   {
>>> > >     $cityDataSource = new sfDataSourcePropel('City');
>>> > >     parent::__construct($cityDataSource);
>>>
>>> > >     $this->setDefaultSort('Country.Name', sfGrid::ASC);
>>>
>>> > >     $this->setColumns(array(
>>> > >       'Id',
>>> > >       'Country.Name',
>>> > >       'Name'
>>> > >     ));
>>>
>>> > >     $this->setColumnTitles(array(
>>> > >       'Country.Name' => 'Country',
>>> > >       'Name'         => 'City'
>>> > >     ));
>>> > >     $this->setSortable(sfGrid::ALL);
>>>
>>> > >     $this->getPager()->setMaxPerPage(2);
>>> > >     $this->bind($request);
>>> > >   }
>>>
>>> > > }
>>>
>>> > > Now you can add the following to your controller:
>>>
>>> > > edit actions.class.php
>>>
>>> > >  /**
>>> > >   * Executes index action
>>> > >   *
>>> > >   * @param sfRequest $request A request object
>>> > >   */
>>> > >   public function executeIndex(sfWebRequest $request)
>>>
>>> > >     $this->grid = new CityGrid($request);
>>>
>>> > >   }
>>>
>>> > > And edit your template, indexSuccess.php
>>>
>>> > > <?php $grid = $sf_data->getRaw('grid'); ?>
>>> > > <div id="grid-example">
>>> > >   <table>
>>> > >    <?php echo $grid->render() ?>
>>> > >   </table>
>>> > > </div>
>>>
>>> > > clear your cache
>>>
>>> > >   ./symfony cc
>>>
>>> > > add some data to your database, use fixtures, or the following:
>>>
>>> > > // initialize database
>>> > > $country_nl = new Country();
>>> > > $country_nl->setName('the Netherlands');
>>>
>>> > > $country_fr = new Country();
>>> > > $country_fr->setName('France');
>>>
>>> > > $country_be = new Country();
>>> > > $country_be->setName('Belgium');
>>>
>>> > > $city_ams = new City();
>>> > > $city_ams->setCountry($country_nl);
>>> > > $city_ams->setName('Amsterdam');
>>> > > $city_ams->save();
>>>
>>> > > $city_rdm = new City();
>>> > > $city_rdm->setCountry($country_nl);
>>> > > $city_rdm->setName('Rotterdam');
>>> > > $city_rdm->save();
>>>
>>> > > $city_rdm = new City();
>>> > > $city_rdm->setCountry($country_nl);
>>> > > $city_rdm->setName('Den Haag');
>>> > > $city_rdm->save();
>>>
>>> > > $city_prs = new City;
>>> > > $city_prs->setName('Paris');
>>> > > $city_prs->setCountry($country_fr);
>>> > > $city_prs->save();
>>>
>>> > > $city_bdx = new City;
>>> > > $city_bdx->setCountry($country_fr);
>>> > > $city_bdx->setName('Bordeaux');
>>> > > $city_bdx->save();
>>>
>>> > > $city_brs = new City();
>>> > > $city_brs->setCountry($country_be);
>>> > > $city_brs->setName('Brussel');
>>> > > $city_brs->save();
>>>
>>> > > next time I will release the extjsGrid. Then I will transform this
>>> > > example to ExtJS, with only minor changes to the module and the
>>> > > CityGrid-class.The CityGrid will specialize the ExtjsGrid, providing
>>> > > it the capabilities to generate not only HTML, but JSON and JS output
>>> > > as well. The controller currently needs to be altered to add support
>>> > > to handle .js and .json requests, but I am going to make the routing
>>> > > engine take care of that. The template currently needs to be extended
>>> > > as well, to start the initial extjs-application, but this will be
>>> > > moved to the extjs-grid-plugin soon as well.
>>>
>>> > > For now I would be happy to get feedback about the current HTML
>>> > > formatter.
>>> > > I didn't explained how to modify the (row)formatter yet and how to
>>> > > define and write widgets, but you should be aware that these are the
>>> > > key to modifying the HTML rendering (for example to add css-classes
>>> > > and truncate your texts or format currencies) to your liking.
>>
>> --
>> If you want to report a vulnerability issue on symfony, please send it to 
>> security at symfony-project.com
>>
>> You received this message because you are subscribed to the Google
>> Groups "symfony users" group.
>> To post to this group, send email to symfony-users@googlegroups.com
>> To unsubscribe from this group, send email to
>> symfony-users+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/symfony-users?hl=en
>>
>> To unsubscribe, reply using "remove me" as the subject.
>>
>

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en

Reply via email to