Wow, very much needed. Can't wait to see it finished!

Thank you John.

On 5/16/07, John W. Long <[EMAIL PROTECTED]> wrote:
> Artur Baldyga wrote:
> > I want to create my own extension. I made my extension using this link:
> >
> > http://dev.radiantcms.org/radiant/wiki/HowToUseMailerExtension
> >
> > Is there any bigger tutorial with more details what I have to do , step
> > by step or something else??
>
> I'm working on one, but it is unfinished. (See attached.)
>
> --
> John Long
> http://wiseheartdesign.com
>
>
> Getting Started with Radiant Extensions
> ---------------------------------------
>
> One of the most exciting aspects of Radiant 0.6 is the support that has been 
> added for extensions. Since Radiant is a "no-fluff" content management system 
> there are a lot of features supported by other systems that will never make 
> it into Radiant. I've tried to keep things clean and simple so that Radiant 
> is easy to learn and easy to support. The trouble is, my opinion of what 
> features constitute "fluff" and what features are absolutely necessary is 
> probably different than your own. Extensions give you the opportunity to 
> change this.
>
> Using extensions you can customize nearly every aspect of Radiant. And 
> because Radiant is made with Ruby on Rails developing an extension is almost 
> as easy as developing a regular Ruby on Rails application.
>
> In this tutorial I want to help you get started with your first extension. We 
> will cover:
>
> * Using extension generators
> * Creating a custom model and controller
> * Running extension migrations
> * Creating custom tags
>
> This tutorial assumes that you already have the latest Radiant gem installed 
> on your local computer and that you have a basic understanding of Ruby on 
> Rails. If you have never used Ruby on Rails before please run through the 
> Rolling with Rails tutorials ("Part 
> I":http://www.onlamp.com/pub/a/onlamp/2006/12/14/revisiting-ruby-on-rails-revisited.html,
>  "Part 
> II":http://www.onlamp.com/pub/a/onlamp/2007/01/05/revisiting-ruby-on-rails-revisited-2.html,
>  and "Part 
> III":http://www.slash7.com/articles/2005/01/24/really-getting-started-in-rails)
>  before you begin.
>
>
> Creating a New Project
> ----------------------
>
> Let's create a test project. Open up a command prompt and "cd" to the 
> appropriate directory, then execute the `radiant` command to create a new 
> project:
>
> <pre><code>
> % radiant -d sqlite3 path/to/new/project
> </code></pre>
>
> As you can see I've chosen to use SQLite 3 as my database engine, but you are 
> welcome to choose MySQL or PostgreSQL instead.
>
> The `radiant` command will create a skeleton for our new project and then 
> output the following instructions:
>
> <pre>
> == Installation and Setup
>
> Once you have extracted the files into the directory where you would like to
> install Radiant:
>
> 1. Create the MySQL/PostgreSQL/SQLite databases for your Web site. You only
>    need to create the "production" database, but you may also want to create
>    the "development" and "test" databases if you are developing extensions
>    or running tests.
>
> 2. Edit config/database.yml to taste.
>
> 3. Run the database bootstrap rake task:
>
>      % rake production db:bootstrap
>
>    (If you would like bootstrap your development database run `rake
>    development db:bootstrap`.)
>
> 4. Start it like a normal Rails application. To test execute:
>
>      % script/server -e production
>
>    And open your Web browser on port 3000 (http://localhost:3000). The
>    administrative interface is available at /admin/. By default the bootstrap
>    rake task creates a user called "admin" with a password of "radiant".
>
> When using Radiant on a production system you may also need to set permissions
> on the public and cache directories so that your Web server can access those
> directories with the user that it runs under.
>
> Once you've installed Radiant on your own Web site, be sure to add your name
> and Web site to the list of radiant users:
>
> http://dev.radiantcms.org/radiant/wiki/RadiantUsers
> </pre>
>
> If you've chosen to use SQLite 3 as your database engine for this tutorial 
> you can ignore steps 1 and 2. Otherwise create all three databases for the 
> development, production, and test environments and edit "config/database.yml" 
> to taste. Then run the bootstrap rake task for the production and development 
> environments:
>
> <pre><code>
> % rake db:bootstrap
> % rake production db:bootstrap
> </code></pre>
>
> Once you have bootstrapped both databases, start Radiant up from the command 
> line and verify that the site is running correctly before continuing:
>
> <pre><code>
> % script/server -e production
> </code></pre>
>
> Now go to "http://localhost:3000"; and verify that the site is running 
> correctly. You should see a screen that looks like this if Radiant is 
> configured correctly:
>
> Once you've verified that Radiant is running correctly go back to the console 
> and press Ctrl+C to stop the test server.
>
>
> Generating an Extension
> -----------------------
>
> Let's create our first extension now. The extension we will be creating is 
> one that will make it easy for us to manage a list of links on our Web site. 
> To create a new extension you should use the extension generator. The format 
> for the command is:
>
> <pre><code>
> script/generate extension ExtensionName
> </code></pre>
>
> In our case we will call our extension LinkRoll. At the command prompt type:
>
> <pre><code>
> % script/generate extension LinkRoll
> </code></pre>
>
> You should see the following output:
>
> <pre><code>
>   create  vendor/extensions/link_roll/app/controllers
>   create  vendor/extensions/link_roll/app/helpers
>   create  vendor/extensions/link_roll/app/models
>   create  vendor/extensions/link_roll/app/views
>   create  vendor/extensions/link_roll/db/migrate
>   create  vendor/extensions/link_roll/lib/tasks
>   create  vendor/extensions/link_roll/test/fixtures
>   create  vendor/extensions/link_roll/test/functional
>   create  vendor/extensions/link_roll/test/unit
>   create  vendor/extensions/link_roll/README
>   create  vendor/extensions/link_roll/Rakefile
>   create  vendor/extensions/link_roll/link_roll_extension.rb
>   create  vendor/extensions/link_roll/lib/tasks/link_roll_extension_tasks.rake
>   create  vendor/extensions/link_roll/test/test_helper.rb
>   create  
> vendor/extensions/link_roll/test/functional/link_roll_extension_test.rb
> </code></pre>
>
> As you can see, the extension generator has created a skeleton extension for 
> us in the vendor/extensions/link_roll folder. The extension we will create 
> will be entirely contained in the link_roll folder. To use it in another 
> project all we need to do is copy the link_roll folder into that project's 
> vendor/extensions folder.
>
> Open up the "link_roll_extension.rb" file. It should look something like this:
>
> <pre><code>
> class LinkRollExtension < Radiant::Extension
>   version "1.0"
>   description "Describe your extension here"
>   url "http://yourwebsite.com/link_roll";
>
>   # define_routes do |map|
>   #   map.connect 'admin/link_roll/:action', :controller => 'admin/link_roll'
>   # end
>
>   def activate
>     # admin.tabs.add "Link Roll", "/admin/link_roll", :after => "Layouts", 
> :visibility => [:all]
>   end
>
>   def deactivate
>     # admin.tabs.remove "Link Roll"
>   end
>
> end
> </code></pre>
>
> Let's edit the attributes of the LinkRollExtension. First, change the 
> description to:
>
>   Allows you to add a link roll to your Web site.
>
> Then change the url to:
>
>   http://dev.radiantcms.org/radiant/browser/trunk/extensions/link_roll/
>
> We will deal with the other two attributes in a moment. For now, let's start 
> the server up again:
>
> <pre><code>
> % script/server -e production
> </code></pre>
>
> And open your web browser up to "http://localhost:3000/admin/";. Click the 
> "Extensions" link in the upper right corner. In the list of extensions you 
> should now see the "Link Roll" extension:
>
> Note that the description and the website correspond to the attributes that 
> you just edited.
> _______________________________________________
> 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

Reply via email to