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: Radiant@lists.radiantcms.org Search: http://radiantcms.org/mailing-list/search/ Site: http://lists.radiantcms.org/mailman/listinfo/radiant