Author Topic: Récupérer code comme ImageShack  (Read 8230 times)

0 Members and 1 Guest are viewing this topic.

Offline Ayreon

  • Pre-Newbie
  • Posts: 3
    • View Profile
Récupérer code comme ImageShack
« on: November 23, 2006, 02:33:27 PM »
Bonjour à tous !

J'ai installé la MOD trouvée sur ce topic http://www.4homepages.de/forum/index.php?topic=10284.0 afin de pouvoir récupérer une ligne de code pour que mes users puissent poster un lien vers leur image sur notre forum.

Toutefois, j'ai un petit problème qui survient aléatoirement.
En effet, il arrive parfois que le bouton "BBCode" que j'ai mis en place ne s'affiche pas.

Voici un exemple en images :

Ici le bouton BBcode s'affiche : http://galeries.ayreon-seven.com/details.php?image_id=643

Là, il ne s'affiche pas : http://galeries.ayreon-seven.com/details.php?image_id=653


Voici pour info les fichiers modifiés :

post-it.php
[qcode]<?php
$site_url= "http://galeries.ayreon-seven.com/"
?>

<html>
<head>
<title>Post-it</title>
<style type="text/css">
/* A code block - maybe even PHP ;). */
.code
{
color: #000000;
background-color: #FFFFFF;
border: 1px solid #000000;
padding: 3px;
padding-bottom: 20px;
font-family: "courier new", helvetica, "times new roman", serif;
/*  font-family: Courier, 'Courier New', sans-serif, helvetica, "times new roman", serif;*/
font-size: 12px;
width: 98%;
max-height: 24em;
margin: 1px auto 1px auto;

/* margin-top: 4px;*/
white-space: nowrap;
overflow: auto;
line-height: 1.3em;
}
.codeheader
{
color: #000000;
text-decoration: none;
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
font-size: 12px;
}
</style>
</head>
<?php
$cat_id = $_GET["cat_id"];
$thumb = $_GET["thumb"];

     $image = "data/thumbnails/$cat_id/$thumb";               
     $size = getimagesize("$image");
       $thumb_height = $size[1];
       $thumb_width = $size[0];
   $thumb_width_height = (!empty($size[3])) ? " ".$size[3] : "";
       $thumb_height = $size[1];
       $thumb_width = $size[0];
?>

<body>

<div class="codeheader">BBcode Thumbnail à copier / coller dans vos messages sur les forums:</div>
<div class="code">; ?>]</div><br /><br />
<br />
</body>
</html>[/qcode]

fonctions.php
[qcode]<?php
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: functions.php                                        *
 *        Copyright: (C) 2002 Jan Sorgalla                                *
 *            Email: jan@4homepages.de                                    *
 *              Web: http://www.4homepages.de                             *
 *    Scriptversion: 1.7.3                                                *
 *                                                                        *
 *    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.                              *
 *                                                                        *
 *************************************************************************/
if (!defined('ROOT_PATH')) {
  die("Security violation");
}

function set_download_token($token) {
  global $site_sess, $user_info;

  if ($user_info['user_level'] == ADMIN) {
    return;
  }

  $download_token = @unserialize($site_sess->get_session_var('download_token'));

  if (!$download_token) {
    $download_token = array();
  }

  $download_token[serialize(md5($token))] = 1;

  $site_sess->set_session_var('download_token', serialize($download_token));
}

function clear_download_token($token) {
  global $site_sess, $user_info;

  if ($user_info['user_level'] == ADMIN) {
    return;
  }

  $download_token = @unserialize($site_sess->get_session_var('download_token'));

  if (!$download_token) {
    return;
  }

  $token = serialize(md5($token));

  if (isset($download_token[$token])) {
    unset($download_token[$token]);
    $site_sess->set_session_var('download_token', serialize($download_token));
  }
}

function check_download_token($token) {
  global $site_sess, $user_info;

  if ($user_info['user_level'] == ADMIN) {
    return true;
  }

  $download_token = @unserialize($site_sess->get_session_var('download_token'));

  if (isset($download_token[serialize(md5($token))])) {
    return true;
  }

  return false;
}

function get_gallery_image($image_name) {
  global $config;
  if (file_exists(TEMPLATE_PATH."/images_".$config['language_dir']."/".$image_name)) {
    return TEMPLATE_PATH."/images_".$config['language_dir']."/".$image_name;
  }
  else {
    return TEMPLATE_PATH."/images/".$image_name;
  }
}

function get_basename($path) {
  $path = str_replace("\\", "/", $path);
  $name = substr(strrchr($path, "/"), 1);
  return $name ? $name : $path;
}

function get_basefile($path) {
  $basename = get_basename($path);
  ereg("(.+)\?(.+)", $basename, $regs);
  return isset($regs[1]) ? $regs[1] : $basename;
}

function redirect($url) {
  global $script_url, $site_sess;
  if (strpos($url, '://') === false) {
    $url = $script_url.'/'.$url;
  }
  $location = @preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ? 'Refresh: 0; URL=' : 'Location: ';
  if (is_object($site_sess)) {
    $url = $site_sess->url($url, "&");
  }
  header($location.$url);
  exit;
}

function is_remote($file_name) {
  return strpos($file_name, '://') > 0 ? 1 : 0;
}

function is_remote_file($file_name) {
  return is_remote($file_name) && preg_match("#\.[a-zA-Z0-9]{1,4}$#", $file_name) ? 1 : 0;
}

function is_local_file($file_name) {
  return !is_remote($file_name) && get_basefile($file_name) != $file_name && preg_match("#\.[a-zA-Z0-9]{1,4}$#", $file_name) ? 1 : 0;
}

