Доступ к MyBB PHP переменной с помощью Javascript

Можно ли получить переменную MyBB PHP с помощью Javascript? Я пользовательский кодер, и сейчас я использую:

var uid = $("#panel").find('a').attr('href').replace(/[^0-9]/g, '');

Чтобы получить идентификатор пользователя (uid) текущего пользователя. Однако, если бы я получил UID от пользователя с PHP, это выглядело бы так:

<?php echo {$mybb->user['uid']} ?>

Теперь к актуальному вопросу. Можно ли получить UID через Javascript, используя $mybb->user['uid']?

4 ответа

Мой ответ - да, вы можете, но у него есть некоторые ограничения.

Хорошо, если вы помните, что в каждом заголовке есть шаблоны включающие следующий код:

<script type="text/javascript">
<!--
    var cookieDomain = "{$mybb->settings['cookiedomain']}";
    var cookiePath = "{$mybb->settings['cookiepath']}";
    var cookiePrefix = "{$mybb->settings['cookieprefix']}";
    var deleteevent_confirm = "{$lang->deleteevent_confirm}";
    var removeattach_confirm = "{$lang->removeattach_confirm}";
    var loading_text = '{$lang->ajax_loading}';
    var saving_changes = '{$lang->saving_changes}';
    var use_xmlhttprequest = "{$mybb->settings['use_xmlhttprequest']}";
    var my_post_key = "{$mybb->post_code}";
    var imagepath = "{$theme['imgdir']}";
// -->
</script>

Вы можете использовать переменные MyBB в любом шаблоне с одним условием: оно должно быть определено в соответствующем PHP-файле. (Конечно, эта переменная должна быть в скобках {})

Например, соответствующий файл PHP с headerinclude шаблон global.php,

Вот и все. Веселитесь вместе с MyBB:)

Вы можете добавить плагин на свой форум. Это называется шаблонные условия. После установки вы можете использовать переменную Mybb->user во всех шаблонах. Существует множество приложений этого плагина, но для вашего кода вы можете сделать:

<setvar uservar>$mybb->user['uid']</setvar>

var {$tplvars['uservar']} = $("#panel").find('a').attr('href').replace(/[^0-9]/g, '');

Плагин находится на форуме MyBBHacks по ссылке ниже.

http://mybbhacks.zingaburga.com/showthread.php?tid=464

Если вы используете (или можете использовать) шаблон, вы можете поместить переменную PHP в переменную JavaScript, определенную в содержимом этого шаблона. Если вы планируете запускать этот JavaScript на каждой странице, вы должны добавить определение переменной в блок скрипта в headerinclude шаблон.

<script type="text/javascript">
<!--
    var userID = {$mybb->user['uid']};
// -->
</script>

Этот пример сценария поместит uid пользователя в переменную JavaScript userID.

Обратите внимание, что <?php echo $mybb->user['uid']; ?> не будет работать, так как система шаблонов MyBB не позволяет использовать внутри нее теги PHP. Вы можете вместо этого использовать {$mybb->user['uid'} как альтернатива.

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

Во-первых, вы не сможете напрямую получить доступ к переменной на стороне php-сервера в javascript, но есть несколько способов обойти это.

Первое, что приходит на ум, - это поместить это где-нибудь на свою HTML-страницу.

<script type="text/javascript">
    <?php echo "var uid = '". $mybb->user['uid']."';" ?>;
</script>

Недостатком этого является то, что эта переменная теперь непосредственно просматривается и может редактироваться в DOM.

Другие вопросы по тегам