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);