[TASK] Migrate EXT:about to extbase
authorChristian Kuhn <lolli@schwarzbu.ch>
Sun, 19 Feb 2012 13:56:48 +0000 (14:56 +0100)
committerTolleiv Nietsch <info@tolleiv.de>
Fri, 24 Feb 2012 17:39:51 +0000 (18:39 +0100)
Change-Id: If4161ce96038778776bcc654ad8a09b550568d44
Resolves: #34096
Releases: 4.7
Reviewed-on: http://review.typo3.org/9104
Reviewed-by: Philipp Gampe
Tested-by: Philipp Gampe
Reviewed-by: Steffen Ritter
Tested-by: Steffen Ritter
Reviewed-by: Tolleiv Nietsch
Tested-by: Tolleiv Nietsch
24 files changed:
typo3/sysext/about/Classes/Controller/AboutController.php [new file with mode: 0644]
typo3/sysext/about/Classes/Domain/Model/Extension.php [new file with mode: 0644]
typo3/sysext/about/Classes/Domain/Repository/ExtensionRepository.php [new file with mode: 0644]
typo3/sysext/about/Classes/ViewHelpers/SkinImageViewHelper.php [new file with mode: 0644]
typo3/sysext/about/Resources/Private/.htaccess [new file with mode: 0644]
typo3/sysext/about/Resources/Private/Layouts/Default.html [new file with mode: 0644]
typo3/sysext/about/Resources/Private/Partials/About.html [new file with mode: 0644]
typo3/sysext/about/Resources/Private/Partials/CoreTeam.html [new file with mode: 0644]
typo3/sysext/about/Resources/Private/Partials/Credits.html [new file with mode: 0644]
typo3/sysext/about/Resources/Private/Partials/CustomContent.html [new file with mode: 0644]
typo3/sysext/about/Resources/Private/Partials/Donation.html [new file with mode: 0644]
typo3/sysext/about/Resources/Private/Partials/Extensions.html [new file with mode: 0644]
typo3/sysext/about/Resources/Private/Partials/ExternalLibraries.html [new file with mode: 0644]
typo3/sysext/about/Resources/Private/Partials/Logo.html [new file with mode: 0644]
typo3/sysext/about/Resources/Private/Templates/About/Index.html [new file with mode: 0644]
typo3/sysext/about/ext_autoload.php
typo3/sysext/about/ext_emconf.php [changed mode: 0644->0755]
typo3/sysext/about/ext_tables.php
typo3/sysext/about/interfaces/interface.tx_about_customsections.php
typo3/sysext/about/mod/clear.gif [deleted file]
typo3/sysext/about/mod/conf.php [deleted file]
typo3/sysext/about/mod/index.php [deleted file]
typo3/sysext/about/mod/info.gif [deleted file]
typo3/sysext/install/updates/class.tx_coreupdates_installfluidextbase.php

