rendered paste body function listMedia($page = 1, $by, $extra, $limit = 15)
{
$page = ($page < 1) ? 1 : $page;
$offset = ($limit * $page) - $limit;
// basic SQL
$sql = "SELECT
m.media_id,
m.media_title,
m.media_thumb,
m.media_description,
m.media_type,
m.media_chosen,
m.model_id,
mo.model_name,
ty.type_name AS 'type',
GROUP_CONCAT(COALESCE(t.tag_name),'') AS 'tags',
COUNT(DISTINCT(tr.traffic_ip)) AS 'hits'
FROM media m
LEFT JOIN media_types ty
ON ty.type_id = m.media_type
LEFT JOIN models mo
ON mo.model_id = m.model_id
LEFT JOIN traffic tr
ON tr.traffic_page = m.media_url
JOIN media_tags mt
ON mt.media_id = m.media_id
JOIN tags t
ON t.tag_id = mt.tag_id
WHERE m.media_posted = 1
AND m.media_date <= " . time();
if ($by == 'type')
{
if ($extra != 'links')
{
$sql .= " AND ty.type_name = '$extra'";
}
}
else if ($by == 'search')
{
$sql .= " AND MATCH (m.media_title,m.media_description) AGAINST('$extra')";
}
else if ($by == 'chosen')
{
$sql .= " AND media_chosen = 1";
}
else if ($by == 'model')
{
$sql .= " AND mo.model_name = '" . unsef_title($extra) . "'";
}
$sql .= " GROUP BY m.media_id";
if ($by == 'tag')
{
$sql .= " HAVING tags LIKE '%$extra%'";
}
$sql .= " ORDER BY m.media_date DESC
LIMIT " . $offset . ", " . $limit;
$this->result = $this->retrieve($sql);
$result = $this->totalRows($by, $extra);
$row = $result->getRow();
$numRows = $row['count'];
$this->numPages = ceil($numRows / $limit);
}