Столкнулся с проблемой у плагина Registered Links на форуме SMF. После обновления форума до последней версии в логах ошибок начали появляться сообщения такого характера:
Notice: Undefined index: no_view_links in Sources/Subs.php on line 1329
Notice: Undefined index: txt_reg_links_register in Sources/Subs.php on line 1329
Notice: Undefined index: txt_reg_links_or in Sources/Subs.php on line 1329
Notice: Undefined index: txt_reg_links_login in Sources/Subs.php on line 1329
Проблема оказалась в том, что обновив файл Sources/Subs.php я затер новой версией все изменения, сделанные плагином при установке. Поэтому нужно было внести изменения в файл Subs.php. Такие изменения проводятся при установке плагина, но мне пришлось вручную.
Откройте Subs.php и найдите блок:
array(
'tag' => 'iurl',
'type' => 'unparsed_content',
'content' => '<a href="$1">$1</a>',
'validate' => create_function('&$tag, &$data, $disabled', '
$data = strtr($data, array(\'<br />\' => \'\'));
if (strpos($data, \'https://\') !== 0 && strpos($data, \'https://\') !== 0)
$data = \'https://\' . $data;
'),
),
array(
'tag' => 'iurl',
'type' => 'unparsed_equals',
'before' => '<a href="$1">',
'after' => '</a>',
'validate' => create_function('&$tag, &$data, $disabled', '
if (substr($data, 0, 1) == \'#\')
$data = \'#post_\' . substr($data, 1);
elseif (strpos($data, \'https://\') !== 0 && strpos($data, \'https://\') !== 0)
$data = \'https://\' . $data;
'),
'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
'disabled_after' => ' ($1)',
),
Замените на:
array(
'tag' => 'iurl',
'type' => 'unparsed_content',
'content' => $user_info['is_guest'] ? $txt['no_view_links'] . "\n" . '<a href="' . $scripturl . '?action=register">' . $txt['txt_reg_links_register'] . '</a> ' . $txt['txt_reg_links_or'] . ' <a href="' . $scripturl . '?action=login">' . $txt['txt_reg_links_login'] . '</a>' : '<a href="$1">$1</a>',
'validate' => create_function('&$tag, &$data, $disabled', '$data = strtr($data, array(\'<br />\' => \'\'));'),
),
array(
'tag' => 'iurl',
'type' => 'unparsed_equals',
'before' => $user_info['is_guest'] ? $txt['no_view_links'] . "\n" . '<a href="' . $scripturl . '?action=register">' . $txt['txt_reg_links_register'] . '</a> ' . $txt['txt_reg_links_or'] . ' <a href="' . $scripturl . '?action=login">' . $txt['txt_reg_links_login'] . '</a><div style="visibility:hidden;display:none;">' : '<a href="$1">',
'after' => $user_info['is_guest'] ? '</div>' : '</a>',
'validate' => create_function('&$tag, &$data, $disabled', '
if (substr($data, 0, 1) == \'#\')
$data = \'#post_\' . substr($data, 1);'),
'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
'disabled_after' => $user_info['is_guest'] ? '' : ' ($1)',
),
Затем там же найдите блок:
array(
'tag' => 'url',
'type' => 'unparsed_content',
'content' => '<a href="$1" target="_blank">$1</a>',
'validate' => create_function('&$tag, &$data, $disabled', '
$data = strtr($data, array(\'<br />\' => \'\'));
if (strpos($data, \'https://\') !== 0 && strpos($data, \'https://\') !== 0)
$data = \'https://\' . $data;
'),
),
array(
'tag' => 'url',
'type' => 'unparsed_equals',
'before' => '<a href="$1" target="_blank">',
'after' => '</a>',
'validate' => create_function('&$tag, &$data, $disabled', '
if (strpos($data, \'https://\') !== 0 && strpos($data, \'https://\') !== 0)
$data = \'https://\' . $data;
'),
'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
'disabled_after' => ' ($1)',
),
Замените на:
array(
'tag' => 'url',
'type' => 'unparsed_content',
'content' => $user_info['is_guest'] ? $txt['no_view_links'] . "\n" . '<a href="' . $scripturl . '?action=register">' . $txt['txt_reg_links_register'] . '</a> ' . $txt['txt_reg_links_or'] . ' <a href="' . $scripturl . '?action=login">' . $txt['txt_reg_links_login'] . '</a>' : '<a href="$1" target="_blank">$1</a>',
'validate' => create_function('&$tag, &$data, $disabled', '$data = strtr($data, array(\'<br />\' => \'\'));'),
),
array(
'tag' => 'url',
'type' => 'unparsed_equals',
'before' => $user_info['is_guest'] ? $txt['no_view_links'] . "\n" . '<a href="' . $scripturl . '?action=register">' . $txt['txt_reg_links_register'] . '</a> ' . $txt['txt_reg_links_or'] . ' <a href="' . $scripturl . '?action=login">' . $txt['txt_reg_links_login'] . '</a><div style="visibility:hidden;display:none;">' : '<a href="$1" target="_blank">',
'after' => $user_info['is_guest'] ? '</div>' : '</a>',
'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
'disabled_after' => $user_info['is_guest'] ? '' : ' ($1)',
),
Также необходимо посмотреть файл Modifications.russian.php на наличие следующих строк:
//Begin Reg Links
$txt['no_view_links'] = ' ***ссылки могут видеть только зарегистрированные пользователи*** ';
$txt['txt_reg_links_register'] = '***зарегистрируйтесь';
$txt['txt_reg_links_login'] = 'войдите в форум***';
$txt['txt_reg_links_or'] = 'или';
Если этих строк там нет — добавьте. Это строки перевода плагина. Если все сделали правильно проблема должна решиться. Если не решилась — вперед на форум SMF.
Написать комментарий