4images Forum & Community

4images Modifications / Modifikationen => Mods & Plugins (Releases & Support) => Topic started by: Rembrandt on January 07, 2010, 05:19:16 PM

Title: [Mod] Privat Images
Post by: Rembrandt on January 07, 2010, 05:19:16 PM
Mit dieser Modifikation ist es als Admin oder Member möglich, die Befugnisse einzelne Bilder Sichtbar für "Alle", "Registrierte User", "Privat", oder nur "Administratoren" zu setzen.

Big Thank you to *V@no!

Achtung diese Modifikation ist sehr lange. :)

Neu:
je ein neues Datenbankfeld in "Images Table" und "Images Temp Table" dazu speichert euch die datei "install_privat_images.php" aus dem anhang, in euren root und führt sie aus.

Zu Modifzierende Dateien:
1.) admin/images.php
2.) admin/validateimages.php
3.) includes/auth.php
4.) includes/functions.php
5.) includes/session.php
6.) lang/deutsch(englisch)/main.php
7.) root/categories.php
8.) root/details.php
9.) root/global.php
10.) root/index.php
11.) root/member.php
12.) root/search.php
13.) root/top.php
14.) yourtemplates/member_editimage.html
15.) yourtemplates/member_upladform.html


1.) suche in admin/images.php:

if ($action == "") {
  $action = "modifyimages";
}

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
$access_array = array(
  AUTH_ALL => $lang['all'],
  AUTH_USER => $lang['userlevel_registered'],
  AUTH_ACL => $lang['private'],
  AUTH_ADMIN => $lang['userlevel_admin']
);

function show_access_select($title = "", $type, $status, $i) {
  global $access_array, $HTTP_POST_VARS, $i;
  if (isset($HTTP_POST_VARS[$type.'_'.$i])) {
   $status = $HTTP_POST_VARS[$type.'_'.$i];
  }
  echo "<tr class=\"".get_row_bg()."\" valign=\"top\">\n<td><p class=\"rowtitle\">".$title."</p></td>\n";
  if(isset($i)){
  echo "<td>\n<select name=\"image_auth_viewimage_".$i."\">\n";
  }
  elseif(!isset($i)){
  echo "<td>\n<select name=\"image_auth_viewimage\">\n";
  }
  foreach ($access_array as $key => $val) {
    echo "<option value=\"".$key."\"";
    if ($status == $key) {
      echo " selected=\"selected\"";
    }
    echo ">".$val."</option>\n";
  }
  echo "</select>\n</td>\n</tr>\n";
}
//#################################### Mod Privat Images ###################################################################

1.1) suche:

 $image_allow_comments = intval($HTTP_POST_VARS['image_allow_comments']);

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
  $image_auth_viewimage = $HTTP_POST_VARS['image_auth_viewimage'];
//#################################### Mod Privat Images ###################################################################

1.2) suche:

    $sql = "UPDATE ".IMAGES_TABLE."
            SET cat_id = $cat_id, user_id = $user_id, image_name = '$image_name', image_description = '$image_description', image_keywords = '$image_keywords', image_date = $image_date, image_active = $image_active, image_media_file = '$new_name', image_thumb_file = '$new_thumb_name', image_download_url = '$image_download_url', image_allow_comments = $image_allow_comments, image_downloads = $image_downloads, image_votes = $image_votes, image_rating = '$image_rating', image_hits = $image_hits".$additional_sql."
            WHERE image_id = $image_id";

ersetze mit:

//#################################### Mod Privat Images ###################################################################
    $sql = "UPDATE ".IMAGES_TABLE."
            SET cat_id = $cat_id, user_id = $user_id, image_name = '$image_name', image_description = '$image_description', image_keywords = '$image_keywords', image_date = $image_date, image_active = $image_active, image_media_file = '$new_name', image_thumb_file = '$new_thumb_name', image_download_url = '$image_download_url', image_allow_comments = $image_allow_comments, image_downloads = $image_downloads, image_votes = $image_votes, image_rating = '$image_rating', image_hits = $image_hits, image_auth_viewimage = $image_auth_viewimage".$additional_sql."
            WHERE image_id = $image_id";
//#################################### Mod Privat Images ###################################################################

1.3) suche:

show_cat_select_row($lang['field_category'], $image_row['cat_id'], 3);

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
  show_access_select($lang['auth_viewimage'], $key, $image_row['image_auth_viewimage'], $i);
//#################################### Mod Privat Images ###################################################################  

1.4) suche:

$user_id = (intval($HTTP_POST_VARS['user_id_'.$i]) != 0) ? intval($HTTP_POST_VARS['user_id_'.$i]) : $user_info['user_id'];

füge darüber ein:

//#################################### Mod Privat Images ###################################################################
    $image_auth_viewimage = $HTTP_POST_VARS['image_auth_viewimage_'.$i];
//#################################### Mod Privat Images ###################################################################

1.5) suche:

//Upload Image

füge darüber ein ein:

//#################################### Mod Privat Images ###################################################################
      $image_auth_viewimage = $HTTP_POST_VARS['image_auth_viewimage_'.$i];
//#################################### Mod Privat Images ###################################################################

1.6)suche:

$image_allow_comments = trim($HTTP_POST_VARS['image_allow_comments_'.$i]);

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
        $image_auth_viewimage = $HTTP_POST_VARS['image_auth_viewimage_'.$i];
//#################################### Mod Privat Images ###################################################################

1.7) suche:

         $sql = "INSERT INTO ".IMAGES_TABLE."
                (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_active, image_media_file, image_thumb_file, image_download_url, image_allow_comments".$additional_field_sql.")
                VALUES
                ($cat_id, $user_id, '$image_name', '$image_description', '$image_keywords', $current_time, $image_active, '$new_name', '$new_thumb_name', '$image_download_url', $image_allow_comments".$additional_value_sql.")";

ersetze es mit:

//#################################### Mod Privat Images ###################################################################        
        $sql = "INSERT INTO ".IMAGES_TABLE."
                (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_active, image_media_file, image_thumb_file, image_download_url, image_allow_comments, image_auth_viewimage".$additional_field_sql.")
                VALUES
                ($cat_id, $user_id, '$image_name', '$image_description', '$image_keywords', $current_time, $image_active, '$new_name', '$new_thumb_name', '$image_download_url', $image_allow_comments, $image_auth_viewimage".$additional_value_sql.")";
//#################################### Mod Privat Images ###################################################################      

1.8 ) suche:

show_cat_select_row($lang['field_category'], 0, 3, $i);

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
    show_access_select($lang['auth_viewimage'], $key, $val, $i);
