Exemplo n.º 1
0
/**
* @desc Visualiza todas las imágenes de la etiqueta especificada
**/
function imgsTag()
{
    global $tpl, $xoopsOption, $xoopsUser, $xoopsConfig, $xoopsModuleConfig, $db, $page, $tag, $usr, $hits;
    $xoopsOption['template_main'] = 'gs_imagestag.html';
    $xoopsOption['module_subpage'] = 'exploretags';
    include 'header.php';
    $mc =& $xoopsModuleConfig;
    GSFunctions::makeHeader();
    //Verificamos si la etiqueta existe
    $tag = new GSTag($tag);
    if ($tag->isNew()) {
        redirect_header(GSFunctions::get_url(), 1, __('Specified tag does not exists!', 'galleries'));
        die;
    }
    //Incrementamos el número de hits de la etiqueta
    if (!isset($_SESSION['vtags'])) {
        $tag->addHit();
        $_SESSION['vtags'] = array($tag->id());
    } elseif (!in_array($tag->id(), $_SESSION['vtags'])) {
        $tag->addHit();
        $_SESSION['vtags'][] = $tag->id();
    }
    //Verificamos si el usuario existe
    if (isset($usr)) {
        $user = new GSUser($usr);
        if ($user->isNew()) {
            redirect_header(GSFunctions::get_url(), 1, __('Specified user does not exists!', 'galleries'));
            die;
        }
        $users[$user->uid()] = $user;
    }
    //Barra de Navegación
    $sql = "SELECT COUNT(*) FROM " . $db->prefix('gs_tagsimages') . " a INNER JOIN " . $db->prefix('gs_images');
    $sql .= " b ON (a.id_tag=" . $tag->id() . " AND a.id_image=b.id_image  AND b.public=2";
    $sql .= $usr ? " AND b.owner=" . $user->uid() . ") " : ")";
    $limit = $xoopsModuleConfig['num_imgstags'];
    list($num) = $db->fetchRow($db->query($sql));
    if ($page > 0) {
        $page -= 1;
    }
    $start = $page * $limit;
    $tpages = (int) ($num / $limit);
    if ($num % $limit > 0) {
        $tpages++;
    }
    $pactual = $page + 1;
    if ($pactual > $tpages) {
        $rest = $pactual - $tpages;
        $pactual = $pactual - $rest + 1;
        $start = ($pactual - 1) * $limit;
    }
    if ($tpages > 1) {
        if ($mc['urlmode']) {
            $urlnav = 'explore/tags/tag/' . $tag->getVar('nameid') . '/';
            $urlnav .= $usr ? 'usr/' . $user->uname() . '/' : '';
        } else {
            $urlnav = '?xplore=tags&tag=' . $tag->getVar('nameid');
            $urlnav .= $usr ? '&usr='******'';
        }
        $nav = new RMPageNav($num, $limit, $pactual, 5);
        $nav->target_url(GSFunctions::get_url() . $urlnav . ($mc['urlmode'] ? 'pag/{PAGE_NUM}/' : '&pag={PAGE_NUM}'));
        $tpl->assign('tagsNavPage', $nav->render(false));
    }
    $showmax = $start + $limit;
    $showmax = $showmax > $num ? $num : $showmax;
    $tpl->assign('lang_showing', sprintf(__('Showing photos %u to %u from %u.', 'galleries'), $start + 1, $showmax, $num));
    $tpl->assign('limit', $limit);
    $tpl->assign('pag', $pactual);
    //Fin de barra de navegación
    //Obtenemos las imágenes pertenecientes a la etiqueta
    $sql = "SELECT b.* FROM " . $db->prefix('gs_tagsimages') . " a INNER JOIN " . $db->prefix('gs_images');
    $sql .= " b ON (a.id_tag=" . $tag->id() . " AND a.id_image=b.id_image  AND b.public=2";
    $sql .= $usr ? " AND b.owner=" . $user->uid() . ") " : ")";
    $sql .= " GROUP BY b.id_image";
    $sql .= " ORDER BY `created` DESC LIMIT {$start}, {$limit}";
    $result = $db->query($sql);
    $tpl->assign('images', GSFunctions::process_image_data($result));
    $tpl->assign('lang_picstag', $usr ? sprintf(__('%s: tagged as %s', 'galleries'), $user->uname(), $tag->tag()) : sprintf(__('Images tagged as "%s"', 'galleries'), $tag->tag()));
    $tpl->assign('tagname', $tag->tag());
    $tpl->assign('usr', $usr);
    if ($usr) {
        $tpl->assign('pics_link', GS_URL . '/' . ($mc['urlmode'] ? "usr/" . $user->uname() : "user.php?id=usr/" . $user->uname() . "/"));
        $tpl->assign('tags_link', GS_URL . '/' . ($mc['urlmode'] ? "explore/tags/usr/" . $user->uname() . "/" : "explore.php?by=explore/tags/usr/" . $user->uname() . "/"));
        $tpl->assign('sets_link', GS_URL . '/' . ($mc['urlmode'] ? "explore/sets/usr/" . $user->uname() . "/" : "explore.php?by=explore/sets/usr/" . $user->uname() . "/"));
        $tpl->assign('bmark_link', GS_URL . '/' . ($mc['urlmode'] ? "cpanel/booksmarks/" : "cpanel.php?s=cpanel/bookmarks"));
    }
    include 'footer.php';
}