Пример #1
0
 /**
  * Returns a list of options.
  *
  * @param	integer		$packageID
  * @return	array
  */
 public static function getOptions($packageID = PACKAGE_ID)
 {
     $sql = "SELECT\t\toptionName, optionID\n\t\t\tFROM\t\twcf" . WCF_N . "_option option_table\n\t\t\tLEFT JOIN\twcf" . WCF_N . "_package_dependency package_dependency\n\t\t\tON\t\t(package_dependency.dependency = option_table.packageID)\n\t\t\tWHERE\t\tpackage_dependency.packageID = ?\n\t\t\tORDER BY\tpackage_dependency.priority ASC";
     $statement = WCF::getDB()->prepareStatement($sql);
     $statement->execute(array($packageID));
     $optionIDs = array();
     while ($row = $statement->fetchArray()) {
         $optionIDs[$row['optionName']] = $row['optionID'];
     }
     $options = array();
     if (count($optionIDs)) {
         // get needed options
         $conditions = new PreparedStatementConditionBuilder();
         $conditions->add("optionID IN (?)", array($optionIDs));
         $sql = "SELECT\t\toptionName, optionValue, optionType\n\t\t\t\tFROM\t\twcf" . WCF_N . "_option\n\t\t\t\t" . $conditions . "\n\t\t\t\tORDER BY\toptionName";
         $statement = WCF::getDB()->prepareStatement($sql);
         $statement->execute($conditions->getParameters());
         while ($row = $statement->fetchArray()) {
             $options[StringUtil::toUpperCase($row['optionName'])] = $row;
         }
     }
     return $options;
 }