SlideShare a Scribd company logo
1 of 24
nooku.org/framework
Nooku Framework
   The extension API that speaks for itself !



Joomladay NL, June 2009 - Nieuwegein
Technology, features, experience !
At some point, to stay viable, content management systems
   require a quantum evolution that takes them beyond
  technology and features and on to the satisfaction of a
customer experience. That’s what we are trying to do with
                          Nooku.
                                              Johan Janssens




     http:///www.nooku.org                                     1
                                                               2
Joomla 1.0
                  Joomla! CMS




http:///www.nooku.org           1
                                3
Joomla 1.5
                           Joomla ! CMS

    Components         Modules      Extensions    Templates           Languages




    Administrator          Site     Application   Installation        XML-RPC




                                  Joomla! CMF


               Libraries            Framework               Plugins




http:///www.nooku.org                                                             1
                                                                                  4
Nooku Framework




http:///www.nooku.org   1
                        5
What is it ?
Rapid extension development framework for Joomla.

                     •Version 0.7.0
                     • GPL v 2.0 license
                     • Non-commercial
                     • Joomla 1.5 only
                     • Installs as a plugin
                     • 30k lines of code
                     • Can work standalone


     http:///www.nooku.org                          1
                                                    6
Why a new framework ?
1. Developing for Joomla 1.5 :
    • takes too much time
    • too much repeated tasks
    • resulting extensions are inflexible
    • PHP4
 2. Existing framework don’t integrate easily with Joomla



        http:///www.nooku.org                               1
                                                            7
How it used to be ...
                                                      ...
