Отключить выпадающее меню в MediaWiki 1.22.2

Попытался вывести массив
print_r($wgCategories);
Пустой он получается, все время, ничего не выводит на экран. Странно, из-за этого и условие не выполняется.
 
Попытался вывести массив
print_r($wgCategories);
Пустой он получается, все время, ничего не выводит на экран. Странно, из-за этого и условие не выполняется.
Note Most of these variables have a wg prefix.
For legacy reasons these names are exposed as global JavaScript variables if $wgLegacyJavaScript is true, so they use a prefix to avoid collisions.
A subset of these names correspond to $wg variables in PHP, but others are unrelated.
If your own JavaScript code references a config variable, make sure you express a module dependency on the module that supplies it.
Besides the names in this list, many extensions also set JavaScript config variables prefixed with 'wg'. To use those you need to express a module dependency and document that your code depends on the extension.

Если добавить
Код:
alert (wgCategories);
например в MediaWiki:Common.js, то все работает.
 
Последнее редактирование:
If your own JavaScript code references a config variable, make sure you express a module dependency on the module that supplies it.
И как это можно сделать? Что-то я не особо понял, т.е. эти системные переменные нельзя использовать?
 
Ключевым в этой цитате было то что переменные используют префикс wg (а не $wg как выше писали) и что некоторые переменные соответствуют этим же переменным в php, а некоторые нет :)
 
Ааа, сейчас попробуем.
 
Что-то я не особо понял, т.е. эти системные переменные нельзя использовать?
Код:
alert (wgCategories);
у меня успешно выполняется например в MediaWiki:Common.js, без подключения каких-либо зависимостей.
 
Нет, мне нужно использовать эту переменную на прямую в php коде страницы. Т.е. как я понял эти системные переменные использовать там не получится. А жаль.
 
Нет, мне нужно использовать эту переменную на прямую в php коде страницы. Т.е. как я понял эти системные переменные использовать там не получится. А жаль.
вроде разговор начинался про JS код)))
 
JS нужно было вставить на страницу. :) А какими методами не суть важно. Просто вот например в JS есть встроенная функция сравнения элементов массива с переменной?
 
Тогда стоит попробовать WikiPage::getCategories.
Или еще вот там описана функция getCategories().

Но по-моему проще через JS, вот такой код вполне работоспособен:
Код:
function search(arr, elem){
    var s="";
    for(var i=0; i<arr.length; i++){
        if(arr[i]==elem)
            s=true;
    }
    return (s!="")?s:false;
}
alert(search(wgCategories, "имя искомой категории"));
 
Она работает, однако как ей воспользоваться, вот так не получается:
if ( search(wgCategories, "Имя категории") = true)
{
Что-то сделать
}
 
Ну правильно, потому что:
Код:
    for(var i=0; i<wgCategories.length; i++){
        if(wgCategories[i]=="Имя категории")
        {
        Что-то сделать
        }
    }
 
Отлично, теперь все работает. Что-то я сразу не сообразил чтобы без использования функции это реализовать. Спасибо огромное за помощь!

А если надо чтобы обе категории совпадали, нужно цикл в цикле реализовать, нечто похожее:
for(var i=0; i<wgCategories.length; i++){
if(wgCategories=="Имя 1 категории соответствия")
{
for(var i=0; i<wgCategories.length; i++)
{
if(wgCategories=="Имя 1 категории соответствия")
{
<Если совпали обе категории - что-то сделать>
}
}
}
}
 
ну это уже все зависит от того что нужно делать
Код:
if ( (wgCategories[i]=="Имя категории") || (wgCategories[i]=="Имя категории") ) {

}
http://javascript.ru/boolean-operators
 
Последнее редактирование:
Он же в одном цикле будет сравнивать 1 и 1, потом 2 и 2 и т.д. Но это не столь важно, то что нужно сделано. Еще раз спасибо.

Теперь буду работать над вставляемым кодом, чтобы он правильно вписался в дизайн страницы. Обтекание текстом и координаты расположение и т.д.
 
Назад
Верх