//#################################### Mod Privat Images ###################################################################


2.) suche in admin/validateimages.php:

show_admin_header();

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
$access_array = array(
  AUTH_ALL => $lang['all'],
  AUTH_USER => $lang['userlevel_registered'],
  AUTH_ACL => $lang['private'],
  AUTH_ADMIN => $lang['userlevel_admin']
);

function show_access_select($title = "", $type, $status, $i) {
  global $access_array, $HTTP_POST_VARS, $i;
  if (isset($HTTP_POST_VARS[$type.'_'.$i])) {
   $status = $HTTP_POST_VARS[$type.'_'.$i];
  }
  echo "<tr class=\"".get_row_bg()."\" valign=\"top\">\n<td><p class=\"rowtitle\">".$title."</p></td>\n";
  if(isset($i)){
  echo "<td>\n<select name=\"image_auth_viewimage_".$i."\">\n";
  }
  elseif(!isset($i)){
  echo "<td>\n<select name=\"image_auth_viewimage\">\n";
  }
  foreach ($access_array as $key => $val) {
    echo "<option value=\"".$key."\"";
    if ($status == $key) {
      echo " selected=\"selected\"";
    }
    echo ">".$val."</option>\n";
  }
  echo "</select>\n</td>\n</tr>\n";
}
//#################################### Mod Privat Images ###################################################################

2.1) suche:

$user_id = (intval($HTTP_POST_VARS['user_id']) != 0) ? intval($HTTP_POST_VARS['user_id']) : $user_info['user_id'];

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
$image_auth_viewimage = ($HTTP_POST_VARS['image_auth_viewimage']);
//#################################### Mod Privat Images ###################################################################

2.2) suche:

$sql = "UPDATE ".IMAGES_TEMP_TABLE."
        SET cat_id = $cat_id, user_id = $user_id, image_name = '$image_name', image_description = '$image_description', image_keywords = '$image_keywords', image_date = $image_date, image_media_file = '$new_name', image_thumb_file = '$new_thumb_name', image_download_url = '$image_download_url'".$additional_sql."
        WHERE image_id = $image_id";

ersetze es mit:

//#################################### Mod Privat Images ###################################################################
$sql = "UPDATE ".IMAGES_TEMP_TABLE."
        SET cat_id = $cat_id, user_id = $user_id, image_name = '$image_name', image_description = '$image_description', image_keywords = '$image_keywords', image_date = $image_date, image_media_file = '$new_name', image_thumb_file = '$new_thumb_name', image_download_url = '$image_download_url', image_auth_viewimage = '$image_auth_viewimage'".$additional_sql."
        WHERE image_id = $image_id";
//#################################### Mod Privat Images ###################################################################

2.3)suche:

show_user_select_row($lang['user'], $image_row['user_id']);

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
show_access_select($lang['auth_viewimage'], $key, $image_row['image_auth_viewimage'], $i);
//#################################### Mod Privat Images ###################################################################  

2.4) suche:

$image_download_url = addslashes($image_cache[$key]['image_download_url']);

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
      $image_auth_viewimage = $image_cache[$key]['image_auth_viewimage'];
//#################################### Mod Privat Images ###################################################################

2.5)suche:

$sql = "INSERT INTO ".IMAGES_TABLE."
                  (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_media_file, image_thumb_file, image_download_url".$additional_field_sql.")
                  VALUES
                  ($cat_id, $user_id, '$image_name', '$image_description', '$image_keywords', $current_time, '$new_name', '$new_thumb_name', '$image_download_url'".$additional_value_sql.")";

ersetze es mit:

//#################################### Mod Privat Images ###################################################################
$sql = "INSERT INTO ".IMAGES_TABLE."
        (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_media_file, image_thumb_file, image_download_url,image_auth_viewimage".$additional_field_sql.")
        VALUES
        ($cat_id, $user_id, '$image_name', '$image_description', '$image_keywords', $current_time, '$new_name', '$new_thumb_name', '$image_download_url','$image_auth_viewimage'".$additional_value_sql.")";
//#################################### Mod Privat Images ###################################################################


3.) suche in includes/auth.php:

?>

füge darüber ein:

//#################################### Mod Privat Images ###################################################################
function get_image_permission(){
global $site_db, $user_info, $user_image_access;

if (isset($user_image_access) && !empty($user_image_access))
    return $user_image_access;

$user_image_access = array();
 // if ($user_info['user_id'] != 0 && $user_info['user_level'] != GUEST && $user_info['user_level'] != USER_AWAITING) {
    $current_time = time();
    $sql = "SELECT image_id, user_id,image_auth_viewimage
            FROM ".IMAGES_TABLE."
            WHERE user_id <> ".$user_info['user_id']." AND image_auth_viewimage <> 0
            ";
    $result = $site_db->query($sql);
    while ($row = $site_db->fetch_array($result)) {
      $user_image_access[$row['image_id']] = $row;
     }
   return $user_image_access;
 }

function check_image_permission($type,$image_id) {
global $site_db, $user_info, $user_image_access;
/*  if (!isset($image_id[$type])) {
    return false;
    echo "return false";
  }   */
if ($user_image_access[$image_id][$type] == AUTH_ALL || $user_info['user_level'] == ADMIN) {
    return true;
    echo "return true";
  }
  elseif ($user_image_access[$image_id][$type] == AUTH_USER && ($user_info['user_level'] != GUEST && $user_info['user_level'] != USER_AWAITING)) {
    return true;
    echo "return true";
  }
  elseif ($user_image_access[$image_id][$type] == AUTH_ADMIN && $user_info['user_level'] != ADMIN) {
    return false;
    echo "return false";
  }
  elseif ($user_image_access[$image_id][$type] == AUTH_ACL && ($user_info['user_level'] != GUEST && $user_info['user_level'] != USER_AWAITING)) {
    /* if (isset($user_image_access[$image_id])) {
      for ($i = 0; $i < sizeof($user_image_access[$image_id]); $i++) {
        if (isset($user_image_access[$image_id][$i][$type]) &&  $user_image_access[$image_id][$i][$type] == 1) {
 */          return false;
          echo "return true";
    //}
   //}
  //}
  }
  return false;
  echo "return false";  
}

function get_auth_image_sql($type, $mode = "IN") {
  global $auth_image_sql, $user_image_access;
  if (!empty($auth_image_sql[$type][$mode])) {
    return $auth_image_sql[$type][$mode];
  }
  $auth_image_sql[$type]['IN'] = 0;
  $auth_image_sql[$type]['NOTIN'] = 0;
  foreach ($user_image_access as $key => $val) {
    if (!check_image_permission($type, $key)) {
      $auth_image_sql[$type]['NOTIN'] .= ", ".$key;
    }
    else {
      $auth_image_sql[$type]['IN'] .= ", ".$key;
    }
  }
  return $auth_image_sql[$type][$mode];
}
//#################################### Mod Privat Images ###################################################################