function check_remote_media($remote_media_file) {
  global $config;
  return is_remote($remote_media_file) && preg_match("#\.[".$config['allowed_mediatypes_match']."]+$#i", $remote_media_file) ? 1 : 0;
}

function check_local_media($local_media_file) {
  global $config;
  return !is_remote($local_media_file) && get_basefile($local_media_file) != $local_media_file && preg_match("#\.[".$config['allowed_mediatypes_match']."]+$#i", $local_media_file) ? 1 : 0;
}

function check_remote_thumb($remote_thumb_file) {
  return is_remote($remote_thumb_file) && preg_match("#\.[gif|jpg|jpeg|png]+$#is", $remote_thumb_file) ? 1 : 0;
}

function check_local_thumb($local_thumb_file) {
  return !is_remote($local_thumb_file) && get_basefile($local_thumb_file) != $local_thumb_file && preg_match("#\.[gif|jpg|jpeg|png]+$#i", $local_thumb_file) ? 1 : 0;
}

function get_file_extension($file_name) {
  ereg("(.+)\.(.+)", get_basefile($file_name), $regs);
  return strtolower($regs[2]);
}

function get_file_name($file_name) {
  ereg("(.+)\.(.+)", get_basefile($file_name), $regs);
  return $regs[1];
}

function check_media_type($file_name) {
  global $config;
  return (in_array(get_file_extension($file_name), $config['allowed_mediatypes_array'])) ? 1 : 0;
}

function check_thumb_type($file_name) {
  return (preg_match("#(gif|jpg|jpeg|png)$#is", $file_name)) ? 1 : 0;
}

function check_executable($file_name) {
  if (substr(PHP_OS, 0, 3) == "WIN" && !eregi("\.exe$", $file_name)) {
    $file_name .= ".exe";
  }
  elseif (substr(PHP_OS, 0, 3) != "WIN") {
    $file_name = eregi_replace("\.exe$", "", $file_name);
  }
  return $file_name;
}

function get_file_path($file_name = "", $image_type = "media", $cat_id = 0, $in_admin = 0, $return_icon = 1, $check_remote = CHECK_REMOTE_FILES) {
  $return_code = ($return_icon) ? ICON_PATH."/404.gif" : 0;
  if (empty($file_name)) {
    return $return_code;
  }
  if (is_remote($file_name)) {
    $check_handle = "check_remote_".$image_type;
    return ($check_handle($file_name) && remote_file_exists($file_name, $check_remote)) ? (($in_admin && !preg_match("#(gif|jpg|jpeg|png)$#is", $file_name)) ? ICON_PATH."/".get_file_extension($file_name).".gif" : $file_name) : $return_code;
  }
  elseif (is_local_file($file_name)) {
    $check_handle = "check_local_".$image_type;
    $file_name = ($in_admin && preg_match("/^([\.]+|[^\/])/", $file_name)) ? "../".$file_name : $file_name;
    if (!file_exists($file_name)) {
      $file_path = preg_replace("/\/{2,}/", "/", get_document_root()."/".$file_name);
      return ($check_handle($file_name) && file_exists($file_path)) ? (($in_admin && !preg_match("#(gif|jpg|jpeg|png)$#is", $file_name)) ? ICON_PATH."/".get_file_extension($file_name).".gif" : $file_name) : $return_code;
    }
    else {
      return $file_name;
    }
  }
  else {
    $check_handle = "check_".$image_type."_type";
    $path = (($image_type == "media") ? (($cat_id) ? MEDIA_PATH."/".$cat_id : MEDIA_TEMP_PATH) : (($cat_id) ? THUMB_PATH."/".$cat_id : THUMB_TEMP_PATH))."/".$file_name;
    return ($check_handle($file_name) && file_exists($path)) ? (($in_admin && !preg_match("#(gif|jpg|jpeg|png)$#is", $file_name)) ? ICON_PATH."/".get_file_extension($file_name).".gif" : $path) : $return_code;
  }
}

function safe_htmlspecialchars($chars) {
  // Translate all non-unicode entities
  $chars = preg_replace(
    '/&(?!(#[0-9]+|[a-z]+);)/si',
    '&amp;',
    $chars
  );

  $chars = str_replace(">", "&gt;",   $chars);
  $chars = str_replace("<", "&lt;",   $chars);
  $chars = str_replace('"', "&quot;", $chars);
  return $chars;
}

function un_htmlspecialchars($text) {
  $text = str_replace(
    array('&lt;', '&gt;', '&quot;', '&amp;'),
    array('<',    '>',    '"',      '&'),
    $text
  );

  return $text;
}

function get_iptc_info($info) {
  $iptc_match = array();
  $iptc_match['2#120'] = "caption";
  $iptc_match['2#122'] = "caption_writer";
  $iptc_match['2#105'] = "headline";
  $iptc_match['2#040'] = "special_instructions";
  $iptc_match['2#080'] = "byline";
  $iptc_match['2#085'] = "byline_title";
  $iptc_match['2#110'] = "credit";
  $iptc_match['2#115'] = "source";
  $iptc_match['2#005'] = "object_name";
  $iptc_match['2#055'] = "date_created";
  $iptc_match['2#090'] = "city";
  $iptc_match['2#095'] = "state";
  $iptc_match['2#101'] = "country";
  $iptc_match['2#103'] = "original_transmission_reference";
  $iptc_match['2#015'] = "category";
  $iptc_match['2#020'] = "supplemental_category";
  $iptc_match['2#025'] = "keyword";
  $iptc_match['2#116'] = "copyright_notice";

  $iptc = iptcparse($info);
  $iptc_array = array();
  if (is_array($iptc)) {
    foreach ($iptc as $key => $val) {
      if (isset($iptc_match[$key])) {
        $iptc_info = "";
        foreach ($val as $val2) {
          $iptc_info .= (($iptc_info != "" ) ? ", " : "").$val2;
        }
        if ($key == "2#055") {
          $iptc_array[$iptc_match[$key]] = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\3.\\2.\\1", $iptc_info);
        }
        else {
          $iptc_array[$iptc_match[$key]] = $iptc_info;
        }
      }
    }
  }
  return $iptc_array;
}