class WeblinksController extends JController
                                                                            // Checkout the weblink
{                                                                           $model = $this->getModel('weblink');
    function __construct($config = array())                                 $model->checkout();
    {                                                                   } break;
        parent::__construct($config);                                   case 'edit'    :
                                                                        {
          // Register Extra tasks                                           JRequest::setVar( 'hidemainmenu', 1 );
          $this->registerTask( 'add',  'display' );                         JRequest::setVar( 'layout', 'form'  );
          $this->registerTask( 'edit', 'display' );                         JRequest::setVar( 'view'  , 'weblink');
                                                                            JRequest::setVar( 'edit', true );
      }
                                                                            // Checkout the weblink
   function display( )                                                      $model = $this->getModel('weblink');
    {                                                                       $model->checkout();
        switch($this->getTask())                                        } break;
        {                                                         }
            case 'add'     :
            {
                JRequest::setVar(   'hidemainmenu', 1 );
                JRequest::setVar(   'layout', 'form'  );
                JRequest::setVar(   'view'  , 'weblink');
                JRequest::setVar(   'edit', false );
...




              http:///www.nooku.org                                                                          1
                                                                                                             8
How it should be ...
class WeblinksControllerWeblinks extends KControllerForm
{
   //do nothing
}

class WeblinksModelWeblinks extends KModelTable
{
   //do nothing
}

class WeblinksViewWeblinks extends KViewHtml
{
   //do nothing
}




      That’s all you need for a working MVC extensions !

           http:///www.nooku.org                           1
                                                           9
House Rules !
• Use existing Design Pattern
       Don’t reinvent the wheel - just make it roll smoother
• Make all code reusable
       Don’t repeat yourself - and don’t repeat anyone else either
• Extreme flexibility
       Every object, and every part of the code must be extensible and replaceable.
       Ability to hook into any controller, database or application action
• An API is like a User Interface
       Learn once, apply everywhere
       KISS : keep it sexy and simple
• Convention over configuration
• Scaffolding is a fancy word for copy/paste

        http:///www.nooku.org                                                          1
                                                                                      10
Features !
Flexibility                    Extensibility
 •Auto-loading                    • Chain of command
 • Factory/Object Store           • Inflector
 • Dependency injection           • Mixins
 • Smart and dynamic MVC          • Decorators
Data handling                   Security
  • ORM/Table Gateway               • Auto CSRF protection
  • REST/XML/JSON                   • Input filtering

       http:///www.nooku.org                             1
                                                        11
MVC

                           KModel

          State                                           State
          Query                                          Change




                          View Selection




                  KView                    KController




http:///www.nooku.org                                                1
                                                                    12
MVC
                           KModel

          State                                               State
          Query                                              Change




                          View Selection




                  KView                    KController




                                                     Execute
                                                     Controller




                                           KDispatcher




http:///www.nooku.org                                                    1
                                                                        13
KDatabase           KTable
                                                                                  MVC
                                  KModel

          State                                                           State
          Query                                                          Change




                                 View Selection




                  KView                                KController




                                                                 Execute
                                                                 Controller




                                                       KDispatcher




http:///www.nooku.org                                                                1
                                                                                    14
KDatabase           KTable                              MVC
                                  KModel

          State                                                           State
          Query                                                          Change




                                 View Selection




                  KView                                KController




                                                                 Execute
                                                                 Controller




                                                       KDispatcher




http:///www.nooku.org                                                                1
                                                                                    15
KDatabase           KTable
                                                                                      MVC
                                      KModel

          State                                                               State
          Query                                                              Change




                                     View Selection




                  KView                                    KController




                                                                     Execute
                                                                     Controller




                  KTemplate                                KDispatcher




http:///www.nooku.org                                                                    1
                                                                                        16
KFactory
KFactory::get('admin::com.harbour.model.boat');

KFactory::tmp('admin::com.harbour.model.boat');

KFactory::get('lib.koowa.database');

KFactory::get('lib.joomla.session');




    http:///www.nooku.org                      1
                                              17
KRequest
KRequest::get('get.layout', 'cmd', 'default');

KRequest::set('get.layout', 'mylayout');

KRequest::get('post', 'string');




    http:///www.nooku.org                         1
                                                 18
KController

                 •Browse
                 • Read
                 • Edit
                 • Add
                 • Delete


http:///www.nooku.org        1
                            19
KTemplate
<ul>
  <? foreach(@$boats as $boat) : ?>
  <li>
     <?=$boat->id?>.
     <?=$boat->name?>
  </li>
  <? endforeach; ?>
</ul>




 http:///www.nooku.org                 1
                                      20
Who is using it ?
           Anahita Social Engine
           http://www.anahitapolis.com

           Nooku Content
           http://www.nooku.org


Custom Projects                          Upcoming Extensions
  •Port of Antwerp                          •Virtuemart 2.0
  • Italian Institute of Technology         • YOOTheme
  • Kainga Real Estate system               • AEC Subscription

       http:///www.nooku.org                                      1
                                                                 21
Learn more ?
 1. Check out our presentations
    http://www.nooku.org/framework

 2. Look at the API
    http://api.nooku.org

 3. Get code & mailing list access
    http://www.nooku.org/framework/request.html

 4. Come to a Nooku Code Jam
    The next one is in Hamburg on June 27th

... or organize a Nooku Code Jam in your city


         http:///www.nooku.org                     1
                                                  22
You can find us at
     http://www.nooku.org
                 You can follow us on
http://www.twitter.com/nooku


   http:///www.nooku.org                 1
                                        23

More Related Content

Viewers also liked

Joomladay Es 2009 - Nooku Framework
Joomladay Es 2009  - Nooku FrameworkJoomladay Es 2009  - Nooku Framework
Joomladay Es 2009 - Nooku FrameworkNooku
 
Interactive &amp; Collaborative Communication V002
Interactive &amp; Collaborative Communication V002Interactive &amp; Collaborative Communication V002
Interactive &amp; Collaborative Communication V002EriaanOelofse
 
M&amp;A Presentation Mip (Mba Polit. Milan) 8 May 2009 Picconi
M&amp;A Presentation Mip (Mba Polit. Milan) 8 May 2009 PicconiM&amp;A Presentation Mip (Mba Polit. Milan) 8 May 2009 Picconi
M&amp;A Presentation Mip (Mba Polit. Milan) 8 May 2009 PicconiFrancesco Picconi (MSc,Dr)
 
Samra Article Cm Principles For Consideration During Research Projects
Samra Article   Cm Principles For Consideration During Research ProjectsSamra Article   Cm Principles For Consideration During Research Projects
Samra Article Cm Principles For Consideration During Research ProjectsEriaanOelofse
 
T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama
 T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama
T 3.5 modelovanje stanja koriscenjem uml statechart dijagramaZoran Jeremic
 
T 3.3 design paterni (a)
 T 3.3 design paterni (a) T 3.3 design paterni (a)
T 3.3 design paterni (a)Zoran Jeremic
 
Collaborative Transportation Management
Collaborative Transportation ManagementCollaborative Transportation Management
Collaborative Transportation Managementjoelsutherland
 
Seven Supply Chain Wastes
Seven Supply Chain WastesSeven Supply Chain Wastes
Seven Supply Chain Wastesjoelsutherland
 

Viewers also liked (9)

Joomladay Es 2009 - Nooku Framework
Joomladay Es 2009  - Nooku FrameworkJoomladay Es 2009  - Nooku Framework
Joomladay Es 2009 - Nooku Framework
 
Interactive &amp; Collaborative Communication V002
Interactive &amp; Collaborative Communication V002Interactive &amp; Collaborative Communication V002
Interactive &amp; Collaborative Communication V002
 
Six Ps Of Leadership
Six Ps Of LeadershipSix Ps Of Leadership
Six Ps Of Leadership
 
M&amp;A Presentation Mip (Mba Polit. Milan) 8 May 2009 Picconi
M&amp;A Presentation Mip (Mba Polit. Milan) 8 May 2009 PicconiM&amp;A Presentation Mip (Mba Polit. Milan) 8 May 2009 Picconi
M&amp;A Presentation Mip (Mba Polit. Milan) 8 May 2009 Picconi
 
Samra Article Cm Principles For Consideration During Research Projects
Samra Article   Cm Principles For Consideration During Research ProjectsSamra Article   Cm Principles For Consideration During Research Projects
Samra Article Cm Principles For Consideration During Research Projects
 
T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama
 T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama
T 3.5 modelovanje stanja koriscenjem uml statechart dijagrama
 
T 3.3 design paterni (a)
 T 3.3 design paterni (a) T 3.3 design paterni (a)
T 3.3 design paterni (a)
 
Collaborative Transportation Management
Collaborative Transportation ManagementCollaborative Transportation Management
Collaborative Transportation Management
 
Seven Supply Chain Wastes
Seven Supply Chain WastesSeven Supply Chain Wastes
Seven Supply Chain Wastes
 

Recently uploaded

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Joomladay Nl 2009 - Nooku Framework

  • 2. Nooku Framework The extension API that speaks for itself ! Joomladay NL, June 2009 - Nieuwegein
  • 3. Technology, features, experience ! At some point, to stay viable, content management systems require a quantum evolution that takes them beyond technology and features and on to the satisfaction of a customer experience. That’s what we are trying to do with Nooku. Johan Janssens http:///www.nooku.org 1 2
  • 4. Joomla 1.0 Joomla! CMS http:///www.nooku.org 1 3
  • 5. Joomla 1.5 Joomla ! CMS Components Modules Extensions Templates Languages Administrator Site Application Installation XML-RPC Joomla! CMF Libraries Framework Plugins http:///www.nooku.org 1 4
  • 7. What is it ? Rapid extension development framework for Joomla. •Version 0.7.0 • GPL v 2.0 license • Non-commercial • Joomla 1.5 only • Installs as a plugin • 30k lines of code • Can work standalone http:///www.nooku.org 1 6
  • 8. Why a new framework ? 1. Developing for Joomla 1.5 : • takes too much time • too much repeated tasks • resulting extensions are inflexible • PHP4 2. Existing framework don’t integrate easily with Joomla http:///www.nooku.org 1 7
  • 9. How it used to be ... ... class WeblinksController extends JController // Checkout the weblink {                 $model = $this->getModel('weblink');     function __construct($config = array())                 $model->checkout();     {             } break;         parent::__construct($config);             case 'edit'    :             {         // Register Extra tasks                 JRequest::setVar( 'hidemainmenu', 1 );         $this->registerTask( 'add',  'display' );                 JRequest::setVar( 'layout', 'form'  );         $this->registerTask( 'edit', 'display' );                 JRequest::setVar( 'view'  , 'weblink');                 JRequest::setVar( 'edit', true );     }                 // Checkout the weblink    function display( )                 $model = $this->getModel('weblink');     {                 $model->checkout();         switch($this->getTask())             } break;         {         }             case 'add'     :             {                 JRequest::setVar( 'hidemainmenu', 1 );                 JRequest::setVar( 'layout', 'form'  );                 JRequest::setVar( 'view'  , 'weblink');                 JRequest::setVar( 'edit', false ); ... http:///www.nooku.org 1 8
  • 10. How it should be ... class WeblinksControllerWeblinks extends KControllerForm { //do nothing } class WeblinksModelWeblinks extends KModelTable { //do nothing } class WeblinksViewWeblinks extends KViewHtml { //do nothing } That’s all you need for a working MVC extensions ! http:///www.nooku.org 1 9
  • 11. House Rules ! • Use existing Design Pattern Don’t reinvent the wheel - just make it roll smoother • Make all code reusable Don’t repeat yourself - and don’t repeat anyone else either • Extreme flexibility Every object, and every part of the code must be extensible and replaceable. Ability to hook into any controller, database or application action • An API is like a User Interface Learn once, apply everywhere KISS : keep it sexy and simple • Convention over configuration • Scaffolding is a fancy word for copy/paste http:///www.nooku.org 1 10
  • 12. Features ! Flexibility Extensibility •Auto-loading • Chain of command • Factory/Object Store • Inflector • Dependency injection • Mixins • Smart and dynamic MVC • Decorators Data handling Security • ORM/Table Gateway • Auto CSRF protection • REST/XML/JSON • Input filtering http:///www.nooku.org 1 11
  • 13. MVC KModel State State Query Change View Selection KView KController http:///www.nooku.org 1 12
  • 14. MVC KModel State State Query Change View Selection KView KController Execute Controller KDispatcher http:///www.nooku.org 1 13
  • 15. KDatabase KTable MVC KModel State State Query Change View Selection KView KController Execute Controller KDispatcher http:///www.nooku.org 1 14
  • 16. KDatabase KTable MVC KModel State State Query Change View Selection KView KController Execute Controller KDispatcher http:///www.nooku.org 1 15
  • 17. KDatabase KTable MVC KModel State State Query Change View Selection KView KController Execute Controller KTemplate KDispatcher http:///www.nooku.org 1 16
  • 19. KRequest KRequest::get('get.layout', 'cmd', 'default'); KRequest::set('get.layout', 'mylayout'); KRequest::get('post', 'string'); http:///www.nooku.org 1 18
  • 20. KController •Browse • Read • Edit • Add • Delete http:///www.nooku.org 1 19
  • 21. KTemplate <ul> <? foreach(@$boats as $boat) : ?> <li> <?=$boat->id?>. <?=$boat->name?> </li> <? endforeach; ?> </ul> http:///www.nooku.org 1 20
  • 22. Who is using it ? Anahita Social Engine http://www.anahitapolis.com Nooku Content http://www.nooku.org Custom Projects Upcoming Extensions •Port of Antwerp •Virtuemart 2.0 • Italian Institute of Technology • YOOTheme • Kainga Real Estate system • AEC Subscription http:///www.nooku.org 1 21
  • 23. Learn more ? 1. Check out our presentations http://www.nooku.org/framework 2. Look at the API http://api.nooku.org 3. Get code & mailing list access http://www.nooku.org/framework/request.html 4. Come to a Nooku Code Jam The next one is in Hamburg on June 27th ... or organize a Nooku Code Jam in your city http:///www.nooku.org 1 22
  • 24. You can find us at http://www.nooku.org You can follow us on http://www.twitter.com/nooku http:///www.nooku.org 1 23