[TYPO3-german] Hook für css_styled_content schreiben

Johannes C. Schulz - EnzephaloN IT-Solutions info at enzephalon.de
Thu Apr 11 12:35:17 CEST 2013


Hallo nochmal

Ich komme einfach nicht weiter, auch wenn ich einiges an der Extension
geändert habe.
ext_localconf.php:
<?php
if (!defined ('TYPO3_MODE'))
    die ('Access denied.');
$TYPO3_CONF_VARS['EXTCONF']['css_styled_content']['pi1_hooks']['renderSpace'
] = 'EXT:enzcschook/class.enzcschook.php:enzcschook->renderSpace';
?>
class.enzcschook.php:
<?php
class enzcschook{
	 * @param string $content Content input. Not used, ignore.
	 * @param array $configuration TypoScript configuration
	 * @return string The class name
	 */
  function renderSpace($content, array $configuration) {
		if (isset($configuration['space']) &&
in_array($configuration['space'], array('before', 'after'))) {
			$constant = (int) $configuration['constant'];
			if ($configuration['space'] === 'before') {
				$value = $constant +
$this->cObj->data['spaceBefore'];
				$declaration = 'margin-top: ' . $value .'px
!IMPORTANT;';
			} else {
				$value = $constant +
$this->cObj->data['spaceAfter'];
				$declaration = 'margin-bottom: ' . $value .
'px !IMPORTANT;';
			}
[...]
Wenn ich in sysext/csc_styled_content/Classes/CssStyledContentController.php
in der Funktion "hookRequest" einen Vardump auf das $hookObj mache, so ist
dieses leer. Also vermute ich, daß meine Klasse nicht durch den Hook geladen
werden kann. Also folgere ich, daß irgendwas in der ext_localconf.php wohl
falsch sein muß.

Kann mir hier bitte jemand weiterhelfen?
Johannes


-----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org
[mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von Johannes C.
Schulz - EnzephaloN IT-Solutions
Gesendet: Donnerstag, 11. April 2013 08:07
An: typo3-german at lists.typo3.org
Betreff: [TYPO3-german] Hook für css_styled_content schreiben

Hallo typo3-Gemeinde

 

Ich bin gerade daran einen Hook für css_styled_content zu schreiben. Ich
möchte dort die Funktion renderSpace überladen. Aber irgendwie bin ich
ziemlich eingerostet, deswegen möchte ich Euch um Hilfe bitten.

Extension: enz_csc_hook

class.enzcschook.php:

<?php
class enzcschook extends tx_cssstyledcontent_pi1{

  function renderSpace($content, array $configuration) {
                               if (isset($configuration['space']) &&
in_array($configuration['space'], array('before', 'after'))) {
                                               $constant = (int)
$configuration['constant'];
                                               if ($configuration['space']
=== 'before') {
                                                               $value =
$constant + $this->cObj->data['spaceBefore'];
                                                               $declaration
= 'margin-top: ' . $value .'px !IMPORTANT;';
                                               } else {
                                                               $value =
$constant + $this->cObj->data['spaceAfter'];
                                                               $declaration
= 'margin-bottom: ' . $value . 'px !IMPORTANT;';
                                               }
                                               if (!empty($value)) {
                                                               if
($configuration['stdWrap.']) {
 
$className = $this->cObj->stdWrap($value, $configuration['stdWrap.']);
                                                               } else {
 
$className = $value;
                                                               }
                                                               $selector =
'.' . trim($className);
 
$this->addPageStyle($selector, $declaration);
                                                               return
$className;
                                               }
                               }
                }
}
?>

 

ext_localconf.php:

<?php
if (!defined ('TYPO3_MODE'))
    die ('Access denied.');
$TYPO3_CONF_VARS['EXTCONF']['css_styled_content']['pi1_hooks']['renderSpace'
] = 'EXT:enz_csc_hook/class.enzcschook.php:enzcschook->renderSpace';
?>

 

ext_tables.php:

<?php
require_once(t3lib_extMgm::extPath('enz_csc_hook') .
'class.enzcschook.php');
?>

 

Irgendwie scheint mir das alles richtig zu sein, doch wird der Hook nicht
ausgeführt, d.h. der veränderte CSS-Kram nicht ausgegeben.

Wäre echt dankbar, wenn mir jemand den Fehler aufzeigen und korrigieren
könnte.

 

Viele Grüße

Johannes

_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german




More information about the TYPO3-german mailing list