Thread Verfasser: Catzenjaeger
Thread ID: 973
Thread Info
Es gibt 3 Beiträge zu diesem Thema, und es wurde 2116 Mal angesehen.  Ausserdem wurden Dateien angehängt.
 Thema drucken
Template function Fragen
Catzenjaeger
Hola,

versuche gerade die Darstellung der Figuren meiner Datenbank. Im Infusion Ordner liegt die figures.php Datei dort sind Funktionen definiert die mit einem Template welches im Unterordner templates/figurelib.php zusammenhängen.

Was klappt: die Darstellung der Kategorien und deren Zähler (also wie viel Figuren innerhalb sind) bei klick drauf werden die Figuren auch angezeigt.

Was klappt dort nicht:

1.) Die Umschaltung Listenansicht/Gallerieansicht
die Listenansicht klappt. Ich habe aber 2 Ansichten vorgesehen. Einmal eine Tabellenübersicht der Figuren und einmal eine Art Gallerieansicht wo die Figuren mittels Bild gezeigt werden.

Das habe ich mit ...


// SETTINGS HOLEN
$fil_settings = get_settings("figurelib");
if ($asettings['figure_display']) {
echo "<b>TABELLENANSICHT</b>";
   } else {
echo "<b>GALERIENSICHT</b>";
}

versucht zu filtern .. Funktioniert nicht und weiss nicht warum. Egal ob figure_display in DB auf 0 oder 1 steht . wenn ich mir echo $asettings['figure_display']; darstellen lasse kommt nichts -- warum?

2.) in der Gallerieansicht sollen die Figuren je nach dem welcher Wert in den Settings als "figure_per_line" angegeben ist dargestellt werden . Also bei Wert 2 in DB sollen 2 Figuren nebeneinander und die nächsten beiden ebenfalls nebeneinander darunter usw. angezeigt werden. Momentan werden aber alle untereinander angezeigt. Hier ist also ein kleiner Fehler.

3.) Das mit dem Bild bekomme ich noch nicht richtig hin. Ich schaffe es ohne Probleme wenn ein Bild vorhanden ist dies darzustellen ... aber nicht wenn kein Bild vorhanden ist ein Platzhalterbild anzuzeigen. Egal welche Abfragen ich da einbaue.

4.) wie macht man folgendes: ich habe einen Tabelle (siehe Bild Anhang) Das ganz große Bild d´soll das erste Bild was der User uploadet sein. die anderen sollen dann am Rand verteilt werden wie auf den Bild (also die bis zu 9 weiteren) wenn nicht so viele da sind sollen die Platzhalterbilder angezeigt werden. kann man so etwas überhaupt realisieren? Problem ... denke ich ... meine submit speichert die Bilder in einenm Ordner. Die bilder sind nur über die Figure_id zuordbar die wir zu jeden Bild mit abgelegt damit man weiss zu welcher figur das Bild gehört.

Können die Profis hier mal drüber schauen bitte :) BITTTTTTTTEEEE :)

hier ist das live: http://aliencollectors.com/test/infus...igures.php

Im Anhang mal die Datei
Catzenjaeger hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
David
1.)


$fil_settings = get_settings("figurelib"); 
if ($fil_settings['figure_display']) {
echo "<b>TABELLENANSICHT</b>";
   } else {
echo "<b>GALERIENSICHT</b>";
}


Erklärung: Du musst selbstverständlich schon die Variable $fil_settings auch in der IF-Abfrage verwenden, denn $asettings wäre in diesem Fall eine undefinierte Variable.


2.) Du musst mit einem Counter arbeiten ..
Das ganze könnte so aussehen (selbstverständlich auf deine Bedürfnisse anpassen)

$counter = 1;
$result = dbquery("SELECT felder FROM ".DB_TABELLE." WHERE konditionen");
if (dbrows($result)) {
  while ($data = dbarray($result)) {
    echo "Ausgabe von etwas ..";
    echo ($counter % 2 == 0 ? "<br />" : "");
    $counter++;
  }
}



3.) Du musst mit file_exists prüfen, ob ein Bild vorhanden ist.

if (@file_exists(PFAD.$variable)) {
  echo "<img src .. ";
} else {
  echo "Platzhalter";
}



4.) Du ließt alle Bilder aus und sortierst diese nach ID zuerst (niedrige als erste), somit ist das erste hochgeladene Bild auch das erste.
Abfrage beispeilsweise:

$result = dbquery("SELECT felder FROM ".DB_FIGURE_IMAGES." WHERE figure_id='ID der Figur' ORDER BY felder_id ASC");



Bitte beachte, dass dies alles Beispielcodes sind und nicht einsatzfähig!
Liebe Grüße, David Smile

PHP-Fusion Österreich
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Catzenjaeger
Hallo David danke erst einmal für deine Antwort. Ich bin momentan am Ende. Das dies so schwer ist hätte ich nie gedacht ... ich denke schon ans aufgeben ... aber das geht nicht ... ich brauche die Datenbank für meinen Website ......

Fehlen bei der ganzen Datenbank tut eigentlich noch
- die Übersicht der Figuren pro Kategorie (das ist das hier )
- einen Editbereich wo man die Figuren bearbeiten kann. Das war in der alten Version alles in einer Datei namens figures.php


zum Thema:

Das mit den Umschalten Tabellen/Gallerieansicht passt jetzt .. heisst

Punkt 1 ist eigentlich erledigt. Wobei ich nicht begreife das an diversen stellen zB asettings[.....] genommen wird aber hier fi_settings stehen muss damit es greift.

Zu Punkt 2:
Counter ist drin geht aber nicht ... jetzt ist es noch mehr verhunzt. Was ja auch noch mit rein muss ist die Abfrage aus den settings "figure per page" und "figure per line".
mit dem untenstehenden Code werden die Figuren zig mal untereinander gezeigt

zu Punkt 3: ich habe deine Abfrage mit eingebaut .. Bild wird trotzdem nicht angezeigt. Was ich hier nicht begreife .. das ist ja die template Datei aus dem Ordner templates. Da kommen doch eigentlich keine DB Abfrage rein oder? egal.

zu Punkt 4: wäre es nicht einfacher gewesen wenn man in der submit jeden Bild einen Nummer irgendwie mitgegeben hätte ... meinetwegen _BILD_1 / _BILD_2 usw. dann könnte man die leichter auslesen :) Nun das mit den darstellen muss ich später dann machen weil erstmal muss das andere laufen heisst Punkt 4 ist heavy hoch 10 da muss ich später ran