diff --git a/typo3/sysext/about/Classes/Controller/AboutController.php b/typo3/sysext/about/Classes/Controller/AboutController.php
new file mode 100644 (file)
index 0000000..94f6559
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2012 Christian Kuhn <lolli@schwarzbu.ch>
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *  A copy is found in the textfile GPL.txt and important notices to the license
+ *  from the author is found in LICENSE.txt distributed with these scripts.
+ *
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+/**
+ * Module 'about' shows some standard information for TYPO3 CMS: About-text, version number and so on.
+ *
+ * @author Kasper Skårhøj <kasperYYYY@typo3.com>
+ * @author Steffen Kamper <steffen@typo3.org>
+ * @author Christian Kuhn <lolli@schwarzbu.ch>
+ * @package TYPO3
+ * @subpackage about
+ */
+class Tx_About_Controller_AboutController extends Tx_Extbase_MVC_Controller_ActionController {
+       /**
+        * @var Tx_About_Domain_Repository_ExtensionRepository
+        */
+       protected $extensionRepository;
+
+       /**
+        * @param Tx_About_Domain_Repository_ExtensionRepository
+        * @return void
+        */
+       public function injectExtensionRepository(Tx_About_Domain_Repository_ExtensionRepository $extensionRepository) {
+               $this->extensionRepository = $extensionRepository;
+       }
+
+       /**
+        * Main action: Show standard information
+        *
+        * @return void
+        */
+       public function indexAction() {
+               $extensions = $this->extensionRepository->findAllLoaded();
+               $this->view
+                       ->assign('TYPO3Version', TYPO3_version)
+                       ->assign('TYPO3CopyrightYear', TYPO3_copyright_year)
+                       ->assign('TYPO3UrlDonate', TYPO3_URL_DONATE)
+                       ->assign('loadedExtensions', $extensions)
+                       ->assign('customContents', $this->getCustomContent())
+               ;
+       }
+
+       /**
+        * Hook to add custom content
+        *
+        * @return array with additional content sections
+        * @deprecated Since 4.7; will be removed together with the call in indexAction and the fluid partial in 4.9
+        */
+       protected function getCustomContent() {
+               $sections = array();
+               if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['about/index.php']['addSection'])) {
+                       t3lib_div::deprecationLog(
+                               'Hook about/index.php addSection is deprecated and will be removed in TYPO3 4.9, use fluid overrides instead.'
+                       );
+
+                       foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['about/index.php']['addSection'] as $classRef) {
+                                       /** @var $hookObject tx_about_customSections */
+                               $hookObject = t3lib_div::getUserObj($classRef);
+                               if (!($hookObject instanceof tx_about_customSections)) {
+                                       throw new UnexpectedValueException(
+                                               '$hookObject must implement interface tx_about_customSections',
+                                               1298121573
+                                       );
+                               }
+                               $hookObject->addSection($sections);
+                       }
+               }
+               return $sections;
+       }
+}
+?>
\ No newline at end of file
diff --git a/typo3/sysext/about/Classes/Domain/Model/Extension.php b/typo3/sysext/about/Classes/Domain/Model/Extension.php
new file mode 100644 (file)
index 0000000..05456fb
--- /dev/null
@@ -0,0 +1,115 @@
+<?php
+
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2012 Felix Kopp <felix-source@phorax.com>
+ *
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+/**
+ * An extension helper model to be used in ext:about context
+ *
+ * @package TYPO3
+ * @subpackage about
+ * @entity
+ * @author Felix Kopp <felix-source@phorax.com>
+ */
+class Tx_About_Domain_Model_Extension extends Tx_Extbase_DomainObject_AbstractEntity {
+
+       /**
+        * @var string
+        */
+       protected $author = '';
+
+       /**
+        * @var string
+        */
+       protected $authorEmail = '';
+
+       /**
+        * @var string
+        */
+       protected $key = '';
+
+       /**
+        * @var string
+        */
+       protected $title = '';
+
+
+       /**
+        * @param string $author
+        */
+       public function setAuthor($author) {
+               $this->author = $author;
+       }
+
+       /**
+        * @return string
+        */
+       public function getAuthor() {
+               return $this->author;
+       }
+
+       /**
+        * @param string $authorEmail
+        */
+       public function setAuthorEmail($authorEmail) {
+               $this->authorEmail = $authorEmail;
+       }
+
+       /**
+        * @return string
+        */
+       public function getAuthorEmail() {
+               return $this->authorEmail;
+       }
+
+       /**
+        * @param string $key
+        */
+       public function setKey($key) {
+               $this->key = $key;
+       }
+
+       /**
+        * @return string
+        */
+       public function getKey() {
+               return $this->key;
+       }
+
+       /**
+        * @param string $title
+        */
+       public function setTitle($title) {
+               $this->title = $title;
+       }
+
+       /**
+        * @return string
+        */
+       public function getTitle() {
+               return $this->title;
+       }
+
+}
+?>
\ No newline at end of file
diff --git a/typo3/sysext/about/Classes/Domain/Repository/ExtensionRepository.php b/typo3/sysext/about/Classes/Domain/Repository/ExtensionRepository.php
new file mode 100644 (file)
index 0000000..5c45c19
--- /dev/null
@@ -0,0 +1,75 @@
+<?php
+/***************************************************************
+*  Copyright notice
+*
+*  (c) 2012 Felix Kopp <felix@phorax.com>
+*
+*  All rights reserved
+*
+*  This script is part of the TYPO3 project. The TYPO3 project is
+*  free software; you can redistribute it and/or modify
+*  it under the terms of the GNU General Public License as published by
+*  the Free Software Foundation; either version 3 of the License, or
+*  (at your option) any later version.
+*
+*  The GNU General Public License can be found at
+*  http://www.gnu.org/copyleft/gpl.html.
+*
+*  This script is distributed in the hope that it will be useful,
+*  but WITHOUT ANY WARRANTY; without even the implied warranty of
+*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+*  GNU General Public License for more details.
+*
+*  This copyright notice MUST APPEAR in all copies of the script!
+***************************************************************/
+
+/**
+ * Repository for Tx_About_Domain_Model_Extension
+ *
+ * @package TYPO3
+ * @subpackage about
+ * @author Felix Kopp <felix-source@phorax.com>
+ */
+class Tx_About_Domain_Repository_ExtensionRepository extends Tx_Extbase_Persistence_Repository {
+
+       /**
+        * @var Tx_Extbase_Object_ObjectManagerInterface
+        */
+       protected $objectManager;
+
+       /**
+        * @param Tx_Extbase_Object_ObjectManagerInterface $objectManager
+        */
+       public function injectObjectManager(Tx_Extbase_Object_ObjectManagerInterface $objectManager) {
+               $this->objectManager = $objectManager;
+       }
+
+       /**
+        * Finds all loaded extensions
+        *
+        * @return Tx_Extbase_Persistence_ObjectStorage<Tx_About_Domain_Model_Extension>
+        */
+       public function findAllLoaded() {
+               $loadedExtensions = $this->objectManager->get('Tx_Extbase_Persistence_ObjectStorage');
+
+               $loadedExtensionsArray = $GLOBALS['TYPO3_LOADED_EXT'];
+               foreach ($loadedExtensionsArray as $extensionKey => $extension) {
+                       if (is_array($extension) && $extension['type'] != 'S') {
+                               $emconfPath = PATH_site . $extension['siteRelPath'] . 'ext_emconf.php';
+                               include($emconfPath);
+
+                               $extension = $this->objectManager->create('Tx_About_Domain_Model_Extension');
+                               $extension->setKey($extensionKey);
+                               $extension->setTitle($EM_CONF['']['title']);
+                               $extension->setAuthor($EM_CONF['']['author']);
+                               $extension->setAuthorEmail($EM_CONF['']['author_email']);
+
+                               $loadedExtensions->attach($extension);
+                       }
+               }
+
+               return $loadedExtensions;
+       }
+
+}
+?>
\ No newline at end of file
diff --git a/typo3/sysext/about/Classes/ViewHelpers/SkinImageViewHelper.php b/typo3/sysext/about/Classes/ViewHelpers/SkinImageViewHelper.php
new file mode 100644 (file)
index 0000000..aba692d
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2012 Christian Kuhn <lolli@schwarzbu.ch>
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *  A copy is found in the textfile GPL.txt and important notices to the license
+ *  from the author is found in LICENSE.txt distributed with these scripts.
+ *
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+/**
+ * Render images that can be registered in the TYPO3 backend skinning API
+ * Extends the default image view helper from fluid
+ *
+ * This view helper is a helper for ext:about only and should
+ * not be used outside of the extension for now.
+ * See the fluid templates of ext:about for a usage example.
+ */
+class Tx_About_ViewHelpers_SkinImageViewHelper extends Tx_Fluid_ViewHelpers_ImageViewHelper {
+
+       /**
+        * Resizes a given image (if required) and renders the respective img tag
+        * @see http://typo3.org/documentation/document-library/references/doc_core_tsref/4.2.0/view/1/5/#id4164427
+        *
+        * @param string $src
+        * @param string $width width of the image. This can be a numeric value representing the fixed width of the image in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.
+        * @param string $height height of the image. This can be a numeric value representing the fixed height of the image in pixels. But you can also perform simple calculations by adding "m" or "c" to the value. See imgResource.width for possible options.
+        * @param integer $minWidth minimum width of the image
+        * @param integer $minHeight minimum height of the image
+        * @param integer $maxWidth maximum width of the image
+        * @param integer $maxHeight maximum height of the image
+        *
+        * @return string rendered tag.
+        */
+       public function render($src, $width = NULL, $height = NULL, $minWidth = NULL, $minHeight = NULL, $maxWidth = NULL, $maxHeight = NULL) {
+               $src = t3lib_iconWorks::skinImg('../typo3/', $src, '', 1);
+               return parent::render(''. $src, $width, $height. $minWidth, $minHeight, $maxWidth, $maxHeight);
+       }
+}
+?>
\ No newline at end of file
diff --git a/typo3/sysext/about/Resources/Private/.htaccess b/typo3/sysext/about/Resources/Private/.htaccess
new file mode 100644 (file)
index 0000000..3418e55
--- /dev/null
@@ -0,0 +1 @@
+deny from all
\ No newline at end of file
diff --git a/typo3/sysext/about/Resources/Private/Layouts/Default.html b/typo3/sysext/about/Resources/Private/Layouts/Default.html
new file mode 100644 (file)
index 0000000..c3522ff
--- /dev/null
@@ -0,0 +1,5 @@
+<f:be.container>
+       <div id="typo3-mod-help-about-index-php-outer">
+               <f:render section="Content" />
+       </div>
+</f:be.container>
diff --git a/typo3/sysext/about/Resources/Private/Partials/About.html b/typo3/sysext/about/Resources/Private/Partials/About.html
new file mode 100644 (file)
index 0000000..eb9965c
--- /dev/null
@@ -0,0 +1,15 @@
+<div class="typo3-mod-help-about-index-php-inner">
+       <h2>
+               <f:translate key="LLL:EXT:lang/locallang_mod_help_about.xlf:welcome" />
+       </h2>
+       <p>
+               <f:translate
+                       key="LLL:EXT:lang/locallang_mod_help_about.xlf:minor"
+                       arguments="{
+                               0:'TYPO3 Ver. {TYPO3Version}, Copyright &copy; {TYPO3CopyrightYear}',
+                               1:'Kasper Sk&aring;rh&oslash;j'
+                       }"
+                       htmlEscape="0"
+               />
+       </p>
+</div>
\ No newline at end of file
diff --git a/typo3/sysext/about/Resources/Private/Partials/CoreTeam.html b/typo3/sysext/about/Resources/Private/Partials/CoreTeam.html
new file mode 100644 (file)
index 0000000..5843ec1
--- /dev/null
@@ -0,0 +1,11 @@
+<div class="typo3-mod-help-about-index-php-inner">
+       <h2>
+               <f:translate key="LLL:EXT:lang/locallang_mod_help_about.xml:coredevs" />
+       </h2>
+       <p>
+               <f:translate
+                       key="LLL:EXT:lang/locallang_mod_help_about.xml:coredevs_detail"
+                       htmlEscape="0"
+               />
+       </p>
+</div>
diff --git a/typo3/sysext/about/Resources/Private/Partials/Credits.html b/typo3/sysext/about/Resources/Private/Partials/Credits.html
new file mode 100644 (file)
index 0000000..90bfd33
--- /dev/null
@@ -0,0 +1,14 @@
+<div class="typo3-mod-help-about-index-php-inner">
+       <h2>
+               <f:translate
+                       key="LLL:EXT:lang/locallang_mod_help_about.xml:community_credits"
+                       htmlEscape="0"
+               />
+       </h2>
+       <p>
+               <f:translate
+                       key="LLL:EXT:lang/locallang_mod_help_about.xml:information_detail"
+                       htmlEscape="0"
+               />
+       </p>
+</div>
diff --git a/typo3/sysext/about/Resources/Private/Partials/CustomContent.html b/typo3/sysext/about/Resources/Private/Partials/CustomContent.html
new file mode 100644 (file)
index 0000000..0687a69
--- /dev/null
@@ -0,0 +1,3 @@
+<f:for each="{customContent}" as="customContent">
+       {customContent}
+</f:for>
\ No newline at end of file
diff --git a/typo3/sysext/about/Resources/Private/Partials/Donation.html b/typo3/sysext/about/Resources/Private/Partials/Donation.html
new file mode 100644 (file)
index 0000000..b8fee02
--- /dev/null
@@ -0,0 +1,19 @@
+<div class="typo3-mod-help-about-index-php-inner">
+       <h2>
+               <f:translate key="LLL:EXT:lang/locallang_mod_help_about.xml:donation_header" />
+       </h2>
+       <p id="donation-description">
+               <f:translate
+                       key="LLL:EXT:lang/locallang_mod_help_about.xml:donation_message"
+                       htmlEscape="0"
+               />
+       </p>
+       <div class="donation-button">
+               <input
+                       type="button"
+                       id="donation-button"
+                       value="{f:translate(key:'LLL:EXT:lang/locallang_mod_help_about.xml:donation_button')}"
+                       onclick="window.open('{TYPO3UrlDonate}');"
+               />
+       </div>
+</div>
\ No newline at end of file
diff --git a/typo3/sysext/about/Resources/Private/Partials/Extensions.html b/typo3/sysext/about/Resources/Private/Partials/Extensions.html
new file mode 100644 (file)
index 0000000..add6be0
--- /dev/null
@@ -0,0 +1,30 @@
+<div class="typo3-mod-help-about-index-php-inner">
+       <h2>
+               <f:translate key="LLL:EXT:lang/locallang_mod_help_about.xml:extension_authors" />
+       </h2>
+       <p>
+               <f:translate key="LLL:EXT:lang/locallang_mod_help_about.xml:extension_list_info" />
+       </p>
+       <br/>
+       <table border="0" cellspacing="2" cellpadding="1">
+               <tr>
+                       <th><f:translate key="LLL:EXT:lang/locallang_mod_help_about.xml:extension" /></th>
+                       <th><f:translate key="LLL:EXT:lang/locallang_mod_help_about.xml:extension_author" /></th>
+               </tr>
+
+               <f:for each="{loadedExtensions}" as="loadedExtension">
+                       <tr>
+                               <td width="280">
+                                       {loadedExtension.title} ({loadedExtension.key})
+                               </td>
+                               <td>
+                                       <f:link.email
+                                               email="{loadedExtension.authorEmail}?subject={f:format.urlencode(value:'Thanks for your {loadedExtension.title} extension')}"
+                                       >
+                                               {loadedExtension.author}
+                                       </f:link.email>
+                               </td>
+                       </tr>
+               </f:for>
+       </table>
+</div>
diff --git a/typo3/sysext/about/Resources/Private/Partials/ExternalLibraries.html b/typo3/sysext/about/Resources/Private/Partials/ExternalLibraries.html
new file mode 100644 (file)
index 0000000..9f653ed
--- /dev/null
@@ -0,0 +1,53 @@
+<div class="typo3-mod-help-about-index-php-inner">
+       <h2>
+               <f:translate key="LLL:EXT:lang/locallang_mod_help_about.xml:external_libraries" />
+       </h2>
+       <p>
+               <f:translate
+                       key="LLL:EXT:lang/locallang_mod_help_about.xml:external_thanks"
+                       htmlEscape="0"
+               />
+       </p>
+       <br />
+       <table border="0" cellspacing="2" cellpadding="1">
+               <tr>
+                       <td width="280">Audio player Plugin</td>
+                       <td><a href="http://www.1pixelout.net/code/audio-player-wordpress-plugin/" target="_blank">www.1pixelout.net</a></td>
+               </tr>
+               <tr>
+                       <td>CodeMirror</td>
+                       <td><a href="http://codemirror.net/" target="_blank">codemirror.net</a></td>
+               </tr>
+               <tr>
+                       <td>ExtJS</td>
+                       <td><a href="http://www.sencha.com/" target="_blank">www.sencha.com</a></td>
+               </tr>
+               <tr>
+                       <td>JSMin</td>
+                       <td><a href="http://www.crockford.com" target="_blank">www.crockford.com</a></td>
+               </tr>
+               <tr>
+                       <td>Modernizr</td>
+                       <td><a href="http://www.modernizr.com" target="_blank">www.modernizr.com</a></td>
+               </tr>
+               <tr>
+                       <td>Prototype JavaScript framework</td><td><a href="http://www.prototypejs.org/" target="_blank">www.prototypejs.org</a></td>
+               </tr>
+               <tr>
+                       <td>RemoveXSS</td>
+                       <td><a href="http://quickwired.com/smallprojects/php_xss_filter_function.php" target="_blank">quickwired.com</a></td>
+               </tr>
+               <tr>
+                       <td>script.aculo.us</td>
+                       <td><a href="http://script.aculo.us" target="_blank">script.aculo.us</a></td>
+               </tr>
+               <tr>
+                       <td>SWFUpload</td>
+                       <td><a href="http://www.swfupload.org" target="_blank">www.swfupload.org</a></td>
+               </tr>
+               <tr>
+                       <td>Swift Mailer</td>
+                       <td><a href="http://swiftmailer.org" target="_blank">swiftmailer.org</a></td>
+               </tr>
+       </table>
+</div>
diff --git a/typo3/sysext/about/Resources/Private/Partials/Logo.html b/typo3/sysext/about/Resources/Private/Partials/Logo.html
new file mode 100644 (file)
index 0000000..1555571
--- /dev/null
@@ -0,0 +1,6 @@
+{namespace about=Tx_About_ViewHelpers}
+
+<about:SkinImage
+       src="gfx/typo3logo.gif"
+       alt="{f:translate(key:'LLL:EXT:lang/locallang_mod_help_about.xml:typo3_logo')}"
+/>
\ No newline at end of file
diff --git a/typo3/sysext/about/Resources/Private/Templates/About/Index.html b/typo3/sysext/about/Resources/Private/Templates/About/Index.html
new file mode 100644 (file)
index 0000000..3db012d
--- /dev/null
@@ -0,0 +1,14 @@
+<f:layout name="Default" />
+
+<f:section name="Content">
+
+       <f:render partial="Logo" arguments="{_all}" />
+       <f:render partial="About" arguments="{_all}" />
+       <f:render partial="Donation" arguments="{_all}" />
+       <f:render partial="Credits" arguments="{_all}" />
+       <f:render partial="CoreTeam" arguments="{_all}" />
+       <f:render partial="ExternalLibraries" arguments="{_all}" />
+       <f:render partial="Extensions" arguments="{_all}" />
+       <f:render partial="CustomContent" arguments="{_all}" />
+
+</f:section>
\ No newline at end of file
index 5aaf29c..68ed73d 100644 (file)
@@ -1,13 +1,6 @@
 <?php
