diff --git a/action.php b/action.php index 33ae408ed..d800e4797 100644 --- a/action.php +++ b/action.php @@ -100,6 +100,16 @@ if ( empty($element_info) ) do_error(404, 'Requested id not found'); } +// special download action for admins +$is_admin_download = false; +if (is_admin() and isset($_GET['pwg_token']) and get_pwg_token() == $_GET['pwg_token']) +{ + $is_admin_download = true; + $user['enabled_high'] = true; +} + +$src_image = new SrcImage($element_info); + // $filter['visible_categories'] and $filter['visible_images'] // are not used because it's not necessary (filter <> restriction) $query=' @@ -116,7 +126,7 @@ SELECT id ).' LIMIT 1 ;'; -if ( pwg_db_num_rows(pwg_query($query))<1 ) +if (!$is_admin_download and pwg_db_num_rows(pwg_query($query))<1 ) { do_error(401, 'Access denied'); } @@ -126,9 +136,9 @@ $file=''; switch ($_GET['part']) { case 'e': - if ( !$user['enabled_high'] ) - { - $deriv = new DerivativeImage(IMG_XXLARGE, new SrcImage($element_info)); + if ( $src_image->is_original() and !$user['enabled_high'] ) + {// we have a photo and the user has no access to HD + $deriv = new DerivativeImage(IMG_XXLARGE, $src_image); if ( !$deriv->same_as_source() ) { do_error(401, 'Access denied e'); @@ -206,7 +216,7 @@ $http_headers[] = 'Content-Type: '.$ctype; if (isset($_GET['download'])) { - $http_headers[] = 'Content-Disposition: attachment; filename="'.$element_info['file'].'";'; + $http_headers[] = 'Content-Disposition: attachment; filename="'.htmlspecialchars_decode($element_info['file']).'";'; $http_headers[] = 'Content-Transfer-Encoding: binary'; } else diff --git a/admin.php b/admin.php index ac89babdd..fd97e73ba 100644 --- a/admin.php +++ b/admin.php @@ -174,7 +174,7 @@ $template->assign( 'USERNAME' => $user['username'], 'ENABLE_SYNCHRONIZATION' => $conf['enable_synchronization'], 'U_SITE_MANAGER'=> $link_start.'site_manager', - 'U_HISTORY_STAT'=> $link_start.'stats', + 'U_HISTORY_STAT'=> $link_start.'stats&year='.date('Y').'&month='.date('n'), 'U_FAQ'=> $link_start.'help', 'U_SITES'=> $link_start.'remote_site', 'U_MAINTENANCE'=> $link_start.'maintenance', @@ -219,6 +219,7 @@ SELECT COUNT(*) if ($nb_comments > 0) { $template->assign('NB_PENDING_COMMENTS', $nb_comments); + $page['nb_pending_comments'] = $nb_comments; } } diff --git a/admin/batch_manager.php b/admin/batch_manager.php index e81c59f0a..14c62a557 100644 --- a/admin/batch_manager.php +++ b/admin/batch_manager.php @@ -64,15 +64,15 @@ DELETE FROM '.CADDIE_TABLE.' redirect(get_root_url().'admin.php?page='.$_GET['page']); } - if ('delete_orphans' == $_GET['action']) + if ('delete_orphans' == $_GET['action'] and isset($_GET['nb_orphans_deleted'])) { - $deleted_count = delete_elements(get_orphans(), true); - - if ($deleted_count > 0) + check_input_parameter('nb_orphans_deleted', $_GET, false, '/^\d+$/'); + + if ($_GET['nb_orphans_deleted'] > 0) { $_SESSION['page_infos'][] = l10n_dec( '%d photo was deleted', '%d photos were deleted', - $deleted_count + $_GET['nb_orphans_deleted'] ); redirect(get_root_url().'admin.php?page='.$_GET['page']); @@ -97,14 +97,29 @@ if (isset($_POST['submitFilter'])) if ('duplicates' == $_POST['filter_prefilter']) { + $has_options = false; + + if (isset($_POST['filter_duplicates_checksum'])) + { + $_SESSION['bulk_manager_filter']['duplicates_checksum'] = true; + $has_options = true; + } + if (isset($_POST['filter_duplicates_date'])) { $_SESSION['bulk_manager_filter']['duplicates_date'] = true; + $has_options = true; } if (isset($_POST['filter_duplicates_dimensions'])) { $_SESSION['bulk_manager_filter']['duplicates_dimensions'] = true; + $has_options = true; + } + + if (!$has_options or isset($_POST['filter_duplicates_filename'])) + { + $_SESSION['bulk_manager_filter']['duplicates_filename'] = true; } } } @@ -355,7 +370,17 @@ SELECT case 'duplicates': - $duplicates_on_fields = array('file'); + $duplicates_on_fields = array(); + + if (isset($_SESSION['bulk_manager_filter']['duplicates_filename'])) + { + $duplicates_on_fields[] = 'file'; + } + + if (isset($_SESSION['bulk_manager_filter']['duplicates_checksum'])) + { + $duplicates_on_fields[] = 'md5sum'; + } if (isset($_SESSION['bulk_manager_filter']['duplicates_date'])) { @@ -566,6 +591,7 @@ $manager_link = get_root_url().'admin.php?page=batch_manager&mode='; if (isset($_GET['mode'])) { + check_input_parameter('mode', $_GET, false, '/^(global|unit)$/'); $page['tab'] = $_GET['mode']; } else diff --git a/admin/batch_manager_global.php b/admin/batch_manager_global.php index ba3944abe..374041b9a 100644 --- a/admin/batch_manager_global.php +++ b/admin/batch_manager_global.php @@ -40,11 +40,15 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); check_status(ACCESS_ADMINISTRATOR); +if (!empty($_POST)) +{ + check_pwg_token(); +} + trigger_notify('loc_begin_element_set_global'); check_input_parameter('del_tags', $_POST, true, PATTERN_ID); check_input_parameter('associate', $_POST, false, PATTERN_ID); -check_input_parameter('move', $_POST, false, PATTERN_ID); check_input_parameter('dissociate', $_POST, false, PATTERN_ID); // +-----------------------------------------------------------------------+ @@ -124,6 +128,8 @@ DELETE { if (isset($_POST['del_tags']) and count($_POST['del_tags']) > 0) { + $taglist_before = get_image_tag_ids($collection); + $query = ' DELETE FROM '.IMAGE_TAG_TABLE.' @@ -131,7 +137,11 @@ DELETE AND tag_id IN ('.implode(',', $_POST['del_tags']).') ;'; pwg_query($query); - + + $taglist_after = get_image_tag_ids($collection); + $images_to_update = compare_image_tag_lists($taglist_before, $taglist_after); + update_images_lastmodified($images_to_update); + if (isset($_SESSION['bulk_manager_filter']['tags']) && count(array_intersect($_SESSION['bulk_manager_filter']['tags'], $_POST['del_tags']))) { @@ -173,7 +183,7 @@ DELETE else if ('move' == $action) { - move_images_to_categories($collection, array($_POST['move'])); + move_images_to_categories($collection, array($_POST['associate'])); $_SESSION['page_infos'] = array( l10n('Information data registered in database') @@ -187,7 +197,7 @@ DELETE else if ('no_virtual_album' == $page['prefilter']) { - $category_info = get_cat_info($_POST['move']); + $category_info = get_cat_info($_POST['associate']); if (empty($category_info['dir'])) { $redirect = true; @@ -351,12 +361,13 @@ DELETE { if (isset($_POST['confirm_deletion']) and 1 == $_POST['confirm_deletion']) { - $deleted_count = delete_elements($collection, true); - if ($deleted_count > 0) + // now done with ajax calls, with blocks + // $deleted_count = delete_elements($collection, true); + if (count($collection) > 0) { $_SESSION['page_infos'][] = l10n_dec( '%d photo was deleted', '%d photos were deleted', - $deleted_count + count($collection) ); $redirect_url = get_root_url().'admin.php?page='.$_GET['page']; @@ -451,6 +462,7 @@ $template->assign( 'selection' => $collection, 'all_elements' => $page['cat_elements_id'], 'START' => $page['start'], + 'PWG_TOKEN' => get_pwg_token(), 'U_DISPLAY'=>$base_url.get_query_string_diff(array('display')), 'F_ACTION'=>$base_url.get_query_string_diff(array('cat','start','tag','filter')), ) @@ -686,6 +698,8 @@ SELECT id,path,representative_ext,file,filesize,level,name,width,height,rotation $ttitle.= ' ('.$row['file'].')'; } + $ttitle.= '
'.$row['width'].'×'.$row['height'].' pixels, '.sprintf('%.2f', $row['filesize']/1024).'MB'; + $template->append( 'thumbnails', array_merge($row, array( diff --git a/admin/cat_list.php b/admin/cat_list.php index 81e7c1804..e57ff925f 100644 --- a/admin/cat_list.php +++ b/admin/cat_list.php @@ -43,10 +43,10 @@ if (!empty($_POST) or isset($_GET['delete'])) $sort_orders = array( 'name ASC' => l10n('Album name, A → Z'), 'name DESC' => l10n('Album name, Z → A'), - 'date_creation DESC' => l10n('Date created, new → old'), - 'date_creation ASC' => l10n('Date created, old → new'), - 'date_available DESC' => l10n('Date posted, new → old'), - 'date_available ASC' => l10n('Date posted, old → new'), + 'date_creation DESC' => l10n('Date created, new → old').' '.l10n('(determined from photos)'), + 'date_creation ASC' => l10n('Date created, old → new').' '.l10n('(determined from photos)'), + 'date_available DESC' => l10n('Date posted, new → old').' '.l10n('(determined from photos)'), + 'date_available ASC' => l10n('Date posted, old → new').' '.l10n('(determined from photos)'), ); // +-----------------------------------------------------------------------+ @@ -192,7 +192,13 @@ include(PHPWG_ROOT_PATH.'admin/include/albums_tab.inc.php'); // request to delete a virtual category if (isset($_GET['delete']) and is_numeric($_GET['delete'])) { - delete_categories(array($_GET['delete'])); + $photo_deletion_mode = 'no_delete'; + if (isset($_GET['photo_deletion_mode'])) + { + $photo_deletion_mode = $_GET['photo_deletion_mode']; + } + delete_categories(array($_GET['delete']), $photo_deletion_mode); + $_SESSION['page_infos'] = array(l10n('Virtual album deleted')); update_global_rank(); invalidate_user_cache(); @@ -219,7 +225,8 @@ elseif (isset($_POST['submitAdd'])) } else { - $page['infos'][] = $output_create['info']; + $edit_url = get_root_url().'admin.php?page=album-'.$output_create['id']; + $page['infos'][] = $output_create['info'].' '.l10n('Edit album').''; } } // save manual category ordering diff --git a/admin/cat_modify.php b/admin/cat_modify.php index 3e50d8ff5..13886df0e 100644 --- a/admin/cat_modify.php +++ b/admin/cat_modify.php @@ -196,6 +196,42 @@ $query = 'SELECT DISTINCT category_id $result = pwg_query($query); $category['has_images'] = pwg_db_num_rows($result)>0 ? true : false; +// number of sub-categories +$subcat_ids = get_subcat_ids(array($category['id'])); + +$category['nb_subcats'] = count($subcat_ids) - 1; + +// total number of images under this category (including sub-categories) +$query = ' +SELECT + DISTINCT(image_id) + FROM '.IMAGE_CATEGORY_TABLE.' + WHERE category_id IN ('.implode(',', $subcat_ids).') + ;'; +$image_ids_recursive = query2array($query, null, 'image_id'); + +$category['nb_images_recursive'] = count($image_ids_recursive); + +// number of images that would become orphan on album deletion +$category['nb_images_becoming_orphan'] = 0; +$category['nb_images_associated_outside'] = 0; + +if ($category['nb_images_recursive'] > 0) +{ + $query = ' +SELECT + DISTINCT(image_id) + FROM '.IMAGE_CATEGORY_TABLE.' + WHERE category_id NOT IN ('.implode(',', $subcat_ids).') + AND image_id IN ('.implode(',', $image_ids_recursive).') +;'; + $image_ids_associated_outside = query2array($query, null, 'image_id'); + $category['nb_images_associated_outside'] = count($image_ids_associated_outside); + + $image_ids_becoming_orphan = array_diff($image_ids_recursive, $image_ids_associated_outside); + $category['nb_images_becoming_orphan'] = count($image_ids_becoming_orphan); +} + // Navigation path $navigation = get_cat_display_name_cache( $category['uppercats'], @@ -285,6 +321,17 @@ else $intro = l10n('This album contains no photo.'); } +// info for deletion +$template->assign( + array( + 'CATEGORY_FULLNAME' => trim(strip_tags($navigation)), + 'NB_SUBCATS' => $category['nb_subcats'], + 'NB_IMAGES_RECURSIVE' => $category['nb_images_recursive'], + 'NB_IMAGES_BECOMING_ORPHAN' => $category['nb_images_becoming_orphan'], + 'NB_IMAGES_ASSOCIATED_OUTSIDE' => $category['nb_images_associated_outside'], + ) + ); + $intro.= '
'.l10n('Numeric identifier : %d', $category['id']); $template->assign(array( diff --git a/admin/include/add_core_tabs.inc.php b/admin/include/add_core_tabs.inc.php index 9cef0f064..4ef091ba8 100644 --- a/admin/include/add_core_tabs.inc.php +++ b/admin/include/add_core_tabs.inc.php @@ -27,6 +27,15 @@ function add_core_tabs($sheets, $tab_id) { switch($tab_id) { + case 'admin_home': + $sheets[''] = array('caption' => l10n('Administration Home'), 'url' => 'admin.php'); + break; + + case 'tags': + global $my_base_url; + $sheets[''] = array('caption' => ''.l10n('Tags'), 'url' => $my_base_url.'tags'); + break; + case 'album': global $admin_album_base_url; $sheets['properties'] = array('caption' => ''.l10n('Properties'), 'url' => $admin_album_base_url.'-properties'); @@ -44,8 +53,8 @@ function add_core_tabs($sheets, $tab_id) case 'batch_manager': global $manager_link; - $sheets['global'] = array('caption' => l10n('global mode'), 'url' => $manager_link.'global'); - $sheets['unit'] = array('caption' => l10n('unit mode'), 'url' => $manager_link.'unit'); + $sheets['global'] = array('caption' => ''.l10n('global mode'), 'url' => $manager_link.'global'); + $sheets['unit'] = array('caption' => ''.l10n('unit mode'), 'url' => $manager_link.'unit'); break; case 'cat_options': @@ -80,7 +89,7 @@ function add_core_tabs($sheets, $tab_id) $sheets['watermark'] = array('caption' => l10n('Watermark'), 'url' => $conf_link.'watermark'); $sheets['display'] = array('caption' => l10n('Display'), 'url' => $conf_link.'display'); $sheets['comments'] = array('caption' => l10n('Comments'), 'url' => $conf_link.'comments'); - $sheets['default'] = array('caption' => l10n('Guest Settings'), 'url' => $conf_link.'default'); + // $sheets['default'] = array('caption' => l10n('Guest Settings'), 'url' => $conf_link.'default'); break; case 'help': @@ -105,6 +114,11 @@ function add_core_tabs($sheets, $tab_id) $sheets['new'] = array('caption' => ''.l10n('Add New Language'), 'url' => $my_base_url.'&tab=new'); break; + case 'menus': + global $my_base_url; + $sheets[''] = array('caption' => ''.l10n('Menu Management'), 'url' => $my_base_url.'menubar'); + break; + case 'nbm': global $base_url; $sheets['param'] = array('caption' => l10n('Parameter'), 'url' => $base_url.'?page=notification_by_mail&mode=param'); diff --git a/admin/include/configuration_watermark_process.inc.php b/admin/include/configuration_watermark_process.inc.php index bc1451791..0e07380a7 100644 --- a/admin/include/configuration_watermark_process.inc.php +++ b/admin/include/configuration_watermark_process.inc.php @@ -26,6 +26,21 @@ if( !defined("PHPWG_ROOT_PATH") ) die ("Hacking attempt!"); } +function get_watermark_filename($list, $candidate, $step = 0) +{ + global $change_name; + $change_name = $candidate; + if ($step != 0) + { + $change_name .= '-'.$step; + } + if (in_array($change_name, $list)) + { + return get_watermark_filename($list, $candidate, $step+1); + } + return $change_name.'.png'; +} + $errors = array(); $pwatermark = $_POST['w']; @@ -45,8 +60,22 @@ if (isset($_FILES['watermarkImage']) and !empty($_FILES['watermarkImage']['tmp_n $upload_dir = PHPWG_ROOT_PATH.PWG_LOCAL_DIR.'watermarks'; if (mkgetdir($upload_dir, MKGETDIR_DEFAULT&~MKGETDIR_DIE_ON_ERROR)) { - $new_name = get_filename_wo_extension($_FILES['watermarkImage']['name']).'.png'; - $file_path = $upload_dir.'/'.$new_name; + // file name may include exotic chars like single quote, we need a safe name + $new_name = str2url(get_filename_wo_extension($_FILES['watermarkImage']['name'])); + + // we need existing watermarks to avoid overwritting one + $watermark_files = array(); + if ( ($glob=glob(PHPWG_ROOT_PATH.PWG_LOCAL_DIR.'watermarks/*.png')) !== false) + { + foreach ($glob as $file) + { + $watermark_files[] = get_filename_wo_extension( + substr($file, strlen(PHPWG_ROOT_PATH.PWG_LOCAL_DIR.'watermarks/')) + ); + } + } + + $file_path = $upload_dir.'/'.get_watermark_filename($watermark_files, $new_name); if (move_uploaded_file($_FILES['watermarkImage']['tmp_name'], $file_path)) { @@ -183,4 +212,4 @@ else $template->assign('watermark', $pwatermark); $template->assign('ferrors', $errors); } -?> \ No newline at end of file +?> diff --git a/admin/include/functions.php b/admin/include/functions.php index 9a827d1d6..65a8b38f3 100644 --- a/admin/include/functions.php +++ b/admin/include/functions.php @@ -448,6 +448,7 @@ SELECT FROM '.TAGS_TABLE.' LEFT JOIN '.IMAGE_TAG_TABLE.' ON id = tag_id WHERE tag_id IS NULL + AND lastmodified < SUBDATE(NOW(), INTERVAL 1 DAY) ;'; return query2array($query); } @@ -535,7 +536,6 @@ SELECT LEFT JOIN '.IMAGES_TABLE.' ON id = image_id WHERE id IS NULL ;'; - $result = pwg_query($query); $orphan_image_ids = query2array($query, null, 'image_id'); if (count($orphan_image_ids) > 0) @@ -549,6 +549,45 @@ DELETE } } +/** + * Checks and repairs integrity on categories. + * Removes all entries from related tables which correspond to a deleted category. + */ +function categories_integrity() +{ + $related_columns = array( + IMAGE_CATEGORY_TABLE.'.category_id', + USER_ACCESS_TABLE.'.cat_id', + GROUP_ACCESS_TABLE.'.cat_id', + OLD_PERMALINKS_TABLE.'.cat_id', + USER_CACHE_CATEGORIES_TABLE.'.cat_id', + ); + + foreach ($related_columns as $fullcol) + { + list($table, $column) = explode('.', $fullcol); + + $query = ' +SELECT + '.$column.' + FROM '.$table.' + LEFT JOIN '.CATEGORIES_TABLE.' ON id = '.$column.' + WHERE id IS NULL +;'; + $orphans = array_unique(query2array($query, null, $column)); + + if (count($orphans) > 0) + { + $query = ' +DELETE + FROM '.$table.' + WHERE '.$column.' IN ('.implode(',', $orphans).') +;'; + pwg_query($query); + } + } +} + /** * Returns an array containing sub-directories which are potentially * a category. @@ -1364,9 +1403,26 @@ function create_virtual_category($category_name, $parent_id=null, $options=array return array('error' => l10n('The name of an album must not be empty')); } + $rank = 0; + if ('last' == $conf['newcat_default_position']) + { + //what is the current higher rank for this parent? + $query = ' +SELECT MAX(rank) AS max_rank + FROM '. CATEGORIES_TABLE .' + WHERE id_uppercat '.(empty($parent_id) ? 'IS NULL' : '= '.$parent_id).' +;'; + $row = pwg_db_fetch_assoc(pwg_query($query)); + + if (is_numeric($row['max_rank'])) + { + $rank = $row['max_rank'] + 1; + } + } + $insert = array( 'name' => $category_name, - 'rank' => 0, + 'rank' => $rank, 'global_rank' => 0, ); @@ -1519,6 +1575,8 @@ function add_tags($tags, $images) return; } + $taglist_before = get_image_tag_ids($images); + // we can't insert twice the same {image_id,tag_id} so we must first // delete lines we'll insert later $query = ' @@ -1545,6 +1603,11 @@ DELETE array_keys($inserts[0]), $inserts ); + + $taglist_after = get_image_tag_ids($images); + $images_to_update = compare_image_tag_lists($taglist_before, $taglist_after); + update_images_lastmodified($images_to_update); + invalidate_user_cache_nb_tags(); } @@ -1565,6 +1628,15 @@ function delete_tags($tag_ids) return false; } + // we need the list of impacted images, to update their lastmodified + $query = ' +SELECT + image_id + FROM '.IMAGE_TAG_TABLE.' + WHERE tag_id IN ('.implode(',', $tag_ids).') +;'; + $image_ids = query2array($query, null, 'image_id'); + $query = ' DELETE FROM '.IMAGE_TAG_TABLE.' @@ -1579,6 +1651,7 @@ DELETE ;'; pwg_query($query); + update_images_lastmodified($image_ids); invalidate_user_cache_nb_tags(); } @@ -1662,6 +1735,9 @@ function set_tags_of($tags_of) { if (count($tags_of) > 0) { + $taglist_before = get_image_tag_ids(array_keys($tags_of)); + global $logger; $logger->debug('taglist_before', $taglist_before); + $query = ' DELETE FROM '.IMAGE_TAG_TABLE.' @@ -1691,10 +1767,82 @@ DELETE ); } + $taglist_after = get_image_tag_ids(array_keys($tags_of)); + global $logger; $logger->debug('taglist_after', $taglist_after); + $images_to_update = compare_image_tag_lists($taglist_before, $taglist_after); + global $logger; $logger->debug('$images_to_update', $images_to_update); + + update_images_lastmodified($images_to_update); invalidate_user_cache_nb_tags(); } } +/** + * Get list of tag ids for each image. Returns an empty list if the image has + * no tags. + * + * @since 2.9 + * @param array $image_ids + * @return associative array, image_id => list of tag ids + */ +function get_image_tag_ids($image_ids) +{ + if (!is_array($image_ids) and is_int($image_ids)) + { + $images_ids = array($image_ids); + } + + if (count($image_ids) == 0) + { + return array(); + } + + $query = ' +SELECT + image_id, + tag_id + FROM '.IMAGE_TAG_TABLE.' + WHERE image_id IN ('.implode(',', $image_ids).') +;'; + + $tags_of = array_fill_keys($image_ids, array()); + $image_tags = query2array($query); + foreach ($image_tags as $image_tag) + { + $tags_of[ $image_tag['image_id'] ][] = $image_tag['tag_id']; + } + + return $tags_of; +} + +/** + * Compare the list of tags, for each image. Returns image_ids where tag list has changed. + * + * @since 2.9 + * @param array $taglist_before - for each image_id (key), list of tag ids + * @param array $taglist_after - for each image_id (key), list of tag ids + * @return array - image_ids where the list has changed + */ +function compare_image_tag_lists($taglist_before, $taglist_after) +{ + $images_to_update = array(); + + foreach ($taglist_after as $image_id => $list_after) + { + sort($list_after); + + $list_before = isset($taglist_before[$image_id]) ? $taglist_before[$image_id] : array(); + sort($list_before); + + if ($list_after != $list_before) + { + $images_to_update[] = $image_id; + } + } + + return $images_to_update; +} + /** * Associate a list of images to a list of categories. * The function will not duplicate links and will preserve ranks. @@ -2854,6 +3002,7 @@ SELECT FROM '.IMAGES_TABLE.' LEFT JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id WHERE category_id is null + ORDER BY id ASC ;'; return query2array($query, null, 'id'); @@ -2887,3 +3036,89 @@ function save_images_order($category_id, $images) ); mass_updates(IMAGE_CATEGORY_TABLE, $fields, $datas); } + +/** + * Force update on images.lastmodified column. Useful when modifying the tag + * list. + * + * @since 2.9 + * @param array $image_ids + */ +function update_images_lastmodified($image_ids) +{ + if (!is_array($image_ids) and is_int($image_ids)) + { + $images_ids = array($image_ids); + } + + if (count($image_ids) == 0) + { + return; + } + + $query = ' +UPDATE '.IMAGES_TABLE.' + SET lastmodified = NOW() + WHERE id IN ('.implode(',', $image_ids).') +;'; + pwg_query($query); +} + +/** + * Get a more human friendly representation of big numbers. Like 17.8k instead of 17832 + * + * @since 2.9 + * @param float $numbers + */ +function number_format_human_readable($numbers) +{ + $readable = array("", "k", "M"); + $index = 0; + + while ($numbers >= 1000) + { + $numbers /= 1000; + $index++; + + if ($index > count($readable) - 1) + { + $index--; + break; + } + } + + return number_format($numbers, 1).$readable[$index]; +} + +/** + * Get infos related to an image + * + * @since 2.9 + * @param int $image_id + * @param bool $die_on_missing + */ +function get_image_infos($image_id, $die_on_missing=false) +{ + if (!is_numeric($image_id)) + { + fatal_error('['.__FUNCTION__.'] invalid image identifier '.htmlentities($image_id)); + } + + $query = ' +SELECT * + FROM '.IMAGES_TABLE.' + WHERE id = '.$image_id.' +;'; + $images = query2array($query); + if (count($images) == 0) + { + if ($die_on_missing) + { + fatal_error("photo ".$image_id." does not exist"); + } + + return null; + } + + return $images[0]; +} diff --git a/admin/include/functions_history.inc.php b/admin/include/functions_history.inc.php index 55783fd74..f0156c025 100644 --- a/admin/include/functions_history.inc.php +++ b/admin/include/functions_history.inc.php @@ -176,6 +176,310 @@ SELECT return $data; } +/** + * Compute statistics from history table to history_summary table + * + * @param int $max_lines - to only compute the next X lines, not the whole remaining lines + */ +function history_summarize($max_lines=null) +{ + // we need to know which was the last line "summarized" + $query = ' +SELECT + * + FROM '.HISTORY_SUMMARY_TABLE.' + WHERE history_id_to IS NOT NULL + ORDER BY history_id_to DESC + LIMIT 1 +;'; + $summary_lines = query2array($query); + + $history_min_id = 0; + if (count($summary_lines) > 0) + { + $last_summary = $summary_lines[0]; + $history_min_id = $last_summary['history_id_to']; + } + else + { + // if we have no "reference", ie "starting point", we need to find + // one. And "0" is not the right answer here, because history table may + // have been purged already. + $query = ' +SELECT + MIN(id) AS min_id + FROM '.HISTORY_TABLE.' +;'; + $history_lines = query2array($query); + if (count($history_lines) > 0) + { + $history_min_id = $history_lines[0]['min_id'] - 1; + } + } + + $query = ' +SELECT + date, + '.pwg_db_get_hour('time').' AS hour, + MIN(id) AS min_id, + MAX(id) AS max_id, + COUNT(*) AS nb_pages + FROM '.HISTORY_TABLE.' + WHERE id > '.$history_min_id; + + if (isset($max_lines)) + { + $query.= ' + AND id <= '.($history_min_id + $max_lines); + } + + $query.= ' + GROUP BY + date, + hour + ORDER BY + date ASC, + hour ASC +;'; + $result = pwg_query($query); + + $need_update = array(); + + $is_first = true; + $first_time_key = null; + + while ($row = pwg_db_fetch_assoc($result)) + { + $time_keys = array( + substr($row['date'], 0, 4), //yyyy + substr($row['date'], 0, 7), //yyyy-mm + substr($row['date'], 0, 10),//yyyy-mm-dd + sprintf( + '%s-%02u', + $row['date'], $row['hour'] + ), + ); + + foreach ($time_keys as $time_key) + { + if (!isset($need_update[$time_key])) + { + $need_update[$time_key] = array( + 'nb_pages' => 0, + 'history_id_from' => $row['min_id'], + 'history_id_to' => $row['max_id'], + ); + } + $need_update[$time_key]['nb_pages'] += $row['nb_pages']; + + if ($row['min_id'] < $need_update[$time_key]['history_id_from']) + { + $need_update[$time_key]['history_id_from'] = $row['min_id']; + } + + if ($row['max_id'] > $need_update[$time_key]['history_id_to']) + { + $need_update[$time_key]['history_id_to'] = $row['max_id']; + } + } + + if ($is_first) + { + $is_first = false; + $first_time_key = $time_keys[3]; + } + } + +// Only the oldest time_key might be already summarized, so we have to +// update the 4 corresponding lines instead of simply inserting them. +// +// For example, if the oldest unsummarized is 2005.08.25.21, the 4 lines +// that can be updated are: +// +// +---------------+----------+ +// | id | nb_pages | +// +---------------+----------+ +// | 2005 | 241109 | +// | 2005-08 | 20133 | +// | 2005-08-25 | 620 | +// | 2005-08-25-21 | 151 | +// +---------------+----------+ + + $updates = array(); + $inserts = array(); + + if (isset($first_time_key)) + { + list($year, $month, $day, $hour) = explode('-', $first_time_key); + + $query = ' +SELECT * + FROM '.HISTORY_SUMMARY_TABLE.' + WHERE year='.$year.' + AND ( month IS NULL + OR ( month='.$month.' + AND ( day is NULL + OR (day='.$day.' + AND (hour IS NULL OR hour='.$hour.') + ) + ) + ) + ) +;'; + $result = pwg_query($query); + while ($row = pwg_db_fetch_assoc($result)) + { + $key = sprintf('%4u', $row['year']); + if ( isset($row['month']) ) + { + $key .= sprintf('-%02u', $row['month']); + if ( isset($row['day']) ) + { + $key .= sprintf('-%02u', $row['day']); + if ( isset($row['hour']) ) + { + $key .= sprintf('-%02u', $row['hour']); + } + } + } + + if (isset($need_update[$key])) + { + $row['nb_pages'] += $need_update[$key]['nb_pages']; + $row['history_id_to'] = $need_update[$key]['history_id_to']; + $updates[] = $row; + unset($need_update[$key]); + } + } + } + + foreach ($need_update as $time_key => $summary) + { + $time_tokens = explode('-', $time_key); + + $inserts[] = array( + 'year' => $time_tokens[0], + 'month' => @$time_tokens[1], + 'day' => @$time_tokens[2], + 'hour' => @$time_tokens[3], + 'nb_pages' => $summary['nb_pages'], + 'history_id_from' => $summary['history_id_from'], + 'history_id_to' => $summary['history_id_to'], + ); + } + + if (count($updates) > 0) + { + mass_updates( + HISTORY_SUMMARY_TABLE, + array( + 'primary' => array('year','month','day','hour'), + 'update' => array('nb_pages','history_id_to'), + ), + $updates + ); + } + + if (count($inserts) > 0) + { + mass_inserts( + HISTORY_SUMMARY_TABLE, + array_keys($inserts[0]), + $inserts + ); + } +} + +/** + * Smart purge on history table. Keep some lines, purge only summarized lines + * + * @since 2.9 + */ +function history_autopurge() +{ + global $conf, $logger; + + if (0 == $conf['history_autopurge_keep_lines']) + { + return; + } + + // we want to purge only if there are too many lines and if the lines are summarized + + $query = ' +SELECT + COUNT(*) + FROM '.HISTORY_TABLE.' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + + if ($count <= $conf['history_autopurge_keep_lines']) + { + return; // no need to purge for now + } + + // 1) find the last summarized history line + $query = ' +SELECT + * + FROM '.HISTORY_SUMMARY_TABLE.' + WHERE history_id_to IS NOT NULL + ORDER BY history_id_to DESC + LIMIT 1 +;'; + $summary_lines = query2array($query); + if (count($summary_lines) == 0) + { + return; // lines not summarized, no purge + } + + $history_id_last_summarized = $summary_lines[0]['history_id_to']; + + // 2) find the latest history line (and substract the number of lines to keep) + $query = ' +SELECT + id + FROM '.HISTORY_TABLE.' + ORDER BY id DESC + LIMIT 1 +;'; + $history_lines = query2array($query); + if (count($history_lines) == 0) + { + return; + } + + $history_id_latest = $history_lines[0]['id']; + + // 3) find the oldest history line (and add the number of lines to delete) + $query = ' +SELECT + id + FROM '.HISTORY_TABLE.' + ORDER BY id ASC + LIMIT 1 +;'; + $history_lines = query2array($query); + $history_id_oldest = $history_lines[0]['id']; + + $search_min = array( + $history_id_last_summarized, + $history_id_latest - $conf['history_autopurge_keep_lines'], + $history_id_oldest + $conf['history_autopurge_blocksize'], + ); + + $history_id_delete_before = min($search_min); + + $logger->debug(__FUNCTION__.', '.join('/', $search_min)); + + $query = ' +DELETE + FROM '.HISTORY_TABLE.' + WHERE id < '.$history_id_delete_before.' +;'; + pwg_query($query); +} + add_event_handler('get_history', 'get_history'); trigger_notify('functions_history_included'); diff --git a/admin/include/functions_upload.inc.php b/admin/include/functions_upload.inc.php index 900612fdd..cedebd14c 100644 --- a/admin/include/functions_upload.inc.php +++ b/admin/include/functions_upload.inc.php @@ -161,6 +161,11 @@ function add_uploaded_file($source_filepath, $original_filename=null, $categorie global $conf, $user; + if (!is_null($original_filename)) + { + $original_filename = htmlspecialchars($original_filename); + } + if (isset($original_md5sum)) { $md5sum = $original_md5sum; diff --git a/admin/include/image.class.php b/admin/include/image.class.php index e713a84c9..f91d93413 100644 --- a/admin/include/image.class.php +++ b/admin/include/image.class.php @@ -301,10 +301,9 @@ class pwg_image for ($i=0; $i<3; $i++) { - $line = & $matrix[$i]; for ($j=0; $j<3; $j++) { - $line[$j] /= $norm; + $matrix[$i][$j] /= $norm; } } diff --git a/admin/include/themes.class.php b/admin/include/themes.class.php index 6d55e11bd..d38352dfa 100644 --- a/admin/include/themes.class.php +++ b/admin/include/themes.class.php @@ -242,6 +242,7 @@ DELETE $theme_maintain->delete(); + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); deltree(PHPWG_THEMES_PATH.$theme_id, PHPWG_THEMES_PATH . 'trash'); break; diff --git a/admin/intro.php b/admin/intro.php index 96b07d2a8..35ca69e67 100644 --- a/admin/intro.php +++ b/admin/intro.php @@ -29,13 +29,26 @@ if (!defined('PHPWG_ROOT_PATH')) include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); include_once(PHPWG_ROOT_PATH.'admin/include/check_integrity.class.php'); include_once(PHPWG_ROOT_PATH.'admin/include/c13y_internal.class.php'); -include_once(PHPWG_ROOT_PATH.'admin/include/image.class.php'); // +-----------------------------------------------------------------------+ // | Check Access and exit when user status is not ok | // +-----------------------------------------------------------------------+ + check_status(ACCESS_ADMINISTRATOR); +// +-----------------------------------------------------------------------+ +// | tabs | +// +-----------------------------------------------------------------------+ + +include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); + +$my_base_url = get_root_url().'admin.php?page='; + +$tabsheet = new tabsheet(); +$tabsheet->set_id('admin_home'); +$tabsheet->select(''); +$tabsheet->assign(); + // +-----------------------------------------------------------------------+ // | actions | // +-----------------------------------------------------------------------+ @@ -91,11 +104,15 @@ if (isset($_GET['action']) and 'check_upgrade' == $_GET['action']) } } } -// Show phpinfo() output -else if (isset($_GET['action']) and 'phpinfo' == $_GET['action']) + +if (isset($page['nb_pending_comments'])) { - phpinfo(); - exit(); + $message = l10n('User comments').' '; + $message.= ''; + $message.= l10n('%d waiting for validation', $page['nb_pending_comments']); + $message.= ' '; + + $page['messages'][] = $message; } // +-----------------------------------------------------------------------+ @@ -113,15 +130,12 @@ if ($conf['show_newsletter_subscription']) { ); } -$php_current_timestamp = date("Y-m-d H:i:s"); -$db_version = pwg_get_db_version(); -list($db_current_date) = pwg_db_fetch_row(pwg_query('SELECT now();')); $query = ' SELECT COUNT(*) FROM '.IMAGES_TABLE.' ;'; -list($nb_elements) = pwg_db_fetch_row(pwg_query($query)); +list($nb_photos) = pwg_db_fetch_row(pwg_query($query)); $query = ' SELECT COUNT(*) @@ -129,26 +143,6 @@ SELECT COUNT(*) ;'; list($nb_categories) = pwg_db_fetch_row(pwg_query($query)); -$query = ' -SELECT COUNT(*) - FROM '.CATEGORIES_TABLE.' - WHERE dir IS NULL -;'; -list($nb_virtual) = pwg_db_fetch_row(pwg_query($query)); - -$query = ' -SELECT COUNT(*) - FROM '.CATEGORIES_TABLE.' - WHERE dir IS NOT NULL -;'; -list($nb_physical) = pwg_db_fetch_row(pwg_query($query)); - -$query = ' -SELECT COUNT(*) - FROM '.IMAGE_CATEGORY_TABLE.' -;'; -list($nb_image_category) = pwg_db_fetch_row(pwg_query($query)); - $query = ' SELECT COUNT(*) FROM '.TAGS_TABLE.' @@ -179,32 +173,47 @@ SELECT COUNT(*) ;'; list($nb_rates) = pwg_db_fetch_row(pwg_query($query)); +$query = ' +SELECT + SUM(nb_pages) + FROM '.HISTORY_SUMMARY_TABLE.' + WHERE month IS NULL +;'; +list($nb_views) = pwg_db_fetch_row(pwg_query($query)); + +$query = ' +SELECT + SUM(filesize) + FROM '.IMAGES_TABLE.' +;'; +list($disk_usage) = pwg_db_fetch_row(pwg_query($query)); + +$query = ' +SELECT + SUM(filesize) + FROM '.IMAGE_FORMAT_TABLE.' +;'; +list($formats_disk_usage) = pwg_db_fetch_row(pwg_query($query)); + +$disk_usage+= $formats_disk_usage; + $template->assign( array( - 'PHPWG_URL' => PHPWG_URL, - 'PWG_VERSION' => PHPWG_VERSION, - 'OS' => PHP_OS, - 'PHP_VERSION' => phpversion(), - 'DB_ENGINE' => 'MySQL', - 'DB_VERSION' => $db_version, - 'DB_ELEMENTS' => l10n_dec('%d photo', '%d photos', $nb_elements), - 'DB_CATEGORIES' => - l10n_dec('%d album including', '%d albums including', $nb_categories). - l10n_dec('%d physical', '%d physicals', $nb_physical). - l10n_dec(' and %d virtual', ' and %d virtuals', $nb_virtual), - 'DB_IMAGE_CATEGORY' => l10n_dec('%d association', '%d associations', $nb_image_category), - 'DB_TAGS' => l10n_dec('%d tag', '%d tags', $nb_tags), - 'DB_IMAGE_TAG' => l10n_dec('%d association', '%d associations', $nb_image_tag), - 'DB_USERS' => l10n_dec('%d user', '%d users', $nb_users), - 'DB_GROUPS' => l10n_dec('%d group', '%d groups', $nb_groups), - 'DB_RATES' => ($nb_rates == 0) ? l10n('no rate') : l10n('%d rates', $nb_rates), + 'NB_PHOTOS' => number_format($nb_photos, 0, '.', ','), + 'NB_ALBUMS' => $nb_categories, + 'NB_TAGS' => $nb_tags, + 'NB_IMAGE_TAG' => $nb_image_tag, + 'NB_USERS' => $nb_users, + 'NB_GROUPS' => $nb_groups, + 'NB_RATES' => $nb_rates, + 'NB_VIEWS' => number_format_human_readable($nb_views), + 'NB_PLUGINS' => count($pwg_loaded_plugins), + 'STORAGE_USED' => l10n('%sGB', number_format($disk_usage/(1024*1024), 1)), 'U_CHECK_UPGRADE' => PHPWG_ROOT_PATH.'admin.php?action=check_upgrade', - 'U_PHPINFO' => PHPWG_ROOT_PATH.'admin.php?action=phpinfo', - 'PHP_DATATIME' => $php_current_timestamp, - 'DB_DATATIME' => $db_current_date, + 'U_QUICK_SYNC' => PHPWG_ROOT_PATH.'admin.php?page=site_update&site=1&quick_sync=1&pwg_token='.get_pwg_token(), ) ); - + if ($conf['activate_comments']) { $query = ' @@ -212,10 +221,10 @@ SELECT COUNT(*) FROM '.COMMENTS_TABLE.' ;'; list($nb_comments) = pwg_db_fetch_row(pwg_query($query)); - $template->assign('DB_COMMENTS', l10n_dec('%d comment', '%d comments', $nb_comments)); + $template->assign('NB_COMMENTS', $nb_comments); } -if ($nb_elements > 0) +if ($nb_photos > 0) { $query = ' SELECT MIN(date_available) @@ -224,44 +233,13 @@ SELECT MIN(date_available) list($first_date) = pwg_db_fetch_row(pwg_query($query)); $template->assign( - 'first_added', array( - 'DB_DATE' => - l10n('first photo added on %s', format_date($first_date)) + 'first_added_date' => format_date($first_date), + 'first_added_age' => time_since($first_date, 'year', null, false, false), ) ); } -// graphics library -switch (pwg_image::get_library()) -{ - case 'imagick': - $library = 'ImageMagick'; - $img = new Imagick(); - $version = $img->getVersion(); - if (preg_match('/ImageMagick \d+\.\d+\.\d+-?\d*/', $version['versionString'], $match)) - { - $library = $match[0]; - } - $template->assign('GRAPHICS_LIBRARY', $library); - break; - - case 'ext_imagick': - $library = 'External ImageMagick'; - exec($conf['ext_imagick_dir'].'convert -version', $returnarray); - if (preg_match('/Version: ImageMagick (\d+\.\d+\.\d+-?\d*)/', $returnarray[0], $match)) - { - $library .= ' ' . $match[1]; - } - $template->assign('GRAPHICS_LIBRARY', $library); - break; - - case 'gd': - $gd_info = gd_info(); - $template->assign('GRAPHICS_LIBRARY', 'GD '.@$gd_info['GD Version']); - break; -} - // +-----------------------------------------------------------------------+ // | sending html code | // +-----------------------------------------------------------------------+ diff --git a/admin/languages.php b/admin/languages.php index 0ea4c17df..936e5b253 100644 --- a/admin/languages.php +++ b/admin/languages.php @@ -31,9 +31,14 @@ include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); $my_base_url = get_root_url().'admin.php?page=languages'; if (isset($_GET['tab'])) +{ + check_input_parameter('tab', $_GET, false, '/^(installed|update|new)$/'); $page['tab'] = $_GET['tab']; +} else +{ $page['tab'] = 'installed'; +} $tabsheet = new tabsheet(); $tabsheet->set_id('languages'); diff --git a/admin/maintenance.php b/admin/maintenance.php index 3728d6094..b990fc125 100644 --- a/admin/maintenance.php +++ b/admin/maintenance.php @@ -27,6 +27,7 @@ if (!defined('PHPWG_ROOT_PATH')) } include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); +include_once(PHPWG_ROOT_PATH.'admin/include/image.class.php'); // +-----------------------------------------------------------------------+ // | Check Access and exit when user status is not ok | @@ -47,6 +48,11 @@ $action = isset($_GET['action']) ? $_GET['action'] : ''; switch ($action) { + case 'phpinfo' : + { + phpinfo(); + exit(); + } case 'lock_gallery' : { conf_update_param('gallery_locked', 'true'); @@ -63,6 +69,7 @@ switch ($action) case 'categories' : { images_integrity(); + categories_integrity(); update_uppercats(); update_category('all'); update_global_rank(); @@ -200,6 +207,7 @@ DELETE } } + // +-----------------------------------------------------------------------+ // | template init | // +-----------------------------------------------------------------------+ @@ -215,6 +223,10 @@ foreach(ImageStdParams::get_defined_type_map() as $params) } $purge_urls[ l10n(IMG_CUSTOM) ] = sprintf($url_format, 'derivatives').'&type='.IMG_CUSTOM; +$php_current_timestamp = date("Y-m-d H:i:s"); +$db_version = pwg_get_db_version(); +list($db_current_date) = pwg_db_fetch_row(pwg_query('SELECT now();')); + $template->assign( array( 'U_MAINT_CATEGORIES' => sprintf($url_format, 'categories'), @@ -232,9 +244,48 @@ $template->assign( 'U_MAINT_DERIVATIVES' => sprintf($url_format, 'derivatives'), 'purge_derivatives' => $purge_urls, 'U_HELP' => get_root_url().'admin/popuphelp.php?page=maintenance', + + 'PHPWG_URL' => PHPWG_URL, + 'PWG_VERSION' => PHPWG_VERSION, + 'OS' => PHP_OS, + 'PHP_VERSION' => phpversion(), + 'DB_ENGINE' => 'MySQL', + 'DB_VERSION' => $db_version, + 'U_PHPINFO' => sprintf($url_format, 'phpinfo'), + 'PHP_DATATIME' => $php_current_timestamp, + 'DB_DATATIME' => $db_current_date, ) ); +// graphics library +switch (pwg_image::get_library()) +{ + case 'imagick': + $library = 'ImageMagick'; + $img = new Imagick(); + $version = $img->getVersion(); + if (preg_match('/ImageMagick \d+\.\d+\.\d+-?\d*/', $version['versionString'], $match)) + { + $library = $match[0]; + } + $template->assign('GRAPHICS_LIBRARY', $library); + break; + + case 'ext_imagick': + $library = 'External ImageMagick'; + exec($conf['ext_imagick_dir'].'convert -version', $returnarray); + if (preg_match('/Version: ImageMagick (\d+\.\d+\.\d+-?\d*)/', $returnarray[0], $match)) + { + $library .= ' ' . $match[1]; + } + $template->assign('GRAPHICS_LIBRARY', $library); + break; + + case 'gd': + $gd_info = gd_info(); + $template->assign('GRAPHICS_LIBRARY', 'GD '.@$gd_info['GD Version']); + break; +} if ($conf['gallery_locked']) { diff --git a/admin/menubar.php b/admin/menubar.php index e884fab56..edc21b34f 100644 --- a/admin/menubar.php +++ b/admin/menubar.php @@ -43,11 +43,22 @@ function make_consecutive( &$orders, $step=50 ) } } - -global $template; - include_once(PHPWG_ROOT_PATH.'include/block.class.php'); +// +-----------------------------------------------------------------------+ +// | tabs | +// +-----------------------------------------------------------------------+ + +include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); + +$my_base_url = get_root_url().'admin.php?page='; + +$tabsheet = new tabsheet(); +$tabsheet->set_id('menus'); +$tabsheet->select(''); +$tabsheet->assign(); + + $menu = new BlockManager('menubar'); $menu->load_registered_blocks(); $reg_blocks = $menu->get_registered_blocks(); @@ -64,18 +75,6 @@ foreach ($mb_conf as $id => $pos) unset($mb_conf[$id]); } -if ( isset($_POST['reset'])) -{ - $mb_conf = array(); - $query = ' -UPDATE '.CONFIG_TABLE.' - SET value=\'\' - WHERE param=\'blk_'.addslashes($menu->get_id()).'\' - LIMIT 1'; - pwg_query($query); -} - - $idx=1; foreach ($reg_blocks as $id => $block) { diff --git a/admin/photo.php b/admin/photo.php index c1d0687a9..33d765ece 100644 --- a/admin/photo.php +++ b/admin/photo.php @@ -37,6 +37,9 @@ check_input_parameter('image_id', $_GET, false, PATTERN_ID); $admin_photo_base_url = get_root_url().'admin.php?page=photo-'.$_GET['image_id']; +// retrieving direct information about picture +$page['image'] = get_image_infos($_GET['image_id'], true); + if (isset($_GET['cat_id'])) { $query = ' diff --git a/admin/photos_add_applications.php b/admin/photos_add_applications.php index 1cb35e939..1d14a0b35 100644 --- a/admin/photos_add_applications.php +++ b/admin/photos_add_applications.php @@ -30,15 +30,6 @@ if (!defined('PHOTOS_ADD_BASE_URL')) // | template init | // +-----------------------------------------------------------------------+ -$template->assign( - array( - 'URL_DOWNLOAD_WINDOWS' => $conf['ploader_download_windows'], - 'URL_DOWNLOAD_MAC' => $conf['ploader_download_mac'], - 'URL_DOWNLOAD_LINUX' => $conf['ploader_download_linux'], - ) - ); - - // +-----------------------------------------------------------------------+ // | sending html code | // +-----------------------------------------------------------------------+ diff --git a/admin/picture_modify.php b/admin/picture_modify.php index ab62c5624..24cdc22d4 100644 --- a/admin/picture_modify.php +++ b/admin/picture_modify.php @@ -36,6 +36,14 @@ check_status(ACCESS_ADMINISTRATOR); check_input_parameter('image_id', $_GET, false, PATTERN_ID); check_input_parameter('cat_id', $_GET, false, PATTERN_ID); +// retrieving direct information about picture. This may have been already +// done on admin/photo.php but this page can also be accessed without +// photo.php as proxy. +if (!isset($page['image'])) +{ + $page['image'] = get_image_infos($_GET['image_id'], true); +} + // represent $query = ' SELECT id @@ -200,14 +208,7 @@ SELECT ;'; $tag_selection = get_taglist($query); -// retrieving direct information about picture -$query = ' -SELECT * - FROM '.IMAGES_TABLE.' - WHERE id = '.$_GET['image_id'].' -;'; -$row = pwg_db_fetch_assoc(pwg_query($query)); - +$row = $page['image']; $storage_category_id = null; if (!empty($row['storage_category_id'])) { @@ -234,6 +235,7 @@ $src_image = new SrcImage($row); $template->assign( array( 'tag_selection' => $tag_selection, + 'U_DOWNLOAD' => 'action.php?id='.$_GET['image_id'].'&part=e&pwg_token='.get_pwg_token().'&download', 'U_SYNC' => $admin_url_start.'&sync_metadata=1', 'U_DELETE' => $admin_url_start.'&delete=1&pwg_token='.get_pwg_token(), diff --git a/admin/plugin.php b/admin/plugin.php index 68e0c50d7..196d5bd4e 100644 --- a/admin/plugin.php +++ b/admin/plugin.php @@ -32,10 +32,16 @@ check_status(ACCESS_ADMINISTRATOR); $sections = explode('/', $_GET['section'] ); for ($i=0; $i \ No newline at end of file diff --git a/admin/rating.php b/admin/rating.php index 3525cbdd1..3055bb6d5 100644 --- a/admin/rating.php +++ b/admin/rating.php @@ -77,6 +77,17 @@ if (isset($_GET['users'])) } } +$page['cat_filter'] = ''; +if (isset($_GET['cat']) and is_numeric($_GET['cat'])) +{ + $cat_ids = get_subcat_ids(array($_GET['cat'])); + + if (count($cat_ids) > 0) + { + $page['cat_filter'] = ' AND ic.category_id IN ('.implode(',', $cat_ids).')'; + } +} + $users = array(); $query = ' SELECT '.$conf['user_fields']['username'].' as username, '.$conf['user_fields']['id'].' as id @@ -89,8 +100,19 @@ while ($row = pwg_db_fetch_assoc($result)) } -$query = 'SELECT COUNT(DISTINCT(r.element_id)) -FROM '.RATE_TABLE.' AS r +$query = ' +SELECT + COUNT(DISTINCT(r.element_id)) + FROM '.RATE_TABLE.' AS r'; + +if (!empty($page['cat_filter'])) +{ + $query.= ' + JOIN '.IMAGES_TABLE.' AS i ON r.element_id = i.id + JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON ic.image_id = i.id'; +} + +$query.= ' WHERE 1=1'. $page['user_filter']; list($nb_images) = pwg_db_fetch_row(pwg_query($query)); @@ -112,6 +134,7 @@ $template->assign( 'F_ACTION' => PHPWG_ROOT_PATH.'admin.php', 'DISPLAY' => $elements_per_page, 'NB_ELEMENTS' => $nb_images, + 'category' => (isset($_GET['cat']) ? array($_GET['cat']) : array()), ) ); @@ -159,8 +182,16 @@ SELECT i.id, COUNT(r.rate) AS nb_rates, SUM(r.rate) AS sum_rates FROM '.RATE_TABLE.' AS r - LEFT JOIN '.IMAGES_TABLE.' AS i ON r.element_id = i.id - WHERE 1 = 1 ' . $page['user_filter'] . ' + LEFT JOIN '.IMAGES_TABLE.' AS i ON r.element_id = i.id'; + +if (!empty($page['cat_filter'])) +{ + $query.= ' + JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON ic.image_id = i.id'; +} + +$query.= ' + WHERE 1 = 1 ' . $page['user_filter'] . $page['cat_filter'] . ' GROUP BY i.id, i.path, i.file, diff --git a/admin/site_update.php b/admin/site_update.php index ad3ccba19..08d8e7db9 100644 --- a/admin/site_update.php +++ b/admin/site_update.php @@ -82,6 +82,24 @@ else $site_reader = new LocalSiteReader($site_url); } +// +-----------------------------------------------------------------------+ +// | Quick sync | +// +-----------------------------------------------------------------------+ + +if (isset($_GET['quick_sync'])) +{ + check_pwg_token(); + + $_POST['sync'] = 'files'; + $_POST['display_info'] = '1'; + $_POST['add_to_caddie'] = '1'; + $_POST['privacy_level'] = '0'; + $_POST['sync_meta'] = '1'; + $_POST['simulate'] = '0'; + $_POST['subcats-included'] = '1'; + $_POST['submit'] = 'Quick Local Synchronization'; +} + $general_failure = true; if (isset($_POST['submit'])) { diff --git a/admin/stats.php b/admin/stats.php index 5398d0b26..6115fecec 100644 --- a/admin/stats.php +++ b/admin/stats.php @@ -113,169 +113,7 @@ check_status(ACCESS_ADMINISTRATOR); // | Refresh summary from details | // +-----------------------------------------------------------------------+ -$query = ' -SELECT - date, - '.pwg_db_get_hour('time').' AS hour, - MAX(id) AS max_id, - COUNT(*) AS nb_pages - FROM '.HISTORY_TABLE.' - WHERE summarized = \'false\' - GROUP BY - date, - hour - ORDER BY - date ASC, - hour ASC -;'; -$result = pwg_query($query); - -$need_update = array(); - -$max_id = 0; -$is_first = true; -$first_time_key = null; - -while ($row = pwg_db_fetch_assoc($result)) -{ - $time_keys = array( - substr($row['date'], 0, 4), //yyyy - substr($row['date'], 0, 7), //yyyy-mm - substr($row['date'], 0, 10),//yyyy-mm-dd - sprintf( - '%s-%02u', - $row['date'], $row['hour'] - ), - ); - - foreach ($time_keys as $time_key) - { - if (!isset($need_update[$time_key])) - { - $need_update[$time_key] = 0; - } - $need_update[$time_key] += $row['nb_pages']; - } - - if ($row['max_id'] > $max_id) - { - $max_id = $row['max_id']; - } - - if ($is_first) - { - $is_first = false; - $first_time_key = $time_keys[3]; - } -} - -// Only the oldest time_key might be already summarized, so we have to -// update the 4 corresponding lines instead of simply inserting them. -// -// For example, if the oldest unsummarized is 2005.08.25.21, the 4 lines -// that can be updated are: -// -// +---------------+----------+ -// | id | nb_pages | -// +---------------+----------+ -// | 2005 | 241109 | -// | 2005-08 | 20133 | -// | 2005-08-25 | 620 | -// | 2005-08-25-21 | 151 | -// +---------------+----------+ - - -$updates = array(); -$inserts = array(); - -if (isset($first_time_key)) -{ - list($year, $month, $day, $hour) = explode('-', $first_time_key); - - $query = ' -SELECT * - FROM '.HISTORY_SUMMARY_TABLE.' - WHERE year='.$year.' - AND ( month IS NULL - OR ( month='.$month.' - AND ( day is NULL - OR (day='.$day.' - AND (hour IS NULL OR hour='.$hour.') - ) - ) - ) - ) -;'; - $result = pwg_query($query); - while ($row = pwg_db_fetch_assoc($result)) - { - $key = sprintf('%4u', $row['year']); - if ( isset($row['month']) ) - { - $key .= sprintf('-%02u', $row['month']); - if ( isset($row['day']) ) - { - $key .= sprintf('-%02u', $row['day']); - if ( isset($row['hour']) ) - { - $key .= sprintf('-%02u', $row['hour']); - } - } - } - - if (isset($need_update[$key])) - { - $row['nb_pages'] += $need_update[$key]; - $updates[] = $row; - unset($need_update[$key]); - } - } -} - -foreach ($need_update as $time_key => $nb_pages) -{ - $time_tokens = explode('-', $time_key); - - $inserts[] = array( - 'year' => $time_tokens[0], - 'month' => @$time_tokens[1], - 'day' => @$time_tokens[2], - 'hour' => @$time_tokens[3], - 'nb_pages' => $nb_pages, - ); -} - -if (count($updates) > 0) -{ - mass_updates( - HISTORY_SUMMARY_TABLE, - array( - 'primary' => array('year','month','day','hour'), - 'update' => array('nb_pages'), - ), - $updates - ); -} - -if (count($inserts) > 0) -{ - mass_inserts( - HISTORY_SUMMARY_TABLE, - array_keys($inserts[0]), - $inserts - ); -} - -if ($max_id != 0) -{ - $query = ' -UPDATE '.HISTORY_TABLE.' - SET summarized = \'true\' - WHERE summarized = \'false\' - AND id <= '.$max_id.' -;'; - pwg_query($query); -} +history_summarize(); // +-----------------------------------------------------------------------+ // | Page parameters check | diff --git a/admin/tags.php b/admin/tags.php index ce503ba67..a56f20221 100644 --- a/admin/tags.php +++ b/admin/tags.php @@ -34,6 +34,19 @@ if (!empty($_POST)) check_pwg_token(); } +// +-----------------------------------------------------------------------+ +// | tabs | +// +-----------------------------------------------------------------------+ + +include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); + +$my_base_url = get_root_url().'admin.php?page='; + +$tabsheet = new tabsheet(); +$tabsheet->set_id('tags'); +$tabsheet->select(''); +$tabsheet->assign(); + // +-----------------------------------------------------------------------+ // | edit tags | // +-----------------------------------------------------------------------+ @@ -289,20 +302,27 @@ SELECT if (isset($_POST['delete']) and isset($_POST['tags'])) { - $query = ' + if (!isset($_POST['confirm_deletion'])) + { + $page['errors'][] = l10n('You need to confirm deletion'); + } + else + { + $query = ' SELECT name FROM '.TAGS_TABLE.' WHERE id IN ('.implode(',', $_POST['tags']).') ;'; - $tag_names = array_from_query($query, 'name'); + $tag_names = array_from_query($query, 'name'); - delete_tags($_POST['tags']); + delete_tags($_POST['tags']); - $page['infos'][] = l10n_dec( - 'The following tag was deleted', 'The %d following tags were deleted', - count($tag_names) - ) - .' : '.implode(', ', $tag_names); + $page['infos'][] = l10n_dec( + 'The following tag was deleted', 'The %d following tags were deleted', + count($tag_names) + ) + .' : '.implode(', ', $tag_names); + } } // +-----------------------------------------------------------------------+ @@ -364,7 +384,7 @@ foreach ($orphan_tags as $tag) if (count($orphan_tag_names) > 0) { $page['warnings'][] = sprintf( - l10n('You have %d orphan tags: %s.').' '.l10n('Delete orphan tags').'', + l10n('You have %d orphan tags: %s.').' '.l10n('Delete orphan tags').'', count($orphan_tag_names), implode(', ', $orphan_tag_names), get_root_url().'admin.php?page=tags&action=delete_orphans&pwg_token='.get_pwg_token() diff --git a/admin/themes/clear/theme.css b/admin/themes/clear/theme.css index eff007248..107d86c75 100644 --- a/admin/themes/clear/theme.css +++ b/admin/themes/clear/theme.css @@ -69,7 +69,7 @@ h3, .throw, .row1 { background-color: #ddd; } #content { background: #f1f1f1; - border: 1px solid #aaa; + border: 1px solid #f9f9f9; min-height: 467px; margin-left:217px; margin-top: 7px; @@ -91,7 +91,16 @@ UL.thumbnails span.wrap2 { /* borders */ -fieldset { border: 2px solid #ddd; } +fieldset { + border: none; + border-top: 2px solid #ddd; +} + +fieldset.with-border { + border: 2px solid #ddd; +} + + TEXTAREA { cursor:text; font-size: 13px; } .tagSelection label { padding-right:12px; } .tagSelection LI.tagSelected {background-color:#dbe8f3;} @@ -168,23 +177,27 @@ margin-top:4px; padding-bottom:3px; padding-top:3px; top:1px; } #menubar ul.scroll { overflow-y:auto; max-height:500px; } -#menubar dl { width: 200px; min-height:35px; border:0; margin: 0; padding: 0; display: block; border:1px solid #ddd; background-color:#f1f1f1; border-left:none; } +#menubar dl { width: 200px; min-height:35px; border:0; margin: 0; padding: 0; display: block; border:0; background-color:#444; border-left:none; } #menubar dd { margin: 0; padding: 0; } #menubar dt { - background-color: #ddd; margin: 0; display: block; font-weight:bold; - position:relative; padding: 5px 1px 4px 5px; font-size: 13px; color: #777; + background-color: #333; margin: 0; display: block; font-weight:bold; + position:relative; padding: 5px 1px 4px 5px; font-size: 13px; color: #aaa; cursor:pointer; } -#menubar dl:first-of-type, #menubar dl:first-of-type dt { border-radius:0 6px 0 0; } -#menubar dl:last-of-type { border-radius:0 0 6px 0; } +#menubar dl:first-of-type, #menubar dl:first-of-type dt { border-radius:0; } +#menubar dl:last-of-type { border-radius:0; } #menubar li { margin: 0; padding-left:10px; } -#menubar li A { display:block; } -#menubar li A:hover {color:black; text-decoration:none} -#menubar li:hover {background-color:#dbe8f3;} +#menubar li A { display:block; color:#ccc } +#menubar li A:hover {color:#eee; text-decoration:none} +#menubar li:hover {background-color:#222;} #menubar ul { color: #ccc; margin:0; line-height: 25px; list-style-type: none; list-style-position: inside; padding: 0; } -#adminHome {background-color:#ddd;border-radius: 0 6px 6px 0;margin-left:0;margin-bottom:17px;} -#adminHome:hover {background-color:#d0d0d0;} +#adminHome {background-color:#333;border-radius: 0;margin-left:0;margin-bottom:17px;} +#adminHome:hover {background-color:#f70;} +#adminHome A {color:#aaa} +#adminHome:hover A {color:#fff} + +#menubar i {font-size:14px;} /* jQuery tooltips */ .ui-tooltip { @@ -269,17 +282,19 @@ INPUT[type="text"].large { width: 317px; } #themesContent H3 {border-bottom:1px solid #aaa;} .themeDefault {background-color:#dbe8f3;} -#pluginsMenuSeparator {border:1px solid #ddd;} +#pluginsMenuSeparator {border:1px solid #555;} #pwgHead, #footer { - background-color: #ddd; - color: #666; + background-color: #333; + color: #ccc; } +#pwgHead h1 A:hover [class="icon-home"] { + color:#ff7700; +} -#pwgHead A, #footer A {color:#444;} -#pwgHead A:hover, #footer A:hover {color:black;} -#footer { background-image: url(images/piwigo_logo_small.png);} +#pwgHead A, #footer A {color:#ccc;} +#pwgHead A:hover, #footer A:hover {color:white;} .pluginBox, .pluginMiniBox, .groups li {background-color:#ddd;color:#353535;border-color:#ddd;} .pluginBoxNameCell, .pluginMiniBoxNameCell {color:#111;} @@ -292,8 +307,48 @@ INPUT[type="text"].large { width: 317px; } UL.thumbnails li.rank-of-image {background-color: #ddd;} -#batchManagerGlobal .thumbSelected {background-color:#C2F5C2 !important} -#batchManagerGlobal #selectedMessage {background-color:#C2F5C2;} +/* Batch Manager */ +#batchManagerGlobal .thumbnails .font-checkbox [class*="icon-check"]::before { + color:#999; +} + +#batchManagerGlobal .thumbnails li:hover .font-checkbox [class*="icon-check"]::before { + color:white; +} + +#batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"]::before { + color:white; +} + +#batchManagerGlobal UL.thumbnails li:hover .wrap2 { + background-color: #ff7700; + color: #999; +} + +#batchManagerGlobal .thumbSelected { background-color:transparent !important } + +#batchManagerGlobal .thumbSelected .wrap2 { + background-color: #444 !important; +} + +#batchManagerGlobal #selectedMessage { + background-color: #555; + color:white; +} + +/* beta-test begins: specific changes on Batch Manager */ +#batchManagerGlobal legend { + background-color:#ddd; + color:#555; + padding:5px 10px; +} + +#batchManagerGlobal fieldset { + margin-top:2em; +} +/* beta-test ends */ + + .slider-info {color:#ff7700;font-weight:bold;} .selectedComment {background-color:#C2F5C2;} @@ -307,10 +362,7 @@ UL.thumbnails li.rank-of-image {background-color: #ddd;} border:none; background-color:#666; color:#fff; - padding:2px 5px; - -moz-border-radius:5px; - -webkit-border-radius:5px; - border-radius:5px; + padding:4px 7px; margin-left:0; } @@ -321,6 +373,10 @@ UL.thumbnails li.rank-of-image {background-color: #ddd;} text-decoration: none; } +.buttonLike i { + font-size:14px; +} + .buttonLike:disabled, input[type="submit"]:disabled, input[type="button"]:disabled, input[type="reset"]:disabled { background-color:#999; color:#eee; @@ -361,8 +417,12 @@ table.dataTable tr.odd td.sorting_1 { color:#333; } -table.dataTable thead th { - border-color: #aaa !important; +table.dataTable thead th, table.dataTable.no-footer { + border-color: #ddd !important; +} + +.dataTables_wrapper .dataTables_info { + color:#777 !important; } .userPropertiesContainer {border-color:#ddd;} @@ -382,3 +442,29 @@ table.dataTable thead th { } .font-checkbox [class*=icon-check]:before { color:#444; } + +#watermarkPositionBox { + border:2px solid #ccc; + background-color:#e5e5e5; +} + +#watermarkPositionBox label { + color:#444; +} + +/* beta-test begins: specific changes on album edition page*/ +#catModify input[type="text"], #catModify textarea { + border: 2px solid #ddd; + background-color:#fff; + padding:5px; +} + +#catModify input[type="text"].large, #catModify textarea.description { + width:590px; +} + +#catModify input[type="text"]:focus, #catModify textarea:focus { + border-color: #ff7700; + background-color:#fff; +} +/* beta-test ends */ \ No newline at end of file diff --git a/admin/themes/default/fontello/LICENSE.txt b/admin/themes/default/fontello/LICENSE.txt index 6e09529c8..e0dbaeb31 100644 --- a/admin/themes/default/fontello/LICENSE.txt +++ b/admin/themes/default/fontello/LICENSE.txt @@ -3,7 +3,7 @@ Font license info ## Font Awesome - Copyright (C) 2012 by Dave Gandy + Copyright (C) 2016 by Dave Gandy Author: Dave Gandy License: SIL () diff --git a/admin/themes/default/fontello/README.txt b/admin/themes/default/fontello/README.txt index a91438a9a..beaab3366 100644 --- a/admin/themes/default/fontello/README.txt +++ b/admin/themes/default/fontello/README.txt @@ -2,14 +2,14 @@ This webfont is generated by http://fontello.com open source project. ================================================================================ -Please, note, that you should obey original font licences, used to make this +Please, note, that you should obey original font licenses, used to make this webfont pack. Details available in LICENSE.txt file. - Usually, it's enough to publish content of LICENSE.txt file somewhere on your site in "About" section. - If your project is open-source, usually, it will be ok to make LICENSE.txt - file publically available in your repository. + file publicly available in your repository. - Fonts, used in Fontello, don't require a clickable link on your site. But any kind of additional authors crediting is welcome. diff --git a/admin/themes/default/fontello/config.json b/admin/themes/default/fontello/config.json index 20c3fe735..37d38e22c 100644 --- a/admin/themes/default/fontello/config.json +++ b/admin/themes/default/fontello/config.json @@ -36,12 +36,6 @@ "code": 9734, "src": "fontawesome" }, - { - "uid": "8b80d36d4ef43889db10bc1f0dc9a862", - "css": "user", - "code": 128100, - "src": "fontawesome" - }, { "uid": "381da2c2f7fd51f8de877c044d7f439d", "css": "picture", @@ -407,6 +401,126 @@ "css": "asl", "code": 57517, "src": "elusive" + }, + { + "uid": "b08cfe8039de2ce815686aced2caef06", + "css": "download", + "code": 59430, + "src": "entypo" + }, + { + "uid": "c76b7947c957c9b78b11741173c8349b", + "css": "attention", + "code": 59433, + "src": "fontawesome" + }, + { + "uid": "795efd07cd5205b589c883916a76cff0", + "css": "hdd", + "code": 61600, + "src": "fontawesome" + }, + { + "uid": "89eb512cb82a1c3fe83cb16134f9876c", + "css": "back-in-time", + "code": 59434, + "src": "entypo" + }, + { + "uid": "fb94e23ae1e7660aa63cc5f351ec7560", + "css": "right", + "code": 61816, + "src": "fontawesome" + }, + { + "uid": "f9c3205df26e7778abac86183aefdc99", + "css": "ccw", + "code": 59435, + "src": "fontawesome" + }, + { + "uid": "7fd683b2c518ceb9e5fa6757f2276faa", + "css": "eye-off", + "code": 59436, + "src": "fontawesome" + }, + { + "uid": "bbd66ef66bb8fa9edde54d9a90b89150", + "css": "user", + "code": 59437, + "src": "entypo" + }, + { + "uid": "c2152732d525871cf35345955854f711", + "css": "moon-inv", + "code": 59438, + "src": "iconic" + }, + { + "uid": "48050e07077b01021f7fbdbbec8f7de7", + "css": "sun-inv", + "code": 59439, + "src": "iconic" + }, + { + "uid": "9755f76110ae4d12ac5f9466c9152031", + "css": "book", + "code": 59440, + "src": "fontawesome" + }, + { + "uid": "ebffa4e734c8379ffee4fbfe49264d94", + "css": "lifebuoy", + "code": 61901, + "src": "fontawesome" + }, + { + "uid": "266d5d9adf15a61800477a5acf9a4462", + "css": "chart-bar", + "code": 59441, + "src": "fontawesome" + }, + { + "uid": "cfb6e143c0650c485536374f2a2f88fb", + "css": "television", + "code": 62060, + "src": "fontawesome" + }, + { + "uid": "422e07e5afb80258a9c4ed1706498f8a", + "css": "circle-empty", + "code": 61708, + "src": "fontawesome" + }, + { + "uid": "81bb68665e8e595505272a746db07c7a", + "css": "dot-circled", + "code": 61842, + "src": "fontawesome" + }, + { + "uid": "f4445feb55521283572ee88bc304f928", + "css": "floppy", + "code": 59442, + "src": "fontawesome" + }, + { + "uid": "3a7b6876c1817ce3b801b86c04a9d0af", + "css": "sort-number-up", + "code": 61794, + "src": "fontawesome" + }, + { + "uid": "b1887b423d2fd15c345e090320c91ca0", + "css": "th", + "code": 59443, + "src": "fontawesome" + }, + { + "uid": "f805bb95d40c7ef2bc51b3d50d4f2e5c", + "css": "th-list", + "code": 59444, + "src": "fontawesome" } ] } \ No newline at end of file diff --git a/admin/themes/default/fontello/css/fontello-codes.css b/admin/themes/default/fontello/css/fontello-codes.css index d31cf3433..86b1952b9 100644 --- a/admin/themes/default/fontello/css/fontello-codes.css +++ b/admin/themes/default/fontello/css/fontello-codes.css @@ -53,15 +53,34 @@ .icon-plus:before { content: '\e823'; } /* '' */ .icon-ok-circled:before { content: '\e824'; } /* '' */ .icon-heart-broken:before { content: '\e825'; } /* '' */ +.icon-download:before { content: '\e826'; } /* '' */ .icon-zoom-in:before { content: '\e827'; } /* '' */ .icon-zoom-out:before { content: '\e828'; } /* '' */ +.icon-attention:before { content: '\e829'; } /* '' */ +.icon-back-in-time:before { content: '\e82a'; } /* '' */ +.icon-ccw:before { content: '\e82b'; } /* '' */ +.icon-eye-off:before { content: '\e82c'; } /* '' */ +.icon-user:before { content: '\e82d'; } /* '' */ +.icon-moon-inv:before { content: '\e82e'; } /* '' */ +.icon-sun-inv:before { content: '\e82f'; } /* '' */ +.icon-book:before { content: '\e830'; } /* '' */ +.icon-chart-bar:before { content: '\e831'; } /* '' */ +.icon-floppy:before { content: '\e832'; } /* '' */ +.icon-th:before { content: '\e833'; } /* '' */ +.icon-th-list:before { content: '\e834'; } /* '' */ +.icon-hdd:before { content: '\f0a0'; } /* '' */ .icon-tasks:before { content: '\f0ae'; } /* '' */ .icon-filter:before { content: '\f0b0'; } /* '' */ .icon-mail-alt:before { content: '\f0e0'; } /* '' */ .icon-sitemap:before { content: '\f0e8'; } /* '' */ +.icon-circle-empty:before { content: '\f10c'; } /* '' */ .icon-crop:before { content: '\f125'; } /* '' */ +.icon-sort-number-up:before { content: '\f162'; } /* '' */ +.icon-right:before { content: '\f178'; } /* '' */ +.icon-dot-circled:before { content: '\f192'; } /* '' */ +.icon-lifebuoy:before { content: '\f1cd'; } /* '' */ +.icon-television:before { content: '\f26c'; } /* '' */ .icon-picture:before { content: '🌄'; } /* '\1f304' */ -.icon-user:before { content: '👤'; } /* '\1f464' */ .icon-shuffle:before { content: '🔀'; } /* '\1f500' */ .icon-lock:before { content: '🔒'; } /* '\1f512' */ .icon-link:before { content: '🔗'; } /* '\1f517' */ diff --git a/admin/themes/default/fontello/css/fontello-embedded.css b/admin/themes/default/fontello/css/fontello-embedded.css index e17d676a8..e3504912d 100644 --- a/admin/themes/default/fontello/css/fontello-embedded.css +++ b/admin/themes/default/fontello/css/fontello-embedded.css @@ -2,16 +2,16 @@ @font-face { font-family: 'fontello'; - src: url('../font/fontello.eot?37675340'); - src: url('../font/fontello.eot?37675340#iefix') format('embedded-opentype'), - url('../font/fontello.svg?37675340#fontello') format('svg'); + src: url('../font/fontello.eot?51972163'); + src: url('../font/fontello.eot?51972163#iefix') format('embedded-opentype'), + url('../font/fontello.svg?51972163#fontello') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'fontello'; - src: url('data:application/octet-stream;base64,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') format('woff'), - url('data:application/octet-stream;base64,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JUmwAiVhuQgACABjYyMgWGIbIVljuAQAYiCwAFBYsEBgWWawAWNgIy4jICA8ijgjIVktsDossAAWILAIQyAuRyNHI2EgYLAgYGawAmIgsABQWLBAYFlmsAFjIyAgPIo4LbA7LCMgLkawAiVGUlggPFkusSsBFCstsDwsIyAuRrACJUZQWCA8WS6xKwEUKy2wPSwjIC5GsAIlRlJYIDxZIyAuRrACJUZQWCA8WS6xKwEUKy2wPiywNSsjIC5GsAIlRlJYIDxZLrErARQrLbA/LLA2K4ogIDywBCNCijgjIC5GsAIlRlJYIDxZLrErARQrsARDLrArKy2wQCywABawBCWwBCYgLkcjRyNhsAlDKyMgPCAuIzixKwEUKy2wQSyxCAQlQrAAFrAEJbAEJSAuRyNHI2EgsAQjQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjIEewBEOwAmIgsABQWLBAYFlmsAFjYCCwASsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsAJiILAAUFiwQGBZZrABY2GwAiVGYTgjIDwjOBshICBGI0ewASsjYTghWbErARQrLbBCLLA1Ky6xKwEUKy2wQyywNishIyAgPLAEI0IjOLErARQrsARDLrArKy2wRCywABUgR7AAI0KyAAEBFRQTLrAxKi2wRSywABUgR7AAI0KyAAEBFRQTLrAxKi2wRiyxAAEUE7AyKi2wRyywNCotsEgssAAWRSMgLiBGiiNhOLErARQrLbBJLLAII0KwSCstsEossgAAQSstsEsssgABQSstsEwssgEAQSstsE0ssgEBQSstsE4ssgAAQistsE8ssgABQistsFAssgEAQistsFEssgEBQistsFIssgAAPistsFMssgABPistsFQssgEAPistsFUssgEBPistsFYssgAAQCstsFcssgABQCstsFgssgEAQCstsFkssgEBQCstsFossgAAQystsFsssgABQystsFwssgEAQystsF0ssgEBQystsF4ssgAAPystsF8ssgABPystsGAssgEAPystsGEssgEBPystsGIssDcrLrErARQrLbBjLLA3K7A7Ky2wZCywNyuwPCstsGUssAAWsDcrsD0rLbBmLLA4Ky6xKwEUKy2wZyywOCuwOystsGgssDgrsDwrLbBpLLA4K7A9Ky2waiywOSsusSsBFCstsGsssDkrsDsrLbBsLLA5K7A8Ky2wbSywOSuwPSstsG4ssDorLrErARQrLbBvLLA6K7A7Ky2wcCywOiuwPCstsHEssDorsD0rLbByLLMJBAIDRVghGyMhWUIrsAhlsAMkUHiwARUwLQBLuADIUlixAQGOWbABuQgACABjcLEABUKxAAAqsQAFQrEACCqxAAVCsQAIKrEABUK5AAAACSqxAAVCuQAAAAkqsQMARLEkAYhRWLBAiFixA2REsSYBiFFYugiAAAEEQIhjVFixAwBEWVlZWbEADCq4Af+FsASNsQIARAA=') format('truetype'); + src: url('data:application/octet-stream;base64,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') format('woff'), + url('data:application/octet-stream;base64,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YQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVwECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAAEc3RhcgpzdGFyLWVtcHR5A2NvZwdjb2ctYWx0BG1haWwGcGVuY2lsDHBsdXMtY2lyY2xlZANhc2wDZXllBHRhZ3MEY2hhdAV0cmFzaAZiYXNrZXQGcHV6emxlCGxhbmd1YWdlBnNpZ25hbAV1c2VycwV0b29scwlhcnJvd3MtY3cIZXhjaGFuZ2ULZm9sZGVyLW9wZW4FYnJ1c2gLZmxvdy1icmFuY2gEbWVudQRjb2RlCHVzZXItYWRkAmN3BWdyb3VwBGhvbWUJZXF1YWxpemVyBm1haWwtMQZzZWFyY2gEbW92ZQZ1cGxvYWQMdXBsb2FkLWNsb3VkA2tleQduZXR3b3JrDmluZm8tY2lyY2xlZC0xCGNhbGVuZGFyAm9rDGhlbHAtY2lyY2xlZAZsb2dvdXQEZmxhZwVzcGluNglob3VyZ2xhc3MFY2hlY2sLY2hlY2stZW1wdHkOY2FuY2VsLWNpcmNsZWQGY2FuY2VsBHBsdXMKb2stY2lyY2xlZAxoZWFydC1icm9rZW4IZG93bmxvYWQHem9vbS1p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RCywABUgR7AAI0KyAAEBFRQTLrAxKi2wRSywABUgR7AAI0KyAAEBFRQTLrAxKi2wRiyxAAEUE7AyKi2wRyywNCotsEgssAAWRSMgLiBGiiNhOLErARQrLbBJLLAII0KwSCstsEossgAAQSstsEsssgABQSstsEwssgEAQSstsE0ssgEBQSstsE4ssgAAQistsE8ssgABQistsFAssgEAQistsFEssgEBQistsFIssgAAPistsFMssgABPistsFQssgEAPistsFUssgEBPistsFYssgAAQCstsFcssgABQCstsFgssgEAQCstsFkssgEBQCstsFossgAAQystsFsssgABQystsFwssgEAQystsF0ssgEBQystsF4ssgAAPystsF8ssgABPystsGAssgEAPystsGEssgEBPystsGIssDcrLrErARQrLbBjLLA3K7A7Ky2wZCywNyuwPCstsGUssAAWsDcrsD0rLbBmLLA4Ky6xKwEUKy2wZyywOCuwOystsGgssDgrsDwrLbBpLLA4K7A9Ky2waiywOSsusSsBFCstsGsssDkrsDsrLbBsLLA5K7A8Ky2wbSywOSuwPSstsG4ssDorLrErARQrLbBvLLA6K7A7Ky2wcCywOiuwPCstsHEssDorsD0rLbByLLMJBAIDRVghGyMhWUIrsAhlsAMkUHiwARUwLQBLuADIUlixAQGOWbABuQgACABjcLEABUKyAAEAKrEABUKzCgIBCCqxAAVCsw4AAQgqsQAGQroCwAABAAkqsQAHQroAQAABAAkqsQMARLEkAYhRWLBAiFixA2REsSYBiFFYugiAAAEEQIhjVFixAwBEWVlZWbMMAgEMKrgB/4WwBI2xAgBEAAA=') format('truetype'); } /* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ /* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ @@ -19,7 +19,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'fontello'; - src: url('../font/fontello.svg?37675340#fontello') format('svg'); + src: url('../font/fontello.svg?51972163#fontello') format('svg'); } } */ @@ -106,15 +106,34 @@ .icon-plus:before { content: '\e823'; } /* '' */ .icon-ok-circled:before { content: '\e824'; } /* '' */ .icon-heart-broken:before { content: '\e825'; } /* '' */ +.icon-download:before { content: '\e826'; } /* '' */ .icon-zoom-in:before { content: '\e827'; } /* '' */ .icon-zoom-out:before { content: '\e828'; } /* '' */ +.icon-attention:before { content: '\e829'; } /* '' */ +.icon-back-in-time:before { content: '\e82a'; } /* '' */ +.icon-ccw:before { content: '\e82b'; } /* '' */ +.icon-eye-off:before { content: '\e82c'; } /* '' */ +.icon-user:before { content: '\e82d'; } /* '' */ +.icon-moon-inv:before { content: '\e82e'; } /* '' */ +.icon-sun-inv:before { content: '\e82f'; } /* '' */ +.icon-book:before { content: '\e830'; } /* '' */ +.icon-chart-bar:before { content: '\e831'; } /* '' */ +.icon-floppy:before { content: '\e832'; } /* '' */ +.icon-th:before { content: '\e833'; } /* '' */ +.icon-th-list:before { content: '\e834'; } /* '' */ +.icon-hdd:before { content: '\f0a0'; } /* '' */ .icon-tasks:before { content: '\f0ae'; } /* '' */ .icon-filter:before { content: '\f0b0'; } /* '' */ .icon-mail-alt:before { content: '\f0e0'; } /* '' */ .icon-sitemap:before { content: '\f0e8'; } /* '' */ +.icon-circle-empty:before { content: '\f10c'; } /* '' */ .icon-crop:before { content: '\f125'; } /* '' */ +.icon-sort-number-up:before { content: '\f162'; } /* '' */ +.icon-right:before { content: '\f178'; } /* '' */ +.icon-dot-circled:before { content: '\f192'; } /* '' */ +.icon-lifebuoy:before { content: '\f1cd'; } /* '' */ +.icon-television:before { content: '\f26c'; } /* '' */ .icon-picture:before { content: '🌄'; } /* '\1f304' */ -.icon-user:before { content: '👤'; } /* '\1f464' */ .icon-shuffle:before { content: '🔀'; } /* '\1f500' */ .icon-lock:before { content: '🔒'; } /* '\1f512' */ .icon-link:before { content: '🔗'; } /* '\1f517' */ diff --git a/admin/themes/default/fontello/css/fontello-ie7-codes.css b/admin/themes/default/fontello/css/fontello-ie7-codes.css index 708cfdf4a..cab1dd811 100644 --- a/admin/themes/default/fontello/css/fontello-ie7-codes.css +++ b/admin/themes/default/fontello/css/fontello-ie7-codes.css @@ -51,15 +51,34 @@ .icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-ok-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-heart-broken { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-download { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-zoom-in { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-zoom-out { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-attention { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-back-in-time { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-ccw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-moon-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-sun-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-book { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-chart-bar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-floppy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-hdd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-filter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-mail-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sitemap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-circle-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-crop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-sort-number-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-dot-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-lifebuoy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-television { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🌄 '); } -.icon-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '👤 '); } .icon-shuffle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔀 '); } .icon-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔒 '); } .icon-link { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔗 '); } diff --git a/admin/themes/default/fontello/css/fontello-ie7.css b/admin/themes/default/fontello/css/fontello-ie7.css index c1e1ec524..8ef42bd97 100644 --- a/admin/themes/default/fontello/css/fontello-ie7.css +++ b/admin/themes/default/fontello/css/fontello-ie7.css @@ -62,15 +62,34 @@ .icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-ok-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-heart-broken { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-download { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-zoom-in { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-zoom-out { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-attention { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-back-in-time { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-ccw { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-eye-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-moon-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-sun-inv { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-book { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-chart-bar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-floppy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-th { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-hdd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-filter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-mail-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sitemap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-circle-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-crop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-sort-number-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-dot-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-lifebuoy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-television { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🌄 '); } -.icon-user { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '👤 '); } .icon-shuffle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔀 '); } .icon-lock { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔒 '); } .icon-link { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔗 '); } diff --git a/admin/themes/default/fontello/css/fontello.css b/admin/themes/default/fontello/css/fontello.css index 40777f186..7baf365ba 100644 --- a/admin/themes/default/fontello/css/fontello.css +++ b/admin/themes/default/fontello/css/fontello.css @@ -2,11 +2,12 @@ @font-face { font-family: 'fontello'; - src: url('../font/fontello.eot?38260160'); - src: url('../font/fontello.eot?38260160#iefix') format('embedded-opentype'), - url('../font/fontello.woff?38260160') format('woff'), - url('../font/fontello.ttf?38260160') format('truetype'), - url('../font/fontello.svg?38260160#fontello') format('svg'); + src: url('../font/fontello.eot?65070433'); + src: url('../font/fontello.eot?65070433#iefix') format('embedded-opentype'), + url('../font/fontello.woff2?65070433') format('woff2'), + url('../font/fontello.woff?65070433') format('woff'), + url('../font/fontello.ttf?65070433') format('truetype'), + url('../font/fontello.svg?65070433#fontello') format('svg'); font-weight: normal; font-style: normal; } @@ -16,7 +17,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'fontello'; - src: url('../font/fontello.svg?38260160#fontello') format('svg'); + src: url('../font/fontello.svg?65070433#fontello') format('svg'); } } */ @@ -108,15 +109,34 @@ .icon-plus:before { content: '\e823'; } /* '' */ .icon-ok-circled:before { content: '\e824'; } /* '' */ .icon-heart-broken:before { content: '\e825'; } /* '' */ +.icon-download:before { content: '\e826'; } /* '' */ .icon-zoom-in:before { content: '\e827'; } /* '' */ .icon-zoom-out:before { content: '\e828'; } /* '' */ +.icon-attention:before { content: '\e829'; } /* '' */ +.icon-back-in-time:before { content: '\e82a'; } /* '' */ +.icon-ccw:before { content: '\e82b'; } /* '' */ +.icon-eye-off:before { content: '\e82c'; } /* '' */ +.icon-user:before { content: '\e82d'; } /* '' */ +.icon-moon-inv:before { content: '\e82e'; } /* '' */ +.icon-sun-inv:before { content: '\e82f'; } /* '' */ +.icon-book:before { content: '\e830'; } /* '' */ +.icon-chart-bar:before { content: '\e831'; } /* '' */ +.icon-floppy:before { content: '\e832'; } /* '' */ +.icon-th:before { content: '\e833'; } /* '' */ +.icon-th-list:before { content: '\e834'; } /* '' */ +.icon-hdd:before { content: '\f0a0'; } /* '' */ .icon-tasks:before { content: '\f0ae'; } /* '' */ .icon-filter:before { content: '\f0b0'; } /* '' */ .icon-mail-alt:before { content: '\f0e0'; } /* '' */ .icon-sitemap:before { content: '\f0e8'; } /* '' */ +.icon-circle-empty:before { content: '\f10c'; } /* '' */ .icon-crop:before { content: '\f125'; } /* '' */ +.icon-sort-number-up:before { content: '\f162'; } /* '' */ +.icon-right:before { content: '\f178'; } /* '' */ +.icon-dot-circled:before { content: '\f192'; } /* '' */ +.icon-lifebuoy:before { content: '\f1cd'; } /* '' */ +.icon-television:before { content: '\f26c'; } /* '' */ .icon-picture:before { content: '🌄'; } /* '\1f304' */ -.icon-user:before { content: '👤'; } /* '\1f464' */ .icon-shuffle:before { content: '🔀'; } /* '\1f500' */ .icon-lock:before { content: '🔒'; } /* '\1f512' */ .icon-link:before { content: '🔗'; } /* '\1f517' */ diff --git a/admin/themes/default/fontello/demo.html b/admin/themes/default/fontello/demo.html index c7bd65f9e..74369f164 100644 --- a/admin/themes/default/fontello/demo.html +++ b/admin/themes/default/fontello/demo.html @@ -229,11 +229,11 @@ body { } @font-face { font-family: 'fontello'; - src: url('./font/fontello.eot?58887028'); - src: url('./font/fontello.eot?58887028#iefix') format('embedded-opentype'), - url('./font/fontello.woff?58887028') format('woff'), - url('./font/fontello.ttf?58887028') format('truetype'), - url('./font/fontello.svg?58887028#fontello') format('svg'); + src: url('./font/fontello.eot?6746318'); + src: url('./font/fontello.eot?6746318#iefix') format('embedded-opentype'), + url('./font/fontello.woff?6746318') format('woff'), + url('./font/fontello.ttf?6746318') format('truetype'), + url('./font/fontello.svg?6746318#fontello') format('svg'); font-weight: normal; font-style: normal; } @@ -279,7 +279,7 @@ body {