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*:
  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

Reply via email to