function _hosting_get_platforms in Hosting 7.3
Same name and namespace in other branches
- 5 platform/hosting_platform.module \_hosting_get_platforms()
- 6.2 platform/hosting_platform.module \_hosting_get_platforms()
- 7.4 platform/hosting_platform.module \_hosting_get_platforms()
Helper function to get platforms that haven't been deleted.
@todo Convert this to an EntityFieldQuery with conditions & tags (for JOINs). Tags will be unnecessary in D8 as JOINs are natively supported. See hosting_get_site_by_url() for an example of how to do this.
Parameters
int $web_server: Node ID of the server hosting this platform. Default 0 indicates any web_server.
boolean $enabled_only: Set to TRUE to return only enabled platforms. Defaults to FALSE.
Return value
The list of platforms.
4 calls to _hosting_get_platforms()
- hosting_client_node_access_records in client/hosting_client.access.inc 
- Implements hook_node_access_records().
- hosting_package_update_5 in package/hosting_package.install 
- Implements hook_update_N().
- hosting_platform_hosting_summary in platform/hosting_platform.module 
- Implements hook_hosting_summary().
- hosting_ssl_get_platforms in web_server/ssl/ hosting_ssl.module 
- Return a list of platforms on SSL enabled servers.
File
- platform/hosting_platform.module, line 253 
- Platform node type definition.
Code
function _hosting_get_platforms($web_server = 0, $enabled_only = FALSE) {
  $return = array();
  // Set the query parameters.
  $parameters = array(
    ':type' => 'platform',
    ':nstatus' => 1,
    //@todo: remove magic number?
    ':hstatus' => HOSTING_PLATFORM_DELETED,
    ':web_server' => $web_server,
  );
  // Add another filter to return only enabled sites is requested.
  $enabled_text = $enabled_only ? "AND h.status <> :disabled" : '';
  if ($enabled_only) {
    $parameters[':disabled'] = HOSTING_PLATFORM_LOCKED;
  }
  $result = db_query("SELECT n.nid, n.title\n                      FROM {node} n\n                      LEFT JOIN {hosting_platform} h\n                      ON n.nid = h.nid\n                      WHERE n.type = :type\n                      AND n.status = :nstatus\n                      AND h.status <> :hstatus\n                      AND (h.web_server = :web_server OR :web_server = 0)\n                      {$enabled_text}\n                      ORDER BY n.title\n                     ", $parameters);
  while ($platform = $result
    ->fetch()) {
    $return[$platform->nid] = $platform->title;
  }
  return $return;
}