/**
  * Load tool consumer object.
  *
  * @param ToolConsumer $consumer ToolConsumer object
  *
  * @return boolean True if the tool consumer object was successfully loaded
  */
 public function loadToolConsumer($consumer)
 {
     $ok = false;
     if (!empty($consumer->getRecordId())) {
         $sql = 'SELECT consumer_pk, name, consumer_key256, consumer_key, secret, lti_version, ' . 'consumer_name, consumer_version, consumer_guid, ' . 'profile, tool_proxy, settings, protected, enabled, ' . 'enable_from, enable_until, last_access, created, updated ' . "FROM {$this->dbTableNamePrefix}" . DataConnector::CONSUMER_TABLE_NAME . ' ' . 'WHERE consumer_pk = :id';
         $query = $this->db->prepare($sql);
         $id = $consumer->getRecordId();
         $query->bindValue('id', $id, PDO::PARAM_INT);
     } else {
         $sql = 'SELECT consumer_pk, name, consumer_key256, consumer_key, secret, lti_version, ' . 'consumer_name, consumer_version, consumer_guid, ' . 'profile, tool_proxy, settings, protected, enabled, ' . 'enable_from, enable_until, last_access, created, updated ' . "FROM {$this->dbTableNamePrefix}" . DataConnector::CONSUMER_TABLE_NAME . ' ' . 'WHERE consumer_key256 = :key256';
         $query = $this->db->prepare($sql);
         $key256 = DataConnector::getConsumerKey($consumer->getKey());
         $query->bindValue('key256', $key256, PDO::PARAM_STR);
     }
     if ($query->execute()) {
         while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
             $row = array_change_key_case($row);
             if (empty($key256) || empty($row['consumer_key']) || $consumer->getKey() === $row['consumer_key']) {
                 $consumer->setRecordId(intval($row['consumer_pk']));
                 $consumer->name = $row['name'];
                 $consumer->setkey(empty($row['consumer_key']) ? $row['consumer_key256'] : $row['consumer_key']);
                 $consumer->secret = $row['secret'];
                 $consumer->ltiVersion = $row['lti_version'];
                 $consumer->consumerName = $row['consumer_name'];
                 $consumer->consumerVersion = $row['consumer_version'];
                 $consumer->consumerGuid = $row['consumer_guid'];
                 $consumer->profile = json_decode($row['profile']);
                 $consumer->toolProxy = $row['tool_proxy'];
                 $settings = unserialize($row['settings']);
                 if (!is_array($settings)) {
                     $settings = array();
                 }
                 $consumer->setSettings($settings);
                 $consumer->protected = intval($row['protected']) === 1;
                 $consumer->enabled = intval($row['enabled']) === 1;
                 $consumer->enableFrom = null;
                 if (!is_null($row['enable_from'])) {
                     $consumer->enableFrom = strtotime($row['enable_from']);
                 }
                 $consumer->enableUntil = null;
                 if (!is_null($row['enable_until'])) {
                     $consumer->enableUntil = strtotime($row['enable_until']);
                 }
                 $consumer->lastAccess = null;
                 if (!is_null($row['last_access'])) {
                     $consumer->lastAccess = strtotime($row['last_access']);
                 }
                 $consumer->created = strtotime($row['created']);
                 $consumer->updated = strtotime($row['updated']);
                 $ok = true;
                 break;
             }
         }
     }
     return $ok;
 }
 /**
  * Load tool consumer object.
  *
  * @param ToolConsumer $consumer ToolConsumer object
  *
  * @return boolean True if the tool consumer object was successfully loaded
  */
 public function loadToolConsumer($consumer)
 {
     $ok = false;
     if (!empty($consumer->getRecordId())) {
         $sql = sprintf('SELECT consumer_pk, name, consumer_key256, consumer_key, secret, lti_version, ' . 'consumer_name, consumer_version, consumer_guid, ' . 'profile, tool_proxy, settings, protected, enabled, ' . 'enable_from, enable_until, last_access, created, updated ' . "FROM {$this->dbTableNamePrefix}" . DataConnector::CONSUMER_TABLE_NAME . ' ' . "WHERE consumer_pk = %d", $consumer->getRecordId());
     } else {
         $key256 = DataConnector::getConsumerKey($consumer->getKey());
         $sql = sprintf('SELECT consumer_pk, name, consumer_key256, consumer_key, secret, lti_version, ' . 'consumer_name, consumer_version, consumer_guid, ' . 'profile, tool_proxy, settings, protected, enabled, ' . 'enable_from, enable_until, last_access, created, updated ' . "FROM {$this->dbTableNamePrefix}" . DataConnector::CONSUMER_TABLE_NAME . ' ' . "WHERE consumer_key256 = %s", DataConnector::quoted($key256));
     }
     $rsConsumer = mysql_query($sql);
     if ($rsConsumer) {
         while ($row = mysql_fetch_object($rsConsumer)) {
             if (empty($key256) || empty($row->consumer_key) || $consumer->getKey() === $row->consumer_key) {
                 $consumer->setRecordId(intval($row->consumer_pk));
                 $consumer->name = $row->name;
                 $consumer->setkey(empty($row->consumer_key) ? $row->consumer_key256 : $row->consumer_key);
                 $consumer->secret = $row->secret;
                 $consumer->ltiVersion = $row->lti_version;
                 $consumer->consumerName = $row->consumer_name;
                 $consumer->consumerVersion = $row->consumer_version;
                 $consumer->consumerGuid = $row->consumer_guid;
                 $consumer->profile = json_decode($row->profile);
                 $consumer->toolProxy = $row->tool_proxy;
                 $settings = unserialize($row->settings);
                 if (!is_array($settings)) {
                     $settings = array();
                 }
                 $consumer->setSettings($settings);
                 $consumer->protected = intval($row->protected) === 1;
                 $consumer->enabled = intval($row->enabled) === 1;
                 $consumer->enableFrom = null;
                 if (!is_null($row->enable_from)) {
                     $consumer->enableFrom = strtotime($row->enable_from);
                 }
                 $consumer->enableUntil = null;
                 if (!is_null($row->enable_until)) {
                     $consumer->enableUntil = strtotime($row->enable_until);
                 }
                 $consumer->lastAccess = null;
                 if (!is_null($row->last_access)) {
                     $consumer->lastAccess = strtotime($row->last_access);
                 }
                 $consumer->created = strtotime($row->created);
                 $consumer->updated = strtotime($row->updated);
                 $ok = true;
                 break;
             }
         }
         mysql_free_result($rsConsumer);
     }
     return $ok;
 }