Author Topic: Photos from one category on external page  (Read 8422 times)

0 Members and 1 Guest are viewing this topic.

Offline anoleimage

  • Newbie
  • *
  • Posts: 10
    • View Profile
Photos from one category on external page
« on: June 21, 2008, 04:29:21 AM »
I'm sorry if this has been covered, but I couldn't find it with the searches I tried:

I would like to have a small group of thumbnails on a site homepage that would be pulled from one category in 4images.  Kind of like a "featured thumbs" kind of thing.  I've seen mods in this forum for new images, etc. on outside pages, but I'm not well versed enough in PHP to alter those scripts.  Any help would be greatly appreciated.

If anyone is familiar with OpenRealty, this would be like Al Smith's "Featured off-site" plug-in...

Thanks in advance for any input!

Offline anoleimage

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Photos from one category on external page
« Reply #1 on: July 14, 2008, 03:19:08 AM »
Nobody?  K'mon:  Can any PHP wiz pull thumbs for a category to be displayed on another (external to $images) part of the site?  I know somebody can do this.

Thanks for any blind alley you can send me down...  ;)

Offline † manurom

  • Full Member
  • ***
  • Posts: 227
    • View Profile
    • manurom's 4images templates
Re: Photos from one category on external page
« Reply #2 on: July 14, 2008, 05:48:16 AM »
Hello;
please learn to be patient. People use to sleep, sometimes, here.
Don't know about OpenRealty, sorry.

But try this: [MOD] new images on your homepage (external)

and complete with this: {new_images} from specific category to match with your favourite category.

Or else, that's the way I should do it:

3 new files have to be created:
  • new_images.php (at the gallery root, where index.php is)
  • templates/your_template/new_images.html
  • templates/your_template/thumbnail_bit_extern.html

1 file has to be modified:
  • includes/functions.php

First, lest us create the file "new_images.php", just copying a part of the file "index.php". The code should be:
Code: [Select]
<?php
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: new_images.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 'new_images,thumbnail_bit_extern';
$main_template 'new_images';
define('ROOT_PATH''./');

define('GET_CACHES'1);
define('GET_USER_ONLINE'0);
include(
ROOT_PATH.'global.php');
require(
ROOT_PATH.'includes/sessions.php');
$user_access get_permission();

if (isset(
$HTTP_GET_VARS['template']) || isset($HTTP_POST_VARS['template'])) {
  
$template = (isset($HTTP_GET_VARS['template'])) ? get_basefile(stripslashes($HTTP_GET_VARS['template'])) : get_basefile(stripslashes($HTTP_POST_VARS['template']));
  if (!
file_exists(TEMPLATE_PATH."/".$template.".".$site_template->template_extension)) {
    
$template "";
  }
  else {
    
$main_template $template;
  }
}
else {
  
$template "";
}
include(
ROOT_PATH.'includes/page_header.php');

if (!empty(
$template)) {
  
$clickstream "<a href=\"".$site_sess->url(ROOT_PATH."index.php")."\">".$lang['home']."</a>".$config['category_separator'].str_replace("_"" "ucfirst($template));
  
$site_template->register_vars("clickstream"$clickstream);
  
$site_template->print_template($site_template->parse_template($main_template));
  include(
ROOT_PATH.'includes/page_footer.php');
}

$cache_id create_cache_id(
  
'page.index',
  array(
    
$user_info[$user_table_fields['user_id']],
    isset(
$user_info['lightbox_image_ids']) ? substr(md5($user_info['lightbox_image_ids']), 08) : 0,
    
$config['template_dir'],
    
$config['language_dir']
  )
);

if (!
$cache_page_index || !$content get_cache_file($cache_id)) {
// Always append session id if cache is enabled
if ($cache_page_index) {
  
$old_session_mode $site_sess->mode;
  
$site_sess->mode 'get';
}

ob_start();

//-----------------------------------------------------
//--- Show New Images ---------------------------------
//-----------------------------------------------------
$site_template->register_vars(array(
  
"has_rss"   => true,
  
"rss_title" => "RSS Feed: ".format_text($config['site_name'], 2)." (".str_replace(':'''$lang['new_images']).")",
  
"rss_url"   => $script_url."/rss.php?action=images"
));

$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;
  }
}

