From 8ab0da7da22a84b735aff05f40ac57f347a739bd Mon Sep 17 00:00:00 2001 From: vdigital Date: Tue, 12 Aug 2008 20:43:56 +0000 Subject: Admin advices can be easily extended to new advices. Admin advices plugin can be translated like any other plugins. Admin advices plugin has been extended with External summary (a technical and non translated part). Some template cleaning. git-svn-id: http://piwigo.org/svn/trunk@2472 68402e56-0260-453c-a942-63ccdbb3a9ee --- plugins/admin_advices/admin_advices.php | 194 ++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 plugins/admin_advices/admin_advices.php (limited to 'plugins/admin_advices/admin_advices.php') diff --git a/plugins/admin_advices/admin_advices.php b/plugins/admin_advices/admin_advices.php new file mode 100644 index 000000000..ee2a3e797 --- /dev/null +++ b/plugins/admin_advices/admin_advices.php @@ -0,0 +1,194 @@ +append( + 'head_elements', + '' + ); + add_event_handler('loc_begin_page_tail', 'set_admin_advice' ); + } +} + +// Build an advice on the Admin Intro page +function set_admin_advice() +{ + global $page, $user, $template, $conf, $prefixeTable, $lang; + $my_path = dirname(__FILE__).'/'; + +// Include language advices + foreach ($conf as $key => $value) + { + if ( is_string($value) ) + { + $bool = ($value == 'false') ? false : $value; + $bool = ($value == 'true') ? true : $bool; + $conf[$key] = $bool; + } + } + $adv = array(); + ini_set('error_reporting', E_ALL); + ini_set('display_errors', true); + + include_once( $my_path."adv_set.php" ); + + $cases = range(0,count($lang['Adv_case'])-1); + srand ((double) microtime() * 10000000); + shuffle($cases); + + + $cond = false; + foreach ($cases as $id) + { + if (!isset($adv['c'][$id])) $adv['c'][$id] = true; + if (!isset($adv['n'][$id])) $adv['c'][$id] = false; + if (!isset($lang['Adv_case'][$id])) $adv['c'][$id] = false; + $cond = $adv['c'][$id]; + if ($cond) break; + } + $confk = $adv['n'][$id]; + if (substr($confk,0,2) == '**') $confk = substr($confk,2); + else $confk = '$conf[' . "'$confk']"; + $advice_text = (isset($adv['v'][$id])) ? $adv['v'][$id] : ''; + $more = $lang['Adv_case'][$id]; + + $template->set_filenames(array( + 'admin_advice' => $my_path.'admin_advices.tpl') + ); + +// Mysql status + $result = pwg_query('SHOW TABLE STATUS ;'); + $pwgspacef = $spacef = $pwgsize = $size = 0; + $len = strlen($prefixeTable); + $check = array(); + while ($row = mysql_fetch_array($result)) + { + $size += ($row['Data_length'] + $row['Index_length']); + $spacef += $row['Data_free']; + if ( substr( $row['Name'], 0, $len ) == $prefixeTable ) { + $pwgsize += ($row['Data_length'] + $row['Index_length']); + $pwgspacef += $row['Data_free']; + $check[] = (string) $row['Check_time']; + } + } + $size .= ' bytes'; + $pwgsize .= ' bytes'; + $spacef .= ' bytes'; + $pwgspacef .= ' bytes'; + if ($size > 1024) $size = round($size / 1024, 1) . ' Kb'; + if ($size > 1024) $size = round($size / 1024, 1) . ' Mb'; + if ($pwgsize > 1024) $pwgsize = round($pwgsize / 1024, 1) . ' Kb'; + if ($pwgsize > 1024) $pwgsize = round($pwgsize / 1024, 1) . ' Mb'; + if ($spacef > 1024) $spacef = round($spacef / 1024, 1) . ' Kb'; + if ($spacef > 1024) $spacef = round($spacef / 1024, 1) . ' Mb'; + if ($pwgspacef > 1024) $pwgspacef = round($pwgspacef / 1024, 1) . ' Kb'; + if ($pwgspacef > 1024) $pwgspacef = round($pwgspacef / 1024, 1) . ' Mb'; + $check = array_flip(array_flip($check)); + rsort($check); + $end = end($check); + $prev = prev($check); + $first = $check[0]; + $checkon = ''; + if (empty($end)) $end = $prev; + if ($end == $first) $checkon .= 'Last table check on: %s'; + else $checkon .= 'Most recent table check on: %s - oldest: %s'; + $checkon = sprintf($checkon, $first, $end); + $template->assign( + array( + 'prefixTable' => $prefixeTable, + 'pwgsize' => $pwgsize, + 'size' => $size, + 'checked_tables' => $checkon, + 'pwgspacef' => $pwgspacef, + 'spacef' => $spacef, + 'U_maintenance' => get_root_url() + . 'admin.php?page=maintenance&action=database', + ) + ); + +// If there is an advice + if ( $cond ) + { + +// Random Thumbnail + $query = ' +SELECT * +FROM '.IMAGES_TABLE.' +ORDER BY RAND(NOW()) +LIMIT 0, 1 +;'; + $result = pwg_query($query); + $row = mysql_fetch_assoc($result); + if ( is_array($row) ) + { + $url_modify = get_root_url().'admin.php?page=picture_modify' + .'&image_id='.$row['id']; + $query = ' +SELECT * FROM '.IMAGE_TAG_TABLE.' +WHERE image_id = ' . $row['id'] .' +;'; + $tag_count = mysql_num_rows(mysql_query($query)); + $template->assign('thumbnail', + array( + 'IMAGE' => get_thumbnail_url($row), + 'IMAGE_ALT' => $row['file'], + 'IMAGE_TITLE' => $row['name'], + 'METADATA' => (empty($row['date_metadata_update'])) ? + 'un' : '', + 'NAME' => (empty($row['name'])) ? + 'un' : '', + 'COMMENT' => (empty($row['comment'])) ? + 'un' : '', + 'AUTHOR' => (empty($row['author'])) ? + 'un' : '', + 'CREATE_DATE' => (empty($row['date_creation'])) ? + 'un' : '', + 'TAGS' => ($tag_count == 0) ? + 'un' : '', + 'NUM_TAGS' => $tag_count, + 'U_MODIFY' => $url_modify, + ) + ); + } + //$advice_text = array_shift($adv); + $template->assign( + array( + 'ADVICE_ABOUT' => $confk, + 'ADVICE_TEXT' => $advice_text, + ) + ); + $template->assign('More', $more ); + $template->pparse('admin_advice'); + } +} +?> -- cgit v1.2.3