TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

externes PHP-Script


Autor Nachricht
Verfasst am: 03. 01. 2008 [08:36]
tomgr
Themenersteller
Dabei seit: 13.12.2005
Beiträge: 106
Moin Alle.
Ich würde gerne ein externes PHP-Script in einen Marker einbinden.
TYPOSCRIPT
marks.AUTOR1.10 = PHP_SCRIPT_EXT
marks.AUTOR1.10.file = fileadmin/scripts/script1.php
marks.AUTOR1.wrap = <img src="fileadmin/icons/user.gif" width="13" alt="" />  |

localconf.php:
PHP
$TYPO3_CONF_VARS["FE"]["noPHPscriptInclude"]=1;
$TYPO3_CONF_VARS['BE']['fileDenyPattern'] = '';


Das GIF wird angezeigt, sonst nichts.
Kann da irgendjemand helfen?
Gruss, Tom.
Profil
Verfasst am: 03. 01. 2008 [13:29]
susanne
Dabei seit: 24.08.2005
Beiträge: 132
Hallo Tom,

mit PHP_SCRIPT_EXT habe ich noch nie gearbeitet, hatte aber mal ein ähnliches Problem.

TYPOSCRIPT
page.includeLibs.user_functions = typo3conf/ext/vip_util/class.vip_user_functions.php
page.10.marks.USERNAME = USER_INT
page.10.marks.USERNAME.userFunc = user_functions->getFEUserName


Dies funktionierte nicht, da ich den Klassennamen nicht mit user_ habe beginnen lassen. Im Installtool ist nämlich folgendes voreingestellt:

TYPOSCRIPT
[userFuncClassPrefix] 
 
 
This prefix must be the first part of any function or class name called from TypoScript, for instance in the stdWrap function.
 
[FE][userFuncClassPrefix] = user


Vielleicht gilt das auch für PHP_SCRIPT_EXT.

Ansonsten aktivier dir mal das Adminpanel fürs Frontend. Unter dem Punkt Typoscript findest du dann eventuell vorhandene Fehlermeldungen.

Tschau Susanne
Profil
Verfasst am: 03. 01. 2008 [14:48]
tomgr
Themenersteller
Dabei seit: 13.12.2005
Beiträge: 106
Hallo Susanne.
Ich habe in meinem PHP-Script nur eine Funktion drinne, auch die fängt mit "user_" an.
Adminpanel ist aktiviert, keine Fehlermeldung zu entdecken.
Ich habs auch mit ".inc" versucht, nichts.
An die Webserver-Logs komme ich im Moment nicht dran, liegen beim Provider.
Irgendwie kann das doch nicht so schwer sein ein externes Script einzubinden ohne eine Extension zu schreiben.

Gruss, Tom.
Profil
Verfasst am: 04. 01. 2008 [09:49]
Kitsunet
Dabei seit: 02.02.2006
Beiträge: 2034
Aber in deiner PHP Datei wird die Funktion auch aufgerufen? Du musst im Prinzip in der PHP Datei Code drin haben, der direkt ausgeführt wird und deine Ausgabe musst du in die Variable $content schreiben, dann sollte das gehen.

Grüße
Christian

config.baseURL = http://www.kitsunet.de/
Certified TYPO3 Integrator
TYPO3 v5 Core Team
ProfilWWWSkype
Verfasst am: 04. 01. 2008 [11:20]
tomgr
Themenersteller
Dabei seit: 13.12.2005
Beiträge: 106
Moin.
Hier ist mal die Datei. Der Code funktioniert. Ich hatte das vor längerem einfach in der localconf.php stehen. Ist zwar nicht die moderne, ging aber.
Jetzt möchte ich den gerne auslagern. Aber wie?