$num_new_images 12;
$config['image_cells'] = 4;
$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 (1, 2, 3)
        ORDER BY i.image_date DESC
        LIMIT 
$num_new_images";
$result $site_db->query($sql);
$num_rows $site_db->get_numrows($result);

if (!
$num_rows)  {
  
$new_images "<table width=\"".$config['image_table_width']."\" border=\"0\" cellpadding=\"".$config['image_table_cellpadding']."\" cellspacing=\"".$config['image_table_cellspacing']."\"><tr class=\"imagerow1\"><td>";
  
$new_images .= $lang['no_new_images'];
  
$new_images .= "</td></tr></table>";
}
else  {
  
$new_images "<table width=\"".$config['image_table_width']."\" border=\"0\" cellpadding=\"".$config['image_table_cellpadding']."\" cellspacing=\"".$config['image_table_cellspacing']."\">";
  
$count 0;
  
$bgcounter 0;
  while (
$image_row $site_db->fetch_array($result)){
    if (
$count == 0) {
      
$row_bg_number = ($bgcounter++ % == 0) ? 2;
      
$new_images .= "<tr class=\"imagerow".$row_bg_number."\">\n";
    }
    
$new_images .= "<td width=\"".$imgtable_width."\" valign=\"top\">\n";

    
show_image($image_row);
    
$new_images .= $site_template->parse_template("thumbnail_bit_extern");
    
$new_images .= "\n</td>\n";
    
$count++;
    if (
$count == $config['image_cells']) {
      
$new_images .= "</tr>\n";
      
$count 0;
    }
  } 
// end while

  
if ($count 0)  {
    
$leftover = ($config['image_cells'] - $count);
    if (
$leftover >= 1) {
      for (
$f 0$f $leftover$f++) {
        
$new_images .= "<td width=\"".$imgtable_width."\">\n&nbsp;\n</td>\n";
      }
      
$new_images .= "</tr>\n";
    }
  }
  
$new_images .= "</table>\n";
// end else

$site_template->register_vars("new_images"$new_images);
unset(
$new_images);

//-----------------------------------------------------
//--- Print Out ---------------------------------------
//-----------------------------------------------------
$site_template->register_vars(array(
  
"msg" => $msg,
  
"clickstream" => $clickstream
));
$site_template->print_template($site_template->parse_template($main_template));

$content ob_get_contents();
ob_end_clean();

if (
$cache_page_index) {
  
// Reset session mode
  
$site_sess->mode $old_session_mode;

  
save_cache_file($cache_id$content);
}

// end if get_cache_file()

echo $content;

include(
ROOT_PATH.'includes/page_footer.php');
?>

Now it's time to create the two template files in your template folder.

The code for your template file "templates/your_template/new_images.html" should be:
Code: [Select]
{header}
<table width="100%" border="0" cellpadding="0" cellspacing="0" >
  <tr>
    <td align="left" class="head1" valign="top">&nbsp;&nbsp;Recent Images from {site_name}</td>
  </tr>
  <tr>
    <td class="head1"><br />
      {new_images} <br /></td>
  </tr>
</table>
{footer}

The code for your template file "templates/your_template/thumbnail_bit_extern.html":
Code: [Select]
<style type="text/css">
<!--
.pics {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
}
.new {
  font-family: Tahoma,Verdana,Arial,Helvetica,sans-serif;
  font-size: 9px;
  color: #FF0000;
}
-->
</style>

<div align="center">{thumbnail_extern_openwindow}<br />
  <span class="pics"><b>{image_name}</b> {if image_is_new}<sup class="new">{lang_new}</sup>{endif image_is_new} ({user_name_link})
  <br /></span></div>

At last, please edit the file "includes/functions.php". Find:
Code: [Select]
"thumbnail_openwindow" => get_thumbnail_code($image_row['image_media_file'], $image_row['image_thumb_file'], $image_row['image_id'], $image_row['cat_id'], $image_row['image_name'], $mode, $show_link, 1),
and insert just after:
Code: [Select]
        "thumbnail_extern" => get_thumbnail_code($image_row['image_media_file'], $image_row['image_thumb_file'], $image_row['image_id'], $image_row['cat_id'], $image_row['image_name'], $mode, $show_link),
"thumbnail_extern_openwindow" => get_thumbnail_code($image_row['image_media_file'], $image_row['image_thumb_file'], $image_row['image_id'], $image_row['cat_id'], $image_row['image_name'], $mode, $show_link, 1),

Find next:
Code: [Select]
  return $thumb;
}

