Changeset 647 for trunk/admin/include
- Timestamp:
- Dec 18, 2004, 11:05:30 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/admin/include/functions.php
r642 r647 392 392 } 393 393 394 // The check_favorites function deletes all the favorites of a user if he is395 // not allowed to see them (the category or an upper category is restricted396 // or invisible)397 function check_favorites( $user_id )398 {399 $query = 'SELECT status,forbidden_categories';400 $query.= ' FROM '.USERS_TABLE;401 $query.= ' WHERE id = '.$user_id;402 $query.= ';';403 $row = mysql_fetch_array( pwg_query( $query ) );404 $status = $row['status'];405 // retrieving all the restricted categories for this user406 if ( isset( $row['forbidden_categories'] ) )407 $restricted_cat = explode( ',', $row['forbidden_categories'] );408 else409 $restricted_cat = array();410 // retrieving all the favorites for this user and comparing their411 // categories to the restricted categories412 $query = 'SELECT image_id FROM '.FAVORITES_TABLE;413 $query.= ' WHERE user_id = '.$user_id;414 $query.= ';';415 $result = pwg_query ( $query );416 while ( $row = mysql_fetch_array( $result ) )417 {418 // for each picture, we have to check all the categories it belongs419 // to. Indeed if a picture belongs to category_1 and category_2 and that420 // category_2 is not restricted to the user, he can have the picture as421 // favorite.422 $query = 'SELECT DISTINCT(category_id) as category_id';423 $query.= ' FROM '.PREFIX_TABLE.'image_category';424 $query.= ' WHERE image_id = '.$row['image_id'];425 $query.= ';';426 $picture_result = pwg_query( $query );427 $picture_cat = array();428 while ( $picture_row = mysql_fetch_array( $picture_result ) )429 {430 array_push( $picture_cat, $picture_row['category_id'] );431 }432 if ( count( array_diff( $picture_cat, $restricted_cat ) ) == 0 )433 {434 $query = 'DELETE FROM '.FAVORITES_TABLE;435 $query.= ' WHERE image_id = '.$row['image_id'];436 $query.= ' AND user_id = '.$user_id;437 $query.= ';';438 pwg_query( $query );439 }440 }441 }442 443 394 /** 444 395 * updates calculated informations about a set of categories : date_last and … … 480 431 { 481 432 $query.= ' 482 WHERE id IN ('. implode(',', $ids).')';433 WHERE id IN ('.wordwrap(implode(', ', $ids), 80, "\n").')'; 483 434 } 484 435 } … … 503 454 MAX(date_available) AS date_last 504 455 FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id 505 WHERE category_id IN ('. implode(',', $cat_ids).')456 WHERE category_id IN ('.wordwrap(implode(', ', $cat_ids), 80, "\n").') 506 457 GROUP BY category_id 507 458 ;'; … … 543 494 ON id = category_id AND representative_picture_id = image_id 544 495 WHERE representative_picture_id IS NOT NULL 545 AND id IN ('. implode(',', $cat_ids).')496 AND id IN ('.wordwrap(implode(', ', $cat_ids), 80, "\n").') 546 497 AND category_id IS NULL 547 498 ;';
Note: See TracChangeset
for help on using the changeset viewer.