Joomla 3.x Fatal error: Class 'JRequest' not found in

Тема в разделе "Программирование", создана пользователем tmpnikl, 09.12.2016.

  1. Offline

    tmpnikl Пользователь

    Регистрация:
    08.05.2015
    Сообщения:
    82
    Симпатии:
    0
    Пол:
    Мужской
    Не подскажите как надо правильно написать
    Есть материал в К2, в этом материале есть ссылка, которая запускает программу на php
    вот сама программа
    <?php
    $catid = JRequest::getInt( 'catid', 1, 'get' );
    $articleid = JRequest::getInt( 'id', 1, 'get' );
    echo "<h1>Id: $id</h1>";
    ?>
    Получаю ошибку Fatal error: Class 'JRequest' not found in W: domains\...\...\l.php on line 2

     
  2.  
  3. Лучший ответ:
    Сообщение #8 от 09.12.2016, автор OlegK
  4. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    А программе на php подключается framework Joomla ?
     
  5. Offline

    tmpnikl Пользователь

    Регистрация:
    08.05.2015
    Сообщения:
    82
    Симпатии:
    0
    Пол:
    Мужской
    Спасибо, я ждал от вас ответа и ещё от одного товарища... Я не знаю в джумле технологии вызова внешних программами на PHP с передачей параметра (в данном случае id страницы), инструкции как это делается на английском, для нашей деревни это тяжко Суть проблемы мне надо вызывать форму авторизации(она запускается и отрабатывает нормально, но туда надо передать ещё id), по id найти этот материал в бд и изменить его. Вот вкратце и всё. Есть два варианта не использовать объекты джумла, как предлагает "Fedor Vlasenko"(http://joomlaforum.ru/index.php/topic,288697.0.html).. и этот путь мне больше нравится, но
    $id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
    var_dump($id);
    у меня тоже пусто
    Поэтому как всё это делается на самом дела, что я должен и где прописать, чтоб запустилась эта внешняя программа по ссылке и выдала на экране номер материала откуда она была запущена. Где я должен прописать функцию require_once, чтоб эту программу джумла подключила??
     
    Последнее редактирование: 09.12.2016
  6. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Откуда запускается ? Ты можешь получить значение своей переменной с массива POST, конечно применив фильтрацию PHP filter_var.
    Код (PHP):
    1. preg_replace('/\D/', '', filter_var($one_click[1], FILTER_SANITIZE_NUMBER_INT));

    Я думаю эта тема не для ошибок Джумла, она не виновата .
    Вывод модуля в отдельном файле
     
  7. Offline

    tmpnikl Пользователь

    Регистрация:
    08.05.2015
    Сообщения:
    82
    Симпатии:
    0
    Пол:
    Мужской
    Авторизация запускается по ссылке, которая находится в материале. Но это не важно, (я её привёл для общего описания проблемы). В данный момент есть джумла, материал в ней и ссылка в материале, по ссылке запускается внешняя программа php, которая должна вывести id материала из которой она запущена. Нет тут массива POST
     
  8. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Вообщем- если форма,в ней указывается метод передачи - GET or POST или общий Request .
    Если данные прошли, то и проверь , где name_id имя поля с формы
    Код (PHP):
    1. var_dump($_REQUEST'name_id');

    http://php.net/reserved.variables.request
     
  9. Offline

    tmpnikl Пользователь

    Регистрация:
    08.05.2015
    Сообщения:
    82
    Симпатии:
    0
    Пол:
    Мужской
    спасибо, формы нет . Есть админ панель->Материалы->Создание материала->ссылка(<p><a href="x\l.php">xxx</a></p>)->Сохранить->вывод страницы в браузере на локалхосте ->нажатие на ссылку. Всё Никаких форм.
     
    Последнее редактирование: 09.12.2016
  10. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Лучший ответ
    Код (css):
    1. href="x\l.php?name_id=1"

    И проверяй так же в своем скрипте . А значение id,которое можно вывести в скрытое поле в шаблоне статьи можно подставить с помощью яваскрипт .
    Код (PHP):
    1. var_dump($_REQUEST'name_id');
     
  11. Offline

    tmpnikl Пользователь

    Регистрация:
    08.05.2015
    Сообщения:
    82
    Симпатии:
    0
    Пол:
    Мужской
    Большое Вам спасибо, но вроде там запятая пропущена(я перепробовал два варианта), да и фиг с ней...Хотелось бы ещё спросить, как например сделать reload(обновление страницы) , но в каком разделе задать этот вопрос не нашёл ...
     
  12. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Хм,а за что оспсб ? Что получилось в результате ?
    Вопрос снова в программирование, не как какую кнопку кликнуть ?
     
  13. Offline

    tmpnikl Пользователь

    Регистрация:
    08.05.2015
    Сообщения:
    82
    Симпатии:
    0
    Пол:
    Мужской
    Программирование это слишком громко будет... Была бы ветка программирование для чайников это вроде моё..:)
    По первому вопросу я записал в следующем виде(с запятой)
    Код (PHP):
    1. <?php
    2.  var_dump($_REQUEST,'name_id');
    3. ?>

    Да переменная показалась(осталось её найти в массиве), программа выполнилась,, но не вернулась в точку(на ту же страницу), откуда запустилась...
    Использование $_SERVER['HTTP_REFERER'], в инете пишут не самый лучший способ... А других вариантов я не знаю...
    Т.е. перед запуском программы я должен что-то запомнить и после выполнения вернуться на ту же страницу
     
  14. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Аякс тебе в помощь . С помощью аякса ты отправляешь данные на скрипт, в котором выполняется код и результат или ошибку может вернутся на твою страницу и выводишь в нужном элементе .
    --- добавлено: 14.12.2016, первое сообщение размещено: 12.12.2016 ---
    ВОт пример работы аякс . Я на этом примере сделал скрипт покупку в Один клик для сайта на Битрикс.
    Если AJAX , то и ссылка не нужна. Создать обычный элемент, и написать обработчик события click
    j
    Код (javascript):
    1. Query.noConflict();
    2. jQuery(function(){
    3.     jQuery('.button_send').on('click', function(){
    4.         var socuser_login = jQuery('#socuser_login').val(); // здесь получить id юзера
    5.             // Проверяем заполненность обоих полей
    6.     if (socuser_login)
    7.     {
    8.         // Отправляем асинхронный запрос на страницу, на которой будет происходить отправка данных
    9.         jQuery.post(
    10.             '/ajax/send_message.php',
    11.             {SOCUSER_LOGIN:socuser_login},
    12.             function ( data )
    13.             {  
    14.                 jQuery( '.sendMessage' ).text( data );
    15.                 jQuery( '.sendMessage' ).show();
    16.             }
    17.         );
    18.     }
    19.     });
    20. });

    И потом показать сообщение в элементе страницы
    Код (html):
    1. <p class=".sendMessage">здесь будет ответ от скрипта</p>
     
    Последнее редактирование: 14.12.2016
    tmpnikl нравится это.
  15. Offline

    tmpnikl Пользователь

    Регистрация:
    08.05.2015
    Сообщения:
    82
    Симпатии:
    0
    Пол:
    Мужской
    Спасибо, сейчас изучим..
     

Поделиться этой страницей

Загрузка...