function get_exif_info($exif) {
  $exif_match = array();
  $exif_match['Make'] = "make";
  $exif_match['Model'] = "model";
  $exif_match['DateTimeOriginal'] = "datetime";
  $exif_match['ISOSpeedRatings'] = "isospeed";
  $exif_match['ExposureTime'] = "exposure";
  $exif_match['FNumber'] = "aperture";
  $exif_match['FocalLength'] = "focallen";

  $exif_array = array();
  if (is_array($exif)) {
    foreach ($exif as $key => $val) {
      if (isset($exif_match[$key])) {
        $exif_info = $val;
        if ($key == "DateTimeOriginal") {
          $exif_array[$exif_match[$key]] = preg_replace("/([0-9]{4}):([0-9]{2}):([0-9]{2})/", "\\3.\\2.\\1", $exif_info);
        }
        elseif ($key == "ExposureTime") {
        $exposure = explode("/", $exif_info);
          $exif_array[$exif_match[$key]] = "1/" . ($exposure[1] / $exposure[0]);
        }
        elseif ($key == "FNumber") {
        $aperture = explode("/", $exif_info);
          $exif_array[$exif_match[$key]] = "F/" . ($aperture[0] / $aperture[1]);
        }
        elseif ($key == "FocalLength") {
        $focalLen = explode("/", $exif_info);
          $exif_array[$exif_match[$key]] = ($focalLen[0] / $focalLen[1]) . "mm";
        }
        else {
          $exif_array[$exif_match[$key]] = $exif_info;
        }
      }
    }
  }
  return $exif_array;
}

