<?php
/*
 You may not change or alter any portion of this comment or credits
 of supporting developers from this source code or any supporting source code
 which is considered copyrighted (c) material of the original comment or credit authors.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/

/**
 * wgTeams module for xoops
 *
 * @copyright       The XOOPS Project (https://xoops.org)
 * @license         GPL 2.0 or later
 * @package         wgteams
 * @since           1.0
 * @min_xoops       2.5.10
 * @author          Goffy - Wedega.com - Email:<webmaster@wedega.com> - Website:<https://wedega.com>
 * @version         $Id: 1.0 xoops_version.php 1 Sun 2015/12/27 23:18:02Z Goffy - Wedega $
 */

use XoopsModules\Wgteams;

defined('XOOPS_ROOT_PATH') || die('Restricted access');

require_once __DIR__ . '/preloads/autoloader.php';

$moduleDirName      = basename(__DIR__);
$moduleDirNameUpper = mb_strtoupper($moduleDirName);

// ------------------- Informations ------------------- //
$modversion = [
    'version'             => '1.10',
    'module_status'       => 'Final',
    'release'             => '2020/07/03',
    'name'                => _MI_WGTEAMS_NAME,
    'description'         => _MI_WGTEAMS_DESC,
    'author'              => 'Goffy - Wedega.com',
    'author_mail'         => 'webmaster@wedega.com',
    'author_website_url'  => 'https://wedega.com',
    'author_website_name' => 'XOOPS on Wedega',
    'credits'             => 'Goffy - Wedega',
    'license'             => 'GPL 2.0 or later',
    'license_url'         => 'www.gnu.org/licenses/gpl-2.0.html/',
    'help'                => 'page=help',
    'release_info' 		  => 'release_info',
    'release_file'        => XOOPS_URL . '/modules/wgteams/docs/release_info file',
    'release_date'        => '2020/07/03',
    'manual'              => 'link to manual file',
    'manual_file'         => XOOPS_URL . '/modules/wgteams/docs/install.txt',
    'min_php'             => '7.0',
    'min_xoops'           => '2.5.10',
    'min_admin'           => '1.1',
    'min_db'              => ['mysql' => '5.0.7', 'mysqli' => '5.0.7'],
    'image'               => 'assets/images/wgteams_logo.png',
    'dirname'             => $moduleDirName,
    // Frameworks
    //    'dirmoduleadmin'      => 'Frameworks/moduleclasses/moduleadmin',
    //    'sysicons16'          => '../../Frameworks/moduleclasses/icons/16',
    //    'sysicons32'          => '../../Frameworks/moduleclasses/icons/32',
    // Local path icons
    'modicons16'          => 'assets/icons/16',
    'modicons32'          => 'assets/icons/32',
    //About
    'demo_site_url'       => 'https://xoops.wedega.com',
    'demo_site_name'      => 'XOOPS on Wedega',
    'support_url'         => 'https://myxoops.org',
    'support_name'        => '',
    'module_website_url'  => '',
    'module_website_name' => '',
    // Admin system menu
    'system_menu'         => 1,
    // Admin things
    'hasAdmin'            => 1,
    'adminindex'          => 'admin/index.php',
    'adminmenu'           => 'admin/menu.php',
    // Main things
    'hasMain'             => 1,
    // Install/Update
    'onInstall'           => 'include/oninstall.php',
    'onUpdate'            => 'include/onupdate.php',
	'onUninstall'         => 'include/onuninstall.php',
];
// ------------------- Templates ------------------- //
// Admin
$modversion['templates'][] = ['file' => 'wgteams_admin_about.tpl', 'description' => '', 'type' => 'admin'];
$modversion['templates'][] = ['file' => 'wgteams_admin_header.tpl', 'description' => '', 'type' => 'admin'];
$modversion['templates'][] = ['file' => 'wgteams_admin_index.tpl', 'description' => '', 'type' => 'admin'];
$modversion['templates'][] = ['file' => 'wgteams_admin_teams.tpl', 'description' => '', 'type' => 'admin'];
$modversion['templates'][] = ['file' => 'wgteams_admin_members.tpl', 'description' => '', 'type' => 'admin'];
$modversion['templates'][] = ['file' => 'wgteams_admin_relations.tpl', 'description' => '', 'type' => 'admin'];
$modversion['templates'][] = ['file' => 'wgteams_admin_infofields.tpl', 'description' => '', 'type' => 'admin'];
$modversion['templates'][] = ['file' => 'wgteams_admin_maintenance.tpl', 'description' => '', 'type' => 'admin'];
$modversion['templates'][] = ['file' => 'wgteams_admin_image_editor.tpl', 'description' => '', 'type' => 'admin'];
$modversion['templates'][] = ['file' => 'wgteams_admin_footer.tpl', 'description' => '', 'type' => 'admin'];
// User
$modversion['templates'][] = ['file' => 'wgteams_header.tpl', 'description' => ''];
$modversion['templates'][] = ['file' => 'wgteams_teams.tpl', 'description' => ''];
$modversion['templates'][] = ['file' => 'wgteams_teams_list.tpl', 'description' => ''];
$modversion['templates'][] = ['file' => 'wgteams_members_list.tpl', 'description' => ''];
$modversion['templates'][] = ['file' => 'wgteams_member_default.tpl', 'description' => ''];
$modversion['templates'][] = ['file' => 'wgteams_member_left.tpl', 'description' => ''];
$modversion['templates'][] = ['file' => 'wgteams_member_right.tpl', 'description' => ''];
$modversion['templates'][] = ['file' => 'wgteams_breadcrumbs.tpl', 'description' => ''];
$modversion['templates'][] = ['file' => 'wgteams_footer.tpl', 'description' => ''];