4.) suche in includes/functions.php:

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

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
$image_id_sql = get_auth_image_sql("image_auth_viewimage", "NOTIN");
//#################################### Mod Privat Images ###########################################

4.1) suche:

$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()";

und ersetze es mit:

//#################################### Mod Privat Images ###################################################################
$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 AND i.image_id NOT IN ($image_id_sql)
            ORDER BY RAND()";
//#################################### Mod Privat Images ###################################################################

4.2) suche:

$sql = "SELECT COUNT(*) as total_images
              FROM ".IMAGES_TABLE."
              WHERE image_active = 1 AND cat_id NOT IN ($cat_id_sql)
";

und ersetze es mit:

//#################################### Mod Privat Images ###################################################################
$sql = "SELECT COUNT(*) as total_images
              FROM ".IMAGES_TABLE."
              WHERE image_active = 1 AND cat_id NOT IN ($cat_id_sql) AND image_id NOT IN ($image_id_sql)
";
//#################################### Mod Privat Images ###################################################################

4.3) suche:

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

und ersetze es:

//#################################### Mod Privat Images ###################################################################
$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 AND i.image_id NOT IN ($image_id_sql)
            LIMIT $number, 1";
//#################################### Mod Privat Images ###################################################################


5.) suche in includes/session.php:

?>

füge darüber ein:

//#################################### Mod Privat Images ###########################################
$user_image_access = get_image_permission();
if (defined("GET_CACHES") && empty($cat_cache)) {

 $config['cat_order'] = empty($config['cat_order']) ? 'cat_order, cat_name ASC' : $config['cat_order'];
  $sql = "SELECT cat_id, cat_name, cat_description, cat_parent_id, cat_hits, cat_order, auth_viewcat, auth_viewimage, auth_download, auth_upload, auth_directupload, auth_vote, auth_sendpostcard, auth_readcomment, auth_postcomment
          FROM ".CATEGORIES_TABLE."
          ORDER BY ".$config['cat_order']." " .$config['cat_sort'];
  $result = $site_db->query($sql);

  while ($row = $site_db->fetch_array($result)) {
    $cat_cache[$row['cat_id']] = $row;
    $cat_parent_cache[$row['cat_parent_id']][] = $row['cat_id'];
  }
  $site_db->free_result();

  // --------------------------------------

  $new_cutoff = time() - (60 * 60 * 24 * $config['new_cutoff']);
 
  $sql = "SELECT cat_id, COUNT(image_id) AS new_images
          FROM ".IMAGES_TABLE."
          WHERE image_active = 1 AND image_date >= $new_cutoff
          GROUP BY cat_id";
  $result = $site_db->query($sql);

  while ($row = $site_db->fetch_array($result)) {
    $new_image_cache[$row['cat_id']] = $row['new_images'];
  }
  $site_db->free_result();

  $sql = "SELECT cat_id, COUNT(*) AS num_images
          FROM ".IMAGES_TABLE."
          WHERE image_active = 1 AND image_id NOT IN (".get_auth_image_sql("image_auth_viewimage", "NOTIN").")
          GROUP BY cat_id";
  $result = $site_db->query($sql);

  while ($row = $site_db->fetch_array($result)) {
    $cat_cache[$row['cat_id']]['num_images'] = $row['num_images'];
  }
  $site_db->free_result();
} //end if GET_CACHES
//#################################### Mod Privat Images ###########################################


6.) suche in lang/deutsch(englisch)/main.php:

$lang['userlevel_guest'] = "Gast";

füge darunter ein:

//#################################### Privat Images ###################################################################
$lang['userlevel_all'] = "Alle";
$lang['userlevel_registered'] = "Registrierte User";
$lang['userlevel_private']= "Privat";
$lang['userlevel_admins'] = "Administratoren";
$lang['auth_viewimage'] = "Bilddetails sehen:";
//#################################### Privat Images ###################################################################

Optional english/main.php

//#################################### Privat Images ###################################################################
$lang['userlevel_all'] = "All";
$lang['userlevel_registered'] = "Registered User";
$lang['userlevel_private']= "Privat";
$lang['userlevel_admins'] = "Administratoren";
$lang['auth_viewimage'] = "Show Image detail:";
//#################################### Privat Images ###################################################################


7.) suche in  root/categories.php:

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

ersetze es mit:

//#################################### Privat Images ###################################################################
$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, i.image_auth_viewimage".$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  AND i.image_id NOT IN (".get_auth_image_sql("image_auth_viewimage", "NOTIN").")
        ORDER BY ".$config['image_order']." ".$config['image_sort'].", i.image_id ".$config['image_sort']."
        LIMIT $offset, $perpage ";
//#################################### Privat Images ###################################################################


8.) suche in root/details.php:

$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").get_user_table_field(", u.", "user_email")."
        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_id = $image_id AND i.image_active = 1 AND c.cat_id = i.cat_id";


ersetze es mit:

//#################################### Mod Privat Images ###################################################################
$check_image_auth_viewimage = (check_image_permission("image_auth_viewimage", $image_id)) ? " " : "AND NOT i.image_id = '$image_id'";

$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, i.image_auth_viewimage".$additional_sql.", c.cat_name".get_user_table_field(", u.", "user_name").get_user_table_field(", u.", "user_email")."
        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_id = $image_id AND i.image_active = 1 AND c.cat_id = i.cat_id $check_image_auth_viewimage";
//#################################### Mod Privat Images ###################################################################


9.) suche in  root/global.php:

if (defined("GET_CACHES")) {

und ersetze es mit:

//#################################### Mod Privat Images ###################################################################
 //if (defined("GET_CACHES")) {
if (defined("GET_CACHES") && (defined("IN_CP") || isset($global_get_caches))) {
//#################################### Mod Privat Images ###################################################################


10.) suche in  root/index.php:

$num_new_images = $config['image_cells'];
$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 NOT IN (".get_auth_cat_sql("auth_viewcat", "NOTIN").")
        ORDER BY i.image_date DESC
        LIMIT $num_new_images";

ersetze es mit:

//#################################### Mod Privat Images ###################################################################
$num_new_images = $config['image_cells'];
$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, i.image_auth_viewimage".$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 NOT IN (".get_auth_cat_sql("auth_viewcat", "NOTIN").") AND i.image_id NOT IN (".get_auth_image_sql("image_auth_viewimage", "NOTIN").")
        ORDER BY i.image_date DESC
        LIMIT $num_new_images";
//#################################### Mod Privat Images ###################################################################


11.)suche in root/member.php:
suche im abschnitt: if ($action == "updateimage")