function show_image($image_row, $mode = "", $show_link = 1, $detailed_view = 0) {
  global $self_url, $site_template, $site_sess, $user_info, $config, $cat_cache, $lang, $additional_image_fields, $user_table_fields, $url_show_profile;

  $is_new = ($image_row['image_date'] >= (time() - 60 * 60 * 24 * $config['new_cutoff'])) ? 1 : 0;
  $description = (!empty($image_row['image_description'])) ? format_text($image_row['image_description'], 1, 0, 1) : REPLACE_EMPTY;

  if (!empty($image_row['image_keywords'])) {
    $split_keywords = explode(" ", $image_row['image_keywords']);
    $keywords = "";
    foreach ($split_keywords as $key => $val) {
      $keywords .= (($keywords != "" ) ? ", " : "")."<a href=\"".$site_sess->url(ROOT_PATH."search.php?search_keywords=".urlencode($val))."\">".format_text($val, 2)."</a>";
    }
  }
  else {
    $keywords = REPLACE_EMPTY;
  }

  if (!check_permission("auth_readcomment", $image_row['cat_id'])) {
    $image_row['image_allow_comments'] = 0;
  }

  $num_comments = ($image_row['image_allow_comments'] == 1) ? $image_row['image_comments'] : "";

  if ($user_info['user_level'] != GUEST) {
    $lightbox_url = $self_url;
    $lightbox_url .= (!empty($mode)) ? ((strpos($lightbox_url, '?') !== false) ? "&amp;" : "?")."mode=".$mode : "";
    $lightbox_url .= strpos($lightbox_url, '?') !== false ? "&amp;" : "?";
    if (check_lightbox($image_row['image_id'])) {
      $lightbox_url .= "action=removefromlightbox&amp;id=".$image_row['image_id'];
      $lightbox_button = "<a href=\"".$site_sess->url($lightbox_url)."\"><img src=\"".get_gallery_image("lightbox_yes.gif")."\" border=\"0\" alt=\"\" /></a>";
    }
    else {
      $lightbox_url .= "action=addtolightbox&amp;id=".$image_row['image_id'];
      $lightbox_button = "<a href=\"".$site_sess->url($lightbox_url)."\"><img src=\"".get_gallery_image("lightbox_no.gif")."\" border=\"0\" alt=\"\" /></a>";
    }
  }
  else {
    $lightbox_button = "<img src=\"".get_gallery_image("lightbox_off.gif")."\" border=\"0\" alt=\"\" />";
  }

  if (!check_permission("auth_download", $image_row['cat_id'])) {
    $download_button = "<img src=\"".get_gallery_image("download_off.gif")."\" border=\"0\" alt=\"\" />";
    $download_zip_button = (function_exists("gzcompress") && function_exists("crc32")) ? "<img src=\"".get_gallery_image("download_zip_off.gif")."\" border=\"0\" alt=\"\" />" : "";
    $allow_download = 0;
    clear_download_token($image_row['image_id']);
  }
  else {
    $target = (!empty($image_row['image_download_url']) && !is_remote_file($image_row['image_download_url']) && !is_local_file($image_row['image_download_url'])) ? "target=\"_blank\"" : "";
    $download_button = "<a href=\"".$site_sess->url(ROOT_PATH."download.php?".URL_IMAGE_ID."=".$image_row['image_id'])."\"".$target."><img src=\"".get_gallery_image("download.gif")."\" border=\"0\" alt=\"\" /></a>";
    $download_zip_button = ($target == "" && function_exists("gzcompress") && function_exists("crc32")) ? "<a href=\"".$site_sess->url(ROOT_PATH."download.php?action=zip&amp;".URL_IMAGE_ID."=".$image_row['image_id'])."\"".$target."><img src=\"".get_gallery_image("download_zip.gif")."\" border=\"0\" alt=\"\" /></a>" : "";
    $allow_download = 1;
    set_download_token($image_row['image_id']);
  }

  if (!check_permission("auth_sendpostcard", $image_row['cat_id'])) {
    $postcard_button = "<img src=\"".get_gallery_image("postcard_off.gif")."\" border=\"0\" alt=\"\" />";
  }
  else {
    $postcard_button = "<a href=\"".$site_sess->url(ROOT_PATH."postcards.php?".URL_IMAGE_ID."=".$image_row['image_id'].((!empty($mode)) ? "&amp;mode=".$mode : ""))."\"><img src=\"".get_gallery_image("postcard.gif")."\" border=\"0\" alt=\"\" /></a>";
  }

  if (!check_permission("auth_viewimage", $image_row['cat_id']) || !check_permission("auth_viewcat", $image_row['cat_id'])) {
    $show_link = 0;
  }

  $file_size = "n/a";
  if (!is_remote($image_row['image_media_file'])) {
    if ($file_size = @filesize(MEDIA_PATH."/".$image_row['cat_id']."/".$image_row['image_media_file'])) {
      $file_size = format_file_size($file_size);
    }
  }
  elseif ($detailed_view) {
    $file_size = get_remote_file_size($image_row['image_media_file']);
  }

  if (isset($image_row[$user_table_fields['user_name']]) && $image_row['user_id'] != GUEST) {
    $user_name = format_text($image_row[$user_table_fields['user_name']], 2);

    $user_profile_link = (!empty($url_show_profile)) ? str_replace("{user_id}", $image_row['user_id'], $url_show_profile) : ROOT_PATH."member.php?action=showprofile&amp;".URL_USER_ID."=".$image_row['user_id'];
    $user_name_link = "<a href=\"".$site_sess->url($user_profile_link)."\">".$user_name."</a>";
  }
  else {
    $user_name = format_text($lang['userlevel_guest'], 2);
    $user_name_link = $user_name;
  }
 
  if ($detailed_view) {
   $site_template->register_vars(array(
     "media_thumbnail" => $image_row['image_thumb_file'],
     "media_url" => $image_row['image_media_file'],
   ));
}

  $site_template->register_vars(array(
    "image_id" => $image_row['image_id'],
    "user_id" => $image_row['user_id'],
    "user_name" => $user_name,
    "user_name_link" => $user_name_link,
    "image_name" => format_text($image_row['image_name'], 2),
    "image_description" => $description,
    "image_keywords" => $keywords,
    "image_date" => format_date($config['date_format']." ".$config['time_format'],$image_row['image_date']),
    "image_is_new" => $is_new,
    "lang_new" => $lang['new'],
    "image_active" => $image_row['image_active'],
    "cat_id" => $image_row['cat_id'],
    "cat_name" => format_text($image_row['cat_name'], 2),
    "cat_url" => $site_sess->url(ROOT_PATH."categories.php?".URL_CAT_ID."=".$image_row['cat_id']),
    "image_downloads" => $image_row['image_downloads'],
    "image_votes" => $image_row['image_votes'],
    "image_rating" => $image_row['image_rating'],
    "image_hits" => $image_row['image_hits'],
    "allow_comments" => $image_row['image_allow_comments'],
    "lang_comments" => $lang['comments'],
    "image_comments" => $num_comments,
    "lightbox_button" => $lightbox_button,
    "postcard_button" => $postcard_button,
    "download_button" => $download_button,
    "download_zip_button" => $download_zip_button,
    "image_download_url" => $image_row['image_download_url'],
    "allow_download" => $allow_download,
    "url_download" => $site_sess->url(ROOT_PATH."download.php?".URL_IMAGE_ID."=".$image_row['image_id']),
    "image_file_size" => $file_size,
    "image_url" => ($show_link) ? $site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$image_row['image_id'].((!empty($mode)) ? "&amp;mode=".$mode : "")) : "",
    "image" => get_media_code($image_row['image_media_file'], $image_row['image_id'], $image_row['cat_id'], $image_row['image_name'], $mode, $show_link, $detailed_view),
    "thumbnail" => 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_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),
    "image_file_name" => $image_row['image_media_file'],
    "thumbnail_file_name" => $image_row['image_thumb_file']
  ));

  if (!empty($additional_image_fields)) {
    $additional_field_array = array();
    foreach ($additional_image_fields as $key => $val) {
      $additional_field_array[$key] = (!empty($image_row[$key])) ? format_text($image_row[$key], 1) : REPLACE_EMPTY;
      $additional_field_array['lang_'.$key] = $val[0];
    }
    if (!empty($additional_field_array)) {
      $site_template->register_vars($additional_field_array);
    }
  }

  $rate_form = "";
  if (check_permission("auth_vote", $image_row['cat_id'])) {
    $site_template->register_vars("rate", $lang['rate']);
    $rate_form = $site_template->parse_template("rate_form");
  }
  $site_template->register_vars("rate_form", $rate_form);
  return true;
}

function get_thumbnail_code($media_file_name, $thumb_file_name = "", $image_id, $cat_id, $image_name = "", $mode = "", $show_link = 1, $open_window = 0) {
  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;
}

