Ergebnis 1 bis 5 von 5

Thema: Varibable in Scriptbereich

  1. #1
    Teeny
    Registriert seit
    01.08.2007
    Beiträge
    41
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Varibable in Scriptbereich

    Hallo mal wieder!

    Diesmal möchte ich eine Template-Variable in einem Script-Bereich einfügen. Dabei meckert aber der HTML-Parser:

    Compilation failed
    TAL.HTMLTALParser.NestingError: Open tags <html>, <body>, <div>, <script> do not match close tag </tal:block>, at line 29, column ...
    Zwar zurecht, was die Tags im template angeht (innerhalb von <script> sind ja keine Tags erlaubt). Allerdings werden die Tags ja für den Output eh entfernt.

    Konkret handelt es sich um ein Tracking-Tool, welchem Seitenname und Sprache für die Auswertung übergeben werden sollen. Mein Code bisher in etwa so:

    Code:
    <script type="text/javascript">
    // Begin own parameters.
    <tal&#58;block tal&#58;replace="string&#58; page_name='$page_title';"> PAGE NAME </tal&#58;block>
    <tal&#58;block tal&#58;replace="string&#58; group_name='$language';"> GROUP NAME </tal&#58;block>
    // End own parameters.
    </script>

    EDIT: Variante 2 - frisst zwar der Parser, führt aber zu einem Traceback beim Seitenaufruf:

    Code:
    <script type="text/javascript" tal&#58;content="string&#58; page_name='$&#123;page_title&#125;';; group_name='$&#123;language&#125;';;">
      // Inhalt des Script-Bereichs
    </script>
    Jemand eine Idee, wie ich den Parser überlisten kann, oder wie ich die Variableninhalte sonst an das Script übergeben kann?

    TIA
    marX
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Teeny
    Themenstarter

    Registriert seit
    01.08.2007
    Beiträge
    41
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Was so ein wenig Try&Error alles bewirken kann...

    Ich bin fälschlicherweise davon ausgegangen, dass die in anderen Templates definierten Variablen auch im Footer gelten. So gehts jetzt jedenfalls:

    Code:
    <script type="text/javascript"
            tal&#58;define="page_title object_title; lang language;"
            tal&#58;content="string&#58; page_name='$&#123;page_title&#125;'; group_name='$&#123;lang&#125;';">
      // Inhalt des Script-Bereichs
    </script>

  3. #3
    Teeny
    Themenstarter

    Registriert seit
    01.08.2007
    Beiträge
    41
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ich mach jetzt mal kein neues Thema auf, weils hier noch recht gut passt.

    Dem Script (genauer dem noscript-Fallback) muss der Seitentitel urlencodet übergeben werden. Wie krieg ich das am besten hin?

    Code:
    tal&#58;define="pretty_title   python&#58;urllib.quote&#40;object_title&#41;;
    führt zu einem Trackeback: "NameError: name 'urllib' is not defined"
    Wahrscheinlich muss ich die urllib noch irgendwie importieren - nur wie? Über "modules['urllib']" statt "urllib" bekomme ich eine Zugriffsverletzung.

  4. #4
    Kaiserliche Hoheit
    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Richtig - es können nicht alle Py-Module importiert werden. Die Script (Python) laufen in einem Restriction-Mode. Z.B. kann man da auch nicht re importieren. Dies muss man für diese Zope-Instanz explizit zulassen bzw. eine externe Methode verwenden, da diese pure Python ist.

    Für deinen Fall würden sich jedoch die Methoden anbieten, die Zope/CMF/Plone selbst anbieten. Es gibt ja Plone-Tools und -Utilities, die jede Menge Funktionen und Methoden bereitstellen. Auch kann man direkt von den Zope-Modulen (Products) einige Methoden nutzen.

    Versuche also mal dies:
    Code:
    ...
      tal&#58;define="pss          modules/Products.PythonScripts.standard;
                  pretty_title python&#58; pss.url_quote&#40;object_title&#41;;"
    ...
    Torty
    "Carpe Diem" powered by positiv Feelings

  5. #5
    Teeny
    Themenstarter

    Registriert seit
    01.08.2007
    Beiträge
    41
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ja so gehts, danke! Jetzt muss ich nur noch sehen ob das externe Tool ein Problem damit hat, dass die Umlaute UTF8-codiert sind (d.h. z.B. 'ö' wird zu %C3%B6 statt %F6)

    Aber danke erstmal!

Ähnliche Themen

  1. kurze hilfe: Varibable senden
    Von Gast1970 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 16.07.2008, 18:20

Stichworte

Berechtigungen

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