$image_keywords = ereg_replace("( ){2,}", " ", $image_keywords);

füge darunter ein:

//####################################  Mod Privat Image ###################################################################
$image_auth_viewimage = $HTTP_POST_VARS['image_auth_viewimage'];
//#################################### Mod Privat Images ###################################################################

11.1) suche im abschnitt: if ($action == "updateimage")

$sql = "UPDATE ".IMAGES_TABLE."
            SET image_name = '$image_name', image_description = '$image_description', image_keywords = '$image_keywords'".$additional_sql."
            WHERE image_id = $image_id";

ersetze es mit:

//####################################  Mod Privat Image ###################################################################
$sql = "UPDATE ".IMAGES_TABLE."
            SET image_name = '$image_name', image_description = '$image_description', image_keywords = '$image_keywords', image_auth_viewimage = $image_auth_viewimage".$additional_sql."
            WHERE image_id = $image_id";
//####################################  Mod Privat Image ###################################################################

11.2) suche im abschnitt if ($action == "editimage")

  $sql = "SELECT image_id, cat_id, user_id, image_name, image_description, image_keywords, image_allow_comments".$additional_sql."
          FROM ".IMAGES_TABLE."
          WHERE image_id = $image_id";

ersetze es mit:

//#################################### Mod Privat Images ###################################################################
  $sql = "SELECT image_id, cat_id, user_id, image_name, image_description, image_keywords, image_allow_comments, image_auth_viewimage".$additional_sql."
          FROM ".IMAGES_TABLE."
          WHERE image_id = $image_id";
//#################################### Mod Privat Images ###################################################################  

11.3) suche im abschnitt if ($action == "editimage")

$image_allow_comments = (isset($HTTP_POST_VARS['image_allow_comments'])) ? intval($HTTP_POST_VARS['image_allow_comments']) : $image_row['image_allow_comments'];

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
$access_array = array(
  AUTH_ALL => $lang['userlevel_all'],
  AUTH_USER => $lang['userlevel_registered'],
  AUTH_ACL => $lang['userlevel_private'],
  AUTH_ADMIN => $lang['userlevel_admins']
);

  $status = (isset($HTTP_POST_VARS['image_auth_viewimage']))? $HTTP_POST_VARS['image_auth_viewimage'] : $image_row['image_auth_viewimage'];
  $access_select =  "<td class=\"row1\">\n<select class=\"input\" name=\"image_auth_viewimage\">\n";
  foreach ($access_array as $key => $val) {
    $access_select .=  "<option value=\"".$key."\"";
      if ($status == $key) {
        $access_select .= " selected=\"selected\"";
      }
    $access_select .=  ">".$val."</option>\n";
  }
    $access_select .=  "</select>\n</td>\n</tr>\n";
//#################################### Mod Privat Images ###################################################################

11.4) suche im abschnitt if ($action == "editimage")

$site_template->register_vars(array(

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
"access_select" => $access_select,
"auth_viewimage" => $lang['auth_viewimage'],
//#################################### Mod Privat Images ###################################################################

11.5) suche im abschnitt if ($action == "uploadimage")

$image_keywords = ereg_replace("( ){2,}", " ", $image_keywords);

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
  $image_auth_viewimage = $HTTP_POST_VARS['image_auth_viewimage'];
//#################################### Mod Privat Images ###################################################################

11.6) suche im abschnitt if ($action == "uploadimage")

$sql = "INSERT INTO ".IMAGES_TABLE."
                (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_active, image_media_file, image_thumb_file, image_download_url, image_allow_comments".$additional_field_sql.")
                VALUES
                ($cat_id, ".$user_info['user_id'].", '$image_name', '$image_description', '$image_keywords', $current_time, $image_active, '$new_name', '$new_thumb_name', '$image_download_url', $image_allow_comments".$additional_value_sql.")";

ersetze es mit:

//#################################### Mod Privat Images ###################################################################
$sql = "INSERT INTO ".IMAGES_TABLE."
                (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_active, image_media_file, image_thumb_file, image_download_url, image_allow_comments, image_auth_viewimage".$additional_field_sql.")
                VALUES
                ($cat_id, ".$user_info['user_id'].", '$image_name', '$image_description', '$image_keywords', $current_time, $image_active, '$new_name', '$new_thumb_name', '$image_download_url', $image_allow_comments,$image_auth_viewimage".$additional_value_sql.")";
//#################################### Mod Privat Images ###################################################################

11.7) suche im abschnitt if ($action == "uploadimage")

$sql = "INSERT INTO ".IMAGES_TEMP_TABLE."
                (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_media_file, image_thumb_file, image_download_url".$additional_field_sql.")
                VALUES
                ($cat_id, ".$user_info['user_id'].", '$image_name', '$image_description', '$image_keywords', $current_time, '$new_name', '$new_thumb_name', '$image_download_url'".$additional_value_sql.")";

ersetze es mit:

//#################################### Mod Privat Images ###################################################################
$sql = "INSERT INTO ".IMAGES_TEMP_TABLE."
                (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_media_file, image_thumb_file, image_download_url,image_auth_viewimage".$additional_field_sql.")
                VALUES
                ($cat_id, ".$user_info['user_id'].", '$image_name', '$image_description', '$image_keywords', $current_time, '$new_name', '$new_thumb_name', '$image_download_url','$image_auth_viewimage'".$additional_value_sql.")";
//#################################### Mod Privat Images ###################################################################

11.8 ) suche im abschnitt if ($action == "uploadform")