function get_media_code($media_file_name, $image_id = 0, $cat_id = 0, $image_name = "", $mode = "", $show_link = 0, $detailed_view = 0) {
  global $site_template, $site_sess, $lang, $mode;

  if (!get_file_path($media_file_name, "media", $cat_id, 0, 0)) {
    $media = "<img src=\"".ICON_PATH."/404.gif\" border=\"0\" alt=\"\" />";
    $site_template->register_vars("iptc_info", "");
    $site_template->register_vars("exif_info", "");
  }
  else {
    $media_src = get_file_path($media_file_name, "media", $cat_id, 0, 1);
    $file_extension = get_file_extension($media_file_name);
    $media_icon = "<img src=\"".ICON_PATH."/".$file_extension.".gif\" border=\"0\" alt=\"".$image_name."\" />";
    if ($show_link) {
      $media_icon = "<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$image_id.((!empty($mode)) ? "&amp;mode=".$mode : ""))."\">".$media_icon."</a>";
    }
    $width_height = "";
    $width = "";
    $height = "";
    $iptc_info = "";
    $exif_info = "";
    if (!is_remote($media_src)) {
      $src = (!file_exists($media_src) && file_exists(preg_replace("/\/{2,}/", "/", get_document_root()."/".$media_src))) ? preg_replace("/\/{2,}/", "/", get_document_root()."/".$media_src) : $media_src;
      if ($image_info = @getimagesize($src, $info)) {
        $width_height = " ".$image_info[3];
        $width = $image_info[0];
        $height = $image_info[1];
        if ($detailed_view && isset($info['APP13'])) {
          $iptc_array = get_iptc_info($info['APP13']);
          $bgcounter = 0;
          foreach ($iptc_array as $key => $val) {
            $row_bg_number = ($bgcounter++ % 2 == 0) ? 1 : 2;
            $site_template->register_vars(array(
              "iptc_value" => format_text($val),
              "iptc_name" => $lang['iptc_'.$key],
              "row_bg_number" => $row_bg_number
            ));
            $iptc_info .= $site_template->parse_template("iptc_bit");
          }
        }
        if ($detailed_view && $image_info[2] == 2 && function_exists('exif_read_data') && $exif_data = @exif_read_data($src, 'EXIF')) {
          $exif_array = get_exif_info($exif_data);
          $bgcounter = 0;
          foreach ($exif_array as $key => $val) {
            $row_bg_number = ($bgcounter++ % 2 == 0) ? 1 : 2;
            $site_template->register_vars(array(
              "exif_value" => format_text($val),
              "exif_name" => $lang['exif_'.$key],
              "row_bg_number" => $row_bg_number
            ));
            $exif_info .= $site_template->parse_template("exif_bit");
          }
        }
      }
    }
    $site_template->register_vars(array(
      "media_src" => $media_src,
      "media_icon" => $media_icon,
      "image_name" => $image_name,
      "width_height" => $width_height,
      "width" => $width,
      "height" => $height,
      "iptc_info" => $iptc_info,
      "exif_info" => $exif_info
    ));
    $media = $site_template->parse_template("media/".$file_extension);
  }
  return $media;
}

function get_random_image_cache() {
  global $site_db, $cat_cache, $total_images;

  $random_image_cache = array();
  $cat_id_sql = get_auth_cat_sql("auth_viewcat", "NOTIN");

  if (SHOW_RANDOM_CAT_IMAGE) {
    $sql = "SELECT DISTINCT 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, 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 NOT IN ($cat_id_sql) AND c.cat_id = i.cat_id
            ORDER BY RAND()";
    $result = $site_db->query($sql);
    while ($row = $site_db->fetch_array($result)) {
      $random_image_cache[$row['cat_id']] = $row;
    }
  }
  else {
    if (empty($total_images)) {
      $sql = "SELECT COUNT(*) as total_images
              FROM ".IMAGES_TABLE."
              WHERE image_active = 1 AND cat_id NOT IN ($cat_id_sql)";
      $row = $site_db->query_firstrow($sql);
      $total_images = $row['total_images'];
    }
    if (empty($total_images)) {
      return $random_image_cache;
    }
    mt_srand((double)microtime() * 1000000);
    $number = ($total_images > 1) ? mt_rand(0, $total_images - 1) : 0;

    $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, 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 NOT IN ($cat_id_sql) AND c.cat_id = i.cat_id
            LIMIT $number, 1";
    $random_image_cache[0] = $site_db->query_firstrow($sql);
  }
  return $random_image_cache;
}

function get_random_image($cat_id = 0, $show_link = 1, $return_file = 0) {
  global $site_template, $random_image_cache;

  if (!isset($random_image_cache)) {
    $random_image_cache = get_random_image_cache();
  }

  if ($cat_id && SHOW_RANDOM_CAT_IMAGE) {
    $template = 'random_cat_image';
    $category_id = $cat_id;
  }
  else {
    $template = 'random_image';
    if (SHOW_RANDOM_CAT_IMAGE) {
      srand((float)microtime() * 1000000);
      $category_id = array_rand($random_image_cache);
    }
    else {
      $category_id = 0;
    }
  }

  if (!empty($random_image_cache[$category_id])) {
    if (!$return_file) {
      show_image($random_image_cache[$category_id], "", $show_link);
      $random_image = $site_template->parse_template($template);
      return $random_image;
    }
    else {
      return get_file_path($random_image_cache[$category_id]['image_thumb_file'], "thumb", $category_id, 0, 1);
    }
  }
}

function format_file_size($file_size = 0) {
  //$file_size = intval($file_size);
  if (!$file_size) {
    return "n/a";
  }
  if (strlen($file_size) <= 9 && strlen($file_size) >= 7) {
    $file_size = number_format($file_size / 1048576,1);
    return $file_size."&nbsp;MB";
  }
  elseif (strlen($file_size) >= 10) {
    $file_size = number_format($file_size / 1073741824,1);
    return $file_size."&nbsp;GB";
  }
  else {
    $file_size = number_format($file_size / 1024,1);
    return $file_size."&nbsp;KB";
  }
}

