/** * Resolve a files extended attributes * * @access public * * @param $retval file extended attributes */ public static function resolveAttributes(&$retval) { Log::in("query - resolveAtributes"); /* For printing via modxfs-getfattr for instance we need to * resolve things like user number to a name, template id to * a name, dates into strings etc. * We are only using select statements here, if a query fails * just leave the attribute alone and move on. */ $dbConn = Pool::get(); $prefix = Pool::getTableprefix(); foreach ($retval as $key => &$value) { switch ($key) { case 'editedon': case 'createdon': case 'pub_date': case 'unpub_date': case 'deletedon': case 'publishedon': $value = strftime("%G-%m-%j %H:%M:%S", $value); break; case 'parent': $sql = "SELECT pagetitle"; $sql .= " FROM `{$prefix}" . "site_content`"; $sql .= " WHERE id = {$value}"; $result = mysql_query($sql, $dbConn); if ($result !== false) { $row = mysql_fetch_assoc($result); if ($row['pagetitle'] != "") { $value = $row['pagetitle']; } } break; case 'template': $sql = "SELECT templatename"; $sql .= " FROM `{$prefix}" . "site_templates`"; $sql .= " WHERE id = {$value}"; $result = mysql_query($sql, $dbConn); if ($result !== false) { $row = mysql_fetch_assoc($result); if ($row['templatename'] != "") { $value = $row['templatename']; } } break; case 'editedby': case 'deletedby': case 'publishedby': case 'createdby': /* Only manager users here */ $sql = "SELECT username"; $sql .= " FROM `{$prefix}" . "manager_users`"; $sql .= " WHERE id = {$value}"; $result = mysql_query($sql, $dbConn); if ($result !== false) { $row = mysql_fetch_assoc($result); if ($row['username'] != "") { $value = $row['username']; } } break; default: break; } } Pool::release($dbConn); Log::out("query - resolveAtributes"); }
public static function release($client) { \Pool::release(static::TASK_QUEUE, $client); \Coroutine::next(static::TASK_QUEUE); }