$modversion['templates'][] = ['file' => 'wgteams_block_teamsmembers.tpl', 'description' => '', 'type' => 'block'];
$modversion['templates'][] = ['file' => 'wgteams_block_teams.tpl', 'description' => '', 'type' => 'block'];

// ------------------- Mysql ------------------- //
$modversion['sqlfile']['mysql'] = 'sql/mysql.sql';
// Tables
$modversion['tables'][1] = 'wgteams_teams';
$modversion['tables'][2] = 'wgteams_members';
$modversion['tables'][3] = 'wgteams_relations';
$modversion['tables'][4] = 'wgteams_infofields';

// ------------------- Search ------------------- //
$modversion['hasSearch']      = 1;
$modversion['search']['file'] = 'include/search.inc.php';
$modversion['search']['func'] = 'wgteams_search';

// ------------------- Submenu ------------------- //
global $xoopsModule;
if (is_object($xoopsModule) && $xoopsModule->getVar('dirname') == $moduleDirName) {
    global $xoopsModuleConfig, $xoopsUser;

    $s = 0;

    /** @var Wgteams\Helper $helper */
    $helper = Wgteams\Helper::getInstance();
    //    $teamsHandler =  $helper->getHandler('TeamsHandler');
    $db           = \XoopsDatabaseFactory::getDatabaseConnection();
    $teamsHandler = new Wgteams\TeamsHandler($db);

    $crit_teams = new \CriteriaCompo();
    $crit_teams->add(new \Criteria('team_online', '1'));
    $crit_teams->setSort('team_weight');
    $crit_teams->setOrder('ASC');

    $teamsAll = $teamsHandler->getAll($crit_teams);
    foreach (array_keys($teamsAll) as $i) {
        $s++;
        $modversion['sub'][$s]['name'] = $teamsAll[$i]->getVar('team_name');
        $modversion['sub'][$s]['url']  = 'index.php?team_id=' . $teamsAll[$i]->getVar('team_id');
    }
}
// ------------------- Blocks ------------------- //
$modversion['blocks'][] = [
    'file'        => 'b_teamsmembers.php',
    'name'        => _MI_WGTEAMS_TEAMSMEMBERS_BLOCK,
    'description' => _MI_WGTEAMS_TEAMSMEMBERS_BLOCK_DESC,
    'show_func'   => 'b_wgteams_teamsmembers_show',
    'edit_func'   => 'b_wgteams_teamsmembers_edit',
    'options'     => 'showsingleteam|0',
    'template'    => 'wgteams_block_teamsmembers.tpl',
];

$modversion['blocks'][] = [
    'file'        => 'b_teams.php',
    'name'        => _MI_WGTEAMS_TEAMS_BLOCK,
    'description' => _MI_WGTEAMS_TEAMS_BLOCK_DESC,
    'show_func'   => 'b_wgteams_teams_show',
    'edit_func'   => 'b_wgteams_teams_edit',
    'options'     => 'showlistofteams|1|0|1|0|2|default|0',
    'template'    => 'wgteams_block_teams.tpl',
];