function get_remote_file_size($file_path) {
  if (!CHECK_REMOTE_FILES) {
    return 'n/a';
  }
  ob_start();
  @readfile($file_path);
  $file_data = ob_get_contents();
  ob_end_clean();
  return format_file_size(strlen($file_data));
}

function update_comment_count($image_id = 0, $user_id = 0) {
  global $site_db, $user_table_fields;
  if ($image_id) {
    $sql = "SELECT COUNT(comment_id) AS comments
            FROM ".COMMENTS_TABLE."
            WHERE image_id = $image_id";
    $countcomments = $site_db->query_firstrow($sql);
    $sql = "UPDATE ".IMAGES_TABLE."
            SET image_comments = ".$countcomments['comments']."
            WHERE image_id = $image_id";
    $site_db->query($sql);
  }
  if ($user_id != GUEST && $user_id && !empty($user_table_fields['user_comments'])) {
    $sql = "SELECT COUNT(comment_id) AS comments
            FROM ".COMMENTS_TABLE."
            WHERE user_id = $user_id";
    $countcomments = $site_db->query_firstrow($sql);
    $sql = "UPDATE ".USERS_TABLE."
            SET ".get_user_table_field("", "user_comments")." = ".$countcomments['comments']."
            WHERE ".get_user_table_field("", "user_id")." = $user_id";
    $site_db->query($sql);
  }
}

function update_image_rating($image_id, $rating) {
  global $site_db;
  $sql = "SELECT cat_id, image_votes, image_rating
          FROM ".IMAGES_TABLE."
          WHERE image_id = $image_id";
  $image_row = $site_db->query_firstrow($sql);
  if (check_permission("auth_vote", $image_row['cat_id'])) {
    $old_votes = $image_row['image_votes'];
    $old_rating = $image_row['image_rating'];
    $new_rating = (($old_rating * $old_votes) + $rating) / ($old_votes + 1);
    $new_rating = sprintf("%.2f", $new_rating);
    $sql = "UPDATE ".IMAGES_TABLE."
            SET image_votes = ($old_votes + 1), image_rating = '$new_rating'
            WHERE image_id = $image_id";
    $site_db->query($sql);
  }
}

function check_email($email) {
  return (preg_match('/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){2,4}$/i', $email)) ? 1 : 0;
}

function format_date($format, $timestamp) {
  global $user_info;
  $timezone_offset = (defined("TIME_OFFSET")) ? TIME_OFFSET : 0;
  return date($format, $timestamp + (3600 * $timezone_offset));
}

function format_url($url) {
  if (empty($url)) {
    return '';
  }

  if (!preg_match("/^https?:\/\//i", $url)) {
    $url = "http://".$url;
  }

  return $url;
}