and insert just after:
Code: [Select]
//--External thumbnails--------------------------------
function get_thumbnail_extern_code($media_file_name, $thumb_file_name = "", $image_id, $cat_id, $image_name = "", $mode = "", $show_link = 1, $open_window = 1) {
  global $site_sess, $config;

  if (!check_media_type($media_file_name)) {
    $thumb = "<img src=\"".ICON_PATH."/404.gif\" border=\"0\" alt=\"\" />";
  }
  else {
    if (!get_file_path($thumb_file_name, "thumb", $cat_id, 0, 0)) {
      $file_src = ICON_PATH."/".get_file_extension($media_file_name).".gif";
      $image_info = @getimagesize($file_src);
      $width_height = (!empty($image_info[3])) ? " ".$image_info[3] : "";
      $thumb = "<img src=\"".$file_src."\" border=\"0\"".$width_height." alt=\"".$image_name."\" />";
    }
    else {
      $file_src = get_file_path($thumb_file_name, "thumb", $cat_id, 0, 1);
      $image_info = @getimagesize($file_src);
      $width_height = (!empty($image_info[3])) ? " ".$image_info[3] : "";
      $thumb = "<img src=\"".$file_src."\" border=\"".$config['image_border']."\"".$width_height." alt=\"".$image_name."\" />";
    }
  }

  if ($show_link) {
    if ($open_window) {
      $thumb = "<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$image_id.((!empty($mode)) ? "&amp;mode=".$mode : ""))."\" onclick=\"opendetailwindow()\" target=\"detailwindow\">".$thumb."</a>";
    }
    else {
      $thumb = "<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$image_id.((!empty($mode)) ? "&amp;mode=".$mode : ""))."\">".$thumb."</a>";
    }
  }
  return $thumb;
}

//--End external thumbnails----------------------------



Then, the external site that desires to show your thumbnails has to include one of these two links in its page code:
PHP:
Quote
<?php include ('http://path/to/your/gallery/new_images.php') ?>

or HTML:
Quote
<iframe src="http://path/to/your/gallery/new_images.php" width="500" height="300" scrolling="no" frameborder="0" name="new_images" align="center"></iframe>
(Width and hight are just an example. Adapt it as you prefer.)



You may modify this, in "new_images.php":
Code: [Select]
$num_new_images = 12;
$config['image_cells'] = 4;
to change the number of thumbails shown (12, here), and the number of thumbnails in each row (4, here).

Don't forget to change this:
Code: [Select]
        WHERE i.image_active = 1 AND c.cat_id = i.cat_id AND i.cat_id IN (1, 2, 3)to specify which category's thumbnails you desire to show.

Well, I hope I did not forget anything essential.
Feel free to ask any help.
Anyone here can help you as soon as he is awake... :mrgreen:
« Last Edit: July 14, 2008, 08:02:20 AM by manurom »

Offline anoleimage

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Photos from one category on external page
« Reply #3 on: July 28, 2008, 02:53:45 PM »
Thank you so much for your work!  I have just returned from vacation and haven't had a chance to try this, but I wanted to make sure I thanked you for your complex reply.  I really appreciate it! :D

I'll reply with the results, soon.

Offline nobby

  • 4images Guru
  • *******
  • Posts: 2.873
    • View Profile
Re: Photos from one category on external page
« Reply #4 on: July 28, 2008, 03:00:25 PM »
Manurom is no longer answers, Manurom of us is gone  :(

See here: http://www.4homepages.de/forum/index.php?topic=22267.0

Offline webbug

  • Newbie
  • *
  • Posts: 33
    • View Profile
Re: Photos from one category on external page
« Reply #5 on: December 23, 2008, 04:46:21 PM »
Manurom isnt here anymore, I wish somebody can help me with this request :(

I need to use this script inside template/defualt/details.php

it works anywhere except in the above folder

thanks