<?php

/**
 * This file is part of LEPTON Core, released under the GNU GPL
 * Please see LICENSE and COPYING files in your package for details, specially for terms and warranties.
 * 
 * NOTICE:LEPTON CMS Package has several different licenses.
 * Please see the individual license in the header of each single file or info.php of modules and templates.
 *
 * @author          LEPTON Project
 * @copyright       2010-2026 LEPTON Project
 * @link            https://lepton-cms.org
 * @license         https://gnu.org/licenses/gpl.html
 * @license_terms   please see LICENSE and COPYING files in your package
 *
 */

// include secure.php to protect this file and the whole CMS!
if(!defined("SEC_FILE")){define("SEC_FILE",'/framework/secure.php' );}
if (defined('LEPTON_PATH')) {	
	include LEPTON_PATH.SEC_FILE;
} else {
	$oneback = "../";
	$root = $oneback;
	$level = 1;
	while (($level < 10) && (!file_exists($root.SEC_FILE))) {
		$root .= $oneback;
		$level += 1;
	}
	if (file_exists($root.SEC_FILE)) { 
		include $root.SEC_FILE;  
	} else {
		trigger_error(sprintf("[ <b>%s</b> ] Can't include secure.php!", $_SERVER['SCRIPT_NAME']), E_USER_ERROR);
	}
}
// end include secure file


/**
 *  Try to get the current version of a given Modul.
 *
 *  @param  string  $modulname  Like saved in addons directory
 *  @param  bool    $source     True reads from the database, false from the info.php
 *
 *  @return  string  The version as string, if not found returns null
 *
 */
function get_modul_version(string $modulname, bool $source = true): string|null
{
    $database = LEPTON_database::getInstance();
    $version = null;
    if ($source === false)
    {
        $sql = "SELECT `version` FROM `" . TABLE_PREFIX . "addons` WHERE `directory`='" . $modulname . "'";
        $version = $database->get_one($sql);
    }
    else
    {
        $info_file = LEPTON_PATH . '/modules/' . $modulname . '/info.php';
        if (file_exists($info_file))
        {
            $module_version = null;
            require $info_file;
            $version = &$module_version;
        }
    }
    return $version;
}