PHP
function user_createArticle_Footer() {
	global $TYPO3_DB,$TSFE;
 
	// define Date of creation and last update
	$createDate = date('d.m.Y',$TSFE->page['crdate']);
        if(!empty($TSFE->page['SYS_LASTCHANGED'])) {
		$lastUpdate = date('d.m.Y',$TSFE->page['SYS_LASTCHANGED']);
	} else {
                $lastUpdate = $createDate;
	}
 
	// define creator-name and -emailadress
        $res = $TYPO3_DB->exec_SELECTquery('realName,email','be_users','uid='.$TSFE->page['cruser_id']);
        while($row = $TYPO3_DB->sql_fetch_assoc($res)) {
                $creatorRealName  = $row['realName'];
                $creatorEmail     = $row['email'];
        }
        $TYPO3_DB->sql_free_result($res);
 
	// define revisor-name and -emailadress
	if(!empty($TSFE->page['author']) && !empty($TSFE->page['author_email'])) {
		$revisorRealName = $TSFE->page['author'];
		$revisorEmail    = $TSFE->page['author_email'];
	} else {
		$revisorRealName = $creatorRealName;
		$revisorEmail    = $creatorEmail;
	}
 
	// create articleFooter
	$edited = 0;
        $content = '<font size="1px" face="verdana" color="#666666">Redakteur/in: <a class=footer href="mailto:'.$creatorEmail.'">'.$creatorRealName.'</a>, Seite erstellt am '.$createDate;
        //if($revisorRealName != $creatorRealName && $revisorEmail != $creatorEmail) {
        	$content .=', zuletzt bearbeitet von: <a class=footer href="mailto:'.$revisorEmail.'">'.$revisorRealName.'</a></font>';
		//$edited   = 1;
      //  }
        if($lastUpdate != $createDate || $edited == 1) {
        	$content .=' am '.$lastUpdate;
        }
 
	return $content;
}
Profil
Verfasst am: 04. 01. 2008 [11:25]
Kitsunet
Dabei seit: 02.02.2006
Beiträge: 2034
Ja aber es fehlt ja ein Aufruf der Funktion, eingebunden wird sie vielleicht, aber dann müsste halt noch ein:

user_createArticle_Footer();

an das Ende der Datei...

config.baseURL = http://www.kitsunet.de/
Certified TYPO3 Integrator
TYPO3 v5 Core Team
ProfilWWWSkype
Verfasst am: 04. 01. 2008 [11:36]
tomgr
Themenersteller
Dabei seit: 13.12.2005
Beiträge: 106
Helf mir ein bisschen. Bin kein großer Programmierer.
Profil
Verfasst am: 04. 01. 2008 [12:28]
Kitsunet
Dabei seit: 02.02.2006
Beiträge: 2034
Ich denke, damit es funktioniert müsste deine PHP Datei so aussehen:

PHP
<?PHP
 
function user_createArticle_Footer() {
              global $TYPO3_DB,$TSFE;
 
              // define Date of creation and last update
              $createDate = date('d.m.Y',$TSFE->page['crdate']);
              if(!empty($TSFE->page['SYS_LASTCHANGED'])) {
                      $lastUpdate = date('d.m.Y',$TSFE->page['SYS_LASTCHANGED']);
              } else {
                      $lastUpdate = $createDate;
              }
 
              // define creator-name and -emailadress
              $res = $TYPO3_DB->exec_SELECTquery('realName,email','be_users','uid='.$TSFE->page['cruser_id']);
              while($row = $TYPO3_DB->sql_fetch_assoc($res)) {
                      $creatorRealName  = $row['realName'];
                      $creatorEmail     = $row['email'];
              }
              $TYPO3_DB->sql_free_result($res);
 
              // define revisor-name and -emailadress
              if(!empty($TSFE->page['author']) && !empty($TSFE->page['author_email'])) {
                      $revisorRealName = $TSFE->page['author'];
                      $revisorEmail    = $TSFE->page['author_email'];
              } else {
                      $revisorRealName = $creatorRealName;
                      $revisorEmail    = $creatorEmail;
              }
 
              // create articleFooter
              $edited = 0;
              $content = '<font size="1px" face="verdana" color="#666666">Redakteur/in: <a class=footer href="mailto:'.$creatorEmail.'">'.$creatorRealName.'</a>, Seite erstellt am '.$createDate;
              //if($revisorRealName != $creatorRealName && $revisorEmail != $creatorEmail) {
                      $content .=', zuletzt bearbeitet von: <a class=footer href="mailto:'.$revisorEmail.'">'.$revisorRealName.'</a></font>';
                      //$edited   = 1;
            //  }
              if($lastUpdate != $createDate || $edited == 1) {
                      $content .=' am '.$lastUpdate;
              }
 
              return $content;
      } 
 
$content = user_createArticle_Footer();
?>


config.baseURL = http://www.kitsunet.de/
Certified TYPO3 Integrator
TYPO3 v5 Core Team
ProfilWWWSkype
Verfasst am: 04. 01. 2008 [12:50]
tomgr
Themenersteller
Dabei seit: 13.12.2005
Beiträge: 106
Leider nichts zu machen.
Einfach leer der Marker, bis auf das Icon. (wrap)
Profil
Verfasst am: 17. 06. 2008 [16:24]
MWolf
Dabei seit: 09.02.2007
Beiträge: 16
Vllt bisschen Alt der Thread, aber in der TSReferenz ist mir folgendes folgendes zu PHP_SCRIPT zuerst ins Auge gesprungen:

ANMERKUNG: Diese Option wird ignoriert, wenn in der localconf.php $TYPO3_CONF_VARS["FE"]["noPHPscriptInclude"]=1; gesetzt ist.
Profil