2013-11-10 5 views
0

Мне нужно получить уровень доступа для текущей страницы на сайте Joomla. Я могу получить идентификатор страницы с помощью:Получите одно значение из базы данных MySQL, используя PHP

/* Define $jinput */ 
$jinput = JFactory::getApplication()->input; 

/* Get the current page id */ 
$page= $jinput->get('id'); 

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

page_id | access | ... 
1234 | 10  |... 

Так страница 1234 имеет идентификатор доступа 10. Это то, что я пытался получить 10: /* Открыть соединение */

$link=mysqli_connect('localhost','user','pass'); 
    if(!$link){ 
    echo "No connection"; 
    exit(); 
    } 

    if (!mysqli_set_charset($link, 'utf8')) 
    { 
     echo 'Unable to set database connection encoding.'; 
     exit(); 
    } 

    if(!mysqli_select_db($link, 'datab')){ 
     echo "Can't find database"; 
    exit(); 
}; 

/* Find the access level of the current page */ 

$query = "SELECT access FROM content WHERE id=$page"; 

try { 
    $result=$link->query($query); 
} 
catch (PDOException $e){ 
    $error="Error".$e->getMessage(); 
    exit(); 
} 

$row=mysql_fetch_array($result); 

Это кажется невероятно сложно получить одно значение со страницы, но это не сработает! Я знаю, что запрос правильный, потому что я тестировал его в PHP, мой админ.

Пожалуйста, помогите, спасибо!

+2

Почему вы используете '' mysqli_ * для доступа к базе данных? Сначала прочитайте [Документы Joomla] (http://docs.joomla.org/Selecting_data_using_JDatabase) – Lodder

+0

Потому что я всегда теряюсь в документации Joomla. Я знаю, что могу использовать $ link = JFactory :: getDbo(); но результат тот же. Есть ли быстрый способ добраться до уровня доступа к странице? Например: $ page = $ jinput-> get ('access'); –

+0

Какую версию Joomla вы используете? – Lodder

ответ

0

Я думаю, что это то, что вы могли бы искать:

$app = JFactory::getApplication(); 
$access = $app->getMenu()->getActive()->access; 
echo "Access level = " . $access; 
+0

Это именно то, что я искал, спасибо! Теперь, где, черт возьми, это касается документации Joomla? –

+1

Не каждая вещь для Joomla находится на странице документации. Первый вопрос, который я ответил в отношении пунктов меню, я просмотрел [это] (http://docs.joomla.org/How_to_determine_if_the_user_is_viewing_the_front_page), а затем начал возиться с несколькими вещами на моем локальном хосте, чтобы понять, что было возможно :) – Lodder

+0

Например: '$ app-> getMenu() -> getActive()' используется для доступа к элементу меню по умолчанию, указанному в ссылке Joomla docs, приведенной выше. Затем все, что вам нужно сделать, это посмотреть на столбцы таблицы базы данных '#__ menu' и сделать добавление. Таким образом, это будет выглядеть так: '$ app-> getMenu() -> getActive() -> access;' или '$ app-> getMenu() -> getActive() -> id;' etc – Lodder

Смежные вопросы