On Jul 27, 2009, at 2:42 PM, Mamed Mamedov wrote:

No, I didn't disabled cache, but I'm using 'translator' extension which
changes behaviour of radiant's caching subsystem.
Here is my some changes to *translate_response_cache.rb*:

This won't work in 0.8.0. Rails 2.3 uses Rack::Cache and Radiant 0.8.0 packages Rails 2.3.2 ResponseCache functions were moved to Radiant::Cache, a subclass of Rack::Cache

 ResponseCache.class_eval {
   # in here, we're just adding a two-letter language suffix to cached
pages to make sure that the wrong
   # language doesn't get served up because it has been cached
inappropriately. we could change this to
   # cache in a separate directory (i.e. en/), but for now, we're just
adding the extension
   private
     def translator_path(path)
       #path =~ /\.css|\.js$/ ? path :
kk_request.suffixize(kk_request.language)
       path =~ /\.css|\.js$/ ? path : [ path,
kk_request.session["gsession_color"], kk_request.session["gsession_design"],
kk_request.suffixize(kk_request.language)  ].join( "_" )
     end
As a result I have this files in my cache folder:
selene# ll
total 28
drwxrwxrwx  2 root  www    512 Jul 27 23:22 _css
-rw-rw-rw- 1 root www 22972 Jul 27 23:22 index_blue_full__az- AZ.data
-rw-rw-rw-  1 root  www    185 Jul 27 23:22 index_blue_full__az-AZ.yml

For example, if user requests 'red' & 'full' version of site, then
*'index_red_full__az-AZ'
*will be requested. If there is no cached file, then page will be generated
by radiant from db and then cached in this folder.

That is solution, I think. I'am using radiant v0.7.1. My site supports many
colors (design types) languages and light/full-version.
________________
Regards,
Mamed Mamedov

Sent from Baku, Azerbaijan


On Mon, Jul 27, 2009 at 11:27 PM, Jim Gay <j...@saturnflyer.com> wrote:


On Jul 27, 2009, at 2:24 PM, Mamed Mamedov wrote:

Hi everybody!

Here how I have resolved my problem with changing page's layout
on-the-fly:)
I have created my own extension folder with my namespace-tags for unusual
tasks.

desc %{
 Works like design switcher.
}
tag 'gsession:design' do |tag|
   design_type = request.session["gsession_design"]
   if design_type == nil
       design_type = GenieSessionExtension.defaults[:design]
       request.session["gsession_design"] = design_type
   end
   design_type.strip!
   if layout = Layout.find_by_name(tag.attr["#{design_type}"])
       tag.globals.page.layout = layout
       tag.globals.page.render
   end
end

Usage:
I have created layout named "master-index" with only one line in it:
<r:gsession:design full="full-index" light="light-index" />

With 2 arguments, which describes layout names for 'full' and 'light' version of my site. You can define 'gsession_*design*' session variable at
any time by hitting, for example:* /genie/set/design/light*
All my pages have selected 'master-index' layout.
That is all, while page is rendered my tag switches current layout to
'full-index' or 'light-index' named layouts.

Waiting for comments ... Thank you:)


Have you disabled caching to do this?



________________
Regards,
Mamed Mamedov




On Thu, Jul 16, 2009 at 6:16 PM, Sean Cribbs <seancri...@gmail.com>
wrote:

If all of your pages have the same layout at any time, make sure all
descendant pages have their layout set to <inherit> and then your
extension
could change the layout on the root page.
However, it would not be trivial to do this on a per-user basis. Have
you
considered something like a combination of Javascript and CSS that lets
your
users switch layouts?

Sean

Mamed Mamedov wrote:

Hi everybody!

I have a little question: how can I change page's layout from within my
extension?
Problem is, that I have 2 different page layouts for my site: [
full-version
and light-version ].
I want to write a mini-extension to switch between designs of my site
throw
hitting: /design/set/full and /design/set/light or /design/reset
And I'am saving current design variable in current user's session.

And now, just need to change current page's layout on the fly
accordingly
to
session value.
________________
Regards,
Mamed Mamedov

_______________________________________________
Radiant mailing list
Post:   Radiant@radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

_______________________________________________
Radiant mailing list
Post:   Radiant@radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

_______________________________________________
Radiant mailing list
Post:   Radiant@radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to