// ------------------- Config ------------------- //
$modversion['config'][] = [
    'name'        => 'keywords',
    'title'       => '_MI_WGTEAMS_KEYWORDS',
    'description' => '_MI_WGTEAMS_KEYWORDS_DESC',
    'formtype'    => 'textbox',
    'valuetype'   => 'text',
    'default'     => 'wgteams, teams, members, relations, infofields',
];

$modversion['config'][] = [
    'name'        => 'adminpager',
    'title'       => '_MI_WGTEAMS_ADMIN_PAGER',
    'description' => '_MI_WGTEAMS_ADMIN_PAGER_DESC',
    'formtype'    => 'textbox',
    'valuetype'   => 'int',
    'default'     => 10,
];

$modversion['config'][] = [
    'name'        => 'userpager',
    'title'       => '_MI_WGTEAMS_USER_PAGER',
    'description' => '_MI_WGTEAMS_USER_PAGER_DESC',
    'formtype'    => 'textbox',
    'valuetype'   => 'int',
    'default'     => 10,
];

// start page for module
$modversion['config'][] = [
    'name'        => 'startpage',
    'title'       => '_MI_WGTEAMS_STARTPAGE',
    'description' => '_MI_WGTEAMS_STARTPAGE_DESC',
    'formtype'    => 'select',
    'valuetype'   => 'array',
    'default'     => 1,
    'options'     => [_MI_WGTEAMS_STARTPAGE_LIST => 1, _MI_WGTEAMS_STARTPAGE_ALL => 2, _MI_WGTEAMS_STARTPAGE_FIRST => 3],
];

// Editor
xoops_load('xoopseditorhandler');
$editorHandler          = \XoopsEditorHandler::getInstance();
$modversion['config'][] = [
    'name'        => 'wgteams_editor',
    'title'       => '_MI_WGTEAMS_EDITOR',
    'description' => '_MI_WGTEAMS_EDITOR_DESC',
    'formtype'    => 'select',
    'valuetype'   => 'text',
    'options'     => array_flip($editorHandler->getList()),
    'default'     => 'dhtmltextarea',
];

// Uploads : maxsize of image
include_once __DIR__ . '/include/xoops_version.inc.php';
$iniPostMaxSize = wgteamsReturnBytes(ini_get('post_max_size'));
$iniUploadMaxFileSize = wgteamsReturnBytes(ini_get('upload_max_filesize'));
$maxSize = min($iniPostMaxSize, $iniUploadMaxFileSize);
if ($maxSize > 10000 * 1048576) {
    $increment = 500;
}
if ($maxSize <= 10000 * 1048576){
    $increment = 200;
}
if ($maxSize <= 5000 * 1048576){
    $increment = 100;
}
if ($maxSize <= 2500 * 1048576){
    $increment = 50;
}
if ($maxSize <= 1000 * 1048576){
    $increment = 20;
}
if ($maxSize <= 500 * 1048576){
    $increment = 10;
}
if ($maxSize <= 100 * 1048576){
    $increment = 2;
}
if ($maxSize <= 50 * 1048576){
    $increment = 1;
}
if ($maxSize <= 25 * 1048576){
    $increment = 0.5;
}
$optionMaxsize = [];
$i = $increment;
while ($i* 1048576 <= $maxSize) {
    $optionMaxsize[$i . ' ' . _MI_WGTEAMS_SIZE_MB] = $i * 1048576;
    $i += $increment;
}
$modversion['config'][] = [
    'name' => 'wgteams_img_maxsize',
    'title' => '_MI_WGTEAMS_IMG_MAXSIZE',
    'description' => '_MI_WGTEAMS_IMG_MAXSIZE_DESC',
    'formtype' => 'select',
    'valuetype' => 'int',
    'default' => 3145728,
    'options' => $optionMaxsize,
];

//Uploads : mimetypes of images
$modversion['config'][] = [
    'name'        => 'wgteams_img_mimetypes',
    'title'       => '_MI_WGTEAMS_IMG_MIMETYPES',
    'description' => '_MI_WGTEAMS_IMG_MIMETYPES_DESC',
    'formtype'    => 'select_multi',
    'valuetype'   => 'array',
    'default'     => ['image/gif', 'image/jpeg', 'image/png', 'image/jpg'],
    'options'     => [
        'bmp'   => 'image/bmp',
        'gif'   => 'image/gif',
        'pjpeg' => 'image/pjpeg',
        'jpeg'  => 'image/jpeg',
        'jpg'   => 'image/jpg',
        'jpe'   => 'image/jpe',
        'png'   => 'image/png',
    ],
];

