SlideShare ist ein Scribd-Unternehmen logo
mm_forum 2.0


Neu-Entwicklung der mm_forum-Erweiterung
auf Basis von Extbase und Fluid

Martin Helmich
Mittwald CM Service
Worum geht es?


• Was ist das mm_forum eigentlich?
• Was ist neu im mm_forum 2.0?
• Ein Blick „unter die Haube“
Wie alles anfing...
Warum das alles?



 TYPO3 v4   TYPO3 v5



 TYPO3       TYPO3


Extbase      FLOW3
Was ist neu?
                                          solr
                                            indexed_search
        Suche        sr_feuser_register

       Benutzer-
     registrierung                               Messaging
     Messaging

             Forum                 Forum



    Monolithisch                 Modular
Was ist neu?


Neue Funktionen
• Verschachtelte Foren
• Differenziertere
  Rechteverwaltung
Was ist neu?

• Modularer Aufbau, mit
  Integrations-
  schnittstellen zu
  anderen Extensions
• Basierend auf Extbase
  und Fluid
Was ist neu?
Was ist neu?


       Zum selbst ausprobieren:
    http://mmforum.mittwald.de
Ein Blick unter die Haube...
• Extbase als MVC-
  Framework
                                                  nimmt Eingaben
                                                  entgegen
                        gibt aus
                                   View                 Controller
             Benutzer   gibt ein
                                     Stellt dar               verarbeitet
                                                              Eingaben




                                                          Model
Ein Blick unter die Haube...
• Extbase als MVC-
  Framework
• Fluid als Template-
  Engine
Das Domain-Model

                        ShadowTopic
          Forum


                            Topic
                        #subject
                        #posts[]      Post
                        #closed
                        #sticky

 FrontendUserGroup

                                             Attachment
                     FrontendUser
Das Domain-Model
Das Domain-Model
class Tx_MmForum_Domain_Model_Forum_Forum
  extends Tx_Extbase_DomainObject_AbstractEntity {
   /**
    * @var string
    */
   protected $name;
   /**
    * @var string
    */
   protected $description;
   /**
    * @var Tx_Extbase_Persistence_ObjectStorage
             <Tx_MmForum_Domain_Model_Forum_Topic>
    */
   protected $topics;
Das Domain-Model

                                              AbstractRepository


                      ShadowTopic
             Forum

FrontendUserGroup        Topic
                                    ForumRepository


       FrontendUser      Post       TopicRepository

                      Attachment
                                    PostRepository


 Verwendung von Repositories zur Kapselung des
 Datenbankzugriffs
Die Controller

  AbstractController


         ForumController                          ShadowTopic
                                         Forum


          TopicController   FrontendUserGroup        Topic



          PostController           FrontendUser      Post


          UserController                          Attachment
Fluid-Views
<f:for each="{topics}" as="topic">
  <f:cycle values="{0: 'odd', 1: 'even'}" as="zebra">
    <tr class="tx-mmforum-{zebra}">
      <td style="width:1px;">
        <mmf:forum.topicIcon topic="{topic}" width="32" />
      </td><td>
        <f:link.action controller="Topic" action="show" arguments="{topic: topic}"
pageUid="{settings.pids.Forum}">{topic.subject}</f:link.action>
      </td><td>
        <f:link.action controller="User" action="show" arguments="{user :
topic.author}"
pageUid="{settings.pids.UserShow}">{topic.author.username}</f:link.action>
      </td><td>
        {topic.replyCount}
      </td><td>
        <f:render partial="Post/Summary" arguments="{post: topic.lastPost}" />
      </td>
    </tr>
  </f:cycle>