$site_template->register_vars(array(

füge darüber ein:

//#################################### Mod Privat Images ###################################################################
$access_array = array(
  AUTH_ALL => $lang['userlevel_all'],
  AUTH_USER => $lang['userlevel_registered'],
  AUTH_ACL => $lang['userlevel_private'],
  AUTH_ADMIN => $lang['userlevel_admins']
);
  $status = (isset($HTTP_POST_VARS['image_auth_viewimage']))? $HTTP_POST_VARS['image_auth_viewimage'] : $image_row['image_auth_viewimage'];
  $access_select =  "<td class=\"row1\">\n<select class=\"input\" name=\"image_auth_viewimage\">\n";
  foreach ($access_array as $key => $val) {
    $access_select .=  "<option value=\"".$key."\"";
      if ($status == $key) {
        $access_select .= " selected=\"selected\"";
      }
    $access_select .=  ">".$val."</option>\n";
  }
    $access_select .=  "</select>\n</td>\n</tr>\n";
//#################################### Mod Privat Images ###################################################################

11.9.) suche im abschnitt if ($action == "uploadform")

$site_template->register_vars(array(

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
  "access_select" => $access_select,
  "auth_viewimage" => $lang['auth_viewimage'],
//#################################### Mod Privat Images ###################################################################


12.) suche in root/search.php:

if (!empty($sql_where_query)) {
    $sql = "SELECT COUNT(*) AS num_rows_all
            FROM ".IMAGES_TABLE." i
            WHERE i.image_active = 1 $sql_where_query
            $cat_id_sql
";

ersetze es mit:

//#################################### Mod Privat Images ###################################################################
 if (!empty($sql_where_query)) {
    $sql = "SELECT COUNT(*) AS num_rows_all
            FROM ".IMAGES_TABLE." i
            WHERE i.image_active = 1 $sql_where_query
            $cat_id_sql AND i.image_id NOT IN (".get_auth_image_sql("image_auth_viewimage", "NOTIN").")
";
//#################################### Mod Privat Images ###################################################################

12.1) suche:

  $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
          $sql_where_query
          AND c.cat_id = i.cat_id $cat_id_sql
          ORDER BY ".$config['image_order']." ".$config['image_sort'].", image_id ".$config['image_sort']."
          LIMIT $offset, $perpage";

ersetze es mit:

//#################################### Mod Privat Images ###################################################################
  $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.image_id NOT IN (".get_auth_image_sql("image_auth_viewimage", "NOTIN").")
          $sql_where_query
          AND c.cat_id = i.cat_id $cat_id_sql
          ORDER BY ".$config['image_order']." ".$config['image_sort'].", image_id ".$config['image_sort']."
          LIMIT $offset, $perpage";
//#################################### Mod Privat Images ###################################################################


13.) suche in root/top.php:

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

füge darunter ein:

//#################################### Mod Privat Images ###################################################################
$image_id_sql = get_auth_image_sql("image_auth_viewimage", "NOTIN");
//#################################### Mod Privat Images ###################################################################

13.1) suche  4x :

 WHERE i.image_active = 1 AND i.cat_id NOT IN ($cat_id_sql) AND i.cat_id = c.cat_id
        $cat_match_sql

ersetze es mit:

 WHERE i.image_active = 1 AND i.cat_id NOT IN ($cat_id_sql) AND i.cat_id = c.cat_id
        $cat_match_sql AND i.image_id NOT IN ($image_id_sql)


14.)suche in yourtemplates/member_editimage.html:
Code: [Select]
   <textarea name="image_keywords" cols="30" rows="10" wrap="virtual" class="textarea">{image_keywords}</textarea>
  </td>      
</tr>
füge darunter ein:
Code: [Select]
<tr>
  <td class="row1" valign="top"><b>{auth_viewimage}</b></td>
  {access_select}
</tr>

15.) suche in yourtemplates/member_upladform.html:
Code: [Select]
 <textarea cols="30" class="textarea" rows="10" name="image_keywords">{image_keywords}</textarea>
 </td>
</tr>
füge darunter ein:
Code: [Select]
<tr>
  <td class="row1" valign="top"><b>{auth_viewimage}</b></td>
  {access_select}
</tr>

das war es :)

mfg Andi
Title: Re: [Mod] Privat Images
Post by: V@no on January 08, 2010, 01:59:59 AM
Thank you for sharing this mod.

The random image I think can be fixed by replacing your step 4.3 (by the way you missed step 4.2 in the instructions) with:
find
      $sql = "SELECT COUNT(*) as total_images
              FROM ".IMAGES_TABLE."
              WHERE image_active = 1 AND cat_id NOT IN ($cat_id_sql)";


replace with this:
      $sql = "SELECT COUNT(*) as total_images
              FROM ".IMAGES_TABLE."
              WHERE image_active = 1 AND cat_id NOT IN ($cat_id_sql) $image_id_sql";