// Uploads : max width of images for upload
$modversion['config'][] = [
    'name'        => 'maxwidth',
    'title'       => '_MI_WGTEAMS_MAXWIDTH',
    'description' => '_MI_WGTEAMS_MAXWIDTH_DESC',
    'formtype'    => 'textbox',
    'valuetype'   => 'int',
    'default'     => 1000,
];

// Uploads : max height of images for upload
$modversion['config'][] = [
    'name'        => 'maxheight',
    'title'       => '_MI_WGTEAMS_MAXHEIGHT',
    'description' => '_MI_WGTEAMS_MAXHEIGHT_DESC',
    'formtype'    => 'textbox',
    'valuetype'   => 'int',
    'default'     => 1000,
];
// Uploads : max width of images for upload
$modversion['config'][] = [
    'name'        => 'maxwidth_imgeditor',
    'title'       => '_MI_WGTEAMS_MAXWIDTH_IMGEDITOR',
    'description' => '_MI_WGTEAMS_MAXWIDTH_IMGEDITOR_DESC',
    'formtype'    => 'textbox',
    'valuetype'   => 'int',
    'default'     => 400,
];

// Uploads : max height of images for upload
$modversion['config'][] = [
    'name'        => 'maxheight_imgeditor',
    'title'       => '_MI_WGTEAMS_MAXHEIGHT_IMGEDITOR',
    'description' => '_MI_WGTEAMS_MAXHEIGHT_IMGEDITOR_DESC',
    'formtype'    => 'textbox',
    'valuetype'   => 'int',
    'default'     => 400,
];

$modversion['config'][] = [
    'name'        => 'wgteams_showteamname',
    'title'       => '_MI_WGTEAMS_SHOW_TEAMNAME',
    'description' => '_MI_WGTEAMS_SHOW_TEAMNAME_DESC',
    'formtype'    => 'yesno',
    'valuetype'   => 'int',
    'default'     => 1,
];

$modversion['config'][] = [
    'name'        => 'wgteams_labels_member',
    'title'       => '_MI_WGTEAMS_LABELS_MEMBER',
    'description' => '_MI_WGTEAMS_LABELS_MEMBER_DESC',
    'formtype'    => 'yesno',
    'valuetype'   => 'int',
    'default'     => 1,
];

$modversion['config'][] = [
    'name'        => 'wgteams_labels_infofields',
    'title'       => '_MI_WGTEAMS_LABELS_INFOFIELD',
    'description' => '_MI_WGTEAMS_LABELS_INFOFIELD_DESC',
    'formtype'    => 'yesno',
    'valuetype'   => 'int',
    'default'     => 1,
];

$modversion['config'][] = [
    'name'        => 'wgteams_showbreadcrumbs',
    'title'       => '_MI_WGTEAMS_SHOWBREADCRUMBS',
    'description' => '_MI_WGTEAMS_SHOWBREADCRUMBS_DESC',
    'formtype'    => 'yesno',
    'valuetype'   => 'int',
    'default'     => 1,
];
// Show copyright
$modversion['config'][] = [
    'name'        => 'show_copyright',
    'title'       => '_MI_WGTEAMS_SHOWCOPYRIGHT',
    'description' => '_MI_WGTEAMS_SHOWCOPYRIGHT_DESC',
    'formtype'    => 'yesno',
    'valuetype'   => 'int',
    'default'     => 1,
];
/**
 * Make Sample button visible?
 */
$modversion['config'][] = [
    'name'        => 'displaySampleButton',
    'title'       => 'CO_' . $moduleDirNameUpper . '_' . 'SHOW_SAMPLE_BUTTON',
    'description' => 'CO_' . $moduleDirNameUpper . '_' . 'SHOW_SAMPLE_BUTTON_DESC',
    'formtype'    => 'yesno',
    'valuetype'   => 'int',
    'default'     => 1,
];

/**
 * Show Developer Tools?
 */
/* $modversion['config'][] = [
    'name'        => 'displayDeveloperTools',
    'title'       => 'CO_' . $moduleDirNameUpper . '_' . 'SHOW_DEV_TOOLS',
    'description' => 'CO_' . $moduleDirNameUpper . '_' . 'SHOW_DEV_TOOLS_DESC',
    'formtype'    => 'yesno',
    'valuetype'   => 'int',
    'default'     => 0,
];
 */
