0

Тема: Скрываем контент от гостей на SMF2.1 RC 2 и Tinyportal-1.6.4

Все что здесь написано только для обозрения и чтобы мозги не высыхали 1tooth

Скрываем контент от гостей на SMF2.1 RC 2 и Tinyportal-1.6.4

На форумах что у меня были, в редакторе кнопка HIDE встроена изначально. Здесь все заточено под моды, но, новая версия форума приносила пользователям головную боль - моды не работали или логи были забиты ошибками.
Пошарил по модам для этого дела, нашел несколько, это:
HideContent_1.1.4
HidePost_1-1_smf20
Personalized BBC
Visible, Invisible and NoQuote Tags

Теперь по порядку writer

Мод HideContent запустил на SMF2.0.15, все вроде работает, но, вот что видят всегда пользователи которым разрешен просмотр контента.

Скрываем контент от гостей на SMF2.1 RC 2 и Tinyportal-1.6.4

Еще - если в админке сделать запрет скрывать текст, а пользователь вручную написал тег и... все скрывается surprised . Надо помощь програмеров, на следующий год возможно закажу его лечение.

Мод HidePost работает нормально, но, скрывать весь пост незачем mad

Мод Personalized BBC прекрасно устанавливается на SMF2.1 RC 2 и работает, но, он больше подходит для аудио или видео тегов, так как там код тега работает на HTML. Не то bang

Мод Visible, Invisible and NoQuote Tags прекрасно устанавливается на SMF2.1 RC 2 и работает, но, функции создания и управление ярлыками убиты, логи забиты ошибками order .

Скрываем контент от гостей на SMF2.1 RC 2 и Tinyportal-1.6.4

Хотя все функции выполняют свои предназначения ok2 .
Начал копать в сторону ошибок в логах.

Скрываем контент от гостей на SMF2.1 RC 2 и Tinyportal-1.6.4

Оказалось. автор обновил мод и встроил функцию управления правами доступа в настройках а не в админке. В файле Subs-VIVNQ.php нашел код управления, автор оставил возможность отключить эти прибамбасы. Убрал слеши в строке //'еnabled' => false,.

function VIVNQ_Areas(&$admin_areas)

{

 global $txt;

 loadLanguage('VIVNQ');

 $admin_areas['config']['areas']['vivnq'] = array(

 'label' => $txt['VIVNQ_Settings'],

 'file' => 'Subs-VIVNQ_Admin.php',

 'function' => 'VIVNQ_Settings',

 'icon' => 'modifications.gif',

 'subsections' => array(

 'shortcuts' => array($txt['VIVNQ_shortcuts']),

 'newtag' => array($txt['VIVNQ_new_tag']),

 'permissions' => array($txt['membergroups_permissions']),

 ),

 'enabled' => false,

 );

}

Чтобы не гавкали логи и настройки мода оказались в админке, подключил в файле add_remove_hooks.php файл Subs-VIVNQ_Admin.php

// Define the hooks

$hook_functions = array(

 'integrate_pre_include' => '$sourcedir/Subs-VIVNQ.php,$sourcedir/Subs-VIVNQ_Admin.php',

 'integrate_load_theme' => 'VIVNQ_LoadTheme',

 'integrate_load_permissions' => 'VIVNQ_Permissions',

 'integrate_bbc_codes' => 'VIVNQ_Tags',

// SMF 2.x Admin hooks:

 'integrate_admin_areas' => 'VIVNQ_Areas',

);

Чтобы работали подсказки в админке, в файлах VIVNQ.english.php и VIVNQ.russian.php вырезал языковые ресурсы помощи и вставил в файл install_21x.xml.

<?xml version=1.0?>

<!DOCTYPE modification SYSTEM http://www.simplemachines.org/xml/modification>

<modification xmlns=http://www.simplemachines.org/xml/modification xmlns:smf=http://www.simplemachines.org/>

<id>Dougiefresh:IXCNQ</id>

<name>Visible, Invisible and NoQuote Tags</name>

<version>3.7</version>

 <file name=$languagedir/Modifications.english.php>

 <operation>

 <search position=end />

 <add><![CDATA[

// VIVNQ Start

$txt[&#39;permissiongroup_VIVNQ&#39;] = $txt[&#39;permissiongroup_simple_VIVNQ&#39;] = &#39;Visible, Invisible and NoQuote&#39;;

$txt[&#39;permissionname_VIVNQ_use_visible&#39;] = &#39;Allow use of the  &quot;visible&quot; tag&#39;;

$txt[&#39;permissionhelp_VIVNQ_use_visible&#39;] = &#39;Checking this option allows members of this membergroup to use the &quot;visible&quot; bbcode tag to filter out who can see the message contained within the tags.<br/><br/>Unchecking this option will cause the forum to remove the tags from the message before committing it to the database.&#39;;

$txt[&#39;permissionname_VIVNQ_quote_visible&#39;] = &#39;Quote the contents of &quot;visible&quot; tag&#39;;

$txt[&#39;permissionhelp_VIVNQ_quote_visible&#39;] = &#39;Checking this option allows members of this membergroup to quote the &quot;visible&quot; bbcode tag to filter out who can see the message contained within the tags.<br/><br/>Unchecking this option will cause the forum to remove the tags from the message before committing it to the database.&#39;;

$txt[&#39;permissionname_VIVNQ_use_invisible&#39;] = &#39;Allow use of the  &quot;invisible&quot; tag&#39;;

$txt[&#39;permissionhelp_VIVNQ_use_invisible&#39;] = &#39;Checking this option allows members of this membergroup to use the &quot;invisible&quot; bbcode tag to filter out who can see the message contained within the tags.<br/><br/>Unchecking this option will cause the forum to remove the tags from the message before committing it to the database.&#39;;

$txt[&#39;permissionname_VIVNQ_quote_invisible&#39;] = &#39;Quote the contents of &quot;invisible&quot; tag&#39;;

$txt[&#39;permissionhelp_VIVNQ_quote_invisible&#39;] = &#39;Checking this option allows members of this membergroup to quote the &quot;invisible&quot; bbcode tag to filter out who can see the message contained within the tags.<br/><br/>Unchecking this option will cause the forum to remove the tags from the message before committing it to the database.&#39;;

$txt[&#39;permissionname_VIVNQ_use_noquote&#39;] = &#39;Allow use of the  &quot;noquote&quot; tag&#39;;

$txt[&#39;permissionhelp_VIVNQ_use_noquote&#39;] = &#39;Checking this option allows members of this membergroup to use the &quot;noquote&quot; bbcode tag to filter out who can see the message contained within the tags.<br/><br/>Unchecking this option will cause the forum to remove the tags from the message before committing it to the database.&#39;;

$txt[&#39;permissionname_VIVNQ_quote_noquote&#39;] = &#39;Quote the contents of &quot;noquote&quot; tag&#39;;

$txt[&#39;permissionhelp_VIVNQ_quote_noquote&#39;] = &#39;Checking this option allows members of this membergroup to quote the &quot;innoquote&quot; bbcode tag to filter out who can see the message contained within the tags.<br/><br/>Unchecking this option will cause the forum to remove the tags from the message before committing it to the database.&#39;;

$txt[&#39;permissionname_VIVNQ_toggle_filter&#39;] = &#39;Toggle filtering of &quot;visible&quot; &amp; &quot;invisible&quot; tag&#39;;

$txt[&#39;permissionhelp_VIVNQ_toggle_filter&#39;] = &#39;By default, only Adminstrators, Moderators and the original post author have the right to see how the unfiltered content would be processed by the forum.<br/><br/>Checking this box allows the user to view the contents of &quot;visible&quot;, &quot;invisible&quot;, and &quot;noquote&quot; tags by clicking on the &quot;Filter On&quot; or &quot;Filter Off&quot; buttons near the &quot;Modify&quot; and &quot;Quote&quot; buttons.&#39;;

// VIVNQ End

]]></add>

 </operation>

 </file>


 <file name=$languagedir/Modifications.russian.php>

 <operation>

 <search position=end />

 <add><![CDATA[

// VIVNQ Start

$txt[&#39;permissiongroup_VIVNQ&#39;] = $txt[&#39;permissiongroup_simple_VIVNQ&#39;] = &#39;Visible, Invisible и NoQuote&#39;;

$txt[&#39;permissionname_VIVNQ_use_visible&#39;] = &#39;Разрешить использование тега  &quot;visible&quot; &#39;;

$txt[&#39;permissionhelp_VIVNQ_use_visible&#39;] = &#39;Если этот параметр установлен, члены группы могут использовать тег &quot;visible&quot; для фильтрации сообщений, содержащихся в тегах.<br/><br/>Отмена выбора этого параметра приведет к тому, что форум удалит теги из сообщения перед его привязкой к базе данных.&#39;;

$txt[&#39;permissionname_VIVNQ_quote_visible&#39;] = &#39;Цитировать содержимое тега &quot;visible&quot; &#39;;

$txt[&#39;permissionhelp_VIVNQ_quote_visible&#39;] = &#39;Если этот параметр установлен, члены группы могут цитировать тег &quot;visible&quot; для фильтрации сообщений, содержащихся в тегах.<br/><br/>Отмена выбора этого параметра приведет к тому, что форум удалит теги из сообщения перед его привязкой к базе данных.&#39;;

$txt[&#39;permissionname_VIVNQ_use_invisible&#39;] = &#39;Разрешить использование тега  &quot;invisible&quot; &#39;;

$txt[&#39;permissionhelp_VIVNQ_use_invisible&#39;] = &#39;Если этот параметр установлен, члены группы могут использовать тег &quot;invisible&quot; для фильтрации сообщений, содержащихся в тегах.<br/><br/>Отмена выбора этого параметра приведет к тому, что форум удалит теги из сообщения перед его привязкой к базе данных.&#39;;

$txt[&#39;permissionname_VIVNQ_quote_invisible&#39;] = &#39;Цитировать содержимое тега &quot;invisible&quot; &#39;;

$txt[&#39;permissionhelp_VIVNQ_quote_invisible&#39;] = &#39;Если этот параметр установлен, члены группы могут цитировать тег &quot;invisible&quot; для фильтрации сообщений, содержащихся в тегах.<br/><br/>Отмена выбора этого параметра приведет к тому, что форум удалит теги из сообщения перед его привязкой к базе данных.&#39;;

$txt[&#39;permissionname_VIVNQ_use_noquote&#39;] = &#39;Разрешить использование тега  &quot;noquote&quot; &#39;;

$txt[&#39;permissionhelp_VIVNQ_use_noquote&#39;] = &#39;Если этот параметр установлен, члены группы могут использовать тег &quot;noquote&quot;  для фильтрации сообщений, содержащихся в тегах.<br/><br/>Отмена выбора этого параметра приведет к тому, что форум удалит теги из сообщения перед его привязкой к базе данных.&#39;;

$txt[&#39;permissionname_VIVNQ_quote_noquote&#39;] = &#39;Цитировать содержимое тега &quot;noquote&quot; &#39;;

$txt[&#39;permissionhelp_VIVNQ_quote_noquote&#39;] = &#39;Если этот параметр установлен, члены группы могут цитировать тег &quot;innoquote&quot; для фильтрации сообщений, содержащихся в тегах.<br/><br/>Отмена выбора этого параметра приведет к тому, что форум удалит теги из сообщения перед его привязкой к базе данных.&#39;;

$txt[&#39;permissionname_VIVNQ_toggle_filter&#39;] = &#39;Переключение фильтрации тегов &quot;visible&quot; &amp; &quot;invisible&quot; &#39;;

$txt[&#39;permissionhelp_VIVNQ_toggle_filter&#39;] = &#39;По умолчанию только администраторы, модераторы и автор оригинального поста имеют право видеть, как нефильтрованный контент будет обрабатываться форумом.<br/><br/>Установка этого флажка позволяет пользователю просматривать содержимое тегов &quot;visible&quot;, &quot;invisible&quot; и &quot;noquote&quot;, нажимая кнопки &quot;Включить фильтр&quot; или &quot;Выключить фильтр&quot; рядом с кнопками &quot;Цитировать&quot; и &quot;Редактировать&quot; .&#39;;

// VIVNQ End

]]></add>

 </operation>

 </file>

В файле package-info.xml добавил русский язык.

<install for=2.1 RC2>

 <readme parsebbc=true>readme.txt</readme>

 <code>add_remove_hooks.php</code>

 <modification>install_21x.xml</modification>

 <modification>language_english.xml</modification>

 <modification>language_russian.xml</modification>

 <modification>language_spanish.xml</modification>

 <require-file name=Subs-VIVNQ.php destination=$sourcedir />

 <require-file name=Subs-VIVNQ_Admin.php destination=$sourcedir />

 <require-file name=VIVNQ.english.php destination=$languagedir />

 <require-file name=VIVNQ.spanish_latin.php destination=$languagedir />

 <require-file name=VIVNQ.russian.php destination=$languagedir />

 <require-file name=BBCode-VIVNQ.css destination=$themedir/css />

 </install>

 <uninstall for=2.1 RC2>

 <code>add_remove_hooks.php</code>

 <modification reverse=true>install_21x.xml</modification>

 <modification reverse=true>language_english.xml</modification>

 <modification reverse=true>language_russian.xml</modification>

 <modification reverse=true>language_spanish.xml</modification>

 <remove-file name=$sourcedir/Subs-VIVNQ.php /> 

 <remove-file name=$sourcedir/Subs-VIVNQ_Admin.php /> 

 <remove-file name=$languagedir/VIVNQ.english.php /> 

 <remove-file name=$languagedir/VIVNQ.spanish_latin.php /> 

 <remove-file name=$languagedir/VIVNQ.russian.php />

 <remove-file name=$themedir/css/BBCode-VIVNQ.css />

 </uninstall>

Ошибки исчезли и в админке все можно настроить, стали видны подсказки.

Скрываем контент от гостей на SMF2.1 RC 2 и Tinyportal-1.6.4

Теперь из-за функции выше в логах идут десятки ошибок при просмотре тем. Поборол так - в файле install_21x.xml заменил фильтрацию, получилось те так как задумывал автор, но он куда то исчез и сайт его помер order .

Это находится в конце файла. 

<operation>

 <search position=after><![CDATA[if ($message[&#39;can_approve&#39;] || $message[&#39;can_unapprove&#39;] || $message[&#39;can_modify&#39;] || $message[&#39;can_remove&#39;] || $context[&#39;can_split&#39;] || $context[&#39;can_restore_msg&#39;])]]></search>

 <add><![CDATA[// Can we hide the filtered visible/invisible text?

 if (!empty($context[&#39;VIVNQ_Show&#39;]))

 echo &#39;

 <li><a href=&#39;, $scripturl, &#39;?topic=&#39;, $topic, &#39;.msg&#39;, $message[&#39;id&#39;], (!isset($_REQUEST[&#39;filter&#39;]) ? &#39;;filter&#39; : &#39;&#39;), &#39;#msg&#39;, $message[&#39;id&#39;], &#39;><span class=&#39;, (!isset($_REQUEST[&#39;filter&#39;]) ? &#39;show&#39; : &#39;hide&#39;), &#39;VIVNQ></span>&#39;, (!isset($_REQUEST[&#39;filter&#39;]) ? $txt[&#39;VIVNQ_Collapse&#39;] : $txt[&#39;VIVNQ_Expand&#39;]), &#39;</a></li>&#39;;

 unset($context[&#39;VIVNQ_Test&#39;]);


 ]]></add>

 </operation>

</file>

Все, можно добавить изменения в мод и установить на форум. Все теги работают без ошибок кроме тега noquote remark

Скрываем контент от гостей на SMF2.1 RC 2 и Tinyportal-1.6.4

Рейтинг поста: 0