-/*
- * Register necessary class names with autoloader
- *
- */
-
-$extensionPath = dirname(__FILE__);
-
+$extensionPath = t3lib_extMgm::extPath('about');
 return array(
        'tx_about_customsections' => $extensionPath . '/interfaces/interface.tx_about_customsections.php',
 );
-
 ?>
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index 795bf42..904205c
@@ -3,7 +3,7 @@
 ########################################################################
 # Extension Manager/Repository config file for ext "about".
 #
-# Auto generated 25-10-2011 13:10
+# Auto generated 24-02-2012 17:14
 #
 # Manual updates:
 # Only the data in the array - everything else is removed by next
@@ -15,7 +15,7 @@ $EM_CONF[$_EXTKEY] = array(
        'description' => 'Shows info about TYPO3 and installed extensions.',
        'category' => 'module',
        'shy' => 1,
-       'dependencies' => '',
+       'dependencies' => 'extbase,fluid',
        'conflicts' => '',
        'priority' => '',
        'loadOrder' => '',
@@ -33,12 +33,14 @@ $EM_CONF[$_EXTKEY] = array(
        'author_company' => 'Curby Soft Multimedia',
        'CGLcompliance' => '',
        'CGLcompliance_note' => '',
-       'version' => '1.1.0',
-       '_md5_values_when_last_written' => 'a:8:{s:16:"ext_autoload.php";s:4:"5a89";s:12:"ext_icon.gif";s:4:"f3ab";s:14:"ext_tables.php";s:4:"57f3";s:48:"interfaces/interface.tx_about_customsections.php";s:4:"3f4a";s:13:"mod/clear.gif";s:4:"cc11";s:12:"mod/conf.php";s:4:"e02a";s:13:"mod/index.php";s:4:"16b7";s:12:"mod/info.gif";s:4:"2723";}',
+       'version' => '2.0.0',
+       '_md5_values_when_last_written' => 'a:18:{s:16:"ext_autoload.php";s:4:"f7a4";s:12:"ext_icon.gif";s:4:"f3ab";s:14:"ext_tables.php";s:4:"002c";s:38:"Classes/Controller/AboutController.php";s:4:"2234";s:34:"Classes/Domain/Model/Extension.php";s:4:"aade";s:49:"Classes/Domain/Repository/ExtensionRepository.php";s:4:"2afe";s:43:"Classes/ViewHelpers/SkinImageViewHelper.php";s:4:"893f";s:48:"interfaces/interface.tx_about_customsections.php";s:4:"50aa";s:38:"Resources/Private/Layouts/Default.html";s:4:"440b";s:37:"Resources/Private/Partials/About.html";s:4:"b7ff";s:40:"Resources/Private/Partials/CoreTeam.html";s:4:"f320";s:39:"Resources/Private/Partials/Credits.html";s:4:"14f9";s:45:"Resources/Private/Partials/CustomContent.html";s:4:"64c0";s:40:"Resources/Private/Partials/Donation.html";s:4:"2702";s:42:"Resources/Private/Partials/Extensions.html";s:4:"2d49";s:49:"Resources/Private/Partials/ExternalLibraries.html";s:4:"0799";s:36:"Resources/Private/Partials/Logo.html";s:4:"0666";s:44:"Resources/Private/Templates/About/Index.html";s:4:"b9c8";}',
        'constraints' => array(
                'depends' => array(
                        'php' => '5.3.0-0.0.0',
                        'typo3' => '4.6.0-0.0.0',
+                       'extbase' => '1.4.0-0.0.0',
+                       'fluid' => '1.4.0-0.0.0',
                ),
                'conflicts' => array(
                ),
index a598ff1..ca4d194 100644 (file)
@@ -1,7 +1,23 @@
 <?php
-if (!defined ('TYPO3_MODE'))   die ('Access denied.');
+if (!defined ('TYPO3_MODE')) {
+       die ('Access denied.');
+}
 
-if (TYPO3_MODE=='BE') {
-       t3lib_extMgm::addModule('help','about','top',t3lib_extMgm::extPath($_EXTKEY).'mod/');
+       // Avoid that this block is loaded in frontend or within upgrade wizards
+if (TYPO3_MODE === 'BE' && !(TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_INSTALL)) {
+       Tx_Extbase_Utility_Extension::registerModule(
+               $_EXTKEY,
+               'help',
+               'about',
+               'top',
+               array(
+                       'About' => 'index',
+               ),
+               array(
+                       'access' => 'user,group',
+                       'icon' => 'EXT:about/ext_icon.gif',
+                       'labels' => 'LLL:EXT:lang/locallang_mod_help_about.xlf',
+               )
+       );
 }
 ?>
\ No newline at end of file
index e162c1c..f0527de 100644 (file)
@@ -34,6 +34,7 @@ interface tx_about_customSections {
         * @abstract
         * @param  array $sections
         * @return void
+        * @deprecated since 4.7, will be removed in 4.9. Use fluid overrides to change the view
         */
        public function addSection(array &$sections);
 }
diff --git a/typo3/sysext/about/mod/clear.gif b/typo3/sysext/about/mod/clear.gif
deleted file mode 100644 (file)
index 9ed1269..0000000
Binary files a/typo3/sysext/about/mod/clear.gif and /dev/null differ
diff --git a/typo3/sysext/about/mod/conf.php b/typo3/sysext/about/mod/conf.php
deleted file mode 100644 (file)
index b1e0bc1..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-define('TYPO3_MOD_PATH', 'sysext/about/mod/');
-$BACK_PATH='../../../';
-
-$MLANG['default']['tabs_images']['tab'] = 'info.gif';
-$MLANG['default']['ll_ref']='LLL:EXT:lang/locallang_mod_help_about.xml';
-
-$MCONF['access'] = 'user,group';
-$MCONF['script']='index.php';
-$MCONF['name']='help_about';
-?>
\ No newline at end of file
diff --git a/typo3/sysext/about/mod/index.php b/typo3/sysext/about/mod/index.php
deleted file mode 100644 (file)
index 3384110..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-<?php
-/***************************************************************
- *  Copyright notice
- *
- *  (c) 1999-2011 Kasper Skårhøj (kasperYYYY@typo3.com)
- *  All rights reserved
- *
- *  This script is part of the TYPO3 project. The TYPO3 project is
- *  free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  The GNU General Public License can be found at
- *  http://www.gnu.org/copyleft/gpl.html.
- *  A copy is found in the textfile GPL.txt and important notices to the license
- *  from the author is found in LICENSE.txt distributed with these scripts.
- *
- *
- *  This script is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  This copyright notice MUST APPEAR in all copies of the script!
- ***************************************************************/
-/**
- * Module: About
- * This document shows some standard-information for TYPO3 CMS: About-text, version number and so on.
- *
- * Revised for TYPO3 3.6 November/2003 by Kasper Skårhøj
- * XHTML compliant
- *
- * @author     Kasper Skårhøj <kasperYYYY@typo3.com>
- * @author     Steffen Kamper <steffen@typo3.org>
- * @package TYPO3
- */
-
-unset($MCONF);
-require ('conf.php');
-require ($BACK_PATH . 'init.php');
-require ($BACK_PATH . 'template.php');
-$LANG->includeLLFile('EXT:lang/locallang_mod_help_about.xml');
-$BE_USER->modAccess($MCONF, 1);
-
-
-/**
- * Script Class for the Help > About module
- *
- * @author     Kasper Skårhøj <kasperYYYY@typo3.com>
- * @package TYPO3
- * @subpackage core
- */
-class SC_mod_help_about_index {
-
-       // Internal, dynamic:
-       /**
-        * @var array
-        */
-       public $MCONF = array();
-
-       /**
-        * @var array
-        */
-       public $MOD_MENU = array();
-
-       /**
-        * @var array
-        */
-       public $MOD_SETTINGS = array();
-
-       /**
-        * @var string
-        */
-       protected $content = '';
-
-       /**
-        * @var array
-        */
-       protected $sections = array();
-
-
-       /**
-        * Main function, producing the module output.
-        * In this case, the module output is a very simple screen telling the version of TYPO3 and that's basically it...
-        * The content is set in the internal variable $this->content
-        *
-        * @return      void
-        */
-       function main() {
-
-               $this->MCONF = $GLOBALS['MCONF'];
-
-               // **************************
-               // Main
-               // **************************
-               #$TBE_TEMPLATE->bgColor = '#cccccc';
-               $content = $this->renderSections();
-
-               // Renders the module page
-               $this->content = $GLOBALS['TBE_TEMPLATE']->render(
-                       $GLOBALS['LANG']->getLL('title', TRUE),
-                       $content
-               );
-       }
-
-       /**
-        * Renders main sections
-        *
-        * @return string $content
-        */
-       public function renderSections() {
-               $this->sections = array();
-
-               $this->renderAboutTypo3();
-               $this->renderDonation();
-               $this->renderCommunityCredits();
-               $this->renderCoreteamCredits();
-               $this->render3rdPartyCredits();
-               $this->renderExtensionAuthors();
-               $this->renderCustomSections();
-
-               // compile content
-               $content = '<div id="typo3-mod-help-about-index-php-outer">'
-                               . implode('', $this->sections) . '</div>';
-
-               return $content;
-       }
-
-       /**
-        * Outputs the accumulated content to screen
-        *
-        * @return      void
-        */
-       public function printContent() {
-               echo $this->content;
-       }
-
-
-       protected function renderAboutTypo3() {
-               $minorText = sprintf($GLOBALS['LANG']->getLL('minor'), 'TYPO3 Ver. ' . htmlspecialchars(TYPO3_version) . ', Copyright &copy; ' . htmlspecialchars(TYPO3_copyright_year), 'Kasper Sk&aring;rh&oslash;j');
-               $content = '
-                       <img' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/typo3logo.gif', 'width="123" height="34"') . ' alt="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:typo3_logo', TRUE) . '" />
-                       <div class="typo3-mod-help-about-index-php-inner">
-                               <h2>' . $GLOBALS['LANG']->getLL('welcome', TRUE) . '</h2>
-                                       <p>' . $minorText . '</p>
-                       </div>';
-
-               $this->sections['about'] = $content;
-       }
-
-       /**
-        * Renders TYPO3 donation
-        *
-        * @return void
-        */
-       protected function renderDonation() {
-               $content =
-                               '<div class="typo3-mod-help-about-index-php-inner">
-                               <h2>' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:donation_header', TRUE) . '</h2>
-                               <p id="donation-description">' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:donation_message') . '</p>
-                               <div class="donation-button">
-                                       <input type="button" id="donation-button" value="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:donation_button') . '"
-                                       onclick="window.open(\'' . TYPO3_URL_DONATE . '\');" />
-                               </div>
-                       </div>';
-
-               $this->sections['donation'] = $content;
-       }
-
-       /**
-        * Renders community credits
-        *
-        * @return void
-        */
-       protected function renderCommunityCredits() {
-               $content = '
-                       <div class="typo3-mod-help-about-index-php-inner">
-                               <h2>' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:community_credits', TRUE) . '</h2>
-                               <p>' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:information_detail') . '</p>
-                       </div>';
-
-               $this->sections['community'] = $content;
-       }
-
-       /**
-        * Renders community credits
-        *
-        * @return void
-        */
-       protected function render3rdPartyCredits() {
-               $content = '
-                       <div class="typo3-mod-help-about-index-php-inner">
-                               <h2>' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:external_libraries', TRUE) . '</h2>
-                               <p>' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:external_thanks', TRUE) . '</p>
-                               <br />
-                               <table border="0" cellspacing="2" cellpadding="1">
-                               <tr><td width="280">Audio player Plugin</td><td><a href="http://www.1pixelout.net/code/audio-player-wordpress-plugin/" target="_blank">www.1pixelout.net</a></td></tr>
-                               <tr><td>CodeMirror</td><td><a href="http://codemirror.net/" target="_blank">codemirror.net</a></td></tr>
-                               <tr><td>ExtJS</td><td><a href="http://www.sencha.com/" target="_blank">www.sencha.com</a></td></tr>
-                               <tr><td>JSMin</td><td><a href="http://www.crockford.com" target="_blank">www.crockford.com</a></td></tr>
-                               <tr><td>Modernizr</td><td><a href="http://www.modernizr.com" target="_blank">www.modernizr.com</a></td></tr>
-                               <tr><td>Prototype JavaScript framework</td><td><a href="http://www.prototypejs.org/" target="_blank">www.prototypejs.org</a></td></tr>
-                               <tr><td>RemoveXSS</td><td><a href="http://quickwired.com/smallprojects/php_xss_filter_function.php" target="_blank">quickwired.com</a></td></tr>
-                               <tr><td>script.aculo.us</td><td><a href="http://script.aculo.us" target="_blank">script.aculo.us</a></td></tr>
-                               <tr><td>SWFUpload</td><td><a href="http://www.swfupload.org" target="_blank">www.swfupload.org</a></td></tr>
-                               <tr><td>Swift Mailer</td><td><a href="http://swiftmailer.org" target="_blank">swiftmailer.org</a></td></tr>
-                               </table>
-                       </div>';
-
-               $this->sections['3rdparty'] = $content;
-       }
-
-       /**
-        * Renders core team credits
-        *
-        * @return void
-        */
-       protected function renderCoreteamCredits() {
-               $content = '
-                       <div class="typo3-mod-help-about-index-php-inner">
-                               <h2>' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:coredevs', TRUE) . '</h2>
-                               <p>' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:coredevs_detail') . '</p>
-                       </div>';
-
-               $this->sections['coreteam'] = $content;
-       }
-
-       /**
-        * Renders custom sections
-        *
-        * @return void
-        */
-       protected function renderCustomSections() {
-               //hook for custom sections
-               if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['about/index.php']['addSection'])) {
-                       foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['about/index.php']['addSection'] as $classRef) {
-                               $hookObject = t3lib_div::getUserObj($classRef);
-                               if (!($hookObject instanceof tx_about_customSections)) {
-                                       throw new UnexpectedValueException('$hookObject must implement interface tx_about_customSections', 1298121573);
-                               }
-                               $hookObject->addSection($this->sections);
-                       }
-               }
-       }
-
-       /**
-        * Renders extension authors credits
-        *
-        * @return void
-        */
-       protected function renderExtensionAuthors() {
-               $content = '<div class="typo3-mod-help-about-index-php-inner">' . LF .
-                       '<h2>' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:extension_authors', TRUE) . '</h2>' . LF .
-                       '<p>' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:extension_list_info') . '</p>' . LF .
-                       '<br/>' .
-                       '<table border="0" cellspacing="2" cellpadding="1"><tr><th>' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:extension', TRUE) . '</th><th>' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_help_about.xml:extension_author', TRUE) . '</th></tr>';
-
-               $loadedExtensions = $GLOBALS['TYPO3_LOADED_EXT'];
-               foreach ($loadedExtensions as $extensionKey => $extension) {
-                       if (is_array($extension) && $extension['type'] != 'S') {
-                               $emconfPath = PATH_site . $extension['siteRelPath'] . 'ext_emconf.php';
-                               include($emconfPath);
-
-                               $emconf = $EM_CONF['']; // ext key is not set when loading the ext_emconf.php directly
-
-                               $content .= '<tr><td width="280">' . $emconf['title'] . ' (' . $extensionKey . ')</td>' .
-                                               '<td><a href="mailto:' . $emconf['author_email'] . '?subject=' . rawurlencode('Thanks for your ' . $emconf['title'] . ' extension') . '">' . $emconf['author'] . '</a></td></tr>';
-                       }
-               }
-
-               $content .= '</div>';
-
-               $this->sections['extensions'] = $content;
-       }
-}
-
-// Include extension?
-if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['typo3/mod/help/about/index.php'])) {
-       include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['typo3/mod/help/about/index.php']);
-}
-
-
-// Make instance:
-$SOBE = t3lib_div::makeInstance('SC_mod_help_about_index');
-$SOBE->main();
-$SOBE->printContent();
-?>
\ No newline at end of file
diff --git a/typo3/sysext/about/mod/info.gif b/typo3/sysext/about/mod/info.gif
deleted file mode 100644 (file)
index bc9a3a9..0000000
Binary files a/typo3/sysext/about/mod/info.gif and /dev/null differ
index 473cffd..3c77023 100644 (file)
@@ -42,6 +42,7 @@ class tx_coreupdates_installFluidExtbase extends Tx_Install_Updates_Base {
         * @var array Extensions keys that depend on fluid / extbase
         */
        protected $extensionsDependingOnFluidExtbase = array(
+               'about',
                'aboutmodules',
                'workspaces'
        );