function replace_url($text) {
  $text = " ".$text." ";
  $url_search_array = array(
    "#([^]_a-z0-9-=\"'\/])www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[^, \(\)<>\n\r]*)?)#si",
    "#([^]_a-z0-9-=\"'\/])([a-z]+?)://([^, \(\)<>\n\r]+)#si"
  );

  $url_replace_array = array(
    "\\1<a href=\"http://www.\\2.\\3\\4\" target=\"_blank\" rel=\"nofollow\">www.\\2.\\3\\4</a>",
    "\\1<a href=\"\\2://\\3\" target=\"_blank\" rel=\"nofollow\">\\2://\\3</a>",
  );
  $text = preg_replace($url_search_array, $url_replace_array, $text);

  if (strpos($text, "@")) {
    $text = preg_replace("#([\n ])([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)?[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $text);
  }
  return substr($text, 1, -1);
}

function replace_badwords($text) {
  global $config, $split_badwords;
  if ($config['badword_list'] != "") {
    if (!isset($split_badwords)) {
      $badwords = trim($config['badword_list']);
      $badwords = preg_replace("/[\n\r]/is", " ", $badwords);
      $badwords = str_replace(","," ",$badwords);
      $badwords = preg_quote($badwords);
      $badwords = str_replace('/', '\\/', $badwords);
      $split_badwords = preg_split("/\s+/", $badwords);
    }

    foreach ($split_badwords as $key => $val) {
      if ($val != "") {
        if (substr($val, 0, 2) == "\\{") {
          $val = substr($val, 2, -2);
          $text = trim(preg_replace("/([^A-Za-z])".$val."(?=[^A-Za-z])/si", "\\1".str_repeat($config['badword_replace_char'], strlen($val)), " $text "));
        }
        else {
          $text = trim(preg_replace("/$val/si", str_repeat($config['badword_replace_char'], strlen($val)), " $text "));
        }
      }
    }
  }
  return $text;
}

function format_text($text, $html = 0, $word_wrap = 0, $bbcode = 0, $bbcode_img = 0) {
  if ($word_wrap && $text != "") {
    $text = preg_replace("/([^\n\r ?&\.\/<>\"\\-]{".$word_wrap."})/i", " \\1\n", $text);
  }

  if ($html == 0 || $html == 2) {
    $text = safe_htmlspecialchars($text);
  }

  if ($html !== 2) {
    $text = nl2br(trim($text));
    $text = replace_url($text);
  }

  if ($bbcode == 1) {
    $search_array = array(
      "/(\[)(list)(=)(['\"]?)([^\"']*)(\\4])(.*)(\[\/list)(((=)(\\4)([^\"']*)(\\4]))|(\]))/siU",
      "/(\[)(list)(])(.*)(\[\/list\])/siU",
      "/(\[\*\])/siU",
      "/(\[\/\*\])/siU",
      "/(\[)(url)(=)(['\"]?)(www\.)([^\"']*)(\\4])(.*)(\[\/url\])/siU",
      "/(\[)(url)(=)(['\"]?)([^\"']*)(\\4])(.*)(\[\/url\])/siU",
      "/(\[)(url)(])(www\.)([^\"]*)(\[\/url\])/siU",
      "/(\[)(url)(])([^\"]*)(\[\/url\])/siU",
      "/(\[)(code)(])(\r\n)*(.*)(\[\/code\])/siU",
      "/javascript:/si",
      "/about:/si"
    );
    $replace_array = array(
      "<ol type=\"\\5\">\\7</ol>",
      "<ul>\\4</ul>",
      "<li>",
      "</li>",
      "<a href=\"http://www.\\6\" target=\"_blank\" rel=\"nofollow\">\\8</a>",
      "<a href=\"\\5\" target=\"_blank\" rel=\"nofollow\">\\7</a>",
      "<a href=\"http://www.\\5\" target=\"_blank\" rel=\"nofollow\">www.\\5</a>",
      "<a href=\"\\4\" target=\"_blank\" rel=\"nofollow\">\\4</a>",
      "<pre>Code:<hr size=1>\\5<hr size=1></pre>",
      "java script:",
      "about :"
    );
    $text = preg_replace($search_array, $replace_array, $text);
    if (!$bbcode_img)  {
      $text = preg_replace("/(\[)(img)(])(\r\n)*([^\"]*)(\[\/img\])/siU", "<a href=\"\\5\" target=\"_blank\">\\5</a>", $text);
    }
    else  {
      $text = preg_replace("/(\[)(img)(])(\r\n)*([^\"]*)(\[\/img\])/siU", "<img src=\"\\5\">", $text);
    }
    $text = preg_replace("/(\[)(b)(])(\r\n)*([^\"]*)(\[\/b\])/siU", "<b>\\5</b>", $text);
    $text = preg_replace("/(\[)(i)(])(\r\n)*([^\"]*)(\[\/i\])/siU", "<i>\\5</i>", $text);
    $text = preg_replace("/(\[)(u)(])(\r\n)*([^\"]*)(\[\/u\])/siU", "<u>\\5</u>", $text);

    $text = replace_badwords($text);
  }

  $text = str_replace("\\'", "'", $text);

  return $text;
}

function utf8_to_htmlentities($source) {
  // array used to figure what number to decrement from character order
  // value
  // according to number of characters used to map unicode to ascii by
  // utf-8
  $decrement = array();
  $decrement[4] = 240;
  $decrement[3] = 224;
  $decrement[2] = 192;
  $decrement[1] = 0;

  // the number of bits to shift each charNum by
  $shift = array();
  $shift[1][0] = 0;
  $shift[2][0] = 6;
  $shift[2][1] = 0;
  $shift[3][0] = 12;
  $shift[3][1] = 6;
  $shift[3][2] = 0;
  $shift[4][0] = 18;
  $shift[4][1] = 12;
  $shift[4][2] = 6;
  $shift[4][3] = 0;

  $pos = 0;
  $len = strlen($source);
  $str = '';
  while ($pos < $len) {
    $asciiPos = ord(substr($source, $pos, 1));
    if (($asciiPos >= 240) && ($asciiPos <= 255)) {
      // 4 chars representing one unicode character
      $thisLetter = substr($source, $pos, 4);
      $pos += 4;
    }
    elseif (($asciiPos >= 224) && ($asciiPos <= 239)) {
      // 3 chars representing one unicode character
      $thisLetter = substr($source, $pos, 3);
      $pos += 3;
    }
    else if (($asciiPos >= 192) && ($asciiPos <= 223)) {
      // 2 chars representing one unicode character
      $thisLetter = substr($source, $pos, 2);
      $pos += 2;
    }
    else {
      // 1 char (lower ascii)
      $thisLetter = substr($source, $pos, 1);
      $pos += 1;
    }

    // process the string representing the letter to a unicode entity
    $thisLen = strlen($thisLetter);
    $thisPos = 0;
    $decimalCode = 0;

    while ($thisPos < $thisLen) {
      $thisCharOrd = ord(substr($thisLetter, $thisPos, 1));
      if ($thisPos == 0) {
        $charNum = intval($thisCharOrd - $decrement[$thisLen]);
        $decimalCode += ($charNum << $shift[$thisLen][$thisPos]);
      } else {
        $charNum = intval($thisCharOrd - 128);
        $decimalCode += ($charNum << $shift[$thisLen][$thisPos]);
      }
      $thisPos++;
    }
    if (($thisLen == 1) && ($decimalCode <= 128)) {
      $encodedLetter = $thisLetter;
    }
    else {
      $encodedLetter = '&#' . $decimalCode . ';';
    }
    $str .= $encodedLetter;
  }
  return $str;
}

function uni_to_utf8($char) {
  $char = intval($char);

  switch ($char) {
    case ($char < 128) :
      // its an ASCII char no encoding needed
      return chr($char);

    case ($char < 1 << 11) :
      // its a 2 byte UTF-8 char
      return chr(192 + ($char >> 6)) .
             chr(128 + ($char & 63));

    case ($char < 1 << 16) :
      // its a 3 byte UTF-8 char
      return chr(224 + ($char >> 12)) .
             chr(128 + (($char >> 6) & 63)) .
             chr(128 + ($char & 63));

    case ($char < 1 << 21) :
      // its a 4 byte UTF-8 char
      return chr(240 + ($char >> 18)) .
             chr(128 + (($char >> 12) & 63)) .
             chr(128 + (($char >>  6) & 63)) .
             chr(128 + ($char & 63));

    case ($char < 1 << 26) :
      // its a 5 byte UTF-8 char
      return chr(248 + ($char >> 24)) .
             chr(128 + (($char >> 18) & 63)) .
             chr(128 + (($char >> 12) & 63)) .
             chr(128 + (($char >> 6) & 63)) .
             chr(128 + ($char & 63));
    default:
      // its a 6 byte UTF-8 char
      return chr(252 + ($char >> 30)) .
             chr(128 + (($char >> 24) & 63)) .
             chr(128 + (($char >> 18) & 63)) .
             chr(128 + (($char >> 12) & 63)) .
             chr(128 + (($char >> 6) & 63)) .
             chr(128 + ($char & 63));
  }
}

function get_user_info($user_id = 0) {
  global $site_db, $user_table_fields;
  $user_info = 0;
  if ($user_id != 0 && $user_id != GUEST) {
    $sql = "SELECT *
            FROM ".USERS_TABLE."
            WHERE ".get_user_table_field("", "user_id")." = $user_id";
    if ($user_info = $site_db->query_firstrow($sql)) {
      foreach ($user_table_fields as $key => $val) {
        if (isset($user_info[$val])) {
          $user_info[$key] = $user_info[$val];
        }
        elseif (!isset($user_info[$key])) {
          $user_info[$key] = "";
        }
      }
    }
  }
  return $user_info;
}

function get_icq_status($uin) {
  if (!is_numeric($uin)) return false;

  $fp = @fsockopen('status.icq.com', 80, $errno, $errstr, 8);
  if (!$fp) return false;

  $request = "HEAD /online.gif?icq=$uin&img=3 HTTP/1.0\r\n"
            ."Host: status.icq.com\r\n"
            ."Connection: close\r\n\r\n";
  fputs($fp, $request);

  do {
     $response = fgets($fp, 1024);
  }
  while (!feof($fp) && !stristr($response, 'Location'));

  fclose($fp);
  if (strstr($response, 'online1')) return 'online';
  if (strstr($response, 'online0')) return 'offline';
  if (strstr($response, 'online2')) return 'disabled';
  return FALSE;
}

function add_to_lightbox($id) {
  global $user_info, $site_db;
  $id = intval($id);
  if (!$id) {
    return false;
  }
  $lightbox_ids = $user_info['lightbox_image_ids'];
  $lightbox_array = ex

manurom

  • Guest
Re: Récupérer code comme ImageShack
« Reply #1 on: November 23, 2006, 05:53:08 PM »
Bonjour;
je vois que le javascript appelant postit.php est entre les tags {if user_loggedin} et {endif user_loggedin}, et qu'il ne peut donc être vu que par les membres authentifiés.
Est-ce que tu es loggé, dans le deuxième cas?

Offline Ayreon

  • Pre-Newbie
  • Posts: 3
    • View Profile
Re: Récupérer code comme ImageShack
« Reply #2 on: November 23, 2006, 06:08:09 PM »
Bonjour;
je vois que le javascript appelant postit.php est entre les tags {if user_loggedin} et {endif user_loggedin}, et qu'il ne peut donc être vu que par les membres authentifiés.
Est-ce que tu es loggé, dans le deuxième cas?

Oui effectivement, je suis loggé

Par ailleurs, désolé si je n'ai pas signalé l'info plus tôt, mais effectivement, après avoir supprimé les apostrophes dans les titres, cela fonctionne.
Y aurait-il donc une soluce afin de palier à ce pb ?
Car lorsqu'on est habitué à écrire en utilisant les apostrophes, le réflexe de ne pas les mettre n'est pas automatique.

Merci manurom d'avoir donné une piste.

Cordialement

manurom

  • Guest
Re: Récupérer code comme ImageShack
« Reply #3 on: November 23, 2006, 07:25:50 PM »
Re-bonjour;
personnellement, quand je veux exploiter mes images dans des forums utilisant BB Code, j'utilise de préférence ça: http://www.4homepages.de/forum/index.php?topic=4907.msg20807#msg20807

Une fois les modifications faites dans includes/functions.php, j'insère le formulaire suivant sous mes images dans le fichier details.html de mon template:
Code: [Select]
<form>
          <p align="center" class="smallfont"><strong>BB Codes pour le forum:</strong><br />
              <input name="url_bbcode" type="text" class="smallfont" onFocus="this.select();" value="[URL]{image_path}[/URL]" size="40" readonly>
              <br>
              <input type="button" name="clipboard" value="BBcode Thumbnail à copier / coller dans vos messages sur les forums" onClick="javascript:this.form.url_bbcode.focus();this.form.url_bbcode.select();">
          </p>
        </form>

Je pense que cette portion de code peut être encadrée des tags {if user_loggedin} et {endif user_loggedin} si tu désires que seuls les membres enregistrés voient cette modif.
A éviter:
Code: [Select]
<input name="url_bbcode" type="text" class="smallfont" onFocus="this.select();" value="[URL][IMG]{image_path}[/IMG][/URL]" size="40" readonly>Car si ton site a du succès (ce que je te souhaite ardemment), ce sera au détriment de ta bande passante.
Dans tous les cas, amicalement à ta disposition.
« Last Edit: November 23, 2006, 08:13:20 PM by manurom »

Offline Ayreon

  • Pre-Newbie
  • Posts: 3
    • View Profile
Re: Récupérer code comme ImageShack
« Reply #4 on: November 23, 2006, 07:44:21 PM »
Je te remercie vivement pour tes précieuses infos manurom !
Je teste cela dès demain et je te tiens au couarnt.

Cordialement

Ayreon