/** * 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; }