Exemplo n.º 1
0
 /**
  * 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");
 }