Page 1 of 1

Bug in der Artikel Vorschau

Posted: Sun Nov 19, 2006 6:03 pm
by laemmy
Ich nutze das Theme Square in meinem Blog. Mir ist aufgefallen dass die Vorschau Funktion bei diesem (und anderen Themes) nicht richtig arbeitet.

Ich sehe die Vorschau etwa für 1-2 Sekunden. Dann wird das Iframe so klein das man es nicht mehr sieht.

Habe das CSS überprüft und auch auch die Iframe Attribute in include/functions_config.inc.php angepasst um das Problem selbst zu lösen.

Ich habe eine lokale Testinstallation von s9y auf der ich nur die default Plugins verwende. Dort habe ich das selbe Problem.

Beim schreiben diese Beitrags ist mir aufgefallen dass es auch ein clientseitiges Problem sein könnte. Daraufhin habe ich das ganze mal in Opera probiert und festgestellt das es am Browser liegen muss.

Hat vielleicht irgendjemand ein Idee woran das liegen könnte?

Re: Bug in der Artikel Vorschau

Posted: Sun Nov 19, 2006 6:43 pm
by garvinhicking
Hi!

Das liegt wohl daran dass das template keine korrekte "preview_iframe.tpl" Datei mit sich bringt. Die ist aber erforderlich um die iframe-größe an das richtige HTML-Element zu binden, das ja per JavaScript als Basis für die Höhe des Ganzen dient.

Evtl. kannst Du mal den Theme-Designer danach fragen, oder wenn Du dich etwas damit beschäftigen möchtest dir mal die preview_iframe.tpl von anderen Themes angucken und anpassen?

Viele Grüße,
Garvin

Posted: Sun Nov 19, 2006 7:00 pm
by laemmy
hi garvin,

danke für die schnelle antwort. ich hab mal eine preview_iframe.tpl in den ordner kopiert. muss ich die noch irgendwo einbinden? mit include oder so? wenn ja wo?

hab bisher nur themes angepasst und noch kein eigenes für s9y erstellt, arbeite mich da aber nach und nach ein.

beim theme carl_contest (Serendipity v3.0) existiert keine preview_iframe.tpl dort funktioniert die preview aber ohne probleme.

gruß laemmy

Posted: Sun Nov 19, 2006 7:27 pm
by garvinhicking
Hi!

Sobald die Datei vorhanden ist, wird sie automatisch benutzt. D.h. Du kannst sie anpassen sobald du sie in den Ordner kopiert hast.
beim theme carl_contest (Serendipity v3.0) existiert keine preview_iframe.tpl dort funktioniert die preview aber ohne probleme.
Das liegt daran dass das Serendipity3.0 Template den Hauptteil in einem "content" HTML Element hat, aber dein Theme anscheinend nicht. Die preview_iframe.tpl basiert aber standardmäßig auf "content". Ist ein anderes Element das Haupt-Oberelement, muss dessen Namen in der preview_iframe.tpl benutzt werden.

Oder so. :-)

Grüße,
Garvin

Die Lösung

Posted: Sun Nov 19, 2006 7:41 pm
by laemmy
Konnte das Problem mit deiner Hilfe lösen.

Hab die preview_iframe.tpl aus einem beliebigen Ordner kopiert und die Zeile

Code: Select all

<div id="serendipity_iframe" style="padding: 5px; margin: 0px;">
etwas angepasst

Code: Select all

<div id="serendipity_iframe" style="padding: 5px; margin: 0px;">
Fertig sieht das ganze dann so aus

Code: Select all

    <head>
        <title>{$CONST.SERENDIPITY_ADMIN_SUITE}</title>
        <meta http-equiv="Content-Type" content="text/html; charset={$head_charset}" />
        <meta name="Powered-By" content="Serendipity v.{$head_version}" />
        <link rel="stylesheet" type="text/css" href="{$head_link_stylesheet}" />
        <script type="text/javascript">
           window.onload = function() {ldelim}
             parent.document.getElementById('serendipity_iframe').style.height = document.getElementById('mainpane').offsetHeight
                                                                               + parseInt(document.getElementById('mainpane').style.marginTop)
                                                                               + parseInt(document.getElementById('mainpane').style.marginBottom)
                                                                               + 'px';
             parent.document.getElementById('serendipity_iframe').scrolling    = 'no';
             parent.document.getElementById('serendipity_iframe').style.border = 0;
           {rdelim}
        </script>
    </head>

    <body style="padding: 0px; margin: 0px;">
        <div id="mainpane" style="padding: 0px; margin: 5px auto 5px auto; width: 98%;">
            <div id="serendipity_iframe" style="padding: 5px; margin: 0px;">
            {$preview}
            </div>
        </div>
    </body>
Vielen Dank dafür.

Gruß laemmy