As of number of images in categories bug - possible solution is to replace in global.php:
if (defined("GET_CACHES") && defined) {

with:
if (defined("GET_CACHES") && (defined("IN_CP") || isset($global_get_caches))) {


Then copy entire section that starts with the line you just replaced (basically the entire code block that creates $cat_cache) to the end of sessions.php and replace first line with:
if (defined("GET_CACHES") && empty($cat_cache)) {


After that do your magic with the auth on the copied code in sessions.php
Title: Re: [Mod] Privat Images
Post by: Rembrandt on January 08, 2010, 08:48:14 AM
Hi!

Thank you for your answer, @V@no.

It works !  :D :D

mfg Andi
Title: Re: [Mod] Privat Images
Post by: V@no on January 08, 2010, 03:01:21 PM
I'm glad it worked :)

A little optimization can be done:
in step 3
above
$user_image_access = array();

insert
  if (isset($user_image_access) && !empty($user_image_access))
    return $user_image_access;


In steps 4,7,8,10,12 you don't need anymore
$user_access = get_image_permission();
it is now included in step 5.
and I'd suggest rewrite steps 4.x a little, because they all are using the same list of "auth" images, store that list into $image_id_sql, but without any extra mysql commands:
$image_id_sql = get_auth_image_sql("image_auth_viewimage", "NOTIN");
Title: Re: [Mod] Privat Images
Post by: Rembrandt on January 08, 2010, 05:18:59 PM
done, I've made the changes in the post, thx again !!  :D
 I'm so glad it works the mod.  :D
Title: Re: [Mod] Privat Images
Post by: Bommel on January 10, 2010, 12:21:24 PM
Hallo allerseits,

zuerst einmal ein Dankeschön für diesen MOD.  :thumbup:

Mir ist aufgefallen dass im Schritt 1.2 der Code, den es zu finden gilt, bereits als "Private MOD" deklariert ist. War etwas irritierend.  :?

Weiterhin trat bei dem Ausführen der install_privat_images.php bei mir ein Fehler auf (siehe Screenshot). Auf dem ersten Blick scheint die MOD korrekt zu funktionieren. Was mir aber jedoch auffällt - man kann als Administrator keine Bilder nachträglich mit entsprechenden Rechten versehen, da man direkt in den Adminbereich geleitet wird! Oder ist da etwa ein Fehler bei mir vorhanden bzw. habe ich etwas übersehen?

Freundliche Grüße, Bommel
Title: Re: [Mod] Privat Images
Post by: Rembrandt on January 10, 2010, 12:50:06 PM
Hi!

@Bommel

bei punkt 1.2 hatte ich es vergessen rauszunehmen.

die install_privat_images.php hättest du im root der galerie ausführen sollen bevor du den code einbaust, was aber letztendlich vollkommend egal ist.

das du als admin direkt in das ACP kommst ist, normal und hat nichts mit dem mod zu tun, wenn du die bildrechte dort nicht ändern kannst b.z.w das feld überhaupt nicht siehst, schau dir punkt 1.3) nochmal an.

mfg Andi
Title: Re: [Mod] Privat Images
Post by: Bommel on January 10, 2010, 01:02:54 PM
Hallo Rembrandt,

danke für die schnelle Antwort. :) Unter Punkt 1.3 kann ich bei mir keinen Fehler erkennen.  :?:

Was aber soeben auch noch aufgetreten ist, wenn ich auf die Top10 gehen will:

Quote
Parse error: syntax error, unexpected T_STRING in /home/WH4448059/wwwroot/top.php on line 53

Es handelt sich dabei um Punkt 13.1, wo 5x ein und derselbe Code ersetzt werden musste. Hast du eine Idee, was da vor sich geht?

Freundliche Grüße, Bommel
Title: Re: [Mod] Privat Images
Post by: Rembrandt on January 10, 2010, 01:06:44 PM
ja sorry es gibt nur 4 davon.
Title: Re: [Mod] Privat Images
Post by: Bommel on January 10, 2010, 01:16:08 PM
Hallo Rembrandt,

nein, es gibt tatsächlich 5 Zeilen wo dieser Code auftaucht. Habe jetzt den ersten in Zeile 53  zurück geändert und es kommt jetzt dieser Fehler:

Quote
Fatal error: Can't use function return value in write context in /home/WH4448059/wwwroot/top.php on line 53

Das Problem mit den Rechte setzen als Administrator hat sich mittlerweile erledigt.

Gruß Bommel
Title: Re: [Mod] Privat Images
Post by: Rembrandt on January 10, 2010, 01:20:16 PM
ok alles klar die zeile 53 darfst du natürlich nicht ändern, das ist die originale:
Code: [Select]
$cat_match_sql = ($cat_id && check_permission("auth_viewcat", $cat_id)) ? "AND i.cat_id = '$cat_id' " : "";
es gibt in der top.php 4 SQL querys und dort drinnen befindet sich
Code: [Select]
cat_match_sql und die ersetzt du mit
Code: [Select]
$cat_match_sql AND i.image_id NOT IN ($image_id_sql)
Title: Re: [Mod] Privat Images
Post by: Bommel on January 10, 2010, 01:26:00 PM
Hallo Rembrandt,

besten Dank.  8) Jetzt funktioniert die Top10 wieder. Mir grauste es schon vor dem kompletten rückgängig machen.  :wink:

Nochmals :thumbup: zu diesem MOD.

Freundliche Grüße, Bommel
Title: Re: [Mod] Privat Images
Post by: Rembrandt on January 10, 2010, 01:27:01 PM
warum willst du es den wieder rückgängig machen?
Title: Re: [Mod] Privat Images
Post by: Bommel on January 10, 2010, 01:31:17 PM
Hallo Rembrandt,

von wollen war keine Rede, mehr von müssen, wenn der Fehler nicht so schnell gefunden wäre. ;)


Freundliche Grüße, Bommel
Title: Re: [Mod] Privat Images
Post by: Rembrandt on January 10, 2010, 01:34:38 PM
ahh... grauste  :D
Title: Re: [Mod] Privat Images
Post by: Bommel on January 11, 2010, 09:11:57 AM
Hallo Rembrandt,

ich habe da mal eine Frage. Die Einstellungen für die Sichtbarkeit weichen ja etwas von der Rechtevergabe des Administrators etwas ab. Insbesondere was die Einstellung privat anbelangt. Hier ist das Bild ja nur für den Besitzer sichtbar.

Kann die MOD um die Eigenschaft erweitert werden, dass Bilder mit Rechte für registrierte Besucher, Privat und Administratoren in der jeweiligen Ansicht gekennzeichnet werden. Z.B. mit einem * (Stern, Asterisk) vor dem Namen oder farblich anders gekennzeichnet? Ich denke, dass dies sowohl für den Administrator als auch für den Besitzer übersichtlicher ist, wenn auf dem ersten Blick erkennbar ist, dass es sich um ein Bild mit speziellen Rechten handelt.

Die etwas komfortablere Variante wäre aus meiner Sicht ein entsprechendes Icon, welches den Status der Rechte wiedergibt. Also Administrator, registrierte Benutzer und Privat.

Freundliche Grüße, Bommel
Title: Re: [Mod] Privat Images
Post by: Rembrandt on January 11, 2010, 05:17:45 PM
...
... Die Einstellungen für die Sichtbarkeit weichen ja etwas von der Rechtevergabe des Administrators etwas ab. Insbesondere was die Einstellung privat anbelangt. Hier ist das Bild ja nur für den Besitzer sichtbar..
was sollte da abweichen?

zu deiner zweiten frage, ...da könnte man sicherlich etwas machen.
Title: Re: [Mod] Privat Images
Post by: Bommel on January 11, 2010, 06:08:00 PM
...was sollte da abweichen?...
In 4Images kann ich als Administrator grundsätzlich bei Bildern die Berechtigung "Privat" für Benutzergruppen und auch für einzelne Benutzer verwenden. In deiner MOD ist die Berechtigung "Privat" eben nur für den betreffenden Benutzer gedacht.

Als ich deine Beschreibung vor der Installation las, da dachte ich deshalb, dass der betreffende Benutzer die Berechtigung ebenso einstellen kann. Also Bild freigegeben für Benutzer1, Benutzer2 usw. Als ich feststellte, dass dem nicht so ist, war ich ein klein wenig irritiert. Aber mittlerweile sehe ich das auch nicht so eng, denn die MOD ist so oder so schon eine enorme Erweiterung. ;)

Freundliche Grüße, Bommel
Title: Re: [Mod] Privat Images
Post by: Rembrandt on January 11, 2010, 07:03:33 PM
...
. In deiner MOD ist die Berechtigung "Privat" eben nur für den betreffenden Benutzer gedacht....
so soll es ja auch sein, privat soll auch privat sein, es soll ein jeder benutzer entscheiden können ob er sein bild eben für alle, - angemeldete user,- privat oder für admins sichtbar sein soll.
das gab es in dieser form noch nicht, wurde aber seit jahren immer wieder gewünscht, und darum habe ich diesen mod gemacht.
Title: Re: [Mod] Privat Images
Post by: cpuswe on January 17, 2010, 07:03:29 PM
Hi!

Is it possible to get a brief description of this mod in english? I asked about a mod that gives a group permissions to a view a single image. V@no showed me this mod but its a bit unclear if the settings applies to a group.

Can you give a group permissions to view a single image and it is hidden for everyone else?
Title: Re: [Mod] Privat Images
Post by: Rembrandt on January 17, 2010, 07:50:23 PM
With this modification, it is possible to set the restriction individual pictures visible for "all","registered user", "Private" or only "Administrators", not for groups.
Title: Re: [Mod] Privat Images
Post by: cpuswe on January 17, 2010, 10:39:37 PM
Ok. Thanks!

If you have a wishlist for this mod, i would like to put group membership access there!

Thanks anyway and great work with this mod!
Title: Re: [Mod] Privat Images
Post by: Hoang on June 20, 2010, 09:14:32 AM
is the MOD at post#1 is updated with V@no optimized code?
Title: Re: [Mod] Privat Images
Post by: Rembrandt on June 20, 2010, 11:16:24 AM
sure, why?
Title: Re: [Mod] Privat Images
Post by: Hoang on June 21, 2010, 08:37:21 AM
sure, why?
Folder which have iamge name A, set to private, and i set image A Visible All, i see any user can edit/delete that image, but can not download it. I want that user can not edit/delete it, but can download that image A only. How can i do?

Thank you very much for this MOD.
Title: Re: [Mod] Privat Images
Post by: Hoang on June 24, 2010, 07:35:14 AM
Can anyone modify this MOD to allow each user download each files ?
Title: Re: [Mod] Privat Images
Post by: Hoang on July 01, 2010, 07:44:20 AM
any guide to make this MOD can set permision on each images, not cat?
Title: Re: [Mod] Privat Images
Post by: Rembrandt on July 01, 2010, 03:34:40 PM
any guide to make this MOD can set permision on each images, not cat?
nice joke  :evil:
Title: Re: [Mod] Privat Images
Post by: Hoang on July 01, 2010, 06:03:38 PM
any guide to make this MOD can set permision on each images, not cat?
nice joke  :evil:

sorry, i mean download permison not view permison!
Title: Re: [Mod] Privat Images
Post by: Rembrandt on July 01, 2010, 06:55:31 PM
...sorry, i mean download permison not view permison!
no.
Title: Re: [Mod] Privat Images
Post by: Hoang on July 24, 2010, 05:25:28 AM
any guide for set files permission on each users?
Title: Re: [Mod] Privat Images
Post by: Rembrandt on July 24, 2010, 06:11:53 AM
any guide for set files permission on each users?
i am not understand your question, mean you to set permission for different users?
Title: Re: [Mod] Privat Images
Post by: Hoang on July 24, 2010, 07:56:56 AM
yes, i mean that i can set visible for user A but invisible for user B

Thank for fast reply!
Title: Re: [Mod] Privat Images
Post by: Rembrandt on July 24, 2010, 08:01:20 AM
no this does not work, this is not practicable.
Title: Re: [Mod] Privat Images
Post by: Hoang on July 24, 2010, 08:41:10 AM
no this does not work, this is not practicable.
Any chance to modify it to meet the requirement?
Thank you!
P/S: I dont see any difference between Private and Adminstrators if set!
Title: Re: [Mod] Privat Images
Post by: ASAD on October 28, 2010, 08:41:00 AM
guten morgen  :D
habe ganze nacht dise private image gemact und am ende bekome fehla

und habe dise untercschied gefunden:
punkt: 11 und 11.5
$image_keywords = ereg_replace("( ){2,}", " ", $image_keywords);     <--->  $image_keywords = preg_replace("/[\n\r]/is", ",", $image_keywords);
 
was habe ich falsch gemacht?
Title: Re: [Mod] Privat Images
Post by: Rembrandt on October 28, 2010, 12:36:50 PM
...habe ganze nacht dise private image gemact und am ende bekome fehla

und habe dise untercschied gefunden:
punkt: 11 und 11.5
$image_keywords = ereg_replace("( ){2,}", " ", $image_keywords);     <--->  $image_keywords = preg_replace("/[\n\r]/is", ",", $image_keywords);


du kanst die betreffenden zeilen aus 11) und 11.5) jeweils unter diese zeile setzen:
Code: [Select]
$image_keywords = implode(',', array_unique(array_filter($image_keywords_arr)));
aber ich denke nicht das dass die ursache deines fehlers ist.
Title: Re: [Mod] Privat Images
Post by: ASAD on October 28, 2010, 07:08:29 PM
...habe ganze nacht dise private image gemact und am ende bekome fehla

und habe dise untercschied gefunden:
punkt: 11 und 11.5
$image_keywords = ereg_replace("( ){2,}", " ", $image_keywords);     <--->  $image_keywords = preg_replace("/[\n\r]/is", ",", $image_keywords);


du kanst die betreffenden zeilen aus 11) und 11.5) jeweils unter diese zeile setzen:
Code: [Select]
$image_keywords = implode(',', array_unique(array_filter($image_keywords_arr)));
aber ich denke nicht das dass die ursache deines fehlers ist.
und was kann das sein? hast du keine idee?
Title: Re: [Mod] Privat Images
Post by: Rembrandt on October 28, 2010, 07:27:13 PM
sorry, stehe heute etwas auf der leitung  :D

hast du die datei aus dem anhang auch ausgeführt?
Title: Re: [Mod] Privat Images
Post by: ASAD on October 28, 2010, 09:07:59 PM
sorry, stehe heute etwas auf der leitung  :D

hast du die datei aus dem anhang auch ausgeführt?

sry,
habe es nicht gemerkt  :D
etzt geht
danke noch mal's
Title: Re: [Mod] Privat Images
Post by: Falken on November 07, 2010, 03:44:15 PM
Hallo Andi,

ja steht er... ;)

Aber nachdem ich nun alle Modifikationen gemacht habe, bekomme ich die folgende Fehlermeldung:

Warning: mysql_num_rows(): 20 is not a valid MySQL result resource in /mnt/web9/63/54/52259954/htdocs/falken-brackel/4images/includes/db_mysql.php on line 116

Ein Fehler in meiner Datenbank?!

Ausserdem werden meine Bilder nicht angezeigt...hängt wahrscheinlich damit zusammen, oder??
Title: Re: [Mod] Privat Images
Post by: Rembrandt on November 07, 2010, 04:28:28 PM
die php datei aus dem anhang hast du ausgeführt?
Title: Re: [Mod] Privat Images
Post by: Falken on November 07, 2010, 04:48:26 PM
Ja, hab ich gemacht. Bevor ich die Änderungen gemacht habe.
Title: Re: [Mod] Privat Images
Post by: Rembrandt on November 07, 2010, 05:40:04 PM
kontrollier nochmal die ganzen änderungen in den SQL abfragen 1.7) 2.2) 2.5) e.t.c
Title: Re: [Mod] Privat Images
Post by: Falken on November 07, 2010, 06:43:57 PM
Fehler gefunden. Ich hatte einen Zeilenumbruch "vergessen".
Title: Re: [Mod] Privat Images
Post by: Rembrandt on November 07, 2010, 06:49:11 PM
 :D ja bei so vielen änderungen übersieht man leicht etwas....
Title: Re: [Mod] Privat Images
Post by: Falken on November 07, 2010, 06:53:33 PM
Sodele, wäre noch ein weiteres "Problem", was wahrscheinlich auch nciht so schwer zu lösen ist: Wo genau lege ich fest, dass als Standartauswahl bei den Bildern nicht "Alle" sondern "Registrierte User" ausgewählt ist. So spare ich mir das ändern bei jedem Bild einzeln.

Ich hoffe ich habs verständlich ausgedrückt...
Title: Re: [Mod] Privat Images
Post by: Rembrandt on November 07, 2010, 07:18:15 PM
wenn mich nicht alles täuscht in schritt '1.)  - 2.) -  11.3) - 11. 8 )
$access_array = array(
...


die reihenfolge des array ändern.
Title: Re: [Mod] Privat Images
Post by: Falken on November 07, 2010, 08:42:32 PM
OK, nun habe ich die Reihenfolge passend geändert, jedoch hatte ich gehofft, dass bei allen Bildern nun statt "Alle" bereits "Registrierte Benutzer" ausgewählt ist, so dass ich nur noch die Bilder ändern muss, die ich "Alle" zur verfügung stellen will.

Wahrscheinlich brauche ich "nur" in der SQL-DB 4images-images die Spalte image_auth_viewimage für alle Bilder auf "2" für "Registrierte Benutzer" ändern, oder??
Title: Re: [Mod] Privat Images
Post by: Rembrandt on November 07, 2010, 08:48:12 PM
..Wahrscheinlich brauche ich "nur" in der SQL-DB 4images-images die Spalte image_auth_viewimage für alle Bilder auf "2" für "Registrierte Benutzer" ändern, oder??
ja
Title: Re: [Mod] Privat Images
Post by: Falken on November 07, 2010, 08:55:57 PM
Gut, das klappte, aber so ganz ist das noch nicht das, was ich mit der Änderung der reihenfolge des Array erreichen wollte. Ich wollte gerne dass dann bei allen neu upgeloadeten Bildern standartmäßig "Registrierte Benutzer" ausgewählt ist und somit auch in der DB automatisch die "2" vorgegeben wird. Sprich immer wenn ich neue Bilder uploade, sei es via FTP oder über die Schnittstelle.

(Ich weiss ich nerve, aber es wäre mir halt wichtig es hinzubekommen)
Title: Re: [Mod] Privat Images
Post by: Rembrandt on November 08, 2010, 07:46:54 AM
Gut, das klappte, aber so ganz ist das noch nicht das, was ich mit der Änderung der reihenfolge des Array erreichen wollte. Ich wollte gerne dass dann bei allen neu upgeloadeten Bildern standartmäßig "Registrierte Benutzer" ausgewählt ist und somit auch in der DB automatisch die "2" vorgegeben wird. Sprich immer wenn ich neue Bilder uploade, sei es via FTP oder über die Schnittstelle.

(Ich weiss ich nerve, aber es wäre mir halt wichtig es hinzubekommen)
kein problem,das kannst du auch in der DB umstellen.
in den feld "image_auth_viewimage" dort im feld "standard" von "0" auf "2", das sollte es gewesen sein.
Title: Re: [Mod] Privat Images
Post by: Falken on November 08, 2010, 01:42:00 PM
Hm, ich habe zwar noch keine zeit gehabt in die DB zu schauen, aber wenn mich meine Schulkenntnisse nicht verlassen haben, definiert sich doch ganz ganze wahrscheinlich global, oder?

Sprich es gibt eine DB XY, in der steht "Alle" -> "0", "Administratoren" -> "1", "Registrierte Benutzer" -> "2", usw.

Wenn ich Dich jetzt richtig verstanden habe, zieht sich die Tabelle "4images_image" in das Feld "image_auth_viewimage" ein Datenfeld das aussagt: "Standart" -> "0" -> "Alle". Mit der UPDATE-Funktion setze ich dieses Feld für alle Datensätze von "0" auf "2". Wenn ich nun einen neuen Datensatz anlege müsste er sich doch eher wieder eine "0" ziehen, denn in einer übergeordneten Tabelle liest er doch aus: "Standart" -> "0". Wäre das dann nicht die Tabelle, auf die ich eigentlich zugreifen müsste?! Sprich dort definieren, dass der Standart nicht mehr "0" sondern "2" sein sollte?
Title: Re: [Mod] Privat Images
Post by: Rembrandt on November 08, 2010, 02:02:59 PM
....

Wenn ich Dich jetzt richtig verstanden habe, zieht sich die Tabelle "4images_image" in das Feld "image_auth_viewimage" ein Datenfeld das aussagt: "Standart" -> "0"
so ist es, erst wenn du im php script sagst "dieses bild "image_auth_viewimage" = 2  dann erst wird auch "2" z.b. beim editieren angezeigt.
 diese "2" steht ja dann in der DB bei dem bild "xy" "image_auth_viewimage" = 2.

wenn du ein neues bild einstellst steht jetzt noch als standard die "0 drinnen", also muß du diesen standard in der DB auf "2" setzen.

Quote
php hat ein neues  Bild, php fragt die DB was soll ich bei "image_auth_viewimage" anzeigen?
 DB einen moment, ah jaa da steht es ja, als standard "image_auth_viewimage" = 0.
darauf hin sagt PHP, ok wenn du sagt es steht bei dir als standard  "image_auth_viewimage" = 0 dort, dann scheibe ich es halt auch hin.
:mrgreen: :mrgreen:

mfg Andi



Title: Re: [Mod] Privat Images
Post by: Falken on November 09, 2010, 09:42:52 AM
Danke, hat alles geklappt. Jetzt kann ich wieder besser arbeiten mit der Galerie... :)