News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

accès impossible bouton maintenance forum

Started by fonfonsd, August 08, 2022, 04:01:57 AM

Previous topic - Next topic

fonfonsd

Bonjour à tous

quand je clique sur le bouton maintenance du forum via le centre d'administration
j'obtiens le message d'erreur suivant :

QuoteFatal error: Cannot redeclare list_integration_hooks() (previously declared in /htdocs/Sources/Subs-IntegrationHooks.php:36) in /htdocs/Sources/ManageMaintenance.php on line 1843

GravuTrad

Salut.

Quel mod t'amène le fichier Subs-IntegrationHooks.php qui n'est pas de base sur smf?

Quel est le contenu de ce fichier? car il y contient surement le code ci dessous en ligne 36, alors qu'en effet c'est déjà déclaré ailleurs.

function list_integration_hooks()
On a toujours besoin d'un plus petit que soi! (Petit!Petit!)


Think about Search function before posting.
Pensez à la fonction Recherche avant de poster.

fonfonsd

Bonjour

faut que je regarde car moi je n'ai pas installé de Mods particulier, je clique juste sur le centre d'administration puis ensuite sur maintenance du forum

fonfonsd

Bonjour
voici mon fichier subintegration

<?php
/**
 * Integration Hooks Report (IHR)
 *
 * @package IHR
 * @author [SiNaN]
 * @2nd-author emanuele
 * @copyright 2011 [SiNaN], Simple Machines
 * @license http://www.simplemachines.org/about/smf/license.php BSD
 *
 * @version 1.5.2
 */

if (!defined('SMF'))
die('Hacking attempt...');

function 
hooks_admin_areas(&$areas)
{
global $context$txt;

loadLanguage('IntegrationHooks/IntegrationHooks');

$areas['config']['areas']['modsettings']['subsections']['hooks'] = array($txt['hooks_title_list']);
}

function 
hooks_modify_modifications(&$sub_actions)
{
global $context;

$sub_actions['hooks'] = 'list_integration_hooks';
$context[$context['admin_menu_name']]['tab_data']['tabs']['hooks'] = array();
}