Hier das Stück der Gallerienasicht was aber nicht geht. Es werden zig Figuren untereinander gezeigt. In der DB sind momentan 3 Figuren wobei hier anscheinend nur 2 gezeigt werden weil ja die settings so eingestellt sind das 2 pro seite angezeigt werden sollen und wenn mehr sind soll die Navigation unten erscheinen (tut sie aber nicht)


         $counter = 0;

         echo "<div class='row m-0'>\n";
         if (!empty($info['item'])) {
            foreach($info['item'] as $figure_id => $data) {
               if ($counter != 0 && ($counter%$columns == 0)) {
                  echo "</div>\n<div class='row m-0'>\n";
               }
                           
               echo "<table cellpadding='0' cellspacing='1' width='100%'>\n<tr>\n";
               echo "<td align='' valign='top' class=''>\n";   
               
               //BILD
               $result2 = dbquery("SELECT figure_images_image_id, figure_images_image, figure_images_thumb
                              FROM ".DB_FIGURE_IMAGES." WHERE figure_images_figure_id='".$data['figure_id']."' LIMIT 0,1");
             if(dbrows($result2)){
               // ABFRAGE OB ES ÜBERHAUPT BILD IM ORDNER GIBT
               if (@file_exists(THUMBS_FIGURES.$data2['figure_images_thumb'])) {
               echo "<a href='".INFUSIONS."figurelib/figures.php?figure_id=".$data['figure_id']."' class=''>\n<img src='".($data2['figure_images_thumb'] ? THUMBS_FIGURES.$data2['figure_images_thumb'] : INFUSIONS.$inf_folder."/images/default.png")."' alt='".trimlink($data['figure_title'],100)."' title='".trimlink($data['figure_title'],50)."' style='border:0px;max-height:40px;max-width:40px' />";
               } else {
                  echo "<a href='".INFUSIONS."figurelib/figures.php?figure_id=".$data['figure_id']."' class=''>\n<img src='".INFUSIONS."figurelib/images/default.png"."' alt='".trimlink($data['figure_title'],50)."' title='".trimlink($data['figure_title'],100)."' style='border:0px;max-height:40px;max-width:40px' />";
               }
            }            
                  echo "<br /><br />\n";               
         
                   // Manufacturer
                  echo "<strong>".$locale['LFP_003'].": </strong> ".trimlink($data['figure_manufacturer_name'],18)."<br />\n";              
                  
                  // DATE ADDED
                  echo $locale['figure_414'].": ".showdate("shortdate", $data['figure_datestamp'])."<br />\n";
                                    
                  // RATING
                  $drating = dbarray(dbquery("SELECT SUM(rating_vote) sum_rating, COUNT(rating_item_id) count_votes FROM ".DB_RATINGS." WHERE rating_item_id='".$data['figure_id']."' AND rating_type='FI'"));
                  $num_votes = $drating['count_votes'];
                  $rating = ($num_votes > 0 ? str_repeat("<img src='".INFUSIONS.$inf_folder."/images/star.png'>",ceil($drating['sum_rating']/$num_votes)) : "-");
                  echo $locale['figure_418'].": ".$rating."<br />\n";
                  
                  // KOMMENTARE
                  $comments = dbcount("(comment_id)", DB_COMMENTS, "comment_type='FI' AND comment_item_id='".$data['figure_id']."'");
                  //echo $locale['figure_421'].": ".$data['figure_count']."<br />\n";
                  echo $locale['figure_420'].": ".$comments."<br />\n";
                  
                  // KLICKCOUNT = VIEWS
                  echo $locale['clickcount'].": ".$data['figure_clickcount']."</span><br />\n";
               

               echo "</td>\n";
               echo "</tr>\n</table>\n";
               echo ($counter % 2 == 0 ? "<br />" : "");
               $counter++;
            }
         }                                                
/////////////////////////////////////////////////////////////////////////////////////////////   
               } else {
/////////////////////////////////////////////////////////////////////////////////////////////      
            
            //echo "<b>TABELLENANSICHT</b>";   
            
            // MENÜZEILE GANZ OBEN IN DER ÜBERSICHT ALLER FIGUREN
            opentable($locale['INF_ADMIN'].": ".$info['figure_cat_name']);
            echo "<table cellpadding='0' cellspacing='1' class='tbl-border' style='text-align:left;width:100%; margin-bottom: 4px;'>";
            echo "<colgroup>";
            echo "<col width='10%'><col width='20%'><col width='20%'><col width='20%'><col width='10%'><col width='10%'><col width='10%'>";
            echo "</colgroup>";
            echo "<tr class='breadcrumb'>";
            echo "<td><strong>Image</strong></td>";                  //               Bild
            echo "<td><strong>".$locale['LFP_002']."</strong></td>";   // ['LFP_002']= "Name";
            echo "<td><strong>".$locale['LFP_003']."</strong></td>";   // ['LFP_003']= "Manufacturer";;
            echo "<td><strong>".$locale['LFP_004']."</strong></td>";   // ['LFP_004']= "Brand";
            echo "<td><strong>".$locale['LFP_005']."</strong></td>";   // ['LFP_005']= "Scale";
            echo "<td><strong>".$locale['LFP_006']."</strong></td>";   // ['LFP_006']= "Year";
            echo "<td><strong>".$locale['LFP_008']."</strong></td>";   // ['LFP_008']= "Rating";
            echo "</tr></table>";   
               
               
            echo "<table cellpadding='0' cellspacing='1' class='tbl-border' style='text-align:left;width:100%; margin-bottom: 4px;'>";
            echo "<colgroup>";
            echo "<col width='10%'><col width='20%'><col width='20%'><col width='20%'><col width='10%'><col width='10%'><col width='10%'>";
            echo "</colgroup>";
            echo "<tr class='tbl2'>";
            echo "<td class='side-small'>Image</td>";                                     // Bild
            echo "<td class='side-small'>".$data['figure_title']."&nbsp;".$new."</td>";            // Name
            echo "<td class='side-small'>".trimlink($data['figure_manufacturer_name'],18)."</td>";  // Manufacturer
            echo "<td class='side-small'>".trimlink($data['figure_brand_name'],18)."</td>";          // Brand
            echo "<td class='side-small'>".trimlink($data['figure_scale_name'],7)."</td>";          // Scale
            echo "<td class='side-small'>".trimlink($data['figure_year'],5)."</td>";               // Year
            // Bewertung
               $drating = dbarray(dbquery("SELECT SUM(rating_vote) sum_rating,   COUNT(rating_item_id) count_votes FROM ".DB_RATINGS."
               WHERE rating_type='FI' AND  rating_item_id='".$data['figure_id']."'   "));
               $rating = ($drating['count_votes'] > 0 ? str_repeat("<img src='".INFUSIONS.$inf_folder."/images/starsmall.png'>",ceil($drating['sum_rating']/$drating['count_votes'])) : "-");
            echo "<td><strong>".$rating."</strong></td>";                                  // Rating";
            echo "</tr></table>";
         }   
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Springe ins Forum: