xoopscube/altsys

View on GitHub
xoops_trust_path/libs/altsys/mymenusub/mytplsadmin.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
/**
 * Altsys library (UI-Components) for D3 modules
 *
 * @package    Altsys
 * @version    XCL 2.3.3
 * @author     Other authors gigamaster, 2020 XCL/PHP7
 * @author     Gijoe (Peak)
 * @copyright  (c) 2005-2023 Authors
 * @license    GPL v2.0
 */

if ( ! defined( 'XOOPS_ROOT_PATH' ) ) {
    exit;
}

$current_dirname = preg_replace( '/[^0-9a-zA-Z_-]/', '', @$_GET['dirname'] );

$db =& XoopsDatabaseFactory::getDatabaseConnection();

// get custom templates
list( $count ) = $db->fetchRow( $db->query( 'SELECT COUNT(t.tpl_module) AS tpl_count FROM ' . $db->prefix( 'tplfile' ) . " t WHERE t.tpl_type='custom'" ) );
if ( '_custom' == $current_dirname ) {
    $custom_selected = true;
} else {
    $custom_selected = false;
}

$adminmenu = [
    [
        'selected' => $custom_selected,
        'title'    => _MYTPLSADMIN_CUSTOMTEMPLATE . " ($count)",
        'link'     => '?mode=admin&lib=altsys&page=mytplsadmin&dirname=_custom',
    ],
];

// get modules/templates
$mrs = $db->query( 'SELECT m.name,m.dirname,COUNT(t.tpl_module) AS tpl_count FROM ' . $db->prefix( 'modules' ) . ' m LEFT JOIN ' . $db->prefix( 'tplfile' ) . ' t ON m.dirname=t.tpl_module WHERE m.isactive GROUP BY m.mid HAVING tpl_count>0 ORDER BY m.weight,m.mid' );

// module loop
while ( list( $name, $dirname, $count ) = $db->fetchRow( $mrs ) ) {

    $moduleIcon = '<img class="svg" src="'.XOOPS_URL.'/modules/'.$dirname.'/images/module_icon.svg" width="1em" height="1em" alt="module-icon">';

    if ( $dirname == $current_dirname ) {
        $adminmenu[] = [
            'selected' => true,
            'title'    => "<span class='badge-count fingerprint6'>$count</span>" . $name,
            'link'     => '?mode=admin&lib=altsys&page=mytplsadmin&dirname=' . $dirname,
            'icon'     => $moduleIcon,
        ];
        //$GLOBALS['altsysXoopsBreadcrumbs'][] = array( 'name' => htmlspecialchars( $name , ENT_QUOTES ) ) ;
        // @todo @gigamaster Badge count
    } else {
        $adminmenu[] = [
            'selected' => false,
            'title'    => "<span class='badge-count'>$count</span>". $name,
            'link'     => '?mode=admin&lib=altsys&page=mytplsadmin&dirname=' . $dirname,
            'icon'     => $moduleIcon,
        ];
    }
}

// display
require_once XOOPS_TRUST_PATH . '/libs/altsys/class/D3Tpl.class.php';
$tpl = new D3Tpl();
$tpl->assign(
    [
        'adminmenu' => $adminmenu,
        'mypage'    => 'mytplsadmin',
    ]
);
$tpl->display( 'db:altsys_inc_menu_sub.html' );