function 
list_integration_hooks()
{
global $sourcedir$scripturl$context$txt$modSettings$settings;

$context['filter_url'] = '';
$presentHooks get_integration_hooks();
if (isset($_GET['filter']) && in_array($_GET['filter'], array_keys($presentHooks)))
$context['filter_url'] = ';filter=' $_GET['filter'];

if (!empty($_REQUEST['do']) && isset($_REQUEST['hook']) && isset($_REQUEST['function']))
{
checkSession('request');

if ($_REQUEST['do'] == 'remove')
remove_integration_function($_REQUEST['hook'], $_REQUEST['function']);
elseif ($_REQUEST['do'] == 'disable')
{
remove_integration_function($_REQUEST['hook'], $_REQUEST['function']);
// It's a hack I know...but I'm way too lazy!!!
add_integration_function($_REQUEST['hook'], $_REQUEST['function'] . ']');
}
elseif ($_REQUEST['do'] == 'enable')
{
remove_integration_function($_REQUEST['hook'], $_REQUEST['function'] . ']');
// It's a hack I know...but I'm way too lazy!!!
add_integration_function($_REQUEST['hook'], $_REQUEST['function']);
}

redirectexit('action=admin;area=modsettings;sa=hooks' $context['filter_url']);
}

$list_options = array(
'id' => 'list_integration_hooks',
'title' => $txt['hooks_title_list'],
'items_per_page' => 20,
'base_href' => $scripturl '?action=admin;area=modsettings;sa=hooks' $context['filter_url'] . ';' $context['session_var'] . '=' $context['session_id'],
'default_sort_col' => 'hook_name',
'get_items' => array(
'function' => 'get_integration_hooks_data',
),
'get_count' => array(
'function' => 'get_integration_hooks_count',
),
'no_items_label' => $txt['hooks_no_hooks'],
'columns' => array(
'hook_name' => array(
'header' => array(
'value' => $txt['hooks_field_hook_name'] . '</a><select id="hooks_filter" style="display:none;margin-left:15px;">' '<option>---</option><option onclick="window.location = \'' $scripturl '?action=admin;area=modsettings;sa=hooks\';">' $txt['hooks_reset_filter'] . '</option></select><a href="#">',
),
'data' => array(
'db' => 'hook_name',
),
'sort' =>  array(
'default' => 'hook_name',
'reverse' => 'hook_name DESC',
),
),
'function_name' => array(
'header' => array(
'value' => $txt['hooks_field_function_name'],
),
'data' => array(
'db' => 'function_name',
),
'sort' =>  array(
'default' => 'function_name',
'reverse' => 'function_name DESC',
),
),
'file_name' => array(
'header' => array(
'value' => $txt['hooks_field_file_name'],
),
'data' => array(
'db' => 'file_name',
),
'sort' =>  array(
'default' => 'file_name',
'reverse' => 'file_name DESC',
),
),
'status' => array(
'header' => array(
'value' => $txt['hooks_field_hook_exists'],
'style' => 'width:3%',
),
'data' => array(
'function' => create_function('$data''
global $txt, $settings, $scripturl, $context;

$change_status = array(\'before\' => \'\', \'after\' => \'\');
if ($data[\'can_be_disabled\'] && $data[\'status\'] != \'deny\')
{
$change_status[\'before\'] = \'<a href="\' . $scripturl . \'?action=admin;area=modsettings;sa=hooks;do=\' . ($data[\'enabled\'] ? \'disable\' : \'enable\') . \';hook=\' . $data[\'hook_name\'] . \';function=\' . $data[\'function_name\'] . $context[\'filter_url\'] . \';\' . $context[\'session_var\'] . \'=\' . $context[\'session_id\'] . \'" onclick="return confirm(\' . javaScriptEscape($txt[\'quickmod_confirm\']) . \');">\';
$change_status[\'after\'] = \'</a>\';
}
return $change_status[\'before\'] . \'<img src="\' . $settings[\'images_url\'] . \'/admin/post_moderation_\' . $data[\'status\'] . \'.gif" alt="\' . $data[\'img_text\'] . \'" title="\' . $data[\'img_text\'] . \'" />\' . $change_status[\'after\'];
'
),
'class' => 'centertext',
),
'sort' =>  array(
'default' => 'status',
'reverse' => 'status DESC',
),
),
'check' => array(
'header' => array(
'value' => $txt['hooks_button_remove'],
'style' => 'width:3%',
),
'data' => array(
'function' => create_function('$data''
global $txt, $settings, $scripturl, $context;

if (!$data[\'hook_exists\'])
return \'
<a href="\' . $scripturl . \'?action=admin;area=modsettings;sa=hooks;do=remove;hook=\' . $data[\'hook_name\'] . \';function=\' . $data[\'function_name\'] . $context[\'filter_url\'] . \';\' . $context[\'session_var\'] . \'=\' . $context[\'session_id\'] . \'" onclick="return confirm(\' . javaScriptEscape($txt[\'quickmod_confirm\']) . \');">
<img src="\' . $settings[\'images_url\'] . \'/icons/quick_remove.gif" alt="\' . $txt[\'hooks_button_remove\'] . \'" title="\' . $txt[\'hooks_button_remove\'] . \'" />
</a>\';
'
),
'class' => 'centertext',
),
),
),
'form' => array(
'href' => $scripturl '?action=admin;area=modsettings;sa=hooks' $context['filter_url'] . ';' $context['session_var'] . '=' $context['session_id'],
'name' => 'list_integration_hooks',
),
'additional_rows' => array(
array(
'position' => 'after_title',
'value' => $txt['hooks_disable_instructions'] . '<br />
$txt['hooks_disable_legend'] . ':
<ul style="list-style: none;">
<li><img src="' 
$settings['images_url'] . '/admin/post_moderation_allow.gif" alt="' $txt['hooks_active'] . '" title="' $txt['hooks_active'] . '" /> ' $txt['hooks_disable_legend_exists'] . '</li>
<li><img src="' 
$settings['images_url'] . '/admin/post_moderation_moderate.gif" alt="' $txt['hooks_disabled'] . '" title="' $txt['hooks_disabled'] . '" /> ' $txt['hooks_disable_legend_disabled'] . '</li>
<li><img src="' 
$settings['images_url'] . '/admin/post_moderation_deny.gif" alt="' $txt['hooks_missing'] . '" title="' $txt['hooks_missing'] . '" /> ' $txt['hooks_disable_legend_missing'] . '</li>
</ul>'
),
),
);
$context['default_list'] = 'list_integration_hooks';

require_once($sourcedir '/Subs-List.php');
createList($list_options);

$context['page_title'] = $txt['hooks_title_list'];
$context['sub_template'] = 'show_list';
}

function 
get_files_recursive($dir_path)
{
$files = array();

if ($dh opendir($dir_path))
{
while (($file readdir($dh)) !== false)
{
if ($file != '.' && $file != '..' && strpos($file'~') === false)
{
if (is_dir($dir_path '/' $file))
$files array_merge($filesget_files_recursive($dir_path '/' $file));
else
$files[] = array('dir' => $dir_path'name' => $file);
}
}
}
closedir($dh);

return $files;
}

function 
get_integration_hooks_data($start$per_page$sort)
{
global $boarddir$sourcedir$settings$txt$context$scripturl;

$hooks $temp_hooks get_integration_hooks();
$hooks_data $temp_data $hook_status = array();

$files get_files_recursive($sourcedir);
if (!empty($files))
{
foreach ($files as $file)
{
if (is_file($file['dir'] . '/' $file['name']) && substr($file['name'], -4) === '.php')
{
$fp fopen($file['dir'] . '/' $file['name'], 'rb');
$fc fread($fpfilesize($file['dir'] . '/' $file['name']));
fclose($fp);

foreach ($temp_hooks as $hook => $functions)
{
foreach ($functions as $function_o)
{
$function str_replace(']'''$function_o);
if (substr($hook, -8) === '_include')
{
$hook_status[$hook][$function]['exists'] = file_exists(strtr(trim($function), array('$boarddir' => $boarddir'$sourcedir' => $sourcedir'$themedir' => $settings['theme_dir'])));
// I need to know if there is at least one function called in this file.
$temp_data['include'][basename($function)] = array('hook' => $hook'function' => $function);
unset($temp_hooks[$hook][$function_o]);
}
// @TODO replace with a preg_match? (the difference is the space before the open parentheses
elseif (strpos($fc'function ' trim($function) . '(') !== false || strpos($fc'function ' trim($function) . ' (') !== false)
{
$hook_status[$hook][$function]['exists'] = true;
$hook_status[$hook][$function]['in_file'] = $file['name'];
// I want to remember all the functions called within this file (to check later if they are enabled or disabled and decide if the integrare_*_include of that file can be disabled too)
$temp_data['function'][$file['name']][] = $function_o;
unset($temp_hooks[$hook][$function_o]);
}
}
}
}
}
}

$sort_types = array(
'hook_name' => array('hook'SORT_ASC),
'hook_name DESC' => array('hook'SORT_DESC),
'function_name' => array('function'SORT_ASC),
'function_name DESC' => array('function'SORT_DESC),
'file_name' => array('file_name'SORT_ASC),
'file_name DESC' => array('file_name'SORT_DESC),
'status' => array('status'SORT_ASC),
'status DESC' => array('status'SORT_DESC),
);

$sort_options $sort_types[$sort];
$sort = array();
$hooks_filters = array();

foreach ($hooks as $hook => $functions)
{
$hooks_filters[] = '<option onclick="window.location = \'' $scripturl '?action=admin;area=modsettings;sa=hooks;filter=' $hook '\';"' . (!empty($context['filter']) && $context['filter'] == $hook ' selected="selected"' '') . '>' $hook '</option>';
foreach ($functions as $function)
{
$enabled strstr($function']') === false;
$function str_replace(']'''$function);

// This is a not an include and the function is included in a certain file (if not it doesn't exists so don't care)
if (substr($hook, -8) !== '_include' && isset($hook_status[$hook][$function]['in_file']))
{
$current_hook = isset($temp_data['include'][$hook_status[$hook][$function]['in_file']]) ? $temp_data['include'][$hook_status[$hook][$function]['in_file']] : '';
$enabled false;

// Checking all the functions within this particular file
// if any of them is enable then the file *must* be included and the integrate_*_include hook cannot be disabled
foreach ($temp_data['function'][$hook_status[$hook][$function]['in_file']] as $func)
$enabled $enabled || strstr($func']') !== false;

if (!$enabled &&  !empty($current_hook))
$hook_status[$current_hook['hook']][$current_hook['function']]['enabled'] = true;
}
}
}

if (!empty($hooks_filters))
$context['insert_after_template'] .= '
<script type="text/javascript"><!-- // --><![CDATA[
var tblHeader = document.getElementById(\'hooks_filter\');
tblHeader.innerHTML += ' 
JavaScriptEscape(implode(''$hooks_filters)) . ';
tblHeader.style.display = \'\';

function integrationHooks_switchstatus(id)
{
var elem = document.getElementById(\'input_\'+id);
if (elem.value == \'enable\')
elem.value = \'disable\';
else if (elem.value == \'disable\')
elem.value = \'enable\';

document.forms["' 
$context['default_list'] . '"].submit();
}
// ]]></script>'
;


$temp_data = array();
$id 0;

foreach ($hooks as $hook => $functions)
{
if (empty($context['filter']) || (!empty($context['filter']) && $context['filter'] == $hook))
{
foreach ($functions as $function)
{
$enabled strstr($function']') === false;
$function str_replace(']'''$function);
// Let's avoid the hooks of *this* mod are disabled by mistake. :P
$thisMod in_array($function, array('hooks_admin_areas''hooks_modify_modifications''$sourcedir/Subs-IntegrationHooks.php'));
$hook_exists = !empty($hook_status[$hook][$function]['exists']);
$file_name = isset($hook_status[$hook][$function]['in_file']) ? $hook_status[$hook][$function]['in_file'] : ((substr($hook, -8) === '_include') ? 'zzzzzzzzz' 'zzzzzzzza');
$status $hook_exists ? ($enabled 'a' 'b') : 'c';
$sort[] = $$sort_options[0];
$temp_data[] = array(
'id' => 'hookid_' $id++,
'hook_name' => $hook,
'function_name' => $function,
'file_name' => (isset($hook_status[$hook][$function]['in_file']) ? $hook_status[$hook][$function]['in_file'] : ''),
'hook_exists' => $hook_exists,
'status' => $hook_exists ? ($enabled 'allow' 'moderate') : 'deny',
'img_text' => $txt['hooks_' . ($hook_exists ? ($enabled 'active' 'disabled') : 'missing')],
'enabled' => $enabled,
'can_be_disabled' => (isset($hook_status[$hook][$function]['enabled']) || $thisMod false true),
);
}
}
}

array_multisort($sort$sort_options[1], $temp_data);

$counter 0;
$start++;

foreach ($temp_data as $data)
{
if (++$counter $start)
continue;
elseif ($counter == $start $per_page)
break;

$hooks_data[] = $data;
}

return $hooks_data;
}

function 
get_integration_hooks_count()
{
global $context;

$hooks get_integration_hooks();
$hooks_count 0;

$context['filter'] = false;
if (isset($_GET['filter']))
$context['filter'] = $_GET['filter'];

foreach ($hooks as $hook => $functions)
{
if (empty($context['filter']) || (!empty($context['filter']) && $context['filter'] == $hook))
$hooks_count += count($functions);
}

return $hooks_count;
}

function 
get_integration_hooks()
{
global $modSettings;
static $integration_hooks;

if (!isset($integration_hooks))
{
$integration_hooks = array();
foreach ($modSettings as $key => $value)
{
if (!empty($value) && substr($key010) === 'integrate_')
$integration_hooks[$key] = explode(','$value);
}
}

return $integration_hooks;
}

?>



merci

GravuTrad

C'est ce mod:

https://custom.simplemachines.org/index.php?mod=3285

Le tien est la version d'avant (1.5.2), là c'est 1.5.3

Tu t'en sers pourquoi? (Pour quelle utilité?) et sur quelle version de forum?

C'est plus ManageMaintenance.php qu'il faudrait voir
On a toujours besoin d'un plus petit que soi! (Petit!Petit!)


Think about Search function before posting.
Pensez à la fonction Recherche avant de poster.

fonfonsd

Bonjour

Effectivement j'ai ce mod sur  ma liste de mods. Honnêtement je ne sais plus pourquoi je l'ai.
Sur ma page de paquet installé cela me dit que j'ai la version 1.53
Tu me conseil de la supprimer tout simplement ?
Je clique sur effacer ?




merci

GravuTrad

On a toujours besoin d'un plus petit que soi! (Petit!Petit!)


Think about Search function before posting.
Pensez à la fonction Recherche avant de poster.

fonfonsd


GravuTrad

On a toujours besoin d'un plus petit que soi! (Petit!Petit!)


Think about Search function before posting.
Pensez à la fonction Recherche avant de poster.

fonfonsd


Advertisement: