/** * @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'; }
/** * @desc Formulario de creación/Edición de etiquetas **/ function formTags($edit = 0) { global $xoopsModule; $page = isset($_REQUEST['pag']) ? $_REQUEST['pag'] : ''; $search = isset($_REQUEST['search']) ? $_REQUEST['search'] : ''; $ruta = "pag={$page}&search={$search}"; $ids = isset($_REQUEST['ids']) ? $_REQUEST['ids'] : 0; $num = 10; if ($edit) { //Verificamos si nos proporcionaron al menos una etiqueta para editar if (!is_array($ids) && $ids <= 0) { redirectMsg('./tags.php?' . $ruta, __('Specify some valid IDs', 'galleries'), 1); die; } if (!is_array($ids)) { $ids = array($ids); } } GSFunctions::toolbar(); xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> » <a href='./tags.php'>" . __('Tags Management', 'galleries') . "</a> » " . ($edit ? _AS_GS_EDITTAG : _AS_GS_NEWTAG)); RMTemplate::get()->assign('xoops_pagetitle', $edit ? __('Edit Tags', 'galleries') : __('Add Tags', 'galleries')); xoops_cp_header(); $form = new RMForm($edit ? __('Editing tags', 'galleries') : __('Add tags', 'galleries'), 'frmtags', 'tags.php'); if ($edit) { $errors = ''; foreach ($ids as $k) { //Verificamos si la etiqueta es válida if ($k <= 0) { $errors .= sprintf(__('ID "%s" is not valid', 'galleries'), $k); continue; } //Verificamos si la etiqueta existe $tag = new GSTag($k); if ($tag->isNew()) { $errors .= sprintf(__('Tag "%s" does not exists', 'galleries'), $k); continue; } $form->addElement(new RMFormText(__('Tag name', 'galleries'), 'tags[' . $tag->id() . ']', 50, 100, $edit ? $tag->tag() : '')); } } else { for ($i = 0; $i < $num; $i++) { $form->addElement(new RMFormText(__('Tag name', 'galleries'), 'tags[' . $i . ']', 50, 100, $edit ? $tag->tag() : '')); } } $form->addElement(new RMFormHidden('op', $edit ? 'saveedit' : 'save')); $form->addElement(new RMFormHidden('page', $page)); $form->addElement(new RMFormHidden('search', $search)); $buttons = new RMFormButtonGroup(); $buttons->addButton('sbt', $edit ? __('Save Changes', 'galleries') : __('Create tags', 'galleries'), 'submit'); $buttons->addButton('cancel', __('Cancel', 'galleries'), 'button', 'onclick="window.location=\'tags.php?' . $ruta . '\'"'); $form->addElement($buttons); $form->display(); xoops_cp_footer(); }