XoopsModules25x/lexikon

View on GitHub
rss.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
/**
 * Module: Lexikon - glossary module
 * Author: Yerres
 * Licence: GNU
 */


use Xmf\Request;
use XoopsModules\Lexikon\{
    Helper,
    Utility
};
/** @var Helper $helper */

global $xoopsModule, $xoopsUser;

require_once \dirname(__DIR__, 2) . '/mainfile.php';
$GLOBALS['xoopsLogger']->activated = false;
if (function_exists('mb_http_output')) {
    mb_http_output('pass');
}
//error_reporting(E_ALL |E_ERROR | E_WARNING | E_PARSE);
header('Content-Type:text/xml; charset=utf-8');
require_once $GLOBALS['xoops']->path('class/template.php');
$tpl                 = new \XoopsTpl();
$tpl->caching        = 0;
$tpl->cache_lifetime = 3600;

$db           = \XoopsDatabaseFactory::getDatabaseConnection();
$myts         = \MyTextSanitizer::getInstance();
$category_rss = Request::getInt('categoryID', 0, 'GET');
//permissions
/** @var \XoopsGroupPermHandler $grouppermHandler */
$grouppermHandler = xoops_getHandler('groupperm');
$groups           = is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
/** @var \XoopsModuleHandler $moduleHandler */
$moduleHandler = xoops_getHandler('module');
$module        = $moduleHandler->getByDirname('lexikon');
$module_id     = $module->getVar('mid');
$allowed_cats  = $grouppermHandler->getItemIds('lexikon_view', $groups, $module_id);
$catids        = implode(',', $allowed_cats);
$catperms      = " AND categoryID IN ($catids) ";

if ($category_rss <= 0) {
    $result = $db->query('SELECT * FROM ' . $db->prefix('lxentries') . '  WHERE offline=0 ' . $catperms . "  ORDER BY 'datesub' DESC LIMIT 0,50");
} else {
    $result = $db->query('SELECT * FROM ' . $db->prefix('lxentries') . " WHERE categoryID='$category_rss'  " . $catperms . '  ORDER BY `datesub` DESC LIMIT 0,50');
    $info   = $db->fetchArray($db->query('SELECT * FROM ' . $db->prefix('lxcategories') . " WHERE categoryID='$category_rss'"));
}
if (!$tpl->is_cached('db:lexikon_rss.tpl')) {
    xoops_load('XoopsLocal');
    if ($category_rss > 0) {
        $tpl->assign('channel_title', htmlspecialchars($xoopsConfig['sitename'] . ' - ' . sprintf(_MD_LEXIKON_INCATS, $info['name']), ENT_QUOTES, 'utf-8'));
        $tpl->assign('channel_link', XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/category.php?categoryID=' . $category_rss);
        $tpl->assign('channel_desc', sprintf(_MD_LEXIKON_INCATS_DESC, $info['name'], $xoopsConfig['sitename']));
        $tpl->assign('channel_lastbuild', formatTimestamp(time(), 'rss'));
        $tpl->assign('channel_generator', 'XOOPS Lexikon');
        $tpl->assign('channel_category', 'Categories');
        $tpl->assign('channel_editor', $xoopsConfig['adminmail']);
        $tpl->assign('channel_webmaster', $xoopsConfig['adminmail']);
        $tpl->assign('channel_language', _LANGCODE);
        $tpl->assign('image_url', XOOPS_URL . '/images/logo.gif');
        $dimention = getimagesize(XOOPS_ROOT_PATH . '/images/logo.gif');
        if (empty($dimention[0])) {
            $width = 128;
        } else {
            $width = ($dimention[0] > 128) ? 128 : $dimention[0];
        }
        if (empty($dimention[1])) {
            $height = 128;
        } else {
            $height = ($dimention[1] > 128) ? 128 : $dimention[1];
        }
        $tpl->assign('image_width', $width);
        $tpl->assign('image_height', $height);
    } else {
        $tpl->assign('channel_title', htmlspecialchars($xoopsConfig['sitename'] . ' - ' . sprintf(_MD_LEXIKON_INCATS, $xoopsModule->getVar('dirname')), ENT_QUOTES, 'utf-8'));
        $tpl->assign('channel_link', XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname'));
        $tpl->assign('channel_desc', sprintf(_MD_LEXIKON_LASTDESC, $xoopsConfig['sitename']));
        $tpl->assign('channel_lastbuild', formatTimestamp(time(), 'rss'));
        $tpl->assign('channel_generator', 'XOOPS Lexikon');
        $tpl->assign('channel_category', 'Entries');
        $tpl->assign('channel_editor', $xoopsConfig['adminmail']);
        $tpl->assign('channel_webmaster', $xoopsConfig['adminmail']);
        $tpl->assign('channel_language', _LANGCODE);
        $tpl->assign('image_url', XOOPS_URL . '/images/logo.gif');
        $dimention = getimagesize(XOOPS_ROOT_PATH . '/images/logo.gif');
        if (empty($dimention[0])) {
            $width = 128;
        } else {
            $width = ($dimention[0] > 128) ? 128 : $dimention[0];
        }
        if (empty($dimention[1])) {
            $height = 128;
        } else {
            $height = ($dimention[1] > 128) ? 128 : $dimention[1];
        }
        $tpl->assign('image_width', $width);
        $tpl->assign('image_height', $height);
    }
    while (false !== ($row = $db->fetchArray($result))) {
        $tpl->append(
            'items',
            [
                'title'       => htmlspecialchars($row['term'], ENT_QUOTES, 'utf-8'),
                'link'        => XOOPS_URL . '/modules/lexikon/entry.php?entryID=' . $row['entryID'],
                'guid'        => XOOPS_URL . '/modules/lexikon/entry.php?entryID=' . $row['entryID'],
                'pubdate'     => formatTimestamp($row['datesub'], 'rss'),
                'description' => htmlspecialchars($myts->displayTarea($row['definition'], 1, 1, 1), ENT_QUOTES),
            ]
        );
    }
}
$tpl->display('db:lexikon_rss.tpl');