Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem Aufstellung - Immer wieder neue Spalten

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem Aufstellung - Immer wieder neue Spalten

    Hi Leute,
    nach langer Zeit lass ich mich auch ma wieder Blicken und das gleich mit nem Problemchen. Ich bin Programmierer bei einer Fussballsimulation die basierend auf der Software von H&H Solutions ist. Derzeit probier ich mich an einem Aufstellungssystem (also das man die Positionen genau bestimmen kann Innenverteidiger, Rechter Verteidiger usw. usf.) soweit so gut. Dies Funktioniert alles.
    Einzigstes Problem pro Spieler wird eine neue Spalte erzeugt so das, das ganze so aussieht.
    MS
    MS
    OM
    RM
    LM
    DM
    RV
    LV
    IV
    IV
    TW
    Normal sollte es eigentlich so aussehen!
    -----MS----MS
    ------OM-------
    LM-----------RM
    ------DM-------
    LV - IV - IV - RV
    TW

    Für die Spalten ist dieser code hier zu ständig :

    PHP-Code:
    $varname "f".$n
        
    $anzahl_spalten = $$varname
        if (
    $anzahl_spalten 0){ 
        
    $spaltenbreite round(100/$anzahl_spalten); 
        for (
    $i=1$i<=$anzahl_spalten$i++) { 
          
    $var_last "f".($n+1); 
          
    $spalten_last = $$var_last
          
    $var_last2 "f".($n+2); 
          
    $spalten_last2 = $$var_last2
     
          
    $var_last3 "f".($n+3); 
          
    $spalten_last3 = $$var_last3
     
          
    $var_last4 "f".($n+4); 
          
    $spalten_last4 = $$var_last4
     
          
    $var_last5 "f".($n+5); 
          
    $spalten_last5 = $$var_last5
     
          
    $var_last6 "f".($n+6); 
          
    $spalten_last6 = $$var_last6
     
          
    $var_last7 "f".($n+7); 
          
    $spalten_last7 = $$var_last7
     
          
    $var_last8 "f".($n+8); 
          
    $spalten_last8 = $$var_last8
     
          
    $var_last9 "f".($n+9); 
          
    $spalten_last9 = $$var_last9
     
          
    $var_last10 "f".($n+10); 
          
    $spalten_last10 = $$var_last10
     
          
    $var_last11 "f".($n+11); 
          
    $spalten_last11 = $$var_last11
     
          
    $var_last11 "f".($n+12); 
          
    $spalten_last12 = $$var_last12
     
          
    $nummer $spalten_last $spalten_last2 $spalten_last3 $spalten_last4 $spalten_last5 $spalten_last6 $spalten_last7 $spalten_last8 $spalten_last9 $spalten_last10 $spalten_last11 $spalten_last12 $i
          
    $row_spalten $row_zeilen->getblock("row_spalten"); 
          
    $row_spalten->assign(array( 
            
    "spaltenbreite"=>$spaltenbreite
            
    "nummer"=>$nummer 
          
    )); 
    Die ganzen Positionen werden hier deklariert :

    PHP-Code:
    $lv "Linker Verteidiger"
        
    $rv "Rechter Verteidiger"
        
    $iv "Innenverteidiger"
        
    $dmf "Defensives Mittelfeld"
        
    $zmf "Zentrales Mittelfeld"
        
    $rmf "Rechtes Mittelfeld"
        
    $lmf "Linkes Mittelfeld"
        
    $omf "Offensives Mittelfeld"
        
    $la "Linker Aussenstuermer"
        
    $ra "Rechter Aussenstuermer"
        
    $hs "Haengende Spitze"
        
    $ms "Mittelstuermer"
     
    //Spieler-Normal 
    if ($n == 1$position $iv;  
    elseif (
    $n == 2$position $rv
    elseif (
    $n == 3$position $lv
    elseif (
    $n == 4$position $dmf
    elseif (
    $n == 5$position $zmf
    elseif (
    $n == 6$position $rmf
    elseif (
    $n == 7$position $lmf
    elseif (
    $n == 8$position $omf
    elseif (
    $n == 9$position $hs
    elseif (
    $n == 10$position $la
    elseif (
    $n == 11$position $ra
    elseif (
    $n == 12$position $ms
    und hier wird das aufstellen der Spieler deklariert :

    PHP-Code:

          $result 
    mysql_query("SELECT * FROM ".$conf['db_prefix']."_spieler WHERE (position='".$position."' OR position='".$off."' OR position='".$def."' OR position='".$all."')  AND verein_id='".$verein['id']."' AND verein_id > '0' AND verletzt='0' AND gesperrt='0' AND status='1' AND wss_status='0' ORDER BY nachname ASC, kunstname ASC"); 
          while (
    $spieler mysql_fetch_array($result)) { 
            
    $row_spieler $row_spalten->getblock("row_spieler"); 
            if (
    in_array($spieler['nachname'],$nachnamen)) { 
              
    $vorname substr($spieler['vorname'],0,3); 
            } 
            else 
    $vorname substr($spieler['vorname'],0,1); 
            
    $spieler_name = ($spieler['kunstname']) ? $spieler['kunstname'] : $vorname.". "$spieler['nachname']; 
            
    $nachnamen[] = $spieler['nachname']; 
     
            
    $ds round(($spieler['w_kondition'] + $spieler['w_frische'] + $spieler['w_zufriedenheit'] + $spieler['w_technikstaerke'] + $spieler['w_defensivstaerke'] + $spieler['w_offensivstaerke'] + $spieler['w_torgefahr'] + $spieler['w_torwartstaerke'] + $spieler['w_form'])/9); 
     
            
    $row_spieler->assign(array( 
              
    "spieler_id"=>$spieler['id'], 
              
    "spieler_name"=>stripslashes($spieler_name), 
                  
    "ds"=>$ds 
            
    )); 
            
    // Spieler aus Standardaufstellung vorauswählen 
            
    if ($spieler['id'] == $aufstellung['spieler'.$nummer]) $row_spieler->assign_block("sp_selected"); 
            
    $row_spalten->assign("row_spieler",$row_spieler); 
            
    $row_spieler->clear(); 
          } 
          
    mysql_free_result($result); 
          
    //-Spieler 
          
    unset($nachnamen); 
          
    $row_zeilen->assign("row_spalten",$row_spalten); 
          
    $row_spalten->clear(); 
        } 
        } 
        
    $tpl_inhalt->assign("row_zeilen",$row_zeilen); 
        
    $row_zeilen->clear(); 
      } 
    Doch leider komm ich einfach nicht weiter.
    Habt ihr Ideen?


  • #2
    Müßtest Dein Glück mal in einem Forum versuchen, das sich besser mit Smarty auskennt.
    Jedenfalls scheint mir Dein Code Smarty zu sein.

    Ich kann nicht für die anderen sprechen, aber bei Smarty fehlen mir die nötigen Hintergründe, um Dir helfen zu können.

    Ich vermute mal, daß Du assign() manipulieren mußt?!
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche Tutorials

    Kommentar


    • #3
      Das Template system ist fxl_template

      ja ich schätze das ich das ganze so coden muss :

      das

      PHP-Code:
            $var_last "f".($n+1);  
            
      $spalten_last = $$var_last;  
            
      $var_last2 "f".($n+2);  
            
      $spalten_last2 = $$var_last2;  
        
            
      $var_last3 "f".($n+3);  
            
      $spalten_last3 = $$var_last3;  
        
            
      $var_last4 "f".($n+4);  
            
      $spalten_last4 = $$var_last4
      eine reihe bilden .. usw usf. Weil dieser code fetzen ist dafür verantwortlich das immer ne neue Spalte erzeugt wird.

      Jedoch keine Ahnung wie ich das "manipulieren" kann

      Kommentar


      • #4
        Das Template system ist fxl_template
        Wie auch immer, sieht für mich stark Smarty ähnlich...
        Hab' aber mit beiden keine Erfahrungen.

        Hast mal versucht hier was zu erfahren?

        Wenn ich die Demo (nur überflogen) richtig verstanden habe, machst Dir einfach'n Template,
        und ersetzt mir assign() die "Platzhalter".

        Für Dein Problem sollte Dir das zweite Beispiel nützlich sein, denke ich...
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche Tutorials

        Kommentar


        • #5
          nen template ist vorhanden und sieht so aus :

          PHP-Code:
                    <!-- START row_zeilen -->

                        <!-- 
          START bl_abstand -->

                        <
          p>&nbsp;</p>

                        <
          p>&nbsp;</p><!-- END bl_abstand -->

                        <
          table width="100%" cellspacing="0" cellpadding="0" border="0">

                          <
          tr>

                            <!-- 
          START row_spalten -->

                            <
          td width="{spaltenbreite}%" align="center">

                              <
          select name="spieler_{nummer}" class="klein">

                                <
          option></option>

                                <!-- 
          START row_spieler -->

                                <
          option value="{spieler_id}"<!-- START sp_selected --> selected<!-- END sp_selected --> class="klein">{spieler_name} ({ds})</option><!-- END row_spieler -->

                              </
          select>

                            </
          td>

                            <!-- 
          END row_spalten -->

                          </
          tr>

                        </
          table>

                        <!-- 
          END row_zeilen --> 
          das ist der code nur für die Spieler..

          Kommentar


          • #6
            Ich würde ein Template bauen, bei dem eine Tabelle mit je einer Spalte für die Positionen auf einer Ebene existiert. Diese Spalten sind mittig ausgerichtet und enthalten div-Blöcke für die einzelnen Spieler:

            Code:
            <table width="100%">
              <!-- START row_position -->
                <tr>
                  <td id="{position}" align="center">
                    <!-- START row_positionspieler -->
                      <div style="display: block; float: left; padding: ...px; margin: ...px;">
                        {spieler_name}
                      </div>
                    <!-- END row_positionspieler -->
                  </td>
                </tr>
              <!-- END row_position -->
            </table>
            Für jede Ebene an Positionen (Sturm, OMittelfeld, Mittelfeld, DMittelfeld, Verteidugung, Tor) öffnet man dann eine Zeile der Tabelle und fügt dort die Spieler ein. Es ist dabei auch nicht (zwingend) nötig, zu wissen wie viele Spieler in einer Zeile "spielen", kann aber für eine Ausrichtung mit padding und margin von Vorteil sein!

            Kommentar


            • #7
              Wie auch immer, auf fever.xl steht doch, wie das Template zu handeln ist!
              Das müssen wir doch hier nicht per Copy/Paste wiederholen...
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche Tutorials

              Kommentar


              • #8
                mir ist gerade was aufgefallen..

                das {nummer} ergibt sich ja daraus :

                PHP-Code:
                 $nummer $spalten_last $spalten_last2 $spalten_last3 $spalten_last4 $spalten_last5 $spalten_last6 $spalten_last7 $spalten_last8 $spalten_last9 $spalten_last10 $spalten_last11 $spalten_last12 $i
                und die $spalten_last erzeugen immer wieder die neue Spalte..

                also muss es doch möglich sein.. das man sagt,

                $spalten_last und $spalten_last2 sind in einer reihe.. usw usf.

                oder irer ich mich?

                Kommentar


                • #9
                  sry für doppelpost

                  ich bin nun in meinen Gedanken weiter und habe mir nen Konzept gemacht
                  spalte 1 = $n 1-3
                  spalte 2 = $n 4
                  spalte 3 = $n 5 - 7
                  spalte 3 = $n 8
                  spalte 4 = $n 9
                  spalte 5 = $n 10 - 11
                  Spalte 6 = $n 12


                  habe das ganze folgender maßen versucht in einen Code umzusetzen

                  PHP-Code:
                    for ($n=12$n>=1$n--) {

                      
                  $row_zeilen $tpl_inhalt->getblock("row_zeilen");

                      if (
                  $n != 12$row_zeilen->assign_block("bl_abstand");
                      
                      
                      
                  $varname "f".$n;
                      
                     
                  $spalten 0;
                     
                     if(
                  "f".$n <= 3$spalten+1;
                     elseif(
                  "f".$n == 4$spalten+2;
                     elseif(
                  "f".$n == 8$spalten+4;
                     elseif(
                  "f".$n == 9$spalten+5;
                     elseif(
                  "f".$n == 12$spalten+7;
                      
                      
                  $anzahl_spalten = $$spalten;
                      if (
                  $anzahl_spalten 0){ 
                  jedoch funktioniert die ganze Geschichte einfach nicht..

                  spalten bleiben 0..

                  Kommentar


                  • #10
                    Kannst du nicht das bestehende Template kicken und es mit CSS und absoluter Positionierung regeln? Mir erscheint das so übertrieben kompliziert und der Code mit den variablen Variablen und den fehlenden Schleifen ist nicht besonders gut.

                    Edit: Offtopic: Ich habe vor Jahren mal das hier verbrochen. Sollte eine Aufstellung als PNG-Bild erzeugen. Die Implementation ist nur zur Hälfte fertig und der Code ist schlicht und ergreifend grausam, aber ich lasse es einfach mal hier. Macht damit, was ihr wollt. Gerne auch völlig ignorieren, zum Thread passt es ja nicht wirklich.

                    PHP-Code:
                    <?php /* ========================================= NEW FILE: ./image.php */ ?>
                    <?php

                    require_once './rawimages.php';
                    require_once 
                    './pos.php';

                    function 
                    imagelinethick($image$x1$y1$x2$y2$color$thick 1)
                    {
                       
                    /* this way it works well only for orthogonal lines
                       imagesetthickness($image, $thick);
                       return imageline($image, $x1, $y1, $x2, $y2, $color);
                       */
                       
                    if ($thick == 1) {
                           return 
                    imageline($image$x1$y1$x2$y2$color);
                       }
                       
                    $t $thick 0.5;
                       if (
                    $x1 == $x2 || $y1 == $y2) {
                           return 
                    imagefilledrectangle($imageround(min($x1$x2) - $t), round(min($y1$y2) - $t), round(max($x1$x2) + $t), round(max($y1$y2) + $t), $color);
                       }
                       
                    $k = ($y2 $y1) / ($x2 $x1); //y = kx + q
                       
                    $a $t sqrt(pow($k2));
                       
                    $points = array(
                           
                    round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
                           
                    round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
                           
                    round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
                           
                    round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
                       );
                       
                    imagefilledpolygon($image$points4$color);
                       return 
                    imagepolygon($image$points4$color);
                    }



                    /**
                     * Skaliert einen Wert entsprechend dem irgendwo angegeben Faktor. Jede Angabe
                     * muss vermutlich durch diese Funktion geschickt werden
                     */
                    function f($n)
                    {
                        
                    $scale 5;
                        if (isset(
                    $_GET['scale'])) {
                            
                    $scale $_GET['scale'];
                        }
                        if (
                    $scale 20$scale 20;
                        return 
                    $scale $n;
                    }

                    function 
                    px($n)
                    {
                        global 
                    $player_w;
                        return 
                    $n $player_w 2;
                    }

                    function 
                    py($n)
                    {
                        global 
                    $player_h;
                        return 
                    $n $player_h 2;
                    }

                    function 
                    place($x$y)
                    {
                        global 
                    $im$im_player$player_w$player_h;
                        
                    imagecopyresized($im$im_playerpx($x), py($y), 00$player_w$player_h1233);
                    }

                    // Proportions
                    $field_h  f(105);
                    $field_w  f(68);
                    $circle_r f(9.15);
                    $line_w   ceil(f(.4));

                    // Resources
                    $im_lawn   imagecreatefromstring($img_lawn);
                    $im_player imagecreatefromstring($img_player);
                    $im        = @imagecreate($field_w$field_h)
                                     or die(
                    "Cannot Initialize new GD image stream");

                    #imagealphablending($im, true);
                    #imagealphablending($im_player, true);
                    #imagesavealpha($im_player, true);
                    #imagesavealpha($im, true);   

                    // Colours
                    $c_line           imagecolorallocate($im255255255);
                    $background_color imagecolorallocate($im255,   0,   0);
                    $text_color       imagecolorallocate($im233,  14,  91);



                    /**
                     * Zeichnet das Spielfeld
                     */

                    // Lawn
                    $step_y ceil($field_h 5);
                    $step_x ceil($field_w 8);
                    for (
                    $i 0$i 5$i++) {
                        for (
                    $j 0$j 8$j++) {
                            
                    imagecopyresized($im$im_lawn$j $step_x$i $step_y00$step_x$step_y38130);    
                        }
                    }

                    // borders (top, right, bottom, left)
                    imagefilledrectangle($im00$field_w$line_w 1$c_line);
                    imagefilledrectangle($im$field_w 10$field_w $line_w 1$field_h$c_line);
                    imagefilledrectangle($im0$field_h 1$field_w$field_h $line_w 1$c_line);
                    imagefilledrectangle($im00$line_w 1$field_h$c_line);

                    // middle
                    imagefilledrectangle($im0floor(($field_h $line_w) / 2), 
                            
                    $field_wfloor(($field_h $line_w) / 2) + $line_w 1$c_line);

                    // circle
                    imagesetthickness($im$line_w);
                    imagearc($im$field_w 2$field_h 2$circle_r 2$circle_r 20180$c_line);
                    imagearc($im$field_w 2$field_h 2$circle_r 2$circle_r 2180360$c_line);

                    // 5m-Raum
                    imageline($im$field_w $circle_r0$field_w $circle_rf(5.5), $c_line);
                    imageline($im$field_w $circle_r0$field_w $circle_rf(5.5), $c_line);
                    imageline($im$field_w $circle_rf(5.5), $field_w $circle_rf(5.5), $c_line);

                    imageline($im$field_w $circle_r$field_h$field_w $circle_r$field_h f(5.5), $c_line);
                    imageline($im$field_w $circle_r$field_h$field_w $circle_r$field_h f(5.5), $c_line);
                    imageline($im$field_w $circle_r$field_h f(5.5), $field_w $circle_r$field_h f(5.5), $c_line);

                    // 16m-Raum
                    imageline($im$field_w $circle_r f(11), 0$field_w $circle_r f(11), f(16.5), $c_line);
                    imageline($im$field_w $circle_r f(11), 0$field_w $circle_r f(11), f(16.5), $c_line);
                    imageline($im$field_w $circle_r f(11), f(16.5), $field_w $circle_r f(11), f(16.5), $c_line);

                    imageline($im$field_w $circle_r f(11), $field_h$field_w $circle_r f(11), $field_h f(16.5), $c_line);
                    imageline($im$field_w $circle_r f(11), $field_h$field_w $circle_r f(11), $field_h f(16.5), $c_line);
                    imageline($im$field_w $circle_r f(11), $field_h f(16.5), $field_w $circle_r f(11), $field_h f(16.5), $c_line);

                    // Kreise
                    #imagesetthickness($im, $line_w);

                    $d sqrt($circle_r $circle_r f(5.5) * f(5.5));
                    $alpha 90 asin($d $circle_r) * 180 pi();

                    imagearc($im$field_w 2f(11), $circle_r 2$circle_r 2$alpha180 $alpha$c_line);
                    imagearc($im$field_w 2$field_h f(11) - 1$circle_r 2$circle_r 2180 $alpha180 180 $alpha$c_line);

                    #imagestring($im, 1, 5, 5, $step, $text_color);



                    /**
                     * Zeichnet die Spieler
                     */

                    // Players
                    $player_w f(12 .25);
                    $player_h f(33 .25);

                    // GK
                    placex(POS_GK);

                    // ID 
                    placex(POS_ID_RIGHT);

                    // ID (off)
                    placex(POS_ID_LEFT_OFF);

                    // OD (off)
                    placex(POS_OD_LEFT_OFF);

                    // IM
                    placex(POS_IM);

                    // IM (off)
                    place($field_w f(10), f(70));

                    // IM (off)
                    place($field_w f(10), f(70));

                    // WN (off)
                    place($field_w f(25), f(70));

                    // WN (off)
                    place($field_w f(25), f(70));

                    // FW (off)
                    place($field_w f(10), f(90));

                    // FW (off)
                    place($field_w f(10), f(90));



                    header("Content-type: image/png");

                    imagepng($im);
                    imagedestroy($im);
                    imagedestroy($lawn);




                    <?
                    php /* ========================================= NEW FILE: ./index.php */ ?>
                    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                    <html xmlns="http://www.w3.org/1999/xhtml">
                    <head>
                    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                    <title>Untitled Document</title>
                    <style type="text/css">
                    body { background: #ccc; text-align: center;}
                    </style>
                    </head>

                    <body>
                    <img alt="" src="image.php<?php
                    if (isset($_GET['scale'])) {
                        echo 
                    '?scale=' $_GET['scale'];
                    }
                    ?>" />
                    </body>

                    </html>




                    <?php /* ========================================= NEW FILE: ./pos.php */ ?>
                    <?php

                    // goalkeeper
                    define('POS_GK',            1);

                    // inner defender
                    define('POS_ID_RIGHT',      2);
                    define('POS_ID_RIGHT_OFF',  3);
                    define('POS_ID_RIGHT_WING'4);
                    define('POS_ID_LEFT',       5);
                    define('POS_ID_LEFT_OFF',   6);
                    define('POS_ID_LEFT_WING',  7);

                    // offensive defender (?)
                    define('POS_OD_LEFT_OFF',   8);

                    // inner midfield (?)
                    define('POS_IM',            9);

                    // weiter bin ich hier wohl noch nicht gekommen

                    function placex($pos)
                    {
                        global 
                    $field_w;

                        switch (
                    $pos) {
                            case 
                    POS_GK:          place($field_w 2        f(5)); break;
                            case 
                    POS_ID_RIGHT:    place($field_w f(10), f(15)); break;
                            case 
                    POS_ID_LEFT_OFFplace($field_w f(10), f(25)); break;
                            case 
                    POS_OD_LEFT_OFFplace($field_w f(25), f(25)); break;
                            case 
                    POS_IM:          place($field_w 2        f(50)); break;
                        }
                    }




                    <?
                    php /* ========================================= NEW FILE: ./rawimages.php */ ?>
                    <?php

                    $img_player 
                    base64_decode('
                    R0lGODlhDAAhAJEDAP+ZZgAAAP8AAP///yH5BAEAAAMALAAAAAAMACEAAAJcnBcZx6psAphgQUkt
                    pABGnDSBICRkOJLqaq5u66pwXE4py91yHmN2z3sFcRmHotiTIGilCNOScpw+IcTDQMFOGNlBV9vx
                    bg8qQ5lMMqfRAnWb7Wacz/EB3QqtFgAAOw=='
                    );

                    $img_lawn base64_decode('
                    iVBORw0KGgoAAAANSUhEUgAAACYAAACCCAIAAACl0i0BAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
                    U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAABFkSURBVHjaYoyaEsTAwPDjxw8gycHBASQ5
                    OTi+g7kQAJQCinOCpQgCZI0QANEIEYewAQKIBW4f3PT3Hz5AGIICAkA2plloboIb+uHDB0kJCSD7
                    +YsXHGAAZANN4IA5F8IGCCAWCIcD1RMCAgIQU+C2QhwBtwAuguxciC6IaRzYQgUiCBBATBDVQAAx
                    CzkY4b75geQnoMh3sGJBsAVAxR/AoSIIsw/NA0BxiOFwMwECiAXZT5xIcQaxD9lPyLECVw+SQvLT
                    d7DrOWCuR3YHXAFAADEhxwdytEFiFCIFNwUSYXDZ76i+h3uREynAIR6Fhw0QAQQQEyRU0UIPnmqA
                    DCB6/vw5WqABTRGEhQ08aoAMoIPQEhfcoXBfAQQQE7IbkWMOOWlAXA2PQuTQhsfWD1iQInsXyMZM
                    8wABxILsfIgD4REDSXgggzg50aITyADmBIh9yOkFHotwt8LjG24RQACxcCAlVOTUD3cEZlr/geQP
                    NOdiFgKYBQVAAEEzyYf379EiBgIgHkJOkGjOQo74H+A4g4f2d1j6goQH3NMAAcQEjTlOzh9IZRKy
                    D77DkgayVyBhjpwHIBbDBeEFyHdYQQbXCxBALMhORi5KkAPnB2qIQRSDcgtqtoP4DJ70kIsn5DAH
                    CCAWSJEGL66AdnxAshUR1N+/CwgKohWKEHPh5RwkM0BKBuRo/oEUTkASIIBYviNxINogRsAzK1AK
                    ZDos9SInLuSw+YEU4PCggjiIAzVTAQQQEzzCkePyB6o7INkRzbHwJAZMehBnYSZUAaRMDJcFCCAm
                    rKU+0BRk0yE5Gi24cFUU78EFDbx6gKc+iCuBsgABxCSI5HG4F4HRBo95SNKH51HkUIL6T1AQHkIc
                    SEU/cqL7AKuDgQAggFjQ3PgdI0iRKxbktADJWpjlA5oIZoEAEEBMkOQKKbjR2h/wRMiBWnGiJR9k
                    0zmRohm5joNkTYh6gABigheeaIGDtb6FFwiCsFTNgZQlkF0MSVDIEQmJYyACCCBoFf0BNXA+wMow
                    PAUsmmvQyiY0Nci6AAIIWuBB8jU86DlQs/MPWM0ML3fQshaaHYj8g1R9QmIHiAACCNHCg9iK3PhA
                    blMBSx9EIMIUfEBqvcGjDV79IScC5KQLEEBMaIUIvBxHdj6oBEGtMpEDDbnF9B0pHcGrW7TqDCCA
                    sNSXmE00ePbgQG2DcYIbvZjpHK1GQot+gABiQstPP1Bbdcg5FU+JAzcEV5sIOUkDBBATPJNB8g28
                    tQ7PAPCUgpYsIf5Dbq3B23xwd3MgZSe41wECiAlLPYXaiEJukcAN/Y6kDK2FDm8k4Kq/AAKIBbM9
                    JwCrwUFFKCcnXCfQdEiTAmvLiBO1dIW3CiBhJYDUVAAIIBbM6EUr/qFhi6QTLa3BGwOY5YAAUrMB
                    nrMBAogFUlUh1/jfkUptqFdgDQY0pyCnI7TwRO4jfEdKGUBBgABigkc+cjwjl5/wshHZPk5sGY4D
                    qW+EHNRoJRRAADGhORnZE/DexXek7gdycof4DCILb8UjJzRIpKDlK4AAYoJXyO9RSy9kt6NlXOTK
                    6ztSRxHefoCEGWbDBaIGIICYkH2DlnTh7Q9OGEKrveGCmP115CoMLfwAAogF7ht4ZQJMTYqKilgr
                    euT0jNangDd2OJEyFXIyhpsGEEAskEAHhjgiA4BLcE7UJMCJEYZozSUOpEoeeWQArVIDMgACiAni
                    OczM9B5cKSKbCyn53iMlB07UbhByQQaxDzn9w0MCIIBYkIcFODBqyvdINTOe7hjcRMiICHL5gGgN
                    ff8ODD8gFyCAWCAJjFNCghO1QYxZ28H7AphtRlD36vlzQdQeBLyLDy9YINoBAghaFCCXHcgtWHiz
                    DLnZgZa24V1rAZjPfsACFrl3AFcPEEDMqk6KQIk/f/4AOawsLBAGRAWEzQlmsLCASmMgCUpyLKBE
                    xwIGEF3IbdovX74AVQJJiHZeHh6IFggXqBEggJgwgwh58ASSntGCFy25oYUzvO0CjDxgfoMPhMDD
                    DyCAmGUtJSAFEFwP3DkQbyH3FOGOBZJA5wP9BwkYNABUBq4QOFlYWeHhB/Q3JFQAAohFQlISbcwQ
                    rafHgbtXizx0xwlrTqC1T9H0AsMPIICY0FI8csGP2anA7MEjl9poxRtaTQAp4oGCAAHE8h1pPBBt
                    OAytt4Xclv8BTqXfkYIBs2GAFh6gYhzsDYAAQjRE0Op0tG4bB9KwGnLuxAU4MGqh77ACHCCAmDD7
                    ZmjVHloNCrGbEyOzIpeCmC1QeOwA0ylAALFgTR1oDRnkUVIO3LUVclMda5MFwgAIICZO1IHM76h+
                    Ra5SOJDqVOSGCLx/g9ngQw4nuJkAAcT0HdYHwuzmwVXD63pgZkBrDiKPNn1HbR7Ai3i0YVSAAELP
                    JMAig6Rhe1xj7pyolQ/ycDVAADEh+wZSP6N1hpF73piV1w+kHsF3WB8BuXkGL9nhQ7IAAcSC7HC0
                    LjgHatyg+Qw5gyPnMeRWAfLYFzD8IK4HCCAWtKT8HbXEQR4jw2ynQ5VhG2RCa+/A2zdAABBATGgl
                    CLLFaN08TlhbEGvlw4kxVoqW5uEFCEAAQRsi0MF71HFNtDQJT5CYLTE4A7ll9B3c+PgAtg3ZSwAB
                    xIQWi+jjV6id5O8Yo6eYpSvKhAms44ZcQwAEELOkmSik1oZUcsDqDSIBrA4hlSXWOEa2gxXWNoBU
                    onD7gCJALsRMSCX6BQwAAogJEsnIJQDyDAkHtgIF2a+cSHmO4FARJCwBAogFUgdB2qjQ9ip4nB05
                    iSKnJsw5Icj4Iby7+AO1NoR3K+GTcAABxII80gytLzk5QaM8qE0etKoGMneHNkIBaanCm5/Q3hnY
                    A/DhEyADIIBYvqMNYYK1ARHEr5A2Eby+FECaXkTJgmBXQvI7JMkgxkhgvocPWQEEEBPC4+/fw52J
                    tXpCG2VAHnuGjMqCOo0w7XBbgYEJL4CADKAagABieQ+2CaIBPuQMcR00eMHOh1sAb02hjacj529o
                    7QbxBiSEgJ4BCwJ9CBBALNB8iTFvgRxceFp7yGEIT/bw+YzvqF1ayIAKQACxSEpKCqIOnEKTACyQ
                    4X0JSIcQPlqB1lN78fw5pACChBZ0VAgekUjj0wABxIJ1CgbhIWDYAj0Kq7bQmpkQb6F0XZHGiVAG
                    SpFSCUAAsQCDG9hpAioE9pyBRryHRSTyWClyyxbS68RsCEI8BI9p+MAEcv0MUQMQQMyKdrLA0ghU
                    aDEyAhmM4IIK2LAH6vzy+TOkrPr75w/QjUAGtEIG+puREd4NggQPCyqA9yaAJA8Pz88fPyCGA00G
                    CCAWeIRBB4LBHgQyrl2/Di3zkNI9B2wyErmn/gNjZAfLMDg4r0MEAQKIBRLKoOF1pHCAZxK0eS7M
                    wgieB5BDFVkWbgg0Xt6/BwggJrT2PNBioP/u378PH61Ai0jkJIbItbByDq3HA21XgNMHqJ8L7vsB
                    BBALPFkip2OEM5EafMh2Q3LLD1geR1OJnOCRCzJIyAEEEBPa/Dw8/uBTqYhSHlaCQAID3p6DxAiw
                    04hWCn5HGs+Bhy2QBAggFuQ0Aq22YFEL0QMde4ZVCNAx6e/fX4AjSRA8GIc8UANvz0H0QhRAa0Bw
                    wAIEEAuiugA3+uAlCkInpLGEUR2iNVkg1RncJjQFH2ADjEASIIBY0Ko6iCiw9IL74Adqywgym8eB
                    0XpGbuxgjjQCzYeXWQABxAQpEaBKkWxFm878AJuVROuuYCYZTAUoxbWgIEAAMeGa4oBnLEjrAagN
                    2vpGqnIxa1MObJO8cPsgrgcIICa0PhDQPlDag1VbkNwJ6ahgFjHIY7M/UDug6BMpSFkIIICYkLvH
                    0CwBmbOG5e734LIeGP4Q78JLA3gGh5OQdgUKF20MFSwLEEAsWFMBPEGhVQhoMfcDY+oJkaFRAwMY
                    HfBsBhBATJidS/j6DeRpE3idDi9R4ekFeSoOORiR+1yQbAYJRYAAQh9QgxR+8EIA4kWgakgTiQOj
                    O44WoygFOmypBpoVAAHEAinp4cECT0SY88zIoYe1CYGcO+G2fkDyCUQcIICY4KEPshsCYG1DLLke
                    lvDQvAUxAdi6QEux0HYMLFQhIgABhFgU9x62fAEtNSHqL1gdi17aIdc2qG6Ct9YlYF0PoCEAAcQC
                    V8cJq/+QC0msw+7I7Xd4aoLXTWiOhpRu8H4AkA0QQCzIrkPL15iZAW0MCZ4B4MNG75HqcMxOBMRA
                    gABigpQA32HzRVhrCbhTkE2ENwmQcxRa8CIncrg4QAAxwcOEE7XQQut7QDpGKAvnwBEDb9S/R6op
                    EcMvsLQJNQqsHiCAWDCnpSBOQ1lhA2mSoRbomEuuoDMcqA0azEYaQAAxYRZdiCyF5C0O1CU/KB08
                    HJX2B9QZTXhEAAQQE5or4MGFMiCKVI/C109hVhHQggbW0YQnSeSEDWQABBAT5iwaWtCjzPeglq5o
                    qfo7rPGNNXjhpQFAADFhLkxDjn94GQRp5EFmkFASNjiBYE7cYA4/wm0BCCBmSVMRYD8BEejgnskf
                    pE4IqBcB7rEAw5wTLPjm9es/f/9CBEGzMJ8/QxgQQ4E9EKgusLGQSQtI/wTSmQEIICbkGgdrgYeI
                    Klj7EX3SFmYCfIkf+sgFzGRIigMIIBbkVIDIjtgSOlwNcqcVHpeQ8Upo0xLe3YCsTEDqjQMBQAAx
                    oS20wGwYYvU9vPGO1vJASRngehel4wC2HiCAWDAzJdaARQ4r5BIOpXxBHX5B7gfAC1igLEAAMSFK
                    c9iYAJaxT/CEGZyBbAq8tIIMtiAnV3iuEIDlV4gsQACxwKsYyEAmvJEAz22Q0g5uClqSgXsUZeYK
                    qV5CLNWAtGzevwcIIBZEAQE2F7SmErkqwEiQ35EH4rEtPkTO5fB+FXJEAAQQE1rjGj5sgpxq4HYg
                    r/aAhzbyekLM/IO2OAUIAAKIBaVehHsI7GN46oenmg/Y1kZhzcSIzIMhDhBAKAuP4T6DN0c4MZpb
                    wDIIHlzwdAifmYD34yFhAGn4Q1oh8FwEEEBMKI6CBboAJDWBF61DUhBkBSRaJQO3A7FKE3WoCa0V
                    Asn9AAHE8gNjBgGzaIa0VBD+RmrHQot1WIUlACsUoekc3lwF5wJOcAoACCAW5KVLuComTpgpkP4Q
                    fMQGsSYWHGJoCyjgJQNa8QkQQEzITSN42kPO+PBFAlinD+C7NJAHNeAewpqRAAKICWuXGAKAHU3k
                    IQJI/oHEK1ohDC1rUGMHMkYC1wIffwcIICbMCIfXFfDRfeh6EdhyeuRlH4hOOVIbmAN1dAQteAAC
                    iAkxUwAb30EeXoSsRYDkZYgvBZFqLkg+gSRUtIlPnEMKnJwAAcSEWYIjFyjfUffhSELGk2BFLtqQ
                    EDw84CUq8jJveCICCCAWzEyGGA0Ht3TQuoyY3S48kzLw6RD4em0gAAggJpQ5fFhAIVYegof5MRMX
                    8qCkIKySwhxyhjSmBcG9dngZBxBATJAkgDY7Ds9M0CEGpLFBtL4VRArSK0Uei0IuO+H9C0i3ByCA
                    mNBq9h+oKwOBUu8xejnITW+0NAIxF2WcAhJs4GoRkvQAAogFEsofYIvvf6BWh/BIxdUMQ/S3YUYL
                    Ig34Ik9xw4MQIICYUNwIK3eQG05o1qCFPDzcECNHqMvp38N6//CSGSCAmEUMBVjBbVwW2ModYJOX
                    h5cX2tgFByBcHNIUBjWswUuBIIJAQxmRhjLhzWWI+1jBS37gq4SApgEEEBPyeiNIuYM8GQwVgVXu
                    mHUOON0IwrsJyEkGkoLgQ4DwEAIIICasq87fw0IYOR1BTIRUnB9gFTVybkbvo8OajPASFAIAAogF
                    XhiijSRBa3ZYCxieKCCFA3wtFEIvjp4s2tgCUBlAADGh9+7hhTW27ge8XYk8nwsUgU6uY2QnoINe
                    IO2EgwCAAGJBzLwgMeCBiWXWDSnkgTYBvcuJo73PgFrUwSMOIMAA9EgcGsEFEAgAAAAASUVORK5C
                    YII='
                    );

                    #echo chunk_split(base64_encode(file_get_contents('./backlawn.png')));
                    Edit 2: Gibt das hier aus:

                    PHP-Wissenssammlung Composer Awesome Awesomeness PHP: The Right Way @mermshaus

                    Kommentar


                    • #11
                      Zitat von mermshaus Beitrag anzeigen
                      Kannst du nicht das bestehende Template kicken und es mit CSS und absoluter Positionierung regeln? Mir erscheint das so übertrieben kompliziert und der Code mit den variablen Variablen und den fehlenden Schleifen ist nicht besonders gut.
                      Theoretisch ja aber dann müsste die ganze Datei umprogrammiert werden

                      Kommentar


                      • #12
                        Das würde ich hier glaube ich stark empfehlen. Du hast selbst Schwierigkeiten damit und von uns scheint auch keiner so wirklich durchzusteigen bzw. überhaupt Lust zu verspüren, sich mit dem Code zu befassen.

                        Mir fehlt hier etwa eine konkrete Angabe, was an Daten da ist und was daraus gemacht werden soll. Der gezeigte Code ist arg kryptisch und ein ziemlicher Variablenwald. Außerdem verstehe zumindest ich nicht, wie die einzelnen Teile zusammenpassen. Ein paar Funktionsdeklarationen würden vermutlich Wunder wirken, was die Verringerung der Komplexität angeht.
                        PHP-Wissenssammlung Composer Awesome Awesomeness PHP: The Right Way @mermshaus

                        Kommentar


                        • #13
                          der Code ist eig genau bis hier wichtig für die Spalten :

                          PHP-Code:
                            for ($n=12$n>=1$n--) {

                              
                          $row_zeilen $tpl_inhalt->getblock("row_zeilen");

                              if (
                          $n != 12$row_zeilen->assign_block("bl_abstand");

                              
                          $varname "f".$n;
                              
                          $anzahl_spalten = $$varname;
                              if (
                          $anzahl_spalten 0){
                              
                          $spaltenbreite round(100/$anzahl_spalten); 
                          Ich hab da auch schon so ne kleine Idee entickelt. Aber es happert an der Umsetzung wegen der Variablen Variable xD

                          und zwar wenn man sagen kann :

                          f1 - f2 - f3 - f4 = eine spalte
                          f5 = eine Spalte
                          f6 - f7 -f8 = eine Spalte

                          usw. müsste doch hinzukriegen sein oder?

                          dann müsste auch nicht der ganze Code um geschrieben werden sondern eben nur dieser "kleine" Codeabschnitt

                          Kommentar


                          • #14
                            Mir fehlt hier etwa eine konkrete Angabe, was an Daten da ist und was daraus gemacht werden soll. Der gezeigte Code ist arg kryptisch und ein ziemlicher Variablenwald.
                            Was ist dieses $f1 bis $fn? Was steht da drin? Wo wird das gesetzt? Was soll daraus werden?

                            Es ist anscheinend irgendeine Anzahl von Spalten, aber...

                            f1 - f2 - f3 - f4 = eine spalte


                            Zudem zählen andauernd irgendwelche Schleifen bis 12, bei der Auflistung deiner f's sind es nur 8...

                            Ich werde aus deinen Erklärungen vorne und hinten nicht schlau. Ich fürchte, so kann man dir nicht helfen.
                            PHP-Wissenssammlung Composer Awesome Awesomeness PHP: The Right Way @mermshaus

                            Kommentar


                            • #15
                              Zitat von mermshaus Beitrag anzeigen
                              Was ist dieses $f1 bis $fn? Was steht da drin? Wo wird das gesetzt? Was soll daraus werden?

                              Es ist anscheinend irgendeine Anzahl von Spalten, aber...





                              Zudem zählen andauernd irgendwelche Schleifen bis 12, bei der Auflistung deiner f's sind es nur 8...

                              Ich werde aus deinen Erklärungen vorne und hinten nicht schlau. Ich fürchte, so kann man dir nicht helfen.

                              ja bei mir gings nur bis 8 weil ich das ganze bis 12 net aufzählen wollte xD


                              Also

                              die ganzen f1, f2,f3 usw gibt es in der tpl datei Sie dienen zum auswählen der Positionen.

                              Hier nen kurzer ausschnitt (braucht ihr mehr dann bescheid sagen)

                              PHP-Code:
                                <p><b>Formation:</b>

                                <
                              b>IV</b>

                                <
                              select name="f1">

                                  <!-- 
                              START row_f1 -->

                                  <
                              option value="{i_f1}"<!-- START f1_selected --> selected<!-- END f1_selected -->>{i_f1}</option><!-- END row_f1 -->

                                </
                              select>

                                 <
                              b>RV</b>

                                <
                              select name="f2">

                                  <!-- 
                              START row_f2 -->

                                  <
                              option value="{i_f2}"<!-- START f2_selected --> selected<!-- END f2_selected -->>{i_f2}</option><!-- END row_f2 -->

                                </
                              select>

                                <
                              b>LV</b>

                                  <
                              select name="f3">

                                  <!-- 
                              START row_f3 -->

                                  <
                              option value="{i_f3}"<!-- START f3_selected --> selected<!-- END f3_selected -->>{i_f3}</option><!-- END row_f3 -->

                                </
                              select>

                                <
                              b>DMF</b>

                                <
                              select name="f4">

                                  <!-- 
                              START row_f4 -->

                                  <
                              option value="{i_f4}"<!-- START f4_selected --> selected<!-- END f4_selected -->>{i_f4}</option><!-- END row_f4 -->

                                </
                              select>

                                <
                              b>ZMF</b>

                                <
                              select name="f5">

                                  <!-- 
                              START row_f5 -->

                                  <
                              option value="{i_f5}"<!-- START f5_selected --> selected<!-- END f5_selected -->>{i_f5}</option><!-- END row_f5 -->

                                </
                              select

                              Kommentar

                              Lädt...
                              X