@Perler - Variablennamen dynamisch genrerieren? - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Montag, 8.Juli.2002, 07:38.
    @Perler - Variablennamen dynamisch genrerieren?

      Hallo, ich schon wieder.
      Hab folgendes Prob:
      - benutze in einem Templ. mehrere db's. Nun will ich ein Stück "Standardcode" für die Ausgabe des Anzeigebereiches und zum Blättern sowie zur Linkgenerierung für die Einzelansicht eines DS nutzen. Dabei sollen dann bei den Vars "nur" jeweils für jede DB getrennt der Name automatisch mit einer Art Suffix entsprechend der Datenbank vergeben werden.
      Mit der Verkettung im Varnamen geht wohl nicht, ist ja auch klar, muß ich das irgendwie referenzieren oder so? hab keine Ahnung und auch noch nicht begriffen, wie Referenzen funzen.
      Hier mal ein Beispiel:
      Im Scriptkopf steht folgendes:
      a1) $db1 = "w_news"; # 1. Datenbank, die genutzt wird
      b1) $db2 = "k_news"; # 2. Datenbank die genuztz wird
      a2) $a_offset_db1 = 0; # (Ausgabeoffset für Abzug wenn Inhalt erster DS im Mitteltext immer angezeigt wird)
      a3) $a_offset_db2 = 0; # (Ausgabeoffset für Abzug wenn Inhalt erster DS im Mitteltext immer angezeigt wird)

      Ich möchte erreichen, daß alle Vars, die im get, get_next der entsprechende DB stehen auch die Namen mit dem "Suffix" für die DB bekommen und so angesprochen werden können.
      Also so in etwa:
      get "sort=-Datum range=$ra_.$db1,$ra_l_$db1", "$db1";
      $anz_anzahl_.$db1=$_amount_all-$a_offset_.$db1;
      $anza_.$db1 = $ra_.$db1-$a_offset_.$db1 + 1 if $ra_.$db1 <= $a_offset_.$db1;
      $anza_.$db1 = $ra_.$db1 if $ra_.$db1 > $a_offset_.$db1;
      $anze_.$db1 = $ra_.$db1 + $ra_l_.$db1 - $a_offset_.$db1 if $ra_.$db1+$ra_l_.$db1 <= $_amount_all+$a_offset_.$db1;
      $anze_.$db1 = $_amount_all - $a_offset_.$db1 if $ra_.$db1+$ra_l_.$db1 > $_amount_all - $a_offset_.$db1;
      $anz_ds_.$db1 = $_amount_all - $a_offset_.$db1;
      ... dann get_next und Ausgaben
      
      und da dann irgendwo ne Linkgenerierung drin wie:
      <a href=$_link&ra_.$db1=$newrange_.$db1&ra_l_.$db1=$_range_length&dsn=$dsn>Ältere></a>
      Es soll also immer bspw. die Variable mit dem Stammnamen "$ra_" um den Suffix des Inhaltes von "$db1" erweitert werden so daß sie dann $ra_w_news heißt und auch so angessprochen werden kann.
      Hoffe, ich hab mich deutlich ausgedrückt, daß man versteht, was ich will.
      Danke für Hilfe
      Ruben


    Ihre Antwort:

    Name: EMail: EMail bei Antwort? WWW:
    Titel:
    Text:

    Neuer Eintrag


 Alle Einträge zum Thema: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Montag, 8.Juli.2002, 07:38.
    @Perler - Variablennamen dynamisch genrerieren?

      Hallo, ich schon wieder.
      Hab folgendes Prob:
      - benutze in einem Templ. mehrere db's. Nun will ich ein Stück "Standardcode" für die Ausgabe des Anzeigebereiches und zum Blättern sowie zur Linkgenerierung für die Einzelansicht eines DS nutzen. Dabei sollen dann bei den Vars "nur" jeweils für jede DB getrennt der Name automatisch mit einer Art Suffix entsprechend der Datenbank vergeben werden.
      Mit der Verkettung im Varnamen geht wohl nicht, ist ja auch klar, muß ich das irgendwie referenzieren oder so? hab keine Ahnung und auch noch nicht begriffen, wie Referenzen funzen.
      Hier mal ein Beispiel:
      Im Scriptkopf steht folgendes:
      a1) $db1 = "w_news"; # 1. Datenbank, die genutzt wird
      b1) $db2 = "k_news"; # 2. Datenbank die genuztz wird
      a2) $a_offset_db1 = 0; # (Ausgabeoffset für Abzug wenn Inhalt erster DS im Mitteltext immer angezeigt wird)
      a3) $a_offset_db2 = 0; # (Ausgabeoffset für Abzug wenn Inhalt erster DS im Mitteltext immer angezeigt wird)

      Ich möchte erreichen, daß alle Vars, die im get, get_next der entsprechende DB stehen auch die Namen mit dem "Suffix" für die DB bekommen und so angesprochen werden können.
      Also so in etwa:
      get "sort=-Datum range=$ra_.$db1,$ra_l_$db1", "$db1";
      $anz_anzahl_.$db1=$_amount_all-$a_offset_.$db1;
      $anza_.$db1 = $ra_.$db1-$a_offset_.$db1 + 1 if $ra_.$db1 <= $a_offset_.$db1;
      $anza_.$db1 = $ra_.$db1 if $ra_.$db1 > $a_offset_.$db1;
      $anze_.$db1 = $ra_.$db1 + $ra_l_.$db1 - $a_offset_.$db1 if $ra_.$db1+$ra_l_.$db1 <= $_amount_all+$a_offset_.$db1;
      $anze_.$db1 = $_amount_all - $a_offset_.$db1 if $ra_.$db1+$ra_l_.$db1 > $_amount_all - $a_offset_.$db1;
      $anz_ds_.$db1 = $_amount_all - $a_offset_.$db1;
      ... dann get_next und Ausgaben
      
      und da dann irgendwo ne Linkgenerierung drin wie:
      <a href=$_link&ra_.$db1=$newrange_.$db1&ra_l_.$db1=$_range_length&dsn=$dsn>Ältere></a>
      Es soll also immer bspw. die Variable mit dem Stammnamen "$ra_" um den Suffix des Inhaltes von "$db1" erweitert werden so daß sie dann $ra_w_news heißt und auch so angessprochen werden kann.
      Hoffe, ich hab mich deutlich ausgedrückt, daß man versteht, was ich will.
      Danke für Hilfe
      Ruben

     Antworten

    Beitrag von sander (0 Beiträge) am Montag, 8.Juli.2002, 13:20.
    Re: @Perler - Variablennamen dynamisch genrerieren?

      dann muß du sowas machen:
      $ra_1_="bla";
      $db1="blubb";
      $blablubb="hallo";
      

      out ${$ra_1_.$db1};
      würde ergeben:
      out $blablubb;
      
      mit der Ausgabe:
      hallo

      Sander

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Montag, 8.Juli.2002, 14:29.
    Re: @Perler - Variablennamen dynamisch genrerieren?

      Hey, danke!
      So ähnlich wollte ichs machen, aber hab mich nich getraut, weil mein Template so an die 600 Zeilen hat, und wenn ich dann die Vars "zerschieße" krieg ich das nie wieder hin.....
      Ich nagel das jetzt einfach mal rein, wenn das geht, dann hab ich mir unmengen Arbeit erspart für viele Templates - ich geb noch mal ein Zeichen
      Thanks
      Ruben

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Dienstag, 9.Juli.2002, 21:08.
    Re: @Perler - Variablennamen dynamisch genrerieren?

      Hallo,
      auch auf die Gefahr hin, daß Ihr alle stöhnt, und das keinen iteressiert (?), nochmal kurz zu o.g. Thema:
      Es ist echt so einfach, wie Sander es beschrieben hat.
      Für den o.g. Code hier mal ein Ausschnitt, wie man Varnamen einfach per Verkettung (??) dynamisch zusammenbasteln kann.
      Der Sinn liegt darin, einmal erstellten Code nie wieder anpassen zu müssen, egal, welche Datenbank oder wieviele man in nem Template anspricht, es werden immer die "zugehöroigen" Variablen mit den entpr. Suffixen versehen und es kann (kaum) ein Namenskonflikt und somit stundenlange Fehlersuche auftreten.
      Hier mal ein Stück vom Code:
      # bspw. Datenbanken in einem Template ansprechen
      $db1 = "w_news";
      $db2 = "k_news";
      $db3 = "start";
      # Schnipsel vom Codeschnipsel, das immer wieder verwendet wird:
      $s = $db1;
      ${ra.$s} = 0 + ${a_offset.$s} if !${ra.$s};
      ${ra_l.$s} = 3 if !$ra_l;
      ${a_offset_.$s} = 0; # (Ausgabeoffset für Abzug wenn Inhalt 1.DS von $db1 im Mitteltext immer angezeigt wird)
      ... hier dann meinetwegen get get_next und allerhand zeugs ...
      # Hier werden dann die vars mit dem Suffix $s ensprechend zur Weiterbearbeitung und Ausgabe generiert und gefüllt:
      # Spezialvariablen zum Blaettern und Anzeige der Auswahl belegen (unmittelbar nach "get" einfügen#
      ${newrange.$s} = $_range + $_range_length;
      ${oldrange.$s} = $_range-$_range_length;
      ${$oldrange.$s} = ${a_offset.$s} if ${oldrange.$s}<=${a_offset.$s} && $oldrange>-$_range_length+$a_offset;
      #
      ${anz_anzahl.$s}=$_amount_all-${a_offset.$s}; # Anzahl der gesamten Datensätze (offset abgezogen)
      ${anza.$s} = ${ra.$s}-${a_offset.$s} + 1 if ${ra.$s} <= ${a_offset.$s}; #Anzeige Anzahl Anfang
      ${anza.$s} = ${ra.$s}-${a_offset.$s} if ${ra.$s} > ${a_offset.$s};
      ${anze.$s} = ${ra.$s} + ${ra_l.$s} - ${a_offset.$s} if ${ra.$s}+${ra_l.$s} <= $_amount_all+${a_offset.$s}; # Anzeige Anzahl Ende
      ${anze.$s} = $_amount_all - ${a_offset.$s} if ${ra.$s}+${ra_l.$s} > $_amount_all - ${a_offset.$s};
      ${anz_ds.$s} = $_amount_all - ${a_offset.$s}; # Anzahl gezeigter Datensätze
      
      Wens interessiert, der kann sich unter http://dabadu.de/baseportal/kirche/start_work die Baustelle anschaun, da sind im Template 2 Archive mit 2 Datenbanken drin, der Code für die Blätterlinks ist immer identisch so wie vor beschrieben.
      Hoffe, daß es jemanden was nützt
      Ruben

     Antworten


     
 Liste der ersten 150 Einträge:Einklappen Zur Eingabe 
 Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.05s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!