It doesn't actually save the page. When exceptions are raised inside a transaction, they rollback.
Sean Micah Wylde wrote: > I've looked at that code, but I'm having some trouble understanding a lot of > it, in particular the call to handle_new_or_edit_post, which seems to do > something very different in the trunk than it does in the facets branch. > Additionally, I'd rather not save the page (which is what that extension > appears to do). Is there a simple way to modify my code so that it will > import non-radiant radius tags? > > On 8/6/07, Sean Cribbs <[EMAIL PROTECTED]> wrote: > >> Micah, >> >> Feel free to rip the controller code from the page_preview extension >> that I wrote for the facets branch. The code is here: >> >> http://dev.radiantcms.org/radiant/browser/branches/facets/extensions/page >> _preview/lib/preview_controller_extensions.rb >> >> This module is included into the admin/page controller, giving it a >> "preview" action. Essentially it wraps the creating and updating of >> associated page-parts in a transaction, then raises an exception so the >> transaction rolls back. However, the render has happened already inside >> the transaction, so you get the page as it would look on the site. >> >> Enjoy! >> >> Sean >> >> Micah Wylde wrote: >> >>> Hi, everyone. I'm new to Radiant, developing my first Radiant-powered >>> >> site. >> >>> I've developed a preview extension, which injects via javascript a >>> >> preview >> >>> link into the page editor, which when clicked hides the textbox and >>> >> shows a >> >>> div filled with the preview (obtained through Ajax.Updater). To >>> >> accomplish >> >>> this, I have a controller method which takes the raw text from the >>> >> textbox >> >>> and returns rendered html. My problem is, while my method works fine for >>> built-in radius tags, it does not work for radius tags defined in >>> extensions. My code is below. >>> def filter_text(filter, text, slug) >>> filterClass = nil >>> eval("filterClass = #{filter}Filter") >>> filter = filterClass.new >>> filteredText = filter.filter(text) >>> page = Page.find(:first, :conditions => ["slug = ?", slug]) >>> context = PageContext.new(page) >>> parser = Radius::Parser.new(context, :tag_prefix => 'r') >>> begin >>> return parser.parse(filteredText); >>> rescue >>> return filteredText >>> end >>> end >>> >>> I admit that I don't really have much of an idea of what I'm doing here. >>> I've been looking through the code of Radiant trying to figure out how >>> >> it >> >>> does it, but I've been unable to find the place where it actually does >>> >> the >> >>> rendering (I assume it's somewhere in the Page model, but the only >>> >> radius >> >>> code I've been able to find there I've replicated above). Any help would >>> >> be >> >>> greatly appreciated. >>> >>> >>> >> _______________________________________________ >> Radiant mailing list >> Post: [email protected] >> Search: http://radiantcms.org/mailing-list/search/ >> Site: http://lists.radiantcms.org/mailman/listinfo/radiant >> >> > > > > _______________________________________________ Radiant mailing list Post: [email protected] Search: http://radiantcms.org/mailing-list/search/ Site: http://lists.radiantcms.org/mailman/listinfo/radiant
