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

Run query on user upgrade (code example)

Тема в разделе "Плагины для XenForo [1.x]", создана пользователем Jack14rus, 10.04.2013.

Загрузка
  1. Jack14rus

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

    Регистрация:
    24.09.12
    Сообщения:
    2
    Симпатии:
    0
    Версия XF:
    1.1.3
    Run query on user upgrade (code example)

    Тема на оф. сайте:
    HTML:
    http://xenforo.com/community/resources/run-query-on-user-upgrade-code-example.396/
    Автор: Jake Bunce
    Версия: 1.x
    Описание: Useful if you need to grant additional awards or status when a user pays for an upgrade.

    Установка:
    1. You can edit the library/ExtendUserUpgrade/UserUpgradeModel.php file to set your own query or code to execute when a user pays for an upgrade. The file already includes a query that I used for the person I made this for:
      Код:
      <?php
      
      class ExtendUserUpgrade_UserUpgradeModel extends XFCP_ExtendUserUpgrade_UserUpgradeModel
      {
          public function upgradeUser($userId, array $upgrade, $allowInsertUnpurchasable = false, $endDate = null)
          {
              $retval = parent::upgradeUser($userId, $upgrade, $allowInsertUnpurchasable, $endDate);
      
              $db = XenForo_Application::get('db');
      
              $db->query("
                  [COLOR=red]UPDATE iConomy SET Balance = Balance + 3000 WHERE username = ( SELECT username FROM xf_user WHERE user_id = " . $userId . " )[/COLOR]
              ");
      
              return $retval;
          }
      }
    2. But he ended up needing to connect to a second database to update user records for his minecraft server. Here is an example with a second database connection. $db is the database for XenForo. $mcdb is the database for his minecraft server. This allowed him to query both databases to update point values:
    3. Код:
      <?php
      
      class ExtendUserUpgrade_UserUpgradeModel extends XFCP_ExtendUserUpgrade_UserUpgradeModel
      {
          public function upgradeUser($userId, array $upgrade, $allowInsertUnpurchasable = false, $endDate = null)
          {
              $retval = parent::upgradeUser($userId, $upgrade, $allowInsertUnpurchasable, $endDate);
      
              $db = XenForo_Application::get('db');
              $mcdb = new Zend_Db_Adapter_Pdo_Mysql(array(
                  'host'    => 'localhost',
                  'username' => '[COLOR=red]dbuser[/COLOR]',
                  'password' => '[COLOR=red]dbpass[/COLOR]',
                  'dbname'  => '[COLOR=red]dbname[/COLOR]'
              ));
      
              $username = $db->fetchOne("
                  SELECT username
                  FROM xf_user
                  WHERE user_id = " . $userId . "
              ");
      
              $mcdb->query("
                  UPDATE iConomy
                  SET Balance = Balance + 3000
                  WHERE username = '" . addslashes($username) . "'
              ");
      
              return $retval;
          }
      }
     

    Вложения:

  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Держите. Но перевод бы не помешал ;)

    [Вложение добавлено, тема перенесена]
     
    Jack14rus нравится это.
  3. Jack14rus

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

    Регистрация:
    24.09.12
    Сообщения:
    2
    Симпатии:
    0
    Версия XF:
    1.1.3
    Спасибо огромное!
     

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