Ergebnis 1 bis 9 von 9

Thema: Javascript in eigener Extension - Framework oder eID?

  1. #1
    TP-Supporter Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392

    Javascript in eigener Extension - Framework oder eID?

    Hi,

    ich wüßte gerne mal eure Meinung zum Thema Javascript (Framework) und TYPO3. Ich bin grade dabei eine kleine Extension zu schreiben, wo ich für einen Link etwas javascript bräuchte und zwar geht es um einen "add as buddy"-Link, wo auf Klick die entsprchende php-Funktion aufgerufen werden soll. etwas googeln brachte dann die Information, das dies wohl am besten durch AJAX umzusetzen sei. Nun möchte ich gar nicht so viel javascript auf meiner Seite umsetzen, halt mal für besagten Link und vieleicht wird später noch an anderer Stelle ab und zu mal JS zum Einsatz kommen, zb für einen schicken Bilder-Upload.
    Frage nun, ist für den gelegentlichen Einsatz von JS schon die Installation einer dieser Framework-Extensions empfehlenswert, oder wäre das übertrieben? Wie resorucen-intensiv sind diese Extensions, verlangsamen sie die Seite? und dann, welches Framework wäre dann empfehlenswert? nachdem was ich so gelesen habe, scheinen mit Xajax, jquery, extjs recht attraktiv, auch eine unkomplitzierte, weil schon mit TYPO3-Bordmitteln realisierbaren Lösung mit EID könnte mir gefallen.
    Im grunde soll es halt einfach sein, und die ohnehin schon mächtige TYPO3-Umgebung nicht noch unnötig verkomplitzieren.
    Was meint ihr?

    Greets, K

  2. #2
    TP-Supporter Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392
    Wahrscheinlich werde ich jQuery als Extension installieren, aufgrund des angeblich schlanken Umfangs. Allerdings steht man nun etwas vorm Berg, vor allem da ich nur sehr wenig Erfahrung mit JS habe.

    Was ich vorhabe ist, in einer Extension bei Klick auf einen Link eine php-funktion aufrufen, welche dann etwas in die datenbank einträgt, ich denke das ist gut machbar mit jQuery. Nur, wie geht man nun vor?

    zunächst einmal sollte man wohl in die pi_ datei der extension die jQuery-Bibiliothek einbinden. aber wie gehts dann weiter?! Werde berichten, wenn ich ein gutes Tutorial finde oder sonst irgendwie weiterkomme hiermit. über tipps die hier zwischenzeitlich eingehen, würde ich mich natürlich auch freuen.

    beste Grüße, Katjusha

  3. #3
    TP-Supporter Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392
    Hallo,

    also ich bin jetzt ein kleines Stück weitergekommen. Verwende nun doch kein Framework, sondern hab mir was aus dem www zusammenkopiert. Dafür habe ich einen Link

    Code:
     <a href="javascript:sndReq('foo')">###FRIEND_LL###</a>
    der die datei test.js aufruft

    Code:
    function createRequestObject() {
        var ro;
        var browser = navigator.appName;
        if(browser == "Microsoft Internet Explorer"){
            ro = new ActiveXObject("Microsoft.XMLHTTP");
        }else{
            ro = new XMLHttpRequest();
        }
        return ro;
    }
    
    var http = createRequestObject();
    
    function sndReq(action) {
        http.open('get', 'typo3conf/ext/communityfeatures/pi1/rpc.php?action='+action);
        http.onreadystatechange = handleResponse;
        http.send(null);
    }
    
    function handleResponse() {
        if(http.readyState == 4){
            var response = http.responseText;
            var update = new Array();
    
            if(response.indexOf('|' != -1)) {
                update = response.split('|');
                document.getElementById(update[0]).innerHTML = update[1];
            }
        }
    }
    und mit der test.js wird dann die rpc.php aufgerufen:

    Code:
    <?php
    header("Cache-Control: no-cache");
    header("Pragma: nocache");
    
      switch($_REQUEST['action']) {
        case 'foo':
    
          echo "foo|foo done";
          break;
          
          
          
    //hier würde ich nun gerne noch ein datenbank-update einbauen
          
          }
          
    
    ?>
    Ist allerdings auch nur die halbe Miete. zumindest wird schon mal der Inhalt in dem Div asynchron geändert. Was jetzt ncoph fehlt ist, das die entsprechende Datenbank geupdatet wird. Kann mir da jemand sagen, wie ich dieses update in die ganze Sache integriere?

    Danke, K

  4. #4
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    Hi,

    also den Weg würde ich nicht beschreiten.
    jquery ist ideal um requests zu senden, Du musst das Rad nicht neu erfinden. Es ist stabil und crossbrowserfähig.

    Je nach Art des zu liefernden Contents eignet sich eID oder type für die Requests. Lad Dir doch mal ne jquery extension und schaus Dir an, ist kein Hexenswerk

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  5. #5
    TP-Supporter Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392
    Hi Steffenk,

    ich überleg mir das mit jQuery. die Verwendung des Frameworks hätte sicherlich den Vorteil, das man saubere Lösungen hinbekommt und möglicherweise wird man es ja auch später noch einmal brauchen. Dagegen spräche allerdings, das man dann ja auch, um die Extension zum Laufen zu bekommen, jedesmal jQuery installieren müßte. Mal schauen.

    Es wäre halt jetzt auch cool, das nochmal händisch zu machen, auch um zu wissen wie so was abläuft. wären es denn noch viele Schritte da jetzt eine einzelne DB-Update reinzuballern oder geht das schon? Mit der einfachen syntax für ein update, wie man es aus gewöhnlichen php-funktionen kennt, ging es ja schonmal leider nicht. nur warum?!

  6. #6
    TP-Supporter Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392
    Es funktioniert nun. Ich habe am Anfang der Datei ein

    Code:
    require('_config-buddy.php'); // get the db connection info
    eingefügt, in der Datei sind dann user, passwort, host usw definiert und mit

    Code:
    mysql_connect($buddy_dbhost, $buddy_dbuser, $buddy_dbpass);
    	//Select Database
    mysql_select_db($buddy_dbname) or die(mysql_error());
    wird dann die Verbindung hergestellt. Was meint ihr, ist dies ein sichere Vorgehensweise, oder tun sich da sicherheitslücken auf?

  7. #7
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    sry, aber das ist komplett an TYPO3 vorbei. Dafür gibts schliesslich eine API

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  8. #8
    TP-Supporter Avatar von Katjusha
    Registriert seit
    Feb 2008
    Beiträge
    392
    Wenn du mir sagst wie, dann schreib ichs natürlich lieber API-Konform.

  9. #9
    TP-Member
    Registriert seit
    Feb 2009
    Beiträge
    37
    Zitat Zitat von Katjusha Beitrag anzeigen
    Wenn du mir sagst wie, dann schreib ichs natürlich lieber API-Konform.
    Naja, in zwei Zeilen ist das schlecht zu machen

    Hier mal ein paar Links:


Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. [Extensions] Record Liste bei eigener Extension anzeigen
    Von b_wolf im Forum TYPO3
    Antworten: 0
    Letzter Beitrag: 12.08.2009, 15:23
  2. [Typoscript] makePdfLink aus eigener Extension heraus
    Von m.zimmer im Forum TYPO3
    Antworten: 2
    Letzter Beitrag: 06.03.2009, 15:04
  3. [DW MX] Ladezeit: besser mit Layer oder mit eigener URL?
    Von Annette-C. im Forum Dreamweaver & andere Webeditoren
    Antworten: 2
    Letzter Beitrag: 15.11.2008, 19:18
  4. JavaScript oder Extension?
    Von drischdi im Forum Dreamweaver & andere Webeditoren
    Antworten: 1
    Letzter Beitrag: 24.02.2008, 14:12
  5. Webspace oder Eigener Server
    Von Shorty im Forum Server & Provider
    Antworten: 16
    Letzter Beitrag: 12.11.2002, 20:13

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51