</f:for>
Fluid-Views
class Tx_MmForum_Controller_ForumController
  extends Tx_MmForum_Controller_AbstractController {
    […]
    protected $topicRepository;
    […]
    public function showAction(
             Tx_MmForum_Domain_Model_Forum_Forum $forum) {
        $topics = $this->
                     topicRepository->findByForum($forum);
        $this->view->assign('topics', $topics')
                   ->assign('forum', $forum');
    }
}
Fazit



                Mitmachen:
  http://forge.typo3.org/projects/show/
          extension-mm_forum_2
Vielen Dank!


     Vielen Dank für Eure Aufmerksamkeit!



www.mittwald.de
blog.mittwald.de
twitter.com/mittwald
facebook.com/mittwald

Weitere ähnliche Inhalte

Ähnlich wie mm_forum 2.0

Extreme Fluid - Status Quo der modernen Templating Engine
Extreme Fluid - Status Quo der modernen Templating EngineExtreme Fluid - Status Quo der modernen Templating Engine
Extreme Fluid - Status Quo der modernen Templating Engine
die.agilen GmbH
 
elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09
elemente websolutions
 
XHTML & CSS Workshop
XHTML & CSS WorkshopXHTML & CSS Workshop
XHTML & CSS Workshop
holgerrueprich
 
TYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der ZukunftTYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der Zukunft
Jochen Rau
 
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
David Jardin
 
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerkTYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
die.agilen GmbH
 
Windows Powershell
Windows PowershellWindows Powershell
Windows Powershell
Thomas Wilhelm Wiefel
 
Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11
Noël Bossart
 
Python Mike Müller
Python Mike MüllerPython Mike Müller
Python Mike Müller
Aberla
 
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
SpeedPartner GmbH
 
Modx
ModxModx
Modx
funkyStu
 
Pimcore
PimcorePimcore
Pimcore
timglabisch
 
The pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developersThe pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developers
FDeitelhoff
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
Mayflower GmbH
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit Wordpress
Blogwerk AG
 
Zend Framework 2 - Best Practices
Zend Framework 2 - Best PracticesZend Framework 2 - Best Practices
Zend Framework 2 - Best Practices
Ralf Eggert
 
HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009
Felix Sasaki
 
Anforderungsanalsyse - Prototyping mit JavaScript
Anforderungsanalsyse - Prototyping mit JavaScriptAnforderungsanalsyse - Prototyping mit JavaScript
Anforderungsanalsyse - Prototyping mit JavaScript
Christian Baranowski
 
TYPO3 Translations
TYPO3 Translations TYPO3 Translations
TYPO3 Translations
Marcus Schwemer
 

Ähnlich wie mm_forum 2.0 (20)

Extreme Fluid - Status Quo der modernen Templating Engine
Extreme Fluid - Status Quo der modernen Templating EngineExtreme Fluid - Status Quo der modernen Templating Engine
Extreme Fluid - Status Quo der modernen Templating Engine
 
elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09
 
XHTML & CSS Workshop
XHTML & CSS WorkshopXHTML & CSS Workshop
XHTML & CSS Workshop
 
TYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der ZukunftTYPO3 5.0 - Der aktuelle Stand der Zukunft
TYPO3 5.0 - Der aktuelle Stand der Zukunft
 
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
 
PLUX.NET – SOFTWAREKOMPOSITION DURCH PLUG & PLAY
PLUX.NET – SOFTWAREKOMPOSITION DURCH PLUG & PLAYPLUX.NET – SOFTWAREKOMPOSITION DURCH PLUG & PLAY
PLUX.NET – SOFTWAREKOMPOSITION DURCH PLUG & PLAY
 
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerkTYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
 
Windows Powershell
Windows PowershellWindows Powershell
Windows Powershell
 
Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11Einführung XHTML CSS JS // MM 08-11
Einführung XHTML CSS JS // MM 08-11
 
Python Mike Müller
Python Mike MüllerPython Mike Müller
Python Mike Müller
 
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobierenExtbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
 
Modx
ModxModx
Modx
 
Pimcore
PimcorePimcore
Pimcore
 
The pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developersThe pain of choice - Important libs for C# developers
The pain of choice - Important libs for C# developers
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit Wordpress
 
Zend Framework 2 - Best Practices
Zend Framework 2 - Best PracticesZend Framework 2 - Best Practices
Zend Framework 2 - Best Practices
 
HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009HTML5 - presentation at W3C-Tag 2009
HTML5 - presentation at W3C-Tag 2009
 
Anforderungsanalsyse - Prototyping mit JavaScript
Anforderungsanalsyse - Prototyping mit JavaScriptAnforderungsanalsyse - Prototyping mit JavaScript
Anforderungsanalsyse - Prototyping mit JavaScript
 
TYPO3 Translations
TYPO3 Translations TYPO3 Translations
TYPO3 Translations
 

mm_forum 2.0

  • 1. mm_forum 2.0 Neu-Entwicklung der mm_forum-Erweiterung auf Basis von Extbase und Fluid Martin Helmich Mittwald CM Service
  • 2. Worum geht es? • Was ist das mm_forum eigentlich? • Was ist neu im mm_forum 2.0? • Ein Blick „unter die Haube“
  • 4. Warum das alles? TYPO3 v4 TYPO3 v5 TYPO3 TYPO3 Extbase FLOW3
  • 5. Was ist neu? solr indexed_search Suche sr_feuser_register Benutzer- registrierung Messaging Messaging Forum Forum Monolithisch Modular
  • 6. Was ist neu? Neue Funktionen • Verschachtelte Foren • Differenziertere Rechteverwaltung
  • 7. Was ist neu? • Modularer Aufbau, mit Integrations- schnittstellen zu anderen Extensions • Basierend auf Extbase und Fluid
  • 9. Was ist neu? Zum selbst ausprobieren: http://mmforum.mittwald.de
  • 10. Ein Blick unter die Haube... • Extbase als MVC- Framework nimmt Eingaben entgegen gibt aus View Controller Benutzer gibt ein Stellt dar verarbeitet Eingaben Model
  • 11. Ein Blick unter die Haube... • Extbase als MVC- Framework • Fluid als Template- Engine
  • 12. Das Domain-Model ShadowTopic Forum Topic #subject #posts[] Post #closed #sticky FrontendUserGroup Attachment FrontendUser
  • 14. Das Domain-Model class Tx_MmForum_Domain_Model_Forum_Forum extends Tx_Extbase_DomainObject_AbstractEntity { /** * @var string */ protected $name; /** * @var string */ protected $description; /** * @var Tx_Extbase_Persistence_ObjectStorage <Tx_MmForum_Domain_Model_Forum_Topic> */ protected $topics;
  • 15. Das Domain-Model AbstractRepository ShadowTopic Forum FrontendUserGroup Topic ForumRepository FrontendUser Post TopicRepository Attachment PostRepository Verwendung von Repositories zur Kapselung des Datenbankzugriffs
  • 16. Die Controller AbstractController ForumController ShadowTopic Forum TopicController FrontendUserGroup Topic PostController FrontendUser Post UserController Attachment
  • 17. Fluid-Views <f:for each="{topics}" as="topic"> <f:cycle values="{0: 'odd', 1: 'even'}" as="zebra"> <tr class="tx-mmforum-{zebra}"> <td style="width:1px;"> <mmf:forum.topicIcon topic="{topic}" width="32" /> </td><td> <f:link.action controller="Topic" action="show" arguments="{topic: topic}" pageUid="{settings.pids.Forum}">{topic.subject}</f:link.action> </td><td> <f:link.action controller="User" action="show" arguments="{user : topic.author}" pageUid="{settings.pids.UserShow}">{topic.author.username}</f:link.action> </td><td> {topic.replyCount} </td><td> <f:render partial="Post/Summary" arguments="{post: topic.lastPost}" /> </td> </tr> </f:cycle> </f:for>
  • 18. Fluid-Views class Tx_MmForum_Controller_ForumController extends Tx_MmForum_Controller_AbstractController { […] protected $topicRepository; […] public function showAction( Tx_MmForum_Domain_Model_Forum_Forum $forum) { $topics = $this-> topicRepository->findByForum($forum); $this->view->assign('topics', $topics') ->assign('forum', $forum'); } }
  • 19. Fazit Mitmachen: http://forge.typo3.org/projects/show/ extension-mm_forum_2
  • 20. Vielen Dank! Vielen Dank für Eure Aufmerksamkeit! www.mittwald.de blog.mittwald.de twitter.com/mittwald facebook.com/mittwald