• [MOD] Pictures of a specified category / Bilder einer bestimmten Kategorie anzei 5 0 5 1
Currently:  

Author Topic: [MOD] Pictures of a specified category / Bilder einer bestimmten Kategorie anzei  (Read 26590 times)

0 Members and 1 Guest are viewing this topic.

Offline .Infecto

  • Newbie
  • *
  • Posts: 48
    • View Profile
Re: [MOD] See new pictures of a specified category
« Reply #15 on: October 20, 2014, 01:05:23 PM »
Hallo,

ist es möglich das ganze etwas automatisch zu gestalten?

Im AdminCP ein Feld anlegen in dem man z.B die Kategorien mittels Trennung eines Kommas angeben kann (12,23,44)
Das System schreibt durch die Erkennung plus komma und zahl (,23) das eine weitere Kategorie angefragt werden soll und schreibt quasi den nötigen Code über dem "?>" in die index.php und der dazugehörigen Zahl "23" bzw. Kategorie-ID.
Ist das realisierbar?

Viele Grüße

Edit:

Hier mal der Code (Eventuell kann man das eleganter lösen)
// Option Start
$bycat_in = array(1,12,21);
// Option Ende
$sql "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads, i.image_votes, i.image_rating, i.image_hits".$additional_sql.", c.cat_name".get_user_table_field(", u.""user_name")."
        FROM ("
.IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
        LEFT JOIN "
.USERS_TABLE." u ON (".get_user_table_field("u.""user_id")." = i.user_id)
        WHERE i.image_active = 1 AND c.cat_id = i.cat_id AND i.cat_id IN ("
.get_auth_cat_sql("auth_viewcat").") AND i.cat_id IN (".implode(","$bycat_in).")
        ORDER BY i.image_date DESC
        LIMIT 
$num_new_media_cat";
$result $site_db->query($sql);
$num_rows $site_db->get_numrows($result);
if (!
$num_rows)  {
  
$new_media_cat "<table width=\"".$config['image_table_width']."\" border=\"0\" cellpadding=\"".$config['image_table_cellpadding']."\" cellspacing=\"".$config['image_table_cellspacing']."\"><tr class=\"imagerow1\"><td>";
  
$new_media_cat .= $lang['no_new_media_cat'];
  
$new_media_cat .= "</td></tr></table>";
}
else  {
  while (
$image_row $site_db->fetch_array($result)){
    
show_image($image_row);
    
$new_media_cat .= $site_template->parse_template("new_media_cat");
  } 
// end while
// end else
$site_template->register_vars("new_media_cat"$new_media_cat);
unset(
$new_media_cat);

Hier werden die Kategorien abgefragt bzw. eingetragen:
$bycat_in = array(1,12,21);
Am elegantesten wäre, wenn man nun in diesem Abschnitt den Name mit der ID ergänzen könnte:
$new_media_cat .= $site_template->parse_template("new_media_cat");
Beispiel:
$new_media_cat .= $site_template->parse_template("new_media_cat_".$bycat_in);
Denn in den Templates verwende ich {new_media_cat} als Ausgabe, was auch ohne Probleme funktioniert. Schön wäre es, wenn ich {new_media_cat} dann mehrmals verwenden kann wie z.B so:
{new_media_cat_1}
{new_media_cat_12}
{new_media_cat_21}
Geht das überhaupt?

EDIT:
Keine Chance.... :(

//-----------------------------------------------------
//--- Show New Images By Category ---------------------
//-----------------------------------------------------

$additional_sql "";
if (!empty(
$additional_image_fields)) {
  foreach (
$additional_image_fields as $key => $val) {
    
$additional_sql .= ", i.".$key;
  }
}
 
$num_new_media_cat $config['image_cells'];
// Option Start
$bycat_in = array(1,2,3);
foreach (
$bycat_in as $var) {
// Option Ende
$sql "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads, i.image_votes, i.image_rating, i.image_hits".$additional_sql.", c.cat_name".get_user_table_field(", u.""user_name")."
        FROM ("
.IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
        LEFT JOIN "
.USERS_TABLE." u ON (".get_user_table_field("u.""user_id")." = i.user_id)
        WHERE i.image_active = 1 AND c.cat_id = i.cat_id AND i.cat_id IN ("
.get_auth_cat_sql("auth_viewcat").") AND i.cat_id IN (".implode(","$var).") 
        ORDER BY i.image_date DESC
        LIMIT 
$num_new_media_cat";
$result $site_db->query($sql);
$num_rows $site_db->get_numrows($result);

if (!
$num_rows)  {
  
$new_media_cat "<table width=\"".$config['image_table_width']."\" border=\"0\" cellpadding=\"".$config['image_table_cellpadding']."\" cellspacing=\"".$config['image_table_cellspacing']."\"><tr class=\"imagerow1\"><td>";
  
$new_media_cat .= $lang['no_new_media_cat'];
  
$new_media_cat .= "</td></tr></table>";
}
else  {
    while (
$image_row $site_db->fetch_array($result)){
    
show_image($image_row);
    
$new_media_cat .= $site_template->parse_template("new_media_cat");
  } 
// end while
// end else
    
$site_template->register_vars("new_media_cat_" $var ""$new_media_cat);
}
unset(
$new_media_cat); 
« Last Edit: October 20, 2014, 07:12:30 PM by .Infecto »

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: [MOD] See new pictures of a specified category
« Reply #16 on: October 21, 2014, 09:03:57 AM »
Die Idee ist ganz cool.
So könnte man das dann dynmaisch ausgeben und muss nicht für jede Kategorie neuen Code benutzen.

Nicht getestet,
aber eventuell so?


$additional_sql 
"";
if (!empty(
$additional_image_fields)) {
  foreach (
$additional_image_fields as $key => $val) {
    
$additional_sql .= ", i.".$key;
  }
}
 
$num_new_media_cat $config['image_cells'];
// Option Start
foreach (explode(',''1,2,3') as $var) {
// Option Ende
$sql "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads, i.image_votes, i.image_rating, i.image_hits".$additional_sql.", c.cat_name".get_user_table_field(", u.""user_name")."
        FROM ("
.IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
        LEFT JOIN "
.USERS_TABLE." u ON (".get_user_table_field("u.""user_id")." = i.user_id)
        WHERE i.image_active = 1 AND c.cat_id = i.cat_id AND i.cat_id IN ("
.get_auth_cat_sql("auth_viewcat").") AND i.cat_id IN (".$var.")
        ORDER BY i.image_date DESC
        LIMIT 
$num_new_media_cat";
$result $site_db->query($sql);
$num_rows $site_db->get_numrows($result);

if (!
$num_rows)  {
  
$new_media_cat "<table width=\"".$config['image_table_width']."\" border=\"0\" cellpadding=\"".$config['image_table_cellpadding']."\" cellspacing=\"".$config['image_table_cellspacing']."\"><tr class=\"imagerow1\"><td>";
  
$new_media_cat .= $lang['no_new_media_cat'];
  
$new_media_cat .= "</td></tr></table>";
}
else  {
    while (
$image_row $site_db->fetch_array($result)){
    
show_image($image_row);
    
$new_media_cat .= $site_template->parse_template("new_media_cat");
  } 
// end while
// end else
	

$site_template->register_vars(array(
  
"new_media_cat_" $var "" => $new_media_cat
));
}
unset(
$new_media_cat); 

Offline .Infecto

  • Newbie
  • *
  • Posts: 48
    • View Profile
Re: [MOD] See new pictures of a specified category
« Reply #17 on: October 21, 2014, 11:10:29 AM »
Hallo und Danke,

ich kann nun die variable

{new_media_cat_1}
{new_media_cat_2}
{new_media_cat_3}

Allerdings gibt er mir bei:
{new_media_cat_1}
Bilder aus cat_id 2 und 3 aus

Test: Papa 2
Test: Papa
Test: Hubba 3

Bei
{new_media_cat_2}
Gibt er mir die Bilder von id 2 und 3 doppelt aus :(

Test: Papa 2
Test: Papa
Test: Hubba 3
Test: Papa 2
Test: Papa
Test: Hubba 3

Bei variable _3 das dreifache

Test: Papa 2
Test: Papa
Test: Hubba 3
Test: Papa 2
Test: Papa
Test: Hubba 3
Test: Papa 2
Test: Papa
Test: Hubba 3

Hast du eine Idee?





....................

Ich komme hier nicht weiter :(


Edit://
Ich konnte das nun anders und automatisiert lösen.

Ich habe nun in der Übersicht der zu bearbeiteten Kategorien einen Link beigefügt, welcher automatisch den PHP-Code für weitere Kategorien erstellt und diese beliebig ausgibt. Man muss nichts mehr von Hand eingeben.

MFG
« Last Edit: October 25, 2014, 02:39:36 AM by .Infecto »