Changeset 27336 for trunk/include/functions.inc.php
- Timestamp:
- Feb 11, 2014, 10:47:44 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/functions.inc.php
r27158 r27336 1 <?php 1 <?php 2 2 // +-----------------------------------------------------------------------+ 3 3 // | Piwigo - a PHP based photo gallery | … … 482 482 return $date1->diff($date2); 483 483 } 484 484 485 485 $diff = new stdClass(); 486 486 487 487 //Make sure $date1 is ealier 488 488 $diff->invert = $date2 < $date1; … … 491 491 list($date1, $date2) = array($date2, $date1); 492 492 } 493 493 494 494 //Calculate R values 495 495 $R = ($date1 <= $date2 ? '+' : '-'); … … 525 525 $date1->modify('-1 '.$period); 526 526 } 527 527 528 528 list($diff->y, $diff->m, $diff->d, $diff->h) = array_values($periods); 529 529 … … 532 532 $diff->i = floor($diff->s/60); 533 533 $diff->s = $diff->s - $diff->i*60; 534 534 535 535 return $diff; 536 536 } … … 570 570 $tok = strtok('- :/'); 571 571 } 572 572 573 573 if (count($ymdhms)<3) return false; 574 574 if (!isset($ymdhms[3])) $ymdhms[3] = 0; 575 575 if (!isset($ymdhms[4])) $ymdhms[4] = 0; 576 576 if (!isset($ymdhms[5])) $ymdhms[5] = 0; 577 577 578 578 $date = new DateTime(); 579 579 $date->setDate($ymdhms[0], $ymdhms[1], $ymdhms[2]); … … 596 596 { 597 597 global $lang; 598 598 599 599 $date = str2DateTime($original, $format); 600 600 … … 609 609 $print.= $lang['day'][ $date->format('w') ].' '; 610 610 } 611 611 612 612 $print.= $date->format('j'); 613 613 $print.= ' '.$lang['month'][ $date->format('n') ]; 614 614 $print.= ' '.$date->format('Y'); 615 615 616 616 if ($show_time) 617 617 { … … 644 644 return l10n('N/A'); 645 645 } 646 646 647 647 $now = new DateTime(); 648 648 $diff = dateDiff($now, $date); 649 649 650 650 $chunks = array( 651 651 'year' => $diff->y, … … 657 657 'second' => $diff->s, 658 658 ); 659 659 660 660 // DateInterval does not contain the number of weeks 661 661 if ($with_week) … … 664 664 $chunks['day'] = $chunks['day'] - $chunks['week']*7; 665 665 } 666 666 667 667 $j = array_search($stop, array_keys($chunks)); 668 668 669 669 $print = ''; $i=0; 670 670 foreach ($chunks as $name => $value) … … 680 680 $i++; 681 681 } 682 682 683 683 $print = trim($print); 684 684 685 685 if ($with_text) 686 686 { … … 934 934 WHERE user_id = '.$user['id'].' 935 935 ;'; 936 $in_caddie = array_from_query($query, 'element_id');936 $in_caddie = query2array($query, null, 'element_id'); 937 937 938 938 $caddiables = array_diff($elements_id, $in_caddie); … … 1043 1043 * returns a string formated with l10n elements. 1044 1044 * it is usefull to "prepare" a text and translate it later 1045 * @see get_l10n_args() 1045 * @see get_l10n_args() 1046 1046 * 1047 1047 * @param array $key_args one l10n_args element or array of l10n_args elements … … 1153 1153 $conf[ $row['param'] ] = $val; 1154 1154 } 1155 1155 1156 1156 trigger_action('load_conf', $condition); 1157 1157 } … … 1166 1166 { 1167 1167 $query = ' 1168 SELECT 1169 param, 1170 value 1168 SELECT param 1171 1169 FROM '.CONFIG_TABLE.' 1172 1170 WHERE param = \''.$param.'\' 1173 1171 ;'; 1174 $params = array_from_query($query, 'param');1172 $params = query2array($query, null, 'param'); 1175 1173 1176 1174 if (count($params) == 0) … … 1204 1202 { 1205 1203 global $conf; 1206 1204 1207 1205 if (!is_array($params)) 1208 1206 { … … 1213 1211 return; 1214 1212 } 1215 1213 1216 1214 $query = ' 1217 1215 DELETE FROM '.CONFIG_TABLE.' … … 1219 1217 ;'; 1220 1218 pwg_query($query); 1221 1219 1222 1220 foreach ($params as $param) 1223 1221 { … … 1245 1243 1246 1244 /** 1247 * Builds an data array from a SQL query.1248 * Depending on $key_name and $value_name it can return :1249 *1250 * - an array of arrays of all fields (key=null, value=null)1251 * array(1252 * array('id'=>1, 'name'=>'DSC8956', ...),1253 * array('id'=>2, 'name'=>'DSC8957', ...),1254 * ...1255 * )1256 *1257 * - an array of a single field (key=null, value='...')1258 * array('DSC8956', 'DSC8957', ...)1259 *1260 * - an associative array of array of all fields (key='...', value=null)1261 * array(1262 * 'DSC8956' => array('id'=>1, 'name'=>'DSC8956', ...),1263 * 'DSC8957' => array('id'=>2, 'name'=>'DSC8957', ...),1264 * ...1265 * )1266 *1267 * - an associative array of a single field (key='...', value='...')1268 * array(1269 * 'DSC8956' => 1,1270 * 'DSC8957' => 2,1271 * ...1272 * )1273 *1274 * @since 2.61275 *1276 * @param string $query1277 * @param string $key_name1278 * @param string $value_name1279 * @return array1280 */1281 function query2array($query, $key_name=null, $value_name=null)1282 {1283 $result = pwg_query($query);1284 $data = array();1285 1286 while ($row = pwg_db_fetch_assoc($result))1287 {1288 if (isset($value_name))1289 {1290 $value = $row[ $value_name ];1291 }1292 else1293 {1294 $value = $row;1295 }1296 if (isset($key_name))1297 {1298 $data[ $row[$key_name] ] = $value;1299 }1300 else1301 {1302 $data[] = $value;1303 }1304 }1305 1306 return $data;1307 }1308 1309 /**1310 1245 * creates an simple hashmap based on a SQL query. 1311 1246 * choose one to be the key, another one to be the value. … … 1369 1304 while ($row = pwg_db_fetch_assoc($result)) 1370 1305 { 1371 $array[] = $row; 1306 $array[] = $row; 1372 1307 } 1373 1308 } … … 1494 1429 { 1495 1430 global $user, $language_files; 1496 1431 1497 1432 if ( !empty($dirname) and !empty($filename) ) 1498 1433 { … … 1574 1509 if ( !isset($lang) ) $lang=array(); 1575 1510 if ( !isset($lang_info) ) $lang_info=array(); 1576 1511 1577 1512 $parent_language = !empty($load_lang_info['parent']) ? $load_lang_info['parent'] : ( 1578 1513 !empty($lang_info['parent']) ? $lang_info['parent'] : null ); … … 2066 2001 list($user['nb_available_comments']) = pwg_db_fetch_row(pwg_query($query)); 2067 2002 2068 single_update(USER_CACHE_TABLE, 2003 single_update(USER_CACHE_TABLE, 2069 2004 array('nb_available_comments'=>$user['nb_available_comments']), 2070 2005 array('user_id'=>$user['id']) … … 2087 2022 { 2088 2023 $replace_chars = create_function('$m', 'return ord(strtolower($m[1]));'); 2089 2024 2090 2025 // add dot before groups of letters (version_compare does the same thing) 2091 2026 $a = preg_replace('#([0-9]+)([a-z]+)#i', '$1.$2', $a); 2092 2027 $b = preg_replace('#([0-9]+)([a-z]+)#i', '$1.$2', $b); 2093 2028 2094 2029 // apply ord() to any single letter 2095 2030 $a = preg_replace_callback('#\b([a-z]{1})\b#i', $replace_chars, $a); 2096 2031 $b = preg_replace_callback('#\b([a-z]{1})\b#i', $replace_chars, $b); 2097 2032 2098 2033 if (empty($op)) 2099 2034 {
Note: See TracChangeset
for help on using the changeset viewer.