Delphi-PRAXiS
Seite 1 von 6  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Webbroker. PageProducer und transparente HTML-Tags (https://www.delphipraxis.net/189600-webbroker-pageproducer-und-transparente-html-tags.html)

Delbor 28. Jun 2016 14:53

Webbroker. PageProducer und transparente HTML-Tags
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi zusammen
In einer meiner Webbroker-Testanwendungen gebe ich pere HTML die Inhalte einer Linkliste an (HTML-Menue):

Delphi-Quellcode:
    <!-- *************************************************************************** <img alt="DelborPunktCH" src="Delbor_9_5.jpg" />-->
              <#NORMALSPURBAHNEN<!
//   <!--            <li><a href="#">Normalspurbahnen</a>
//                <ul class="Flyoutmenue">
//                    <li><a href="#">Gotthardgiganten</a></li>
//                    <li><a href="#">Französischer Dampf am Gotthard</a></li>
//                    <li><a href="html/AufromantischerSpur1.html">AufromantischerSpur1</a></li>
//                </ul>
//              </li>                                                                />-->
    <!-- *************************************************************************** -->
Jetzt auskommentiert ist der ursprünglich in dem HTML-File vorhandene Code, den ich durch ein neues transparentes HTML-Tag ersetzt habe.
Das funktioniert soweit auch - mit einem kleinen "Schönheitsfehler, den das angehängte Jpeg zeigt.
Der erste Menuepunkt ist der statt des Tags eingefügte HTML-Code. Im Pageproducer befindet sich exakt das im obigen Beispiel eingefügte
Schnipsel.
Und unterhalb davon nochmal ein "Menuepunkt" <Normalspurbahnen>, nicht in einem CSS-Block eigeschlossen.
Da dieser String aber nicht aus dem HTML-File stammen kann und sich auch nicht im PageProducer-Property HTMLDOC eingeschlichen hat - woher kommt dann der Schrott?

Gruss
Delbor

Delbor 28. Jun 2016 15:11

AW: Webbroker.PageControl und transparente HTML-Tags
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi zusammen

Wie sagt man so schön? Der grösste Fehler sitzt vor dem Bildschirm?
Ich hätte mir den Code ja im Browser schon vorher ansehen können (diehee Anhang)...

Jetzt muss ich 'nur' noch herausfinden, woher der doppelte Aufruf kommt...
Aber mal sehen, vielleicht habe ich die Antwort schon...

Gruss
Delbor

PS:
Zitat:

Aber mal sehen, vielleicht habe ich die Antwort schon...
Das war leider nicht der Fall. Durchsteppen hat gezeigt, dass offenbar die gesamte Tagliste mehrmals durchlaufen wird (>=4)

Jumpy 28. Jun 2016 16:26

AW: Webbroker. PageProducer und transparente HTML-Tags
 
Muss ein Tag nicht so aussehen: <#NORMALSPURBAHNEN> statt so: <#NORMALSPURBAHNEN<!.

Wie sieht den das original HTML-Dokument aus, das dem PageProducer als Vorlage dient und wie sieht genau deine OnTag-Routine aus?

Delbor 28. Jun 2016 17:25

AW: Webbroker. PageProducer und transparente HTML-Tags
 
Hi Jumpy
Zitat:

Muss ein Tag nicht so aussehen: <#NORMALSPURBAHNEN> statt so: <#NORMALSPURBAHNEN<!.
Ich habe eigentlich beides. Und zwar im Kopf der HTML-Seite:
Delphi-Quellcode:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
   <title>Delbor - Home</title>
    <meta http-equiv="Content-Type" content="text/html">
  <style>
    <#DELBORHOMECSS>
    <#MENUE>

  </style>
  </head>
sowie an der hier gezeigten Position:
Delphi-Quellcode:
    <!-- *************************************************************************** <img alt="DelborPunktCH" src="Delbor_9_5.jpg" />-->
              <#NORMALSPURBAHNEN<!
   <!--            <li><a href="#">Normalspurbahnen</a>
                <ul class="Flyoutmenue">
                    <li><a href="#">Gotthardgiganten</a></li>
                    <li><a href="#">Französischer Dampf am Gotthard</a></li>
                    <li><a href="html/AufromantischerSpur1.html">AufromantischerSpur1</a></li>
                </ul>
              </li>                                                                />-->
    <!-- *************************************************************************** -->
Die Hintergründe sind zum einen, dass Embarcadero die Schreibweise der Tagnamen so wie im 2. Codeschnipsel angibt, und zum andern, dass mir Delpi im ersten gezeigten Schnipsel die Tagnamen als unbekannt unterstrich, wenn ich sie nach der Empfehlung wie im 2. Schnipsel formulierte und umgekehrt wurde im 2. Schnipsel <#NORMALSPURBAHNEN> als unbekannt angemeckert.
Der Unterschied ist offensichtlich der Seitenabschnitt: ersteres Schnipsel befindet sich zwischen <head><style> und </style></head>
und 2. im Bodybbereich, also nicht zwischen weiteren Abschnittstags

Dem Pageproducer.HTMLfile habe ich eine Webseite als Vorlage spendiert:
Delphi-Quellcode:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
   <title>Delbor - Home</title>
    <meta http-equiv="Content-Type" content="text/html">
  <style>
    <#DELBORHOMECSS>
    <#MENUE>

  </style>
  </head>
  <body>
  <div id="Titellogo">&nbsp;,&nbsp;
    <h2>Willkommen auf den Seiten von
  </h2>
  </div> <!--< -->
  <div id="header">&nbsp;<#Image/></div>

    <div id="Leftcol">
      <!--<div id="mainnavigation"> </div> <img alt="DelborPunktCH" src="Delbor_9_5.jpg" /> <>-->
        <ul id="mainmenue">
          <li><a href="#">EisenBahnen</a>
            <ul class="submenue">
    <!-- *************************************************************************** <img alt="DelborPunktCH" src="Delbor_9_5.jpg" />-->
              <#NORMALSPURBAHNEN<!
   <!--            <li><a href="#">Normalspurbahnen</a>
                <ul class="Flyoutmenue">
                    <li><a href="#">Gotthardgiganten</a></li>
                    <li><a href="#">Französischer Dampf am Gotthard</a></li>
                    <li><a href="html/AufromantischerSpur1.html">AufromantischerSpur1</a></li>
                </ul>
              </li>                                                                />-->
    <!-- *************************************************************************** -->
              <li><a href="#">Schmalspurbahnen</a>
                <ul class="Flyoutmenue">
                    <li><a href="#">100 Jahre Säntisbahn</a></li>
                    <li><a href="#">Das Juwel vom Waldenburgertal</a></li>
                </ul>
              </li>
    <!-- *************************************************************************** -->
              <li><a href="#">Berg- und Zahnradbahnen</a>
                <ul class="Flyoutmenue">
                    <li><a href="#">Die Rigibahn</a></li>
                    <li><a href="#">Rosa und die RHB</a></li>
                </ul>
              </li>
    <!-- *************************************************************************** -->
            </ul>
           </li>       <!-- Submenue -UL -->
          <li><a href="#">Programmieren mit Delphi</a></li>
        </ul>           <!-- *Mainmenue - UL* -->
                  <<!-- *Mainnavigation-div* -->
    </div>
                   <!-- H:/Developer/Delbor-Content-Manager V0.001
                     H:/Developer/Delbor-Content-Manager V0.001
                       H:/Developer/Delbor-Content-Manager V0.001
                       H:/Developer/Delbor-Content-Manager V0.001
                  -->

    <div id="Rightcol">
    </div>

  </body>
</html>
Meine OnHTMLLag-Routine:
Delphi-Quellcode:
procedure TWebModule1.PageProducerHomeHTMLTag(Sender: TObject; Tag: TTag;
  const TagString: string; TagParams: TStrings; var ReplaceText: string);
begin
  if TagString = 'DELBORHOMECSS' then
    ReplaceText := PageProducerHomeCSS.Content;
  if Tagstring = 'MENUE' then
    ReplaceText := PageProducerMenueCSS.Content;
  if TagString = 'NORMALSPURBAHNEN' then
    ReplaceText := PageProducerNormalspurbahnen.Content;

end;
Ausserdem:
Delphi-Quellcode:
procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  var List: TStringList; Refererstr, SourceStr: string; i,x: Integer;
begin
if Request.PathInfo = '/html/AufromantischerSpur1.html' then
begin
  WebModule1WebActRomanticeRoadAction(Self,Request,Response,Handled);
end;

end;

procedure TWebModule1.WebModule1WebActHomeAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  var PagePath: WideString;
begin
  Response.Content := PageProducerHome.Content;
  Response.Content := Response.Content + PageProducerLogo.Content;
  Response.Content := Response.Content + 'Request.PathInfo := ' + Request.PathInfo;
  Response.SendResponse;
end;

procedure TWebModule1.WebModule1WebActRomanticeRoadAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  if Request.PathInfo = '/html/AufromantischerSpur1.html' then
  begin
  Response.Content := PageProducerRomanticRR.Content;
  Response.Content := Response.Content + PageProducerRomanticCSS.Content;
  Handled := True;
  end;
end;
Der Code stammt grössteteils aus meinen länger zurückliegenden ersten Testversuchen mit Webbroker und ist so natürlich alles andere als vollständig.


Gruss
Delbor

Sir Rufo 28. Jun 2016 17:46

AW: Webbroker. PageProducer und transparente HTML-Tags
 
Es ist ein Fehler in der Dokumentation und es muss
Delphi-Quellcode:
<#TAG>
lauten.

BTW: Jeder HTML Validierer wird dir diese Tags mit der Raute als unbekannt kennzeichnen, weil die eben für HTML unbekannt sind. Nur ist das ja auch keine HTML Datei, sondern ein Template für eine HTML-Datei :stupid:

Delbor 28. Jun 2016 18:22

AW: Webbroker. PageProducer und transparente HTML-Tags
 
Hi Sir Rufo

Genau diesen Eindruck hatte ich auch, als ich seinerzeit die beiden Tags im Header platzierte und gemäs Doku formatierte - aber genau diese Formatierung - die ja eben im Header anstandslos akzeptiert wird, wird im Body angemeckert. Und offenbar wird, wie mein Jpeg im ersten Post zeigt, dieser Tagname auch ausgeführt.

Gruss
Delbor

Delbor 28. Jun 2016 18:50

AW: Webbroker. PageProducer und transparente HTML-Tags
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hi Sir Rufo
Zitat:

BTW: Jeder HTML Validierer wird dir diese Tags mit der Raute als unbekannt kennzeichnen, weil die eben für HTML unbekannt sind. Nur ist das ja auch keine HTML Datei, sondern ein Template für eine HTML-Datei
Das habe ich bislang übersehen. Der Anhang zeigt, wie dasausieht, wenn ich die Tagnamen abändere und wie sich das auf die Webseite auswirkt.
  • Im ersten Jpeg siehst du, was Delphi macht, wenn ich den Tagnamen auf eine abschliessende Dreiecksklammer ändere(Ohne abschliessendes Taf
  • Im zweiten Jpeg siehst du das Tag mit entferntem abschliessenden Tag
  • Und schliess zeigt das 3. Jpeg einen Ausschnitt des Browsers. Der ist übrigens durchgehend Leer den ganzen Browser eines 23-Zoll-Screens anzuzeigen, finde ich etwas übertrieben.

Zitat:

Nur ist das ja auch keine HTML Datei,
Doch, ist es. Im Property Pageproducer.HTMLFile werden andere als HTMLFiles mit der Endung html oder htm nicht akzeptiert. Eine Alternative wäre wohl Pageproduce.HTMLDoc. Wenn mich meine Erinnerung nicht täuscht, stammen diese Inhalte aus .txt-Files. Die Originaldateien waren entweder HTML- oder CSS-Ursprungs.

Gruss
Delbor

Sir Rufo 28. Jun 2016 20:07

AW: Webbroker. PageProducer und transparente HTML-Tags
 
Was ist eine HTML-Datei?
  • Eine Datei mit der Endung .html (egal welcher Inhalt da drin steckt)
  • Eine Datei mit einem Text, der gemäß HTML-Richtlinien strukturiert aufgebaut ist (bekommt bevorzugt die Endung .html/.htm)
BTW: Bei mir funktiniert das mit dem PageProducer nur dann, wenn ich
Delphi-Quellcode:
<#TAG>
im Template schreibe, dann wird auch der Event passend gefeuert.

Delbor 28. Jun 2016 20:50

AW: Webbroker. PageProducer und transparente HTML-Tags
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Sir Rufo
Zitat:

BTW: Jeder HTML Validierer wird dir diese Tags mit der Raute als unbekannt kennzeichnen, weil die eben für HTML unbekannt sind.
Natürlich ist HTML ausschliesslich eine Text-Datei und dementsprechend ein HTML-File eine Text-Datei mit der entsprechenden Endung.
Und was ist ein Validierer? Der HTML-Editor, in meinem Fall derjenige von Delphi. Und der reagiert wie beschrieben.

Interessant wäre allerdings das Verhalten anderer Editoren zu testen.

Aber all das gibt mir noch keinen Hinweis darauf, wesshalb das Menue HTML-Seite unter dem erste Menuepunkt mit den Untermenues und den von diesen Aufrufbaren Flyoutmenues den ersten Menuepunkt ein zweites Mak ausgibt, allerdings ohne den CSS-Boxen und Farben. Zur Erinnerung das jpeg nochmal im Anhang; Der zuviel angezeigte Menuepunkt ist das zweite, nicht eingerahmte Untermenue.

Gruss
Delbor

Sir Rufo 28. Jun 2016 21:02

AW: Webbroker. PageProducer und transparente HTML-Tags
 
Eventuell hilft es dir ja, wenn du mal dein HTML-Template von den ganzen Artefakten befreist oder es zunächst mit einem ganz einfachen Template versuchst.

Ausgaben wie z.B.
Delphi-Quellcode:
/>-->
sind eher ein Hinweis, dass dein Template schon mal etwas durcheinander ist.

Wenn der Fehler dann immer noch auftaucht, dann häng doch die erzeugte HTML-Datei als Anhang an, dann sieht man auch wo der Frosch die Locken hat. (Aber bitte erst das Template von dem Unrat befreien)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 Uhr.
Seite 1 von 6  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz