include sub ? - 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 Spencer (109 Beiträge) am Freitag, 18.Oktober.2002, 18:03.
    include sub ?

      Hallo

      Benutze das Redaktionsbeispiel aus der Bib. Dadurch das ich da einige Datenbanken damit verwalte wird das Template "Redaktion" ziemlich lang und unübersichtlich.
      Für jede verwaltete Datenbank sind zwei Sub-Routinen definiert. Kann man diese auslagern und per include einfügen ? Hab´s mal probiert, aber dann kommt folgende Fehlermeldung:

      [ Fehler: (perl) in /forst-holz/admin/Redaktion: Undefined subroutine &Safe::Root1::navigation called at (eval 54) line 61. ]

      Jetzt weiß ich halt nicht ob nur ein kleiner Fehler vorliegt, oder man Sub-Routinen generell nicht über include einbinden kann.

      Spencer


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Spencer (109 Beiträge) am Freitag, 18.Oktober.2002, 18:03.
    include sub ?

      Hallo

      Benutze das Redaktionsbeispiel aus der Bib. Dadurch das ich da einige Datenbanken damit verwalte wird das Template "Redaktion" ziemlich lang und unübersichtlich.
      Für jede verwaltete Datenbank sind zwei Sub-Routinen definiert. Kann man diese auslagern und per include einfügen ? Hab´s mal probiert, aber dann kommt folgende Fehlermeldung:

      [ Fehler: (perl) in /forst-holz/admin/Redaktion: Undefined subroutine &Safe::Root1::navigation called at (eval 54) line 61. ]

      Jetzt weiß ich halt nicht ob nur ein kleiner Fehler vorliegt, oder man Sub-Routinen generell nicht über include einbinden kann.

      Spencer

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 19.Oktober.2002, 00:16.
    Re: include sub ? geht...

      Ja, das geht und ist sogar sehr empfehlenswert (fördert die Übersichtlichkeit und man kann sich eigene kleine Bibliotheken zurechtbasteln die verschiedene Templates einbinden).

      Bei Dir scheints also ein kleiner Fehler zu sein, was genau kann ich ohne Code nicht sagen... ;-)

     Antworten

    Beitrag von Spencer (109 Beiträge) am Samstag, 19.Oktober.2002, 12:35.
    Re: include sub ? geht...

      Hallo Christoph
      Hier mal der Code mit dem Sub "Rundholz". Die Navigation kommt aus der DB "subnavig". Hab leider wenig Ahnung wie das ganze im Detail abläuft. Hoffe Du kommst damit zurecht ;-)

      <html>
      <head>
      <title>forst-holz.com</title>
      <link rel="stylesheet" href="http://www.antiquitaeten-portal.de/holz.css" type="text/css">
      </head>
      <body bgcolor=ffffff text=000000>
      <perl>
      $lang||="de"
      </perl>
      <include src=/forst-holz/$lang>
      

      <perl>
      out "<table width=570 bgcolor=ffffff align=center>";
      out "<tr><td align=center><font color='000000'><h2>$lang{Login_Bereich}</h2></font></td></tr>";
      out "</table>";
      

      my $msg="";

      if($cmd eq ""){
        $msg="<b><br>$lang{Bitte_melden}<br>";
        &login;
      

      } elsif($cmd eq "$lang{Submit_Login}" && $Work eq ""){
        if($name_rein ne "" && $pw_rein ne ""){
          get "nutzer_name==$name_rein", "Nutzer";
          &check_passwort;
        }else{
          $msg="<font color=red><b>$lang{Anmeldung_fehlgschlagen}</b></font><br>$lang{Falsch}";
          &login;
        }
      }
      if($Work ne ""){
      &$Work;
      }
      

      ######## Unterrutinen #####################################

      ####### Anmeldeformular Anzeigen ########################
      sub login
      {
        ## Hab ich weggelassen ##
      }
      

      ####### Anmeldung ueberpruefen ##########################
      sub check_passwort
      {
        ## Hab ich weggelassen ##
      }
      

      ####### Startseite nach Anmeldung ausgeben ###############################
      sub Start
      {
      my $ausgabe="";
      &navigation;
      out "<table width=570 border=0 align='center'><tr><td valign='top' width='50%'>";
      &Holzboerse;
      out "</td><td valign='top' width='50%'>";
      &Maschinenboerse;
      &Dienstleistung;
      out "</td></tr></table>";
      

      $ausgabe="<tr bgcolor=ffcc33 class=txt11><th valign=top>$lang{Seite_Bereich}</th><th>$lang{Rechte1}</th></tr>";
      get "LinkPos==*","subnavig";
      while(get_next("subnavig")){
          $wert = $user_recht{$Seite};
          if($wert){
            $wert=~ s/rw/$lang{Rechte_Lesen_Schreiben}<br>/;
            $wert=~ s/d/$lang{Rechte_Loeschen}<br>/;
            $wert=~ s/m/$lang{Rechte_Aendern}<br>/;
            $wert=~ s/u/<b>$lang{Rechte_Eigene}<\/b><br>/;
            $wert=~ s/x/<b>$lang{Rechte_Alle}<\/b><br>/;
            $ausgabe=$ausgabe."<tr><td valign=top>${LinkTitel_.$lang}</td><td>$wert</td></tr>";
          }
        }
      out <<EOF;
      <table align='center' width=570 cellpadding=6 cellspacing=0 bgcolor=ffcc33 border=1 bordercolor=000000>
      <tr><td align='center'><b>$lang{Willkommen_Admin}</b><p>$lang{Waehlen_Bereich}</p><p></p></td></tr>
      EOF
      ### $ausgabe Rechte ausgeblendet ####################
      out "</table>";
      

      }

      ####### Nutzer Seite ################
      sub Nutzer
      {
        ## hab ich mal weggelassen ## 
      }
      ####### Nutzer Formular ausgeben ###########
      sub Nutzer_form
      {
        ## hab ich mal weggelassen ##
      }
      ####### Rechte aus dem Formular in eine Varable Basteln
      sub make_rechte
      {
      my $rwx="";
        get "Redaktion==* sort=LinkPos","subnavig";
          while(get_next("subnavig")){
            if($_get{$Seite."_admin"} ne ""){
            $rwx=$rwx.$Seite.",".$_get{$Seite."_admin"}.$_get{$Seite."_rw"}.$_get{$Seite."_m"}.$_get{$Seite."_d"}.",";
            }
          }
      return $rwx;
      }
      

      ###### Rundholz ####################
      sub Rundholz
      {
      &navigation;
      out "<table width=570 border=0 align='center'><tr><td valign='top' width='50%'>";
      &Holzboerse;
      out "</td><td valign='top' width='50%'>";
      &Maschinenboerse;
      &Dienstleistung;
      out "</td></tr></table>";
        $Seite_rechte=$user_recht{$Work};  # Die Rechte Des Nutzers für diese Seite speichern
        if($cmd eq "add"){
          put ["I_art", "$in_I_art", "Holzart", "$in_Holzart", "Q_1021", "$in_Q_1021", "Q_sonstige", "$in_Q_sonstige", "Staerke_kl", "$in_Staerke_kl", "Mitten_dm", "$in_Mitten_dm", "Zopf_dm", "$in_Zopf_dm", "Entrindet", "$in_Entrindet", "Laenge", "$in_Laenge", "Uebermass", "$in_Uebermass", "Menge_fm", "$in_Menge_fm", "Zertifikat", "$in_Zertifikat", "Einschlagdatum", "$in_Einschlagdatum", "Preis", "$in_Preis", "Erfuellungsort", "$in_Erfuellungsort", "Bez_Ort", "$in_Bez_Ort", "LZ_von", "$in_LZ_von", "LZ_bis", "$in_LZ_bis", "Sonstiges", "$in_Sonstiges", "Nutzer", "$Nutzer"], "$Work";
          out "<table width=570 align=center><tr><td><b>Neuen Eintrag hinzugefügt...</b></td></tr></table>";
          $cmd = "Liste";
        } elsif($cmd eq "mod"){
          get "Id==$id", "$Work";
          &Rundholz_form("<b>Eintrag Ändern.</b>","do_mod","$_id") ;
        } elsif($cmd eq "do_mod"){
          mod "Id==$id", ["I_art", "$in_I_art", "Holzart", "$in_Holzart", "Q_1021", "$in_Q_1021", "Q_sonstige", "$in_Q_sonstige", "Staerke_kl", "$in_Staerke_kl", "Mitten_dm", "$in_Mitten_dm", "Zopf_dm", "$in_Zopf_dm", "Entrindet", "$in_Entrindet", "Laenge", "$in_Laenge", "Uebermass", "$in_Uebermass", "Menge_fm", "$in_Menge_fm", "Zertifikat", "$in_Zertifikat", "Einschlagdatum", "$in_Einschlagdatum", "Preis", "$in_Preis", "Erfuellungsort", "$in_Erfuellungsort", "Bez_Ort", "$in_Bez_Ort", "LZ_von", "$in_LZ_von", "LZ_bis", "$in_LZ_bis", "Sonstiges", "$in_Sonstiges"], "$Work";
          out "<table width=570 align=center><tr><td><b>Eintrag geändert...</b></td></tr></table>";
          $cmd = "Liste";
          $Titel=$Text="";
        } elsif($cmd eq "del"){
          del "Id==$id", "$Work";
          out "<table width=570 align=center><tr><td><b>Eintrag gelöscht...</b></td></tr></table>";
          $cmd = "Liste";
          $Titel=$Text="";
        }
        if($cmd eq "Liste"){
          &Rundholz_form("<h4><b>Holzboerse/Rundholz</b></h4><br>","add") ;
          if($Seite_rechte =~ "u"){
            get "Nutzer==$Nutzer", "$Work";
          } elsif($Seite_rechte =~ "x"){
            get "Id==*", "$Work";
          }
          while (get_next("$Work")){
            $buttons="<a href='/cgi-bin/baseportal.pl?htx=$htx&Work=$Work&login_name=$login_name&cmd=mod&id=$_id'>Ändern</a>" if $Seite_rechte =~ "m";
            $buttons=$buttons." <a href='/cgi-bin/baseportal.pl?htx=$htx&Work=$Work&login_name=$login_name&cmd=del&id=$_id'>Löschen</a>" if $Seite_rechte =~ "d";
            $Datum = datum($Datum,"Tag0.Monat0.Jahr");
            $Text=convert_br($Text);
      out <<EOF;
      <br>
      <table width=570 bgcolor=000000 align='center'>
      <tr><td>
      <table width=570 bgcolor=ffffff>
      <tr><td bgcolor=ffcc33><b>($_id) $Holzart</b></td></tr>
      <tr><td>$Text<br><br><b>$Preis</b><br><br></td></tr>
      <tr><td bgcolor=ffcc33>$Datum</td></tr>
      </table>
      </td></tr>
      </table>
      <table width=570 align=center><tr><td>
      $buttons<br><br>
      </td></tr></table>
      EOF
          }
        }
      }
      

      #### Rundholz Formular #################
      sub Rundholz_form
      {
      my ($msg,$to_do,$id) = @_;
        if($Seite_rechte =~ "w"){
          if($to_do eq "do_mod"){
            $ds="<input type='hidden' name='id=' value='$id'>";
          } elsif($to_do eq "add"){
            $ds="<input type='hidden' name='in_Nutzer=' value='$Nutzer'>";
            $Autor=$Vorname." ".$Name;
            $Antwort=$nutzer_email;
          }
      $Datum_ein = datum($Einschlagdatum,"Tag0.Monat0.Jahr");
      $Datum_von = datum($LZ_von,"Tag0.Monat0.Jahr");
      

      out <<Formular;
      <form action="/cgi-bin/baseportal.pl?htx=$htx" method="post" enctype="multipart/form-data">
      <input type="hidden" name="htx=" value="$htx">
      <input type="hidden" name="Work=" value="$Work">
      <input type="hidden" name="login_name=" value="$login_name">
      <input type="hidden" name="cmd=" value="$to_do">
      <input type="hidden" name="in_Antwort=" value="$Antwort">
      
        ## Hab ich weggelassen ## </form> Formular
        }
      }



      ####### Navigation ausgeben #########
      sub navigation
      {
      my $links="";
      &get_rechte;
      get "Redaktion==* LinkPos==0 sort=LinkPos","subnavig";
      

      while(get_next("subnavig")){
         $links=$links."<a href='/cgi-bin/baseportal.pl?htx=$htx&login_name=$login_name&Work=$Seite&cmd=Liste&lang==$lang'>${LinkTitel_.$lang}</a><br>" if $user_recht{$Seite};
      }
      

      out "<table width=570 cellpadding=0 cellspacing=0 align=center>
      <tr><td bgcolor=ffcc33 align='center' class='txt14b'>Nutzer Daten</td></tr></table>";
      out "<table width=100% cellpadding=0 cellspacing=0 align=center>
      <tr><td bgcolor=ffffff align='center' valign='top'><br>$links<br><br></td></tr></table>";
      }
      

      sub Holzboerse
      {
      my $links="";
      &get_rechte;
      get "Redaktion==* LinkPos>0&LinkPos<11 sort=LinkPos","subnavig";
      

      while(get_next("subnavig")){
         $links=$links."<a href='/cgi-bin/baseportal.pl?htx=$htx&login_name=$login_name&Work=$Seite&cmd=Liste&lang==$lang'>${LinkTitel_.$lang}</a><br>" if $user_recht{$Seite};
      }
      

      out "<table width=100% cellpadding=0 cellspacing=0 align=center>
      <tr><td align='center' class='txt14b' bgcolor='ffcc33'>Holzboerse</td></tr></table>";
      out "<table width=100% cellpadding=0 cellspacing=0 align=center>
      <tr><td bgcolor=ffffff align='center' valign='top'><br>$links<br><br></td></tr></table>";
      }
      

      sub Maschinenboerse
      {
      my $links="";
      &get_rechte;
      get "Redaktion==* LinkPos>10&LinkPos<13 sort=LinkPos","subnavig";
      

      while(get_next("subnavig")){
         $links=$links."<a href='/cgi-bin/baseportal.pl?htx=$htx&login_name=$login_name&Work=$Seite&cmd=Liste&lang==$lang'>${LinkTitel_.$lang}</a><br>" if $user_recht{$Seite};
      }
      

      out "<table width=100% cellpadding=0 cellspacing=0 align=center>
      <tr><td align='center' class='txt14b' bgcolor='ffcc33'>Maschinenboerse</td></tr></table>";
      out "<table width=100% cellpadding=0 cellspacing=0 align=center>
      <tr><td bgcolor=ffffff align='center' valign='top'><br>$links<br><br></td></tr></table>";
      }
      

      sub Dienstleistung
      {
      my $links="";
      &get_rechte;
      get "Redaktion==* LinkPos==13 sort=LinkPos","subnavig";
      

      while(get_next("subnavig")){
         $links=$links."<a href='/cgi-bin/baseportal.pl?htx=$htx&login_name=$login_name&Work=$Seite&cmd=Liste&lang==$lang'>${LinkTitel_.$lang}</a><br>" if $user_recht{$Seite};
      }
      

      out "<table width=100% cellpadding=0 cellspacing=0 align=center>
      <tr><td align='center' class='txt14b' bgcolor='ffcc33'>Dienstleistungsboerse</td></tr></table>";
      out "<table width=100% cellpadding=0 cellspacing=0 align=center>
      <tr><td bgcolor=ffffff align='center' valign='top'><br>$links<br><br></td></tr></table>";
      }
      

      ####### Rechte des Nutzers aus der Datenbank auslesen und in Variable speichern.
      sub get_rechte
      {
        get "nutzer_name==$login_name", "Nutzer";
        %user_recht=split(/,/,$nutzer_rechte); # in diesem Hashe stehen die rechte des nutzers.
      }
      

      </perl>

      </body>
      </html>
      

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 21.Oktober.2002, 16:12.
    Re: include sub ? geht...

      Ahhh ja ;-) Also ich bin mir jetzt nicht ganz im Klaren, was von obigem Code in welcher Datei ist - alles in einer?

      Die prinzipielle Vorgehensweise ist die: Wenn Du eine Seite hast mit Unterroutinen und Du möchtest diese auslagern, dann schneidest Du die einfach da raus und schmeisst sie in eine neue Seite, nennen wir sie z.b. "subs". In der ursprünglichen Seite brauchst Du dann nur noch ein

      <include src=subs>
      

      zu Beginn einfügen und die Unterroutinen sind dort verfügbar. Ein kleines Beispiel:

      ######## ursprüngliche seite ##########
      <perl>
      &tu_was;
      

      sub tu_was
      {
      # ...tu was...
      }
      </perl>
      

      jetzt lagern wir die sub aus:

      ######## seite mit den unterroutinen (hier nur 1) ########
      <perl>
      sub tu_was
      {
      # ...tu was...
      }
      </perl>
      

      und so sieht jetzt die ursprüngliche seite aus

      ########## ursprüngliche seite (neu) ########
      <include src=subs>
      <perl>
      &tu_was;
      </perl>
      


      das wars... klarer? ;-)

     Antworten

    Beitrag von Spencer (109 Beiträge) am Montag, 21.Oktober.2002, 16:27.
    Re: include sub ? geht...

      Hi Christoph

      Genau so wie Du es eben beschrieben hast, hab ich auch versucht. Leider kam da diese Fehlermeldung:

      [ Fehler: (perl) in /forst-holz/admin/Redaktion: Undefined subroutine &Safe::Root1::navigation called at (eval 54) line 61. ]

      Die Navigation wird aus einer Datenbank, die subnavig heißt, zusammengebaut. Diese Navigationsbezeichnungen heissen genauso wie die Subs. Wenn ich die Fehlermeldung richtig verstehe, werden eben diese ausgelagerten Subs nicht gefunden. Hab leider keine Ahnung was ich ändern muß, das die gesuchten Subs auch gefunden werden.
      Vielleicht kannst Du oder ein anderer guter Geist in diesem Forum nochmal drüber schaun.

      Danke Spencer

     Antworten


     
 Liste der Einträge von 43200 bis 43350:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < 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.07s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!