From ea960a5563416318ec4bfc9da81af3d2e0f7ed85 Mon Sep 17 00:00:00 2001 From: rub Date: Wed, 13 Feb 2008 20:13:12 +0000 Subject: Resolved issue 0000792: Admin "intro" : Integrity control bypass Some sentences must be re-write ;-) git-svn-id: http://piwigo.org/svn/trunk@2208 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/include/functions_check_integrity.inc.php | 248 ++++++++++++++++++------ admin/maintenance.php | 9 +- install/config.sql | 1 + install/db/66-database.php | 51 +++++ language/en_UK/admin.lang.php | 15 +- language/es_ES/admin.lang.php | 15 +- language/fr_FR/admin.lang.php | 15 +- language/nl_NL/admin.lang.php | 15 +- plugins/c13y_upgrade/initialize.inc.php | 17 +- template/yoga/admin/check_integrity.tpl | 78 +++++--- template/yoga/admin/maintenance.tpl | 4 + 11 files changed, 366 insertions(+), 102 deletions(-) create mode 100644 install/db/66-database.php diff --git a/admin/include/functions_check_integrity.inc.php b/admin/include/functions_check_integrity.inc.php index fb97681c4..fe57a02e7 100644 --- a/admin/include/functions_check_integrity.inc.php +++ b/admin/include/functions_check_integrity.inc.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -32,30 +32,51 @@ */ function check_integrity() { - global $page, $header_notes; + global $page, $header_notes, $conf; + + // Ignore list + $conf_c13y_ignore = unserialize($conf['c13y_ignore']); + if ( + is_array($conf_c13y_ignore) and + isset($conf_c13y_ignore['version']) and + ($conf_c13y_ignore['version'] == PHPWG_VERSION) and + is_array($conf_c13y_ignore['list']) + ) + { + $ignore_list_changed = false; + $page['check_integrity']['ignore_list'] = $conf_c13y_ignore['list']; + } + else + { + $ignore_list_changed = true; + $page['check_integrity']['ignore_list'] = array(); + } - add_event_handler('get_check_integrity', 'c13y_exif'); - add_event_handler('get_check_integrity', 'c13y_user'); + // Retrieve list + $page['check_integrity']['list'] = array(); + $page['check_integrity']['build_ignore_list'] = array(); - $page['check_integrity'] = array(); - $page['check_integrity'] = trigger_event('get_check_integrity', - $page['check_integrity']); + add_event_handler('list_check_integrity', 'c13y_exif'); + add_event_handler('list_check_integrity', 'c13y_user'); + trigger_action('list_check_integrity'); - if (count($page['check_integrity']) > 0) + // Information + if (count($page['check_integrity']['list']) > 0) { $header_notes[] = l10n_dec('c13y_anomaly_count', 'c13y_anomalies_count', - count($page['check_integrity'])); + count($page['check_integrity']['list'])); } + // Treatments if (!is_adviser()) { - if (isset($_POST['c13y_submit']) and isset($_POST['c13y_selection'])) + if (isset($_POST['c13y_submit_correction']) and isset($_POST['c13y_selection'])) { $corrected_count = 0; $not_corrected_count = 0; - foreach ($page['check_integrity'] as $i => $c13y) + foreach ($page['check_integrity']['list'] as $i => $c13y) { if (!empty($c13y['correction_fct']) and $c13y['is_callable'] and @@ -74,9 +95,9 @@ function check_integrity() { $args = array(); } - $page['check_integrity'][$i]['corrected'] = call_user_func_array($c13y['correction_fct'], $args); + $page['check_integrity']['list'][$i]['corrected'] = call_user_func_array($c13y['correction_fct'], $args); - if ($page['check_integrity'][$i]['corrected']) + if ($page['check_integrity']['list'][$i]['corrected']) { $corrected_count += 1; } @@ -100,6 +121,42 @@ function check_integrity() $not_corrected_count); } } + else + { + if (isset($_POST['c13y_submit_ignore']) and isset($_POST['c13y_selection'])) + { + $ignored_count = 0; + + foreach ($page['check_integrity']['list'] as $i => $c13y) + { + if (in_array($c13y['id'], $_POST['c13y_selection'])) + { + $page['check_integrity']['build_ignore_list'][] = $c13y['id']; + $page['check_integrity']['list'][$i]['ignored'] = true; + $ignored_count += 1; + } + } + + if ($ignored_count > 0) + { + $page['infos'][] = + l10n_dec('c13y_anomaly_ignored_count', 'c13y_anomalies_ignored_count', + $ignored_count); + } + } + } + } + + $ignore_list_changed = + ( + ($ignore_list_changed) or + (count(array_diff($page['check_integrity']['ignore_list'], $page['check_integrity']['build_ignore_list'])) > 0) or + (count(array_diff($page['check_integrity']['build_ignore_list'], $page['check_integrity']['ignore_list'])) > 0) + ); + + if ($ignore_list_changed) + { + c13y_update_conf($page['check_integrity']['build_ignore_list']); } } @@ -113,14 +170,18 @@ function display_check_integrity() { global $template, $page; - $show_submit = false; + $check_automatic_correction = false; + $submit_automatic_correction = false; + $submit_ignore = false; - if (isset($page['check_integrity']) and count($page['check_integrity']) > 0) + if (isset($page['check_integrity']['list']) and count($page['check_integrity']['list']) > 0) { $template->set_filenames(array('check_integrity' => 'admin/check_integrity.tpl')); - foreach ($page['check_integrity'] as $i => $c13y) + foreach ($page['check_integrity']['list'] as $i => $c13y) { + $can_select = false; + $template->assign_block_vars('c13y', array( 'CLASS' => ($i % 2 == 1) ? 'row2' : 'row1', @@ -128,48 +189,82 @@ function display_check_integrity() 'ANOMALY' => $c13y['anomaly'] )); - if (!empty($c13y['correction_fct'])) + + if (isset($c13y['ignored'])) { - if (isset($c13y['corrected'])) + if ($c13y['ignored']) { - if ($c13y['corrected']) + $template->assign_block_vars('c13y.ignore_msg', array()); + } + else + { + die('$c13y[\'ignored\'] cannot be false'); + } + } + else + { + if (!empty($c13y['correction_fct'])) + { + if (isset($c13y['corrected'])) { - $template->assign_block_vars('c13y.correction_success_fct', array()); + if ($c13y['corrected']) + { + $template->assign_block_vars('c13y.correction_success_fct', array()); + } + else + { + $template->assign_block_vars('c13y.correction_error_fct', + array('WIKI_FOROM_LINKS' => get_htlm_links_more_info())); + } + } + else if ($c13y['is_callable']) + { + $template->assign_block_vars('c13y.correction_fct', array()); + $template->assign_block_vars('c13y_link_check_automatic_correction.c13y_do_check', array('ID' => $c13y['id'])); + $submit_automatic_correction = true; + $can_select = true; } else { - $template->assign_block_vars('c13y.correction_error_fct', - array('WIKI_FOROM_LINKS' => get_htlm_links_more_info())); + $template->assign_block_vars('c13y.correction_bad_fct', array()); + $can_select = true; } } - else if ($c13y['is_callable']) + else + { + $can_select = true; + } + + if (!empty($c13y['correction_fct']) and !empty($c13y['correction_msg'])) { - $template->assign_block_vars('c13y.correction_fct', array()); - $show_submit = true; + $template->assign_block_vars('c13y.br', array()); } - else + + if (!empty($c13y['correction_msg']) and !isset($c13y['corrected'])) { - $template->assign_block_vars('c13y.correction_bad_fct', array()); + $template->assign_block_vars('c13y.correction_msg', + array( + 'DATA' => nl2br($c13y['correction_msg']) + )); } } - if (!empty($c13y['correction_fct']) and !empty($c13y['correction_msg'])) + if ($can_select) { - $template->assign_block_vars('c13y.br', array()); + $template->assign_block_vars('c13y.can_select', array()); + $submit_ignore = true; } + } - if (!empty($c13y['correction_msg']) and !isset($c13y['corrected'])) - { - $template->assign_block_vars('c13y.correction_msg', - array( - 'DATA' => nl2br($c13y['correction_msg']) - )); - } + if ($submit_automatic_correction) + { + $template->assign_block_vars('c13y_submit_automatic_correction', array()); } - if ($show_submit) + if ($submit_ignore) { - $template->assign_block_vars('c13y_submit', array()); + $template->assign_block_vars('c13y_link_check_uncheck', array()); + $template->assign_block_vars('c13y_submit_ignore', array()); } $template->concat_var_from_handle('ADMIN_CONTENT', 'check_integrity'); @@ -182,16 +277,53 @@ function display_check_integrity() * @param anomaly arguments * @return c13y anomaly array */ -function get_c13y($anomaly, $correction_fct = null, $correction_fct_args = null, $correction_msg = null) +function add_c13y($anomaly, $correction_fct = null, $correction_fct_args = null, $correction_msg = null) { - return - array( - 'id' => md5($anomaly.$correction_fct.serialize($correction_fct_args).$correction_msg), - 'anomaly' => $anomaly, - 'correction_fct' => $correction_fct, - 'correction_fct_args' => $correction_fct_args, - 'correction_msg' => $correction_msg, - 'is_callable' => is_callable($correction_fct)); + global $page; + + $id = md5($anomaly.$correction_fct.serialize($correction_fct_args).$correction_msg); + + if (in_array($id, $page['check_integrity']['ignore_list'])) + { + $page['check_integrity']['build_ignore_list'][] = $id; + } + else + { + $page['check_integrity']['list'][] = + array( + 'id' => $id, + 'anomaly' => $anomaly, + 'correction_fct' => $correction_fct, + 'correction_fct_args' => $correction_fct_args, + 'correction_msg' => $correction_msg, + 'is_callable' => is_callable($correction_fct)); + } +} + +/** + * Update table config + * + * @param ignore list array + * @return void + */ +function c13y_update_conf($ignore_list = array()) +{ + $conf_c13y_ignore = array(); + $conf_c13y_ignore['version'] = PHPWG_VERSION; + $conf_c13y_ignore['list'] = $ignore_list; + $query = 'update '.CONFIG_TABLE.' set value =\''.serialize($conf_c13y_ignore).'\'where param = \'c13y_ignore\';'; + pwg_query($query); +} + +/** + * Apply maintenance + * + * @param void + * @return void + */ +function c13y_maintenance() +{ + c13y_update_conf(); } /** @@ -216,10 +348,10 @@ function get_htlm_links_more_info() /** * Check exif * - * @param c13y anomalies array - * @return c13y anomalies array + * @param void + * @return void */ -function c13y_exif($c13y_array) +function c13y_exif() { global $conf; @@ -227,7 +359,7 @@ function c13y_exif($c13y_array) { if (($conf[$value]) and (!function_exists('read_exif_data'))) { - $c13y_array[] = get_c13y( + add_c13y( sprintf(l10n('c13y_exif_anomaly'), '$conf[\''.$value.'\']'), null, null, @@ -236,17 +368,15 @@ function c13y_exif($c13y_array) get_htlm_links_more_info()); } } - - return $c13y_array; } /** * Check user * - * @param c13y anomalies array - * @return c13y anomalies array + * @param void + * @return void */ -function c13y_user($c13y_array) +function c13y_user() { global $conf; @@ -290,18 +420,16 @@ where { if (!array_key_exists($id, $status)) { - $c13y_array[] = get_c13y(l10n($data['l10n_non_existent']), 'c13y_correction_user', + add_c13y(l10n($data['l10n_non_existent']), 'c13y_correction_user', array('id' => $id, 'action' => 'creation')); } else if (!empty($data['status']) and $status[$id] != $data['status']) { - $c13y_array[] = get_c13y(l10n($data['l10n_bad_status']), 'c13y_correction_user', + add_c13y(l10n($data['l10n_bad_status']), 'c13y_correction_user', array('id' => $id, 'action' => 'status')); } } - - return $c13y_array; } /** diff --git a/admin/maintenance.php b/admin/maintenance.php index 7ee5f84e5..4312e55b4 100644 --- a/admin/maintenance.php +++ b/admin/maintenance.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -97,6 +97,12 @@ DELETE do_maintenance_all_tables(); break; } + case 'c13y' : + { + include_once(PHPWG_ROOT_PATH.'admin/include/functions_check_integrity.inc.php'); + c13y_maintenance(); + break; + } default : { break; @@ -120,6 +126,7 @@ $template->assign_vars( 'U_MAINT_SESSIONS' => $start_url.'sessions', 'U_MAINT_FEEDS' => $start_url.'feeds', 'U_MAINT_DATABASE' => $start_url.'database', + 'U_MAINT_C13Y' => $start_url.'c13y', 'U_HELP' => PHPWG_ROOT_PATH.'popuphelp.php?page=maintenance', ) ); diff --git a/install/config.sql b/install/config.sql index 8d7db0307..01793eb94 100644 --- a/install/config.sql +++ b/install/config.sql @@ -24,3 +24,4 @@ INSERT INTO phpwebgallery_config (param,value,comment) VALUES ('email_admin_on_c INSERT INTO phpwebgallery_config (param,value,comment) VALUES ('email_admin_on_comment_validation','false','Send an email to the administrators when a comment requires validation'); INSERT INTO phpwebgallery_config (param,value,comment) VALUES ('email_admin_on_picture_uploaded','false','Send an email to the administrators when a picture is uploaded'); INSERT INTO phpwebgallery_config (param,value,comment) VALUES ('obligatory_user_mail_address','false','Mail address is obligatory for users'); +INSERT INTO phpwebgallery_config (param,value,comment) VALUES ('c13y_ignore',null,'List of ignored anomalies'); diff --git a/install/db/66-database.php b/install/db/66-database.php new file mode 100644 index 000000000..a76511578 --- /dev/null +++ b/install/db/66-database.php @@ -0,0 +1,51 @@ + diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index a8e621d39..74320a59a 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -616,7 +616,6 @@ $lang['c13y_Automatic_correction'] = 'Automatic correction'; $lang['c13y_Impossible_automatic_correction'] = 'Impossible automatic correction'; $lang['c13y_Correction_applied_success'] = 'Correction applied with success'; $lang['c13y_Correction_applied_error'] = 'Correction applied with error'; -$lang['c13y_Apply_selected_corrections'] = 'Apply selected corrections'; $lang['c13y_anomaly_count'] = '%d anomaly has been detected.'; $lang['c13y_anomalies_count'] = '%d anomalies has been detected.'; $lang['c13y_anomaly_corrected_count'] = '%d anomaly has been corrected.'; @@ -648,4 +647,16 @@ $lang['Level 1'] = 'Contacts'; $lang['Level 2'] = 'Friends'; $lang['Level 4'] = 'Family'; $lang['Level 8'] = 'Admins'; +$lang['c13y_maintenance'] = 'Reinitialize check integrity'; +$lang['c13y_check_all'] = 'Check all'; +$lang['c13y_uncheck_all'] = 'Uncheck all'; +$lang['c13y_check_auto'] = 'Check automatic corrections'; +$lang['c13y_submit_correction'] = 'Apply selected corrections'; +$lang['c13y_submit_ignore'] = 'Ignore selected anomalies'; +$lang['c13y_submit_refresh'] = 'Refresh'; +$lang['c13y_ignore_msg1'] = 'The anomaly will be ignored until next application version'; +$lang['c13y_ignore_msg2'] = 'Correction the anomaly will cancel the fact that it\'s ignored'; +$lang['c13y_anomaly_ignored_count'] = '%d anomaly has been ignored.'; +$lang['c13y_anomalies_ignored_count'] = '%d anomalies has been ignored.'; + ?> diff --git a/language/es_ES/admin.lang.php b/language/es_ES/admin.lang.php index 99b67424c..58054a686 100644 --- a/language/es_ES/admin.lang.php +++ b/language/es_ES/admin.lang.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -621,7 +621,6 @@ $lang['c13y_Automatic_correction'] = 'Corrección automática'; $lang['c13y_Impossible_automatic_correction'] = 'Corrección automática imposible'; $lang['c13y_Correction_applied_success'] = 'Corrección lograda'; $lang['c13y_Correction_applied_error'] = 'Corrección erronea'; -$lang['c13y_Apply_selected_corrections'] = 'Aplicar las correcciones seleccionadas'; $lang['c13y_anomaly_count'] = '%d anomalía ha sido detectada.'; $lang['c13y_anomalies_count'] = '%d anomalías han sido detectadas.'; $lang['c13y_anomaly_corrected_count'] = '%d anomalía ha sido corregida.'; @@ -654,4 +653,16 @@ $lang['Level 1'] = 'Contactos'; $lang['Level 2'] = 'Amigos'; $lang['Level 4'] = 'Familia'; $lang['Level 8'] = 'Admins'; +/* TODO */ $lang['c13y_maintenance'] = 'Reinitialize check integrity'; +$lang['c13y_check_all'] = 'Todo verificado'; +$lang['c13y_uncheck_all'] = 'Soltar todo'; +/* TODO */ $lang['c13y_check_auto'] = 'Check automatic corrections'; +$lang['c13y_submit_correction'] = 'Aplicar las correcciones seleccionadas'; +/* TODO */ $lang['c13y_submit_ignore'] = 'Ignore selected anomalies'; +/* TODO */ $lang['c13y_submit_refresh'] = 'Refresh'; +/* TODO */ $lang['c13y_ignore_msg1'] = 'The anomaly will be ignored until next application version'; +/* TODO */ $lang['c13y_ignore_msg2'] = 'Correction the anomaly will cancel the fact that it\'s ignored'; +/* TODO */ $lang['c13y_anomaly_ignored_count'] = '%d anomaly has been ignored.'; +/* TODO */ $lang['c13y_anomalies_ignored_count'] = '%d anomalies has been ignored.'; + ?> diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php index af1a57ff6..2b3e2885b 100644 --- a/language/fr_FR/admin.lang.php +++ b/language/fr_FR/admin.lang.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -617,7 +617,6 @@ $lang['c13y_Automatic_correction'] = 'Correction automatique'; $lang['c13y_Impossible_automatic_correction'] = 'Correction automatique impossible'; $lang['c13y_Correction_applied_success'] = 'Correction appliquée avec succés'; $lang['c13y_Correction_applied_error'] = 'Correction appliquée avec erreur'; -$lang['c13y_Apply_selected_corrections'] = 'Appliquer les corrections sélectionnées'; $lang['c13y_anomaly_count'] = '%d anomalie a été détecté.'; $lang['c13y_anomalies_count'] = '%d anomalies ont été détectées.'; $lang['c13y_anomaly_corrected_count'] = '%d anomalie a été corrigée.'; @@ -650,4 +649,16 @@ $lang['Level 1'] = 'Contacts'; $lang['Level 2'] = 'Amis'; $lang['Level 4'] = 'Famille'; $lang['Level 8'] = 'Admins'; +$lang['c13y_maintenance'] = 'Réinitialiser les contrôles d\'intégrité'; +$lang['c13y_check_all'] = 'Tout cocher'; +$lang['c13y_uncheck_all'] = 'Tout décocher'; +$lang['c13y_check_auto'] = 'Cocher les corrections automatiques'; +$lang['c13y_submit_correction'] = 'Appliquer les corrections sélectionnées'; +$lang['c13y_submit_ignore'] = 'Ignorer les anomalies sélectionnées'; +$lang['c13y_submit_refresh'] = 'Rafraîchir'; +$lang['c13y_ignore_msg1'] = 'L\'anomalie sera ignorée jusqu\'à la prochaine version de l\'application'; +$lang['c13y_ignore_msg2'] = 'La correction de l\'anomalie annulera le fait qu\'elle soit ignorée'; +$lang['c13y_anomaly_ignored_count'] = '%d anomalie a été ignorée.'; +$lang['c13y_anomalies_ignored_count'] = '%d anomalies ont été ignorées.'; + ?> diff --git a/language/nl_NL/admin.lang.php b/language/nl_NL/admin.lang.php index 0de898b46..fb1f47b87 100644 --- a/language/nl_NL/admin.lang.php +++ b/language/nl_NL/admin.lang.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -622,7 +622,6 @@ $lang['c13y_Automatic_correction'] = 'Automatische correctie'; $lang['c13y_Impossible_automatic_correction'] = 'Onmogelijke automatische correctie'; $lang['c13y_Correction_applied_success'] = 'Correctie die met succes is toegepast'; $lang['c13y_Correction_applied_error'] = 'Correctie die met fout wordt toegepast'; -$lang['c13y_Apply_selected_corrections'] = 'Pas geselecteerde correcties toe'; $lang['c13y_anomaly_count'] = '%d Onregelmatigheid ontdekt.'; $lang['c13y_anomalies_count'] = '%d Onregelmatigheden ontdekt.'; $lang['c13y_anomaly_corrected_count'] = '%d Onregelmatigheid is gecorrigeerd.'; @@ -654,4 +653,16 @@ $lang['Level 1'] = 'Contacten'; $lang['Level 2'] = 'Vrienden'; $lang['Level 4'] = 'Familie'; $lang['Level 8'] = 'Admins'; +/* TODO */ $lang['c13y_maintenance'] = 'Reinitialize check integrity'; +$lang['c13y_check_all'] = 'Selecteer alles'; +$lang['c13y_uncheck_all'] = 'Deselecteer alles'; +/* TODO */ $lang['c13y_check_auto'] = 'Check automatic corrections'; +$lang['c13y_submit_correction'] = 'Pas geselecteerde correcties toe'; +/* TODO */ $lang['c13y_submit_ignore'] = 'Ignore selected anomalies'; +/* TODO */ $lang['c13y_submit_refresh'] = 'Refresh'; +/* TODO */ $lang['c13y_ignore_msg1'] = 'The anomaly will be ignored until next application version'; +/* TODO */ $lang['c13y_ignore_msg2'] = 'Correction the anomaly will cancel the fact that it\'s ignored'; +/* TODO */ $lang['c13y_anomaly_ignored_count'] = '%d anomaly has been ignored.'; +/* TODO */ $lang['c13y_anomalies_ignored_count'] = '%d anomalies has been ignored.'; + ?> diff --git a/plugins/c13y_upgrade/initialize.inc.php b/plugins/c13y_upgrade/initialize.inc.php index 7cb3f7191..7f0accc43 100644 --- a/plugins/c13y_upgrade/initialize.inc.php +++ b/plugins/c13y_upgrade/initialize.inc.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | PhpWebGallery - a PHP based picture gallery | // | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | -// | Copyright (C) 2003-2007 PhpWebGallery Team - http://phpwebgallery.net | +// | Copyright (C) 2003-2008 PhpWebGallery Team - http://phpwebgallery.net | // +-----------------------------------------------------------------------+ // | file : $Id$ // | last update : $Date$ @@ -29,15 +29,15 @@ if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); } -add_event_handler('get_check_integrity', 'c13y_upgrade'); +add_event_handler('list_check_integrity', 'c13y_upgrade'); -function c13y_upgrade($c13y_array) +function c13y_upgrade() { global $conf; load_language('plugin.lang', dirname(__FILE__).'/'); - $result = array(); + $can_be_deactivate = true; /* Check user with same e-mail */ $query = ' @@ -51,7 +51,8 @@ limit 0,1 if (mysql_fetch_array(pwg_query($query))) { - $result[] = get_c13y( + $can_be_deactivate = false; + add_c13y( l10n('c13y_exif_dbl_email_user'), null, null, @@ -60,7 +61,7 @@ limit 0,1 /* Check if this plugin must deactivate */ - if (count($result) === 0) + if ($can_be_deactivate) { $deactivate_msg_link = ''. l10n('c13y_upgrade_deactivate').''; - $result[] = get_c13y( + add_c13y( l10n('c13y_upgrade_no_anomaly'), 'c13y_upgrade_correction', 'deactivate_plugin', $deactivate_msg_link ); } - - return array_merge($c13y_array, $result); } function c13y_upgrade_correction($action) diff --git a/template/yoga/admin/check_integrity.tpl b/template/yoga/admin/check_integrity.tpl index 5523d0364..ebaedf91e 100644 --- a/template/yoga/admin/check_integrity.tpl +++ b/template/yoga/admin/check_integrity.tpl @@ -3,46 +3,76 @@
{lang:c13y_title}
diff --git a/template/yoga/admin/maintenance.tpl b/template/yoga/admin/maintenance.tpl index 12d07732a..4e9f504b8 100644 --- a/template/yoga/admin/maintenance.tpl +++ b/template/yoga/admin/maintenance.tpl @@ -18,3 +18,7 @@
  • {lang:purge sessions}
  • {lang:purge never used notification feeds}
  • + + -- cgit v1.2.3