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 {