1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

1.1.1 Получение данных форума на внешнюю страницу

Тема в разделе "Интеграция XenForo с различными движками", создана пользователем avgaz, 01.01.2012.

Загрузка
  1. avgaz

    avgaz Местный

    Регистрация:
    05.11.10
    Сообщения:
    40
    Симпатии:
    1
    Вопрос заключается в следующем необходимо получить данные пользователя с форума на внешнею страницу такие как id, name и тд
    что то похожее обсуждается здесь http://xenforo.com/community/threads/using-xenforo-permission-outside-of-xenforo.7585/ но толком не понял что там но код этот отказывается работать на внешней странице
    PHP:
    $startTime microtime true );
    $xenforoRoot './upload/' ;
     
    // Setup XenForo's autoloader
    require_once( $xenforoRoot '/library/XenForo/Autoloader.php' );
    XenForo_Autoloader :: getInstance ()-> setupAutoloader $xenforoRoot '/library' );
     
    // Initialize the XenForo Framework
    GeekPoint_Symfony :: initializeXenforo $xenforoRoot $startTime );
     
    // You can fetch user data using the visitor object
    $visitor XenForo_Visitor :: getInstance ();
     
    $user_id $visitor -> getUserId ();
    $username $visitor -> get 'username' );
    $email $visitor -> get 'email' );
    echo 
    $user_id;
    Если кто знает как получить данные пользователя зашедшего на страницу, плиз подскажите
     
  2. avgaz

    avgaz Местный

    Регистрация:
    05.11.10
    Сообщения:
    40
    Симпатии:
    1
    Всё ответ на свой вопрос, нашёл.
     
  3. Senior

    Senior Местный

    Регистрация:
    05.10.10
    Сообщения:
    195
    Симпатии:
    42
    Версия XF:
    1.1.1
    так напиши тут на него ответ, если нашел :)
    иначе в чем смысл твоего топика ?
     
    Nicolayka нравится это.
  4. boff

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

    Регистрация:
    11.12.11
    Сообщения:
    28
    Симпатии:
    4
    Версия XF:
    1.1.1
    +1 интересует.
     
  5. Hafner

    Hafner Местный

    Регистрация:
    07.10.10
    Сообщения:
    55
    Симпатии:
    98
    Версия XF:
    1.1.1
    Пример реализации, которую я осуществил у себя:
    1. создаем файл класса, например, class.xfAuth.php следующего содержания:
      PHP:
      <?php

      class XF_auth
      {
          
      /**
          * The path to the xenForo install
          * @var string
          */
          
      private $fileDir '';
        
        
          
      /**
          * The base URL to xenForo
          * @var string
          */
          
      private $forumUrl '';
        
        
          
      /**
          * The xFUser instance
          */
          
      private $xfUser null;
        
          
      /**
          * Load up the config
          * and then try to auth a session with xF to see
          * if there is one.
          */
          
      function __construct($config
          {
              
      $this->fileDir  $config['fileDir'];
              
      $this->forumUrl $config['forumUrl'];
            
              
      $this->authenticateSession();
          }
        
          
      /**
          * Uses the XenForo_Autoloader to initialize and startPublicSession to get
          * and instance of the Visitor, if there is one.
          * @return int
          */
          
      function authenticateSession()
          {
              
      /**
              * Get the xenForo Autoloader
              */
              
      if( is_dir($this->fileDir) )
              {
                  require(
      $this->fileDir '/library/XenForo/Autoloader.php');
                  
      XenForo_Autoloader::getInstance()->setupAutoloader($this->fileDir '/library');
                
                  
      /**
                  * initialize
                  */
                  
      XenForo_Application::initialize($this->fileDir '/library'$this->fileDir);

                  
      XenForo_Session::startPublicSession();          
                  
      $this->xfUser XenForo_Visitor::getInstance();
                
                  return 
      $this->xfUser->getUserId();
              }
              die(
      'no path');

              return 
      false;
          }
        
          
      /**
          * Wrapper function to get User Id.
          * @return int
          */
          
      public function getUserId()
          {
              return 
      $this->xfUser->getUserId();
          }
        
          
      /**
          * Checks if the current user is logged in to xenForo
          * @return boolean
          */
          
      public function isLoggedIn()
          {
              return (bool)
      $this->xfUser->getUserId();
          }
        
          
      /**
          * Checks if the current user is a xF super administrator
          * @return bool
          */
          
      public function isSuperAdmin()
          {
              return 
      $user->isSuperAdmin();
          }
      }
    2. пример кода подключения класса и получения информации о пользователе на внешней странице:
      PHP:
      <?php

      // Указываем пути до папки с форумом
      $config['xfAuth'] = array();
      $config['xfAuth']['forumUrl'] = 'http://www.mysite.ru/forum/';
      $config['xfAuth']['fileDir'] = '/var/www/mysite.ru/forum';

      // Определяем путь до файла класса и подключаем его
      define('INCLUDE_PATH''путь до класса XF_auth');
      require_once(
      INCLUDE_PATH 'class.xfAuth.php');

      $xf = new XF_auth($config['xfAuth']);

      if( 
      $xf->isLoggedIn() ) // если пользователь авторизован
      {
          echo 
      "You're logged in to XenForo !" .
          
      " user ID :: " $xf->getUserId() .
          
      " username :: " $xf->get('username') .
          
      " email :: " $xf->get('email');
      }
      else 
      // если не авторизован
      {
          echo 
      "You are not logged in !";
      }

      ?>
     
    washington, duckmen, Nicolayka и 4 другим нравится это.
  6. awdawd

    awdawd Read only

    Регистрация:
    08.02.11
    Сообщения:
    21
    Симпатии:
    0
    Версия XF:
    1.2.1
    чего не так сделал ?
    Fatal error: Call to undefined method XF_auth::get() in /usr/www/mysite/www/1.php on line 18
     
  7. Nicolayka

    Nicolayka Местный

    Регистрация:
    25.02.12
    Сообщения:
    70
    Симпатии:
    13
    Версия XF:
    1.4.4
  8. Nicolayka

    Nicolayka Местный

    Регистрация:
    25.02.12
    Сообщения:
    70
    Симпатии:
    13
    Версия XF:
    1.4.4
  9. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Посмотрите другие интеграции, а также уже имеющиеся обсуждения реализаций.
     
  10. ddeli

    ddeli Новичок

    Регистрация:
    02.10.12
    Сообщения:
    5
    Симпатии:
    0
    Куда файл class.xfAuth.php сохранять?
     
  11. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Без разницы. Главное, чтобы этот файл был доступен для вызова класса:
    PHP:
    require_once(INCLUDE_PATH 'class.xfAuth.php');
     
  12. ddeli

    ddeli Новичок

    Регистрация:
    02.10.12
    Сообщения:
    5
    Симпатии:
    0
    Пишет: no path
     
  13. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Я так понимаю, что Вы не являетесь разработчиком и не стремитесь им быть. В таком случае будет проще обратиться к специалистам с соответствующими знаниями. Поверьте, я не зануда и не жлоб. Но обучать Вас азам PHP на этом форуме наверняка никто не будет.
     
    Patriarh и Oleg-2012 нравится это.

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