Zum Inhalt springen

externes PHP-Script

Erstellt am 3. Januar 2008 · 9 Antworten · letzte Antwort am 17. Juni 2008

Tags: Frage

tomgr ·

Moin Alle.
Ich würde gerne ein externes PHP-Script in einen Marker einbinden.

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:

$TYPO3_CONF_VARS["FE"]["noPHPscriptInclude"]=1;
$TYPO3_CONF_VARS['BE']['fileDenyPattern'] = '';

Das GIF wird angezeigt, sonst nichts.
Kann da irgendjemand helfen?
Gruss, Tom.

susanne ·

Hallo Tom,

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

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:

[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

tomgr ·

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.

Unbekannter Benutzer ·

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

tomgr ·

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?

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;
}
Unbekannter Benutzer ·

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...

Unbekannter Benutzer ·

Ich denke, damit es funktioniert müsste deine PHP Datei so aussehen:

<?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();
?>
MWolf ·

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.