I did try using the cache, but because I may be calling the same
element a few times but with different inputs it won't work (It just
redisplays the first item for that element).

On Apr 6, 1:23 pm, majna <[email protected]> wrote:
> Use elements cache 
> :)http://bakery.cakephp.org/articles/view/creating-reusable-elements-wi...
>
> On Apr 6, 12:06 pm, Walther <[email protected]> wrote:
>
> > I believe I've found a solution.
>
> > For each possible item that can be added to the homepage I store the
> > name of the controller that is called. By simply changing this to the
> > model name and using App::Import in the homepage model (Where I fetch
> > the items from the database) I have gotten rid of the requestActions.
>
> > Seems to be working quite well.
>
> > From those who are more experienced at Cake, is this a better way of
> > doing it?
>
> > On Apr 6, 10:51 am, Walther <[email protected]> wrote:
>
> > > Hi all
>
> > > In an app that I am currently developing I wish to give the
> > > administrator the ability to customise the home page of the app by
> > > being able to include various other things into the home page (For
> > > example, the admin may wish to show a welcome message which uses the
> > > pages controller, and they may wish to show a calendar using the
> > > calendars controller and an unlimited number of other views).
>
> > > What I am currently doing is on the homepage view I do a loop through
> > > the homepages table and call the homepages.ctp element and sends it
> > > the relevant data for the view that needs to be displayed. The
> > > homepage element then calls the relevant element for whatever
> > > controller the admin has chosen, this controller may be part of a
> > > plugin.
>
> > > The homepages.ctp element looks as follows:
> > > <?php
> > > if ($item['MenuLink']['plugin_id'] == 0)
> > > {
> > >         $View =& ClassRegistry::getObject('view');
> > >         echo $View->element('homepages/' . 
> > > $item['MenuLink']['controller'],
> > > array('item' => $item));}
>
> > > else
> > > {
> > >         $View =& ClassRegistry::getObject('view');
> > >         echo $View->element('homepages/' . 
> > > $item['MenuLink']['controller'],
> > > array('item' => $item, 'plugin' => $item['MenuLink']['Plugin']
> > > ['directory']));}
>
> > > ?>
>
> > > As an example the homepages/pages.ctp element looks as follows:
> > > <?php $pageToShow = $this->requestAction('/pages/index/' . $item
> > > ['Homepage']['options']); ?>
> > > <?php if (isset($pageToShow)) : ?>
> > >         <div>
> > >                 <div id="dataInfo">
> > >                         Created: <span class="timeago" title="<?php echo 
> > > $pageToShow['Page']
> > > ['created']; ?>"><?php echo $date->prettyDate($pageToShow['Page']
> > > ['created']); ?></span><br />
> > >                         Modified: <span class="timeago" title="<?php echo 
> > > $pageToShow
> > > ['Page']['modified']; ?>"><?php echo $date->prettyDate($pageToShow
> > > ['Page']['modified']); ?></span><br />
> > >                         Tags: <?php echo $pageToShow['Page']['tags']; ?>
> > >                 </div>
>
> > >                 <h1 id="nice_name"><?php echo 
> > > $pageToShow['Page']['title']; ?></h1>
> > >                 <div id="content" style="margin-top:10px; 
> > > text-align:left;">
> > >                         <?php
> > >                         echo $pageToShow['Page']['text'];
> > >                         ?>
> > >                 </div>
> > >         </div>
> > > <?php else : ?>
> > > No page
> > > <?php endif; ?>
>
> > > It is working well. However, I realise that requestAction is quite
> > > intensive as it acts like another server request, is there some other
> > > method that I can use that will achieve the same outcome but use less
> > > server resources?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to