externes PHP-Script

  • tomgr tomgr
    R2-D2
    0 x
    107 Beiträge
    0 Hilfreiche Beiträge
    03. 01. 2008, 08:36

    Moin Alle.
    Ich würde gerne ein externes PHP-Script in einen Marker einbinden.
    [TS]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="" /> |
    [/TS]
    localconf.php:

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

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


  • 1
  • susanne susanne
    Jedi-Ritter
    0 x
    132 Beiträge
    0 Hilfreiche Beiträge
    03. 01. 2008, 13:29

    Hallo Tom,

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

    [TS]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
    [/TS]

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

    [TS][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

    [/TS]

    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 tomgr
    R2-D2
    0 x
    107 Beiträge
    0 Hilfreiche Beiträge
    03. 01. 2008, 14:48

    Hallo Susanne.
    Ich habe in meinem PHP-Script nur eine Funktion drinne, auch die fängt mit "[b]user_[/b]" 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.

  • kitsunet kitsunet
    Flash Gordon
    0 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    04. 01. 2008, 09:49

    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.com/
    TYPO3 Flow und Neos Community Contact
    Release Manager TYPO3 Neos 1.1
    Ich habe Probleme mit den PMs hier, also schreibt mir bitte eine Mail oder über Twitter!

  • tomgr tomgr
    R2-D2
    0 x
    107 Beiträge
    0 Hilfreiche Beiträge
    04. 01. 2008, 11:20

    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?

    1. function user_createArticle_Footer() {
    2. global $TYPO3_DB,$TSFE;
    3.  
    4. // define Date of creation and last update
    5. $createDate = date('d.m.Y',$TSFE->page['crdate']);
    6. if(!empty($TSFE->page['SYS_LASTCHANGED'])) {
    7. $lastUpdate = date('d.m.Y',$TSFE->page['SYS_LASTCHANGED']);
    8. } else {
    9. $lastUpdate = $createDate;
    10. }
    11.  
    12. // define creator-name and -emailadress
    13. $res = $TYPO3_DB->exec_SELECTquery('realName,email','be_users','uid='.$TSFE->page['cruser_id']);
    14. while($row = $TYPO3_DB->sql_fetch_assoc($res)) {
    15. $creatorRealName = $row['realName'];
    16. $creatorEmail = $row['email'];
    17. }
    18. $TYPO3_DB->sql_free_result($res);
    19.  
    20. // define revisor-name and -emailadress
    21. if(!empty($TSFE->page['author']) && !empty($TSFE->page['author_email'])) {
    22. $revisorRealName = $TSFE->page['author'];
    23. $revisorEmail = $TSFE->page['author_email'];
    24. } else {
    25. $revisorRealName = $creatorRealName;
    26. $revisorEmail = $creatorEmail;
    27. }
    28.  
    29. // create articleFooter
    30. $edited = 0;
    31. $content = '<font size="1px" face="verdana" color="#666666">Redakteur/in: <a class=footer href="mailto:'.$creatorEmail.'">'.$creatorRealName.'</a>, Seite erstellt am '.$createDate;
    32. //if($revisorRealName != $creatorRealName && $revisorEmail != $creatorEmail) {
    33. $content .=', zuletzt bearbeitet von: <a class=footer href="mailto:'.$revisorEmail.'">'.$revisorRealName.'</a></font>';
    34. //$edited = 1;
    35. // }
    36. if($lastUpdate != $createDate || $edited == 1) {
    37. $content .=' am '.$lastUpdate;
    38. }
    39.  
    40. return $content;
    41. }

  • kitsunet kitsunet
    Flash Gordon
    0 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    04. 01. 2008, 11:25

    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.com/
    TYPO3 Flow und Neos Community Contact
    Release Manager TYPO3 Neos 1.1
    Ich habe Probleme mit den PMs hier, also schreibt mir bitte eine Mail oder über Twitter!

  • tomgr tomgr
    R2-D2
    0 x
    107 Beiträge
    0 Hilfreiche Beiträge
    04. 01. 2008, 11:36

    Helf mir ein bisschen. Bin kein großer Programmierer.

  • kitsunet kitsunet
    Flash Gordon
    0 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    04. 01. 2008, 12:28

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

    1. <?PHP
    2.  
    3. function user_createArticle_Footer() {
    4. global $TYPO3_DB,$TSFE;
    5.  
    6. // define Date of creation and last update
    7. $createDate = date('d.m.Y',$TSFE->page['crdate']);
    8. if(!empty($TSFE->page['SYS_LASTCHANGED'])) {
    9. $lastUpdate = date('d.m.Y',$TSFE->page['SYS_LASTCHANGED']);
    10. } else {
    11. $lastUpdate = $createDate;
    12. }
    13.  
    14. // define creator-name and -emailadress
    15. $res = $TYPO3_DB->exec_SELECTquery('realName,email','be_users','uid='.$TSFE->page['cruser_id']);
    16. while($row = $TYPO3_DB->sql_fetch_assoc($res)) {
    17. $creatorRealName = $row['realName'];
    18. $creatorEmail = $row['email'];
    19. }
    20. $TYPO3_DB->sql_free_result($res);
    21.  
    22. // define revisor-name and -emailadress
    23. if(!empty($TSFE->page['author']) && !empty($TSFE->page['author_email'])) {
    24. $revisorRealName = $TSFE->page['author'];
    25. $revisorEmail = $TSFE->page['author_email'];
    26. } else {
    27. $revisorRealName = $creatorRealName;
    28. $revisorEmail = $creatorEmail;
    29. }
    30.  
    31. // create articleFooter
    32. $edited = 0;
    33. $content = '<font size="1px" face="verdana" color="#666666">Redakteur/in: <a class=footer href="mailto:'.$creatorEmail.'">'.$creatorRealName.'</a>, Seite erstellt am '.$createDate;
    34. //if($revisorRealName != $creatorRealName && $revisorEmail != $creatorEmail) {
    35. $content .=', zuletzt bearbeitet von: <a class=footer href="mailto:'.$revisorEmail.'">'.$revisorRealName.'</a></font>';
    36. //$edited = 1;
    37. // }
    38. if($lastUpdate != $createDate || $edited == 1) {
    39. $content .=' am '.$lastUpdate;
    40. }
    41.  
    42. return $content;
    43. }
    44.  
    45. $content = user_createArticle_Footer();
    46. ?>

    config.baseURL = http://www.kitsunet.com/
    TYPO3 Flow und Neos Community Contact
    Release Manager TYPO3 Neos 1.1
    Ich habe Probleme mit den PMs hier, also schreibt mir bitte eine Mail oder über Twitter!

  • tomgr tomgr
    R2-D2
    0 x
    107 Beiträge
    0 Hilfreiche Beiträge
    04. 01. 2008, 12:50

    Leider nichts zu machen.
    Einfach leer der Marker, bis auf das Icon. (wrap)

  • MWolf MWolf
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    17. 06. 2008, 16:24

    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.

  • 1