Changeset 4953


Ignore:
Timestamp:
Feb 23, 2010, 3:38:38 PM (14 years ago)
Author:
plg
Message:

feature 1453 added: ability to check for uniqueness on filename. No change on
the default behavior: uniqueness is set on md5sum.

Location:
branches/2.0
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2.0/include/config_default.inc.php

    r3945 r4953  
    322322// Define using double password type in admin's users management panel
    323323$conf['double_password_type_in_admin'] = false;
     324
     325// how should we check for unicity when adding a photo. Can be 'md5sum' or
     326// 'filename'
     327$conf['uniqueness_mode'] = 'md5sum';
    324328
    325329// +-----------------------------------------------------------------------+
  • branches/2.0/include/ws_functions.inc.php

    r4910 r4953  
    12051205
    12061206  // does the image already exists ?
     1207  if ('md5sum' == $conf['uniqueness_mode'])
     1208  {
     1209    $where_clause = "md5sum = '".$params['original_sum']."'";
     1210  }
     1211  if ('filename' == $conf['uniqueness_mode'])
     1212  {
     1213    $where_clause = "file = '".$params['original_filename']."'";
     1214  }
     1215 
    12071216  $query = '
    12081217SELECT
    12091218    COUNT(*) AS counter
    12101219  FROM '.IMAGES_TABLE.'
    1211   WHERE md5sum = \''.$params['original_sum'].'\'
     1220  WHERE '.$where_clause.'
    12121221;';
    12131222  list($counter) = mysql_fetch_row(pwg_query($query));
     
    15981607function ws_images_exist($params, &$service)
    15991608{
     1609  global $conf;
     1610 
    16001611  if (!is_admin() or is_adviser())
    16011612  {
     
    16031614  }
    16041615
    1605   // search among photos the list of photos already added, based on md5sum
    1606   // list
    1607   $md5sums = preg_split(
    1608     '/[\s,;\|]/',
    1609     $params['md5sum_list'],
    1610     -1,
    1611     PREG_SPLIT_NO_EMPTY
    1612     );
    1613 
    1614   $query = '
     1616  $split_pattern = '/[\s,;\|]/';
     1617
     1618  if ('md5sum' == $conf['uniqueness_mode'])
     1619  {
     1620    // search among photos the list of photos already added, based on md5sum
     1621    // list
     1622    $md5sums = preg_split(
     1623      $split_pattern,
     1624      $params['md5sum_list'],
     1625      -1,
     1626      PREG_SPLIT_NO_EMPTY
     1627    );
     1628
     1629    $query = '
    16151630SELECT
    16161631    id,
     
    16191634  WHERE md5sum IN (\''.implode("','", $md5sums).'\')
    16201635;';
    1621   $id_of_md5 = simple_hash_from_query($query, 'md5sum', 'id');
    1622 
    1623   $result = array();
    1624 
    1625   foreach ($md5sums as $md5sum)
    1626   {
    1627     $result[$md5sum] = null;
    1628     if (isset($id_of_md5[$md5sum]))
    1629     {
    1630       $result[$md5sum] = $id_of_md5[$md5sum];
     1636    $id_of_md5 = simple_hash_from_query($query, 'md5sum', 'id');
     1637
     1638    $result = array();
     1639
     1640    foreach ($md5sums as $md5sum)
     1641    {
     1642      $result[$md5sum] = null;
     1643      if (isset($id_of_md5[$md5sum]))
     1644      {
     1645        $result[$md5sum] = $id_of_md5[$md5sum];
     1646      }
     1647    }
     1648  }
     1649 
     1650  if ('filename' == $conf['uniqueness_mode'])
     1651  {
     1652    // search among photos the list of photos already added, based on
     1653    // filename list
     1654    $filenames = preg_split(
     1655      $split_pattern,
     1656      $params['filename_list'],
     1657      -1,
     1658      PREG_SPLIT_NO_EMPTY
     1659    );
     1660
     1661    $query = '
     1662SELECT
     1663    id,
     1664    file
     1665  FROM '.IMAGES_TABLE.'
     1666  WHERE file IN (\''.implode("','", $filenames).'\')
     1667;';
     1668    $id_of_filename = simple_hash_from_query($query, 'file', 'id');
     1669
     1670    $result = array();
     1671
     1672    foreach ($filenames as $filename)
     1673    {
     1674      $result[$filename] = null;
     1675      if (isset($id_of_filename[$filename]))
     1676      {
     1677        $result[$filename] = $id_of_filename[$filename];
     1678      }
    16311679    }
    16321680  }
  • branches/2.0/ws.php

    r4910 r4953  
    258258    'ws_images_exist',
    259259    array(
    260       'md5sum_list'=> array(),
     260      'md5sum_list'=> array('default' => null),
     261      'filename_list' => array('default' => null),
    261262      ),
    262263    'check existence of a photo list'
Note: See TracChangeset for help on using the changeset viewer.