public static function getPerson($params) { try { $personId = (int) $params['person_id']; $sql = "SELECT ID as `person_id`, " . " RusName as `name`, " . " OriginalName as `international_name`, " . " Description as `description`, " . " IF(LENGTH(Images)>LENGTH(Photos), Images, Photos) as photos, " . " OzonUrl as `url` " . "FROM persones WHERE ID=?d"; $user = Lms_User::getUser(); $db = Lms_Db::get('main'); $person = $db->selectRow($sql, $personId); if (!$person) { return new Lms_Api_Response(404); } $person["description"] = Lms_Text::htmlizeText($person["description"]); $person["photos"] = preg_split("/(\r\n|\r|\n)/", $person["photos"]); foreach ($person["photos"] as &$photo) { $photo = Lms_Application::thumbnail($photo, $width = 120, $height = 0, $defer = true); } $wheres = array(); if (!$user->isAllowed("film", "moderate")) { $wheres[] = " films.Hide=0 "; } $sql = "SELECT DISTINCT filmpersones.FilmID as film_id, " . " films.Name as `name`, " . " films.Year as `year`, " . " CONCAT(films.BigPosters, '\n', films.Poster) as `covers`, " . " roles.Role as `role` " . "FROM filmpersones INNER JOIN roles ON (filmpersones.RoleID = roles.ID) INNER JOIN films ON (filmpersones.FilmID = films.ID) " . "WHERE filmpersones.PersonID=?d " . (count($wheres) ? " AND " . implode(' AND ', $wheres) . " " : "") . "ORDER BY films.Year, SortOrder"; $rows = $db->select($sql, $personId); $films = array(); foreach ($rows as $row) { $filmId = $row['film_id']; $films[$filmId]["film_id"] = $filmId; $films[$filmId]["name"] = $row["name"]; $films[$filmId]["year"] = $row["year"]; $films[$filmId]["covers"] = $row["covers"]; $films[$filmId]["roles"][] = $row["role"]; } /* foreach ($films as &$film) { $covers = array_values(array_filter( preg_split("/(\r\n|\r|\n)/", $film["covers"]) )); $film["cover"] = array_shift($covers); if ($film["cover"]) { $film["cover"] = Lms_Application::thumbnail($film["cover"], $width = 30, $height = 0); } unset($film["covers"]); } */ $person['films'] = array_values($films); $result['person'] = $person; return new Lms_Api_Response(200, null, $result); } catch (Exception $e) { return new Lms_Api_Response(500, $e->getMessage()); } }