My old file categorie.php:
<?php
/**************************************************************************
* *
* 4images - A Web Based Image Gallery Management System *
* ---------------------------------------------------------------- *
* *
* File: categories.php *
* Copyright: (C) 2002 Jan Sorgalla *
* Email: jan@4homepages.de *
* Web: http://www.4homepages.de *
* Scriptversion: 1.7.6 *
* *
* Never released without support from: Nicky (http://www.nicky.net) *
* *
**************************************************************************
* *
* Dieses Script ist KEINE Freeware. Bitte lesen Sie die Lizenz- *
* bedingungen (Lizenz.txt) für weitere Informationen. *
* --------------------------------------------------------------- *
* This script is NOT freeware! Please read the Copyright Notice *
* (Licence.txt) for further information. *
* *
*************************************************************************/
$templates_used = 'categories,category_bit,thumbnail_bit';
$main_template = 'categories';
define('GET_CACHES', 1);
define('ROOT_PATH', './');
include(ROOT_PATH.'global.php');
require(ROOT_PATH.'includes/sessions.php');
$user_access = get_permission();
include(ROOT_PATH.'includes/page_header.php');
if (!$cat_id || !isset($cat_cache[$cat_id]) || !check_permission("auth_viewcat", $cat_id)) {
redirect("index.php");
}
$cache_id = create_cache_id(
'page.categories',
array(
$user_info[$user_table_fields['user_id']],
$cat_id,
$page,
$perpage,
isset($user_info['lightbox_image_ids']) ? substr(md5($user_info['lightbox_image_ids']), 0, 8) : 0,
$config['template_dir'],
$config['language_dir']
)
);
if (!$cache_page_categories || !$content = get_cache_file($cache_id)) {
// Always append session id if cache is enabled
if ($cache_page_categories) {
$old_session_mode = $site_sess->mode;
$site_sess->mode = 'get';
}
ob_start();
//-----------------------------------------------------
//--- SEO variables -----------------------------------
//-----------------------------------------------------
$site_template->register_vars(array('prepend_head_title' => $cat_cache[$cat_id]['cat_name'] . " - "));
//--- Show Categories ---------------------------------
//-----------------------------------------------------
if (!check_permission("auth_upload", $cat_id)) {
$upload_url = "";
$upload_button = "<img src=\"".get_gallery_image("upload_off.gif")."\" border=\"0\" alt=\"\" />";
}
else {
$upload_url = $site_sess->url(ROOT_PATH."member.php?action=uploadform&".URL_CAT_ID."=".$cat_id);
$upload_button = "<a href=\"".$upload_url."\"><img src=\"".get_gallery_image("upload.gif")."\" border=\"0\" alt=\"\" /></a>";
}
$random_cat_image = (defined("SHOW_RANDOM_IMAGE") && SHOW_RANDOM_IMAGE == 0) ? "" : get_random_image($cat_id);
$site_template->register_vars(array(
"categories" => get_categories($cat_id),
"cat_name" => format_text($cat_cache[$cat_id]['cat_name'], 2),
"cat_description" => format_text($cat_cache[$cat_id]['cat_description'], 1, 0, 1),
"cat_hits" => $cat_cache[$cat_id]['cat_hits'],
"upload_url" => $upload_url,
"upload_button" => $upload_button,
"random_cat_image" => $random_cat_image
));
unset($random_cat_image);
//-----------------------------------------------------
//--- Show Images -------------------------------------
//-----------------------------------------------------
$site_template->register_vars(array(
"has_rss" => true,
"rss_title" => "RSS Feed: ".format_text($cat_cache[$cat_id]['cat_name'], 2)." (".str_replace(':', '', $lang['new_images']).")",
"rss_url" => $script_url."/rss.php?action=images&".URL_CAT_ID."=".$cat_id
));
$num_rows_all = (isset($cat_cache[$cat_id]['num_images'])) ? $cat_cache[$cat_id]['num_images'] : 0;
$link_arg = $site_sess->url(ROOT_PATH."categories.php?".URL_CAT_ID."=".$cat_id);
include(ROOT_PATH.'includes/paging.php');
$getpaging = new Paging($page, $perpage, $num_rows_all, $link_arg);
$offset = $getpaging->get_offset();
$site_template->register_vars(array(
"paging" => $getpaging->get_paging(),
"paging_stats" => $getpaging->get_paging_stats()
));
$imgtable_width = ceil((intval($config['image_table_width'])) / $config['image_cells']);
if ((substr($config['image_table_width'], -1)) == "%") {
$imgtable_width .= "%";
}
$additional_sql = "";
if (!empty($additional_image_fields)) {
foreach ($additional_image_fields as $key => $val) {
$additional_sql .= ", i.".$key;
}
}
$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 i.cat_id = $cat_id AND c.cat_id = i.cat_id
ORDER BY ".$config['image_order']." ".$config['image_sort'].", i.image_id ".$config['image_sort']."
LIMIT $offset, $perpage";
$result = $site_db->query($sql);
$num_rows = $site_db->get_numrows($result);
if (!$num_rows) {
$thumbnails = "";
$msg = $lang['no_images'];
}
else {
$thumbnails = "<table width=\"".$config['image_table_width']."\" border=\"0\" cellpadding=\"".$config['image_table_cellpadding']."\" cellspacing=\"".$config['image_table_cellspacing']."\">\n";
$count = 0;
$bgcounter = 0;
while ($image_row = $site_db->fetch_array($result)){
if ($count == 0) {
$row_bg_number = ($bgcounter++ % 2 == 0) ? 1 : 2;
$thumbnails .= "<tr class=\"imagerow".$row_bg_number."\">\n";
}
$thumbnails .= "<td width=\"".$imgtable_width."\" valign=\"top\">\n";
show_image($image_row);
$thumbnails .= $site_template->parse_template("thumbnail_bit");
$thumbnails .= "\n</td>\n";
$count++;
if ($count == $config['image_cells']) {
$thumbnails .= "</tr>\n";
$count = 0;
}
} // end while
if ($count > 0) {
$leftover = ($config['image_cells'] - $count);
if ($leftover > 0) {
for ($i = 0; $i < $leftover; $i++){
$thumbnails .= "<td width=\"".$imgtable_width."\">\n \n</td>\n";
}
$thumbnails .= "</tr>\n";
}
}
$thumbnails .= "</table>\n";
} //end else
$site_template->register_vars("thumbnails", $thumbnails);
unset($thumbnails);
//################################ Start MOD Ajax Slideshow/Diashow ##############################
$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 i.cat_id = $cat_id AND c.cat_id = i.cat_id
ORDER BY ".$config['image_order']." ".$config['image_sort'].", image_id ".$config['image_sort']."
LIMIT ".$config['ajax_slideshowviewer_how_many']."";
$result = $site_db->query($sql);
$num_rows = $site_db->get_numrows($result);
$max_length_image_name = 65;
$max_length_image_description = 55;
$ajax_slideshow_view = 0;
if (!$num_rows) {
$site_template->register_vars(array(
"ajax_slideshow" => "",
"ajax_slideshow_button" => "",
));
}
else {
$ajax_slideshow = "<script type=\"text/javascript\" src=\"http://slideshow.triptracker.net/slide.js\"></script>\n";
$ajax_slideshow .= "<script type=\"text/javascript\">\n<!-- \n";
$ajax_slideshow .= "var viewer = new PhotoViewer();\n";
$ajax_slideshow .= "viewer.setSlideDuration(".$config['ajax_slideshowviewer_setSlideDuration'].");\n";
$ajax_slideshow .= "viewer.".$config['ajax_slideshowviewer_Panning']."Panning();\n";
$ajax_slideshow .= "viewer.".$config['ajax_slideshowviewer_AutoPlay']."AutoPlay();\n";
$ajax_slideshow .= "viewer.".$config['ajax_slideshowviewer_Fading']."Fading();\n";
$ajax_slideshow .= "viewer.setBackgroundColor('".$config['ajax_slideshowviewer_setBackgroundColor']."');\n";
$ajax_slideshow .= "viewer.setBorderWidth(".$config['ajax_slideshowviewer_setBorderWidth'].");\n";
$ajax_slideshow .= "viewer.setFontSize(".$config['ajax_slideshowviewer_setFontSize'].");\n";
$ajax_slideshow .= "viewer.".$config['ajax_slideshowviewer_Shade']."Shade();\n";
$ajax_slideshow .= "viewer.setShadeColor('".$config['ajax_slideshowviewer_setShadeColor']."');\n";
$ajax_slideshow .= "viewer.setShadeOpacity('".$config['ajax_slideshowviewer_setShadeOpacity']."');\n";
$ajax_slideshow .= "viewer.".$config['ajax_slideshowviewer_Loop']."Loop();\n";
$ajax_slideshow .= "viewer.setOnClickEvent(".$config['ajax_slideshowviewer_OnClickEvent'].");\n";
if ($config['ajax_slideshowviewer_Toolbar'] == "disable") {
$ajax_slideshow .= "viewer.disableToolbar();\n"; }
if ($config['ajax_slideshowviewer_EmailLink'] == "disable") {
$ajax_slideshow .= "viewer.disableEmailLink();\n"; }
if ($config['ajax_slideshowviewer_PhotoLink'] == "disable") {
$ajax_slideshow .= "viewer.disablePhotoLink();\n"; }
$count = 0;
$bgcounter = 0;
while ($image_row = $site_db->fetch_array($result)) {
$ext = get_file_extension($image_row['image_media_file']);
$config['ajax_slideshowviewer_Types_array'] = explode(",", $config['ajax_slideshowviewer_Types']);
if (in_array($ext, $config['ajax_slideshowviewer_Types_array'])) {
$ajax_slideshow_view = 1;
show_image($image_row);
$image_name_short = (isset($image_row['image_name']) && strlen($image_row['image_name']) > $max_length_image_name) ? substr(format_text(stripslashes($image_row['image_name']), 2), 0, $max_length_image_name)."..." : format_text(stripslashes($image_row['image_name']), 2);
$image_name_short = str_replace("\r","",$image_name_short);
$image_name_short = str_replace("\n","",$image_name_short);
$image_name_short = str_replace("<br>","",$image_name_short);
$image_name_short = str_replace("<br />","",$image_name_short);
$image_name_short = str_replace("'","",$image_name_short);
$image_name_short = str_replace("<","<",$image_name_short);
$image_name_short = str_replace(">",">",$image_name_short);
$image_name_short = stripslashes($image_name_short);
$image_name_short = "".$lang['image_name']." $image_name_short";
if ($config['ajax_slideshowviewer_description'] == "enable") {
$image_description_short = (isset($image_row['image_description']) && strlen($image_row['image_description']) > $max_length_image_description) ? substr(format_text(stripslashes($image_row['image_description']), 1, 0, 1), 0, $max_length_image_description)."..." : format_text(stripslashes($image_row['image_description']), 1, 0, 1);
$image_description_short = str_replace("\r","",$image_description_short);
$image_description_short = str_replace("\n","",$image_description_short);
$image_description_short = str_replace("<br>","",$image_description_short);
$image_description_short = str_replace("<br />","",$image_description_short);
$image_description_short = str_replace("'","",$image_description_short);
$image_description_short = str_replace("<","<",$image_description_short);
$image_description_short = str_replace(">",">",$image_description_short);
$image_description_short = stripslashes($image_description_short);
if ($image_description_short == "") {
$image_description_short = " ";
} else {
$image_description_short = "<br>".$lang['description']." $image_description_short";
}
}
else {
$image_description_short = " ";
}
$ajax_slideshow .= "viewer.add('".MEDIA_DIR."/".$image_row['cat_id']."/".$image_row['image_media_file']."', '".$image_description_short."', '".$image_name_short."');\n";
}
}
if ($count > 0) {
$leftover = ($config['image_cells'] - $count);
}
$ajax_slideshow .= "//-->\n</script>\n";
if ($user_info['user_level'] == GUEST && $config['ajax_slideshowviewer_Show'] == "1" && $ajax_slideshow_view == "1") {
$ajax_slideshow_button = "<img src=\"".get_gallery_image("diashow_off.gif")."\" border=\"0\" alt=\"\" />";
$site_template->register_vars(array(
"ajax_slideshow_button" => $ajax_slideshow_button
));
}
elseif ($user_info['user_level'] != GUEST && $config['ajax_slideshowviewer_Show'] == "1" && $ajax_slideshow_view == "1" || $config['ajax_slideshowviewer_Show'] == "2" && $ajax_slideshow_view == "1") {
$ajax_slideshow_button = "<a href=\"javascript:void(viewer.show(0))\"><img src=\"".get_gallery_image("diashow.gif")."\" border=\"0\" alt=\"\" /></a>";
$site_template->register_vars(array(
"ajax_slideshow" => $ajax_slideshow,
"ajax_slideshow_button" => $ajax_slideshow_button
));
}
else {
$site_template->register_vars(array(
"ajax_slideshow" => "",
"ajax_slideshow_button" => "",
));
}
}
unset($ajax_slideshow);
//################################ End MOD Ajax Slideshow/Diashow ##############################
//-----------------------------------------------------
//--- Clickstream -------------------------------------
//-----------------------------------------------------
$clickstream = "<span class=\"clickstream\"><a href=\"".$site_sess->url(ROOT_PATH."index.php")."\" class=\"clickstream\">".$lang['home']."</a>".$config['category_separator'].get_category_path($cat_id)."</span>";
$page_title = $config['category_separator'].get_category_path_nohtml($cat_id); // MOD: Dynamic page title
//-----------------------------------------------------
//--- Print Out ---------------------------------------
//-----------------------------------------------------
$site_template->register_vars(array(
"msg" => $msg,
"clickstream" => $clickstream,
"page_title" => $page_title // MOD: Dynamic page title
));
$main_template = get_cat_template($main_template, $cat_id);
$site_template->print_template($site_template->parse_template($main_template));
$content = ob_get_contents();
ob_end_clean();
if ($cache_page_categories) {
// Reset session mode
$site_sess->mode = $old_session_mode;
save_cache_file($cache_id, $content);
}
} // end if get_cache_file()
echo $content;
//Update Category Hits
if ($user_info['user_level'] != ADMIN && $page == 1) {
$sql = "UPDATE ".CATEGORIES_TABLE."
SET cat_hits = cat_hits + 1
WHERE cat_id = $cat_id";
$site_db->query($sql);
}
include(ROOT_PATH.'includes/page_footer.php');
?>
I put the file categorie.php located on the site 4images (File New)
yet I have no problem
Result:
index :
Page generated in 0.523630 seconds with 391 queries, spending 0.254000 seconds doing MySQL queries and 0.269630 doing PHP things. GZIP compression disabled
Page generated in 0.427981 seconds with 387 queries, spending 0.192000 seconds doing MySQL queries and 0.235981 doing PHP things. GZIP compression disabled
categorie :
Page generated in 0.356049 seconds with 388 queries, spending 0.117000 seconds doing MySQL queries and 0.239049 doing PHP things. GZIP compression disabled
Page generated in 0.576684 seconds with 447 queries, spending 0.231000 seconds doing MySQL queries and 0.345684 doing PHP things. GZIP compression disabled
detail :
Page generated in 0.441164 seconds with 415 queries, spending 0.153000 seconds doing MySQL queries and 0.288164 doing PHP things. GZIP compression disabled
Page generated in 0.461827 seconds with 416 queries, spending 0.168000 seconds doing MySQL queries and 0.293827 doing PHP things. GZIP compression disabled
Page generated in 0.951267 seconds with 415 queries, spending 0.698000 seconds doing MySQL queries and 0.253267 doing PHP things. GZIP compression disabled
with
// Initialize cache configuration
$cache_enable = 1;
$cache_lifetime = 3600; // 1 hour
$cache_path = ROOT_PATH.'cache';
$cache_page_index = 1;
$cache_page_categories = 1;
$cache_page_top = 1;
$cache_page_rss = 1;
I think the site is available quickly enough? and you?
http://www.fond-ecran-gratuit.biz/and yes, viruses/trojans are know for slowing down sites... (replied to your other post already)
When you talk about your change? (That is: # msg126772 http://www.4homepages.de/forum/index.php?topic=17598.msg126772?)
Sorry if I do not understand everything right away
Thank you for your help
Yes, that is the code I meant.
The original mod's code query database for each single link it creates, nic_bck's code (the one you are using) caches some of the links so it would only query database ones if previous link was the same as current, but once a different link created all cache is gone. My code caches all links, so no duplicate database query will be made.
Another thing many people don't know about is that template can dramatically affect on site performance. As more code in the template, as more work template parsing code have to do, slowing down the page creating process.
I'm sorry, but I did not really understand
the code that you proposed is:
function fixname($text)
{
return strtolower(strtr(
$text,
array(
"é" => "e",
"è" => "e",
"ê" => "e",
"à" => "a",
"ë" => "e",
"â" => "a",
"ú" => "a",
"ó" => "o",
"í" => "i",
"á" => "a",
//russian UTF8 encoded alphabet (lower and upper cases)
"А" => "a",
"а" => "a",
"Б" => "b",
"б" => "b",
"В" => "v",
"в" => "v",
"Г" => "g",
"г" => "g",
"Д" => "d",
"д" => "d",
"Е" => "e",
"е" => "e",
"Ё" => "yo",
"ё" => "yo",
"Ж" => "zh",
"ж" => "zh",
"З" => "z",
"з" => "z",
"И" => "i",
"и" => "i",
"Й" => "j",
"й" => "j",
"К" => "k",
"к" => "k",
"Л" => "l",
"л" => "l",
"М" => "m",
"м" => "m",
"Н" => "n",
"н" => "n",
"О" => "o",
"о" => "o",
"П" => "p",
"п" => "p",
"Р" => "r",
"р" => "r",
"С" => "s",
"с" => "s",
"Т" => "t",
"т" => "t",
"У" => "u",
"у" => "u",
"Ф" => "f",
"ф" => "f",
"Х" => "h",
"х" => "h",
"Ц" => "c",
"ц" => "c",
"Ч" => "ch",
"ч" => "ch",
"Ш" => "sh",
"ш" => "sh",
"Щ" => "sch",
"щ" => "sch",
"Ъ" => "",
"ъ" => "",
"Ы" => "i",
"ы" => "i",
"Ь" => "'",
"ь" => "'",
"Э" => "e",
"э" => "e",
"Ю" => "yu",
"ю" => "yu",
"Я" => "ya",
"я" => "ya",
)));
}
function get_category_url($cat_id,$cat_url = '')
{
global $site_db, $cat_cache;
static $urlname = array(); //cache names in this array
if (isset($urlname[$cat_id]))
return $urlname[$cat_id];
if (!empty($cat_cache))
{
$row['cat_name'] = @$cat_cache[$cat_id]['cat_name'];
$row['cat_parent_id'] = @$cat_cache[$cat_id]['cat_parent_id'];
}
else
{
$sql = "SELECT cat_name,cat_parent_id FROM ".CATEGORIES_TABLE." WHERE cat_id = '".$cat_id."'";
$row = $site_db->query_firstrow($sql);
}
$row['cat_name'] = fixname($row['cat_name']);
$cat_url = '-'.str_replace('+','-',urlencode($row['cat_name'])).'-'.$cat_id.$cat_url;
// if you want full path of category in url, put next line in comment
$row['cat_parent_id'] = 0;
if($row['cat_parent_id'] != 0)
{
$urlname[$cat_id] = get_category_url($row['cat_parent_id'],$cat_url);
}
else
{
$urlname[$cat_id] = $cat_url;
}
return $urlname[$cat_id];
}
//Mod_bmollet
/**
* Get the image url
* @param int $image_id The id of the image
*/
function get_image_url($image_id)
{
global $site_db;
static $urlname = array(); //cache names in this array
if (isset($urlname[$image_id]))
return $urlname[$image_id];
$sql = "SELECT cat_id,image_name FROM ".IMAGES_TABLE." WHERE image_id = '".$image_id."'";
$row = $site_db->query_firstrow($sql);
$row['image_name'] = fixname($row['image_name']);
// if you want comlpete path to image in url, remove comment from following line
//$urlname[$image_id] = get_category_url($row['cat_id']).'-'.str_replace('+','-',urlencode($row['image_name'])).'-'.$image_id;
$urlname[$image_id] = '-'.str_replace('+','-',urlencode($row['image_name'])).'-'.$image_id;
return $urlname[$image_id];
}
But I must add or? (Or replace with what?)
Thank you!