ModuleCode: frameworksdownload 0.02

来源:互联网 发布:淘宝优惠券发布员招聘 编辑:程序博客网 时间:2024/05/18 04:49
ModuleCode: frameworksdownload 0.02
ModuleDescription: Download Frameworks.
Directory: /modules/frameworksdownload/admin
File: /modules/frameworksdownload/admin/delete.php
<?php
include dirname(__FILE__).'/../../../include/cp_header.php';
/* check version */
if (false === isset($_GET["version"])) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
$frameworkshandler xoops_getmodulehandler("frameworks""frameworksdownload");
/* @var $frameworkshandler frameworksdownloadframeworkshandler */
$frameworks $frameworkshandler->get($_GET["version"]);
if (
false === isset($frameworks)) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
if (
false === $frameworks->is_downloaded()) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
if (
"POST" === $_SERVER['REQUEST_METHOD']) {
    
$frameworkshandler->delete($frameworks);
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
xoops_cp_header();
require_once 
XOOPS_ROOT_PATH '/class/template.php';
require_once 
XOOPS_ROOT_PATH '/class/theme.php';
require_once 
XOOPS_ROOT_PATH '/class/theme_blocks.php';
$xoopsThemeFactory =& new xos_opal_ThemeFactory();
$xoTheme =& $xoopsThemeFactory->createInstance();
$xoopsTpl =& $xoTheme->template;
/* @var $xoopsTpl XoopsTpl */
$xoopsTpl->assign_by_ref("frameworks"$frameworks);
$xoopsTpl->display("db:frameworksdownload_admin_delete.html");
if (
"POST" !== $_SERVER['REQUEST_METHOD']) {
    
xoops_confirm(array(), """Are you sure want to delete?");
}
xoops_cp_footer();
?>

File: /modules/frameworksdownload/admin/download.php
<?php
include dirname(__FILE__).'/../../../include/cp_header.php';
/* check environment */
$frameworkshandler xoops_getmodulehandler("frameworks""frameworksdownload");
/* @var $frameworkshandler frameworksdownloadframeworkshandler */
if (false === $frameworkshandler->prepare_environment()) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
/* check version */
if (false === isset($_GET["version"])) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
$frameworks $frameworkshandler->get($_GET["version"]);
if (
false === isset($frameworks)) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
if (
true === $frameworks->is_downloaded()) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
if (
"POST" === $_SERVER['REQUEST_METHOD']) {
    
$frameworkshandler->download($frameworks);
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
xoops_cp_header();
require_once 
XOOPS_ROOT_PATH '/class/template.php';
require_once 
XOOPS_ROOT_PATH '/class/theme.php';
require_once 
XOOPS_ROOT_PATH '/class/theme_blocks.php';
$xoopsThemeFactory =& new xos_opal_ThemeFactory();
$xoTheme =& $xoopsThemeFactory->createInstance();
$xoopsTpl =& $xoTheme->template;
/* @var $xoopsTpl XoopsTpl */
$xoopsTpl->assign_by_ref("frameworks"$frameworks);
$xoopsTpl->display("db:frameworksdownload_admin_download.html");
if (
"POST" !== $_SERVER['REQUEST_METHOD']) {
    
xoops_confirm(array(), """Are you sure want to download?");
}
xoops_cp_footer();
?>

File: /modules/frameworksdownload/admin/extract.php
<?php
include dirname(__FILE__).'/../../../include/cp_header.php';
/* check environment */
$frameworkshandler xoops_getmodulehandler("frameworks""frameworksdownload");
/* @var $frameworkshandler frameworksdownloadframeworkshandler */
if (false === $frameworkshandler->prepare_environment()) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
if (
true === $frameworkshandler->is_extracted()) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
/* check version */
if (false === isset($_GET["version"])) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
$frameworks $frameworkshandler->get($_GET["version"]);
if (
false === isset($frameworks)) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
if (
false === $frameworks->is_downloaded()) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
if (
false === $frameworks->is_valid()) {
    
redirect_header(XOOPS_URL."/modules/frameworksdownload/admin/index.php");
}
if (
"POST" === $_SERVER['REQUEST_METHOD']) {
    
$zipentries $frameworkshandler->extract($frameworks);
}
xoops_cp_header();
require_once 
XOOPS_ROOT_PATH '/class/template.php';
require_once 
XOOPS_ROOT_PATH '/class/theme.php';
require_once 
XOOPS_ROOT_PATH '/class/theme_blocks.php';
$xoopsThemeFactory =& new xos_opal_ThemeFactory();
$xoTheme =& $xoopsThemeFactory->createInstance();
$xoopsTpl =& $xoTheme->template;
/* @var $xoopsTpl XoopsTpl */
$xoopsTpl->assign_by_ref("frameworks"$frameworks);
if (
"POST" === $_SERVER['REQUEST_METHOD']) {
    
$xoopsTpl->assign_by_ref("zipentries"$zipentries);
}
$xoopsTpl->display("db:frameworksdownload_admin_extract.html");
if (
"POST" !== $_SERVER['REQUEST_METHOD']) {
    
xoops_confirm(array(), """Are you sure want to extract?");
}
xoops_cp_footer();
?>

File: /modules/frameworksdownload/admin/help.php
<?php
include dirname(__FILE__).'/../../../include/cp_header.php';
xoops_cp_header();
require_once 
XOOPS_ROOT_PATH '/class/template.php';
require_once 
XOOPS_ROOT_PATH '/class/theme.php';
require_once 
XOOPS_ROOT_PATH '/class/theme_blocks.php';
$xoopsThemeFactory =& new xos_opal_ThemeFactory();
$xoTheme =& $xoopsThemeFactory->createInstance();
$xoopsTpl =& $xoTheme->template;
$xoopsTpl->display("db:frameworksdownload_admin_help.html");
xoops_cp_footer();
?>

File: /modules/frameworksdownload/admin/index.php
<?php
include dirname(__FILE__).'/../../../include/cp_header.php';
xoops_cp_header();
require_once 
XOOPS_ROOT_PATH.'/class/template.php';
require_once 
XOOPS_ROOT_PATH.'/class/theme.php';
require_once 
XOOPS_ROOT_PATH.'/class/theme_blocks.php';
$xoopsThemeFactory =& new xos_opal_ThemeFactory();
$xoTheme =& $xoopsThemeFactory->createInstance();
$xoopsTpl =& $xoTheme->template;
/* @var $xoopsTpl XoopsTpl */
$frameworkshandler xoops_getmodulehandler("frameworks""frameworksdownload");
/* @var $frameworkshandler frameworksdownloadframeworkshandler */
$xoopsTpl->assign_by_ref("frameworkslist"$frameworkshandler->getAll());
$xoopsTpl->assign_by_ref("is_extracted"$frameworkshandler->is_extracted());
$xoopsTpl->display("db:frameworksdownload_admin_index.html");
if (
true === $frameworkshandler->is_extracted()) {
    
xoops_error("Please delete '".$frameworkshandler->get_frameworksdir().
        
"' manually before extract.");
}
xoops_cp_footer();
?>

File: /modules/frameworksdownload/admin/menu.php
<?php
if (false === defined('XOOPS_ROOT_PATH')){
    exit();
}
$adminmenu = array();
$i 1;
$adminmenu[$i]["link"] = "admin/index.php";
$adminmenu[$i]["title"] = "Frameworks List";
$i++;
$adminmenu[$i]["link"] = "admin/help.php";
$adminmenu[$i]["title"] = "Help";
?>

Directory: /modules/frameworksdownload/class
File: /modules/frameworksdownload/class/frameworks.php
<?php
if (false === defined("XOOPS_ROOT_PATH")) {
    exit();
}
final class 
frameworksdownloadframeworks {
    private 
$version;
    private 
$url;
    private 
$zipbase;
    private 
$md5;
    
/* override */
    
public function __construct($version$url$zipbase$md5) {
        
$this->version strval($version);
        
$this->url strval($url);
        
$this->zipbase strval($zipbase);
        
$this->md5 strval($md5);
        return;
    }
    private function 
__clone () {
        return;
    }
    
/* getter / setter */
    
public function get_version () {
        return 
$this->version;
    }
    public function 
get_url () {
        return 
$this->url;
    }
    public function 
get_zipbase () {
        return 
$this->zipbase;
    }
    public function 
get_md5 () {
        return 
$this->md5;
    }
    public function 
get_downloadzip () {
        
$frameworkshandler =
            
xoops_getmodulehandler("frameworks""frameworksdownload");
        
/* @var $frameworkshandler frameworksdownloadframeworkshandler */
        
return $frameworkshandler->get_downloaddir()."/xoops-frameworks-".
            
$this->get_version().".zip";
    }
    public function 
is_downloaded (){
        return 
true === file_exists($this->get_downloadzip());
    }
    public function 
get_filemd5 () {
        if (
true === $this->is_downloaded()) {
            return 
md5_file($this->get_downloadzip());
        } else {
            return;
        }
    }
    public function 
is_valid () {
        return 
$this->get_filemd5() === $this->get_md5();
    }
}
final class 
frameworksdownloadframeworkshandler {
    private 
$versions;
    private 
$versionsdata = array(
        array(
            
"version" => "1.20",
            
"url" => "http://xoops.org.cn/uploads/mydownloads/xoops/xoops-frameworks-1.20.zip",
            
"zipbase" => "xoops-frameworks-1.20/Frameworks/",
            
"md5" => "611dfa49bef1300b7dd105bea7e47f6f",
        ),
    );
    
/* override */
    
public function __construct() {
        return;
    }
    private function 
__clone () {
        return;
    }
    
/* cache */
    
private function ensure_versions () {
        if (
true === isset($this->versions)) {
            return;
        }
        
$this->versions = array();
        foreach (
$this->versionsdata as $versiondata) {
            
$this->versions[$versiondata["version"]] =
                new 
frameworksdownloadframeworks($versiondata["version"],
                
$versiondata["url"], $versiondata["zipbase"],
                
$versiondata["md5"]);
        }
        
    }
    
/* operation */
    
public function get_downloaddir () {
        return 
XOOPS_UPLOAD_PATH."/frameworksdownload";
    }
    
/**
     * @return frameworksdownloadframeworks
     */
    
public function get ($version) {
        
settype($version"string");
        
$this->ensure_versions();
        if (
false === array_key_exists($version$this->versions)) {
            return;
        }
        return 
$this->versions[$version];
    }
    public function 
getAll () {
        
$this->ensure_versions();
        return 
$this->versions;
    }
    public function 
delete (frameworksdownloadframeworks $version) {
        
$this->ensure_versions();
        if (
false === in_array($version$this->versions)) {
            return;
        }
        if (
false === $version->is_downloaded()) {
            return;
        }
        
unlink($version->get_downloadzip());
        return;
    }
    public function 
download (frameworksdownloadframeworks $version) {
        
$this->ensure_versions();
        if (
false === in_array($version$this->versions)) {
            return;
        }
        if (
true === $version->is_downloaded()) {
            return;
        }
        if (
false === is_dir($this->get_downloaddir())) {
            
mkdir($this->get_downloaddir());
        }
        
$filehandle fopen($version->get_downloadzip(), "w");
        
$curlhandle curl_init();
        
curl_setopt($curlhandleCURLOPT_FILE$filehandle);
        
curl_setopt($curlhandleCURLOPT_URL$version->get_url());
        
curl_exec($curlhandle);
        
curl_close($curlhandle);
        
fclose($filehandle);
        return;
    }
    public function 
extract (frameworksdownloadframeworks $version) {
        if (
true === $this->is_extracted()) {
            return;
        }
        
$this->ensure_versions();
        if (
false === in_array($version$this->versions)) {
            return;
        }
        if (
false === $version->is_downloaded()) {
            return;
        }
        
$zipentries = array();
        
$ziphandle zip_open($version->get_downloadzip());
        while (
false !== ($zipentry zip_read($ziphandle))) {
            
$zipentryname zip_entry_name($zipentry);
            
$zipentryfilesize zip_entry_filesize($zipentry);
            
$filepath "";
            if(
$version->get_zipbase() ===
                
substr($zipentryname0strlen($version->get_zipbase()))) {
                
$filepath $this->get_frameworksdir()."/".
                    
substr($zipentrynamestrlen($version->get_zipbase()));
                if (
"/" === substr($zipentrynamestrlen($zipentryname) - 1)) {
                    if (
false === is_dir($filepath)) {
                        
mkdir($filepath);
                    }
                } else {
                    if (
true === zip_entry_open($ziphandle$zipentry"r")) {
                        if (
false === is_dir(dirname($filepath))) {
                            
mkdir(dirname($filepath));
                        }
                        
file_put_contents($filepath,
                            
zip_entry_read($zipentry$zipentryfilesize));
                        
zip_entry_close($zipentry);
                    }
                }
            }
            
$zipentries[] = array(
                
"name" => $zipentryname,
                
"filesize" => $zipentryfilesize,
                
"compressedsize" => zip_entry_compressedsize($zipentry),
                
"compressionmethod" => zip_entry_compressionmethod($zipentry),
                
"filepath" => $filepath,
            );
        }
        
zip_close($ziphandle);
        return 
$zipentries;
    }
    public function 
prepare_environment () {
        if (
false === extension_loaded("curl")) {
            
$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' '';
            
dl($prefix.'curl.'.PHP_SHLIB_SUFFIX);
        }
        if (
false === extension_loaded("curl")) {
            return 
false;
        }
        if (
false === extension_loaded("zip")) {
            
$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' '';
            
dl($prefix.'zip.'.PHP_SHLIB_SUFFIX);
        }
        if (
false === extension_loaded("zip")) {
            return 
false;
        }
        return 
true;
    }
    public function 
get_frameworksdir () {
        return 
XOOPS_ROOT_PATH."/Frameworks";
    }
    public function 
is_extracted () {
        return 
true === is_dir($this->get_frameworksdir());
    }
}
?>

Directory: /modules/frameworksdownload/images
Directory: /modules/frameworksdownload/templates
File: /modules/frameworksdownload/templates/frameworksdownload_admin_delete.html

<{strip}>
    <
table>
        <
tr>
            <
th>
                
Version
            
</th>
            <
td>
                <{
$frameworks->get_version()}>
            </
td>
        </
tr>
        <
tr>
            <
th>
                
URL
            
</th>
            <
td>
                <
a href="<{$frameworks->get_url()}>">
                    <{
$frameworks->get_url()}>
                </
a>
            </
td>
        </
tr>
        <
tr>
            <
th>
                
Zip Base
            
</th>
            <
td>
                <{
$frameworks->get_zipbase()}>
            </
td>
        </
tr>
        <
tr>
            <
th>
                
MD5
            
</th>
            <
td>
                <{
$frameworks->get_md5()}>
            </
td>
        </
tr>
        <{if 
true === $frameworks->is_downloaded()}>
            <
tr>
                <
th>
                    
File MD5
                
</th>
                <
td>
                    <{
$frameworks->get_filemd5()}>
                </
td>
            </
tr>
        <{/if}>
    </
table>
<{/
strip}>

File: /modules/frameworksdownload/templates/frameworksdownload_admin_download.html

<{strip}>
    <
table>
        <
tr>
            <
th>
                
Version
            
</th>
            <
td>
                <{
$frameworks->get_version()}>
            </
td>
        </
tr>
        <
tr>
            <
th>
                
URL
            
</th>
            <
td>
                <
a href="<{$frameworks->get_url()}>">
                    <{
$frameworks->get_url()}>
                </
a>
            </
td>
        </
tr>
        <
tr>
            <
th>
                
Zip Base
            
</th>
            <
td>
                <{
$frameworks->get_zipbase()}>
            </
td>
        </
tr>
        <
tr>
            <
th>
                
MD5
            
</th>
            <
td>
                <{
$frameworks->get_md5()}>
            </
td>
        </
tr>
    </
table>
<{/
strip}>

File: /modules/frameworksdownload/templates/frameworksdownload_admin_extract.html

<{strip}>
    <
table>
        <
tr>
            <
th>
                
Version
            
</th>
            <
td>
                <{
$frameworks->get_version()}>
            </
td>
        </
tr>
        <
tr>
            <
th>
                
URL
            
</th>
            <
td>
                <
a href="<{$frameworks->get_url()}>">
                    <{
$frameworks->get_url()}>
                </
a>
            </
td>
        </
tr>
        <
tr>
            <
th>
                
Zip Base
            
</th>
            <
td>
                <{
$frameworks->get_zipbase()}>
            </
td>
        </
tr>
        <
tr>
            <
th>
                
MD5
            
</th>
            <
td>
                <{
$frameworks->get_md5()}>
            </
td>
        </
tr>
        <{if 
true === $frameworks->is_downloaded()}>
            <
tr>
                <
th>
                    
File MD5
                
</th>
                <
td>
                    <{
$frameworks->get_filemd5()}>
                </
td>
            </
tr>
        <{/if}>
    </
table>
    <{if 
true === isset($zipentries)}>
        <
table>
            <
tr>
                <
th>
                    
Name
                
</th>
                <
th>
                    
File Size
                
</th>
                <
th>
                    
Compressed Size
                
</th>
                <
th>
                    
Compression Method
                
</th>
                <
th>
                    
File Path
                
</th>
            </
tr>
            <{foreach 
from=$zipentries item="zipentry"}>
                <
tr class="<{cycle values="even,odd"}>">
                    <
td>
                        <{
$zipentry.name}>
                    </
td>
                    <
td>
                        <{
$zipentry.filesize}>
                    </
td>
                    <
td>
                        <{
$zipentry.compressedsize}>
                    </
td>
                    <
td>
                        <{
$zipentry.compressionmethod}>
                    </
td>
                    <
td>
                        <{
$zipentry.filepath}>
                    </
td>
                </
tr>
            <{/foreach}>
        </
table>
    <{/if}>
<{/
strip}>

File: /modules/frameworksdownload/templates/frameworksdownload_admin_help.html

<{strip}>
    <
div>
        
This module require <a href="http://www.php.net/manual/en/ref.zip.php">zip extension.</a>
    </
div>
<{/
strip}>

File: /modules/frameworksdownload/templates/frameworksdownload_admin_index.html

<{strip}>
    <{foreach 
from=$frameworkslist item="frameworks"}>
        <
table>
            <
tr>
                <
th>
                    
Version
                
</th>
                <
td>
                    <{
$frameworks->get_version()}>
                </
td>
            </
tr>
            <
tr>
                <
th>
                    
URL
                
</th>
                <
td>
                    <
a href="<{$frameworks->get_url()}>">
                        <{
$frameworks->get_url()}>
                    </
a>
                </
td>
            </
tr>
            <
tr>
                <
th>
                    
Zip Base
                
</th>
                <
td>
                    <{
$frameworks->get_zipbase()}>
                </
td>
            </
tr>
            <
tr>
                <
th>
                    
MD5
                
</th>
                <
td>
                    <{
$frameworks->get_md5()}>
                </
td>
            </
tr>
            <{if 
true === $frameworks->is_downloaded()}>
                <
tr>
                    <
th>
                        
File MD5
                    
</th>
                    <
td>
                        <{
$frameworks->get_filemd5()}>
                    </
td>
                </
tr>
                <
tr>
                    <
th>
                    </
th>
                    <
td>
                        <
a href="<{$xoops_url}>/modules/frameworksdownload/admin/delete.php?version=<{$frameworks->get_version()}>">
                            
Delete
                        
</a>
                    </
td>
                </
tr>
                <{if (
true === $frameworks->is_valid()) and (false === $is_extracted)}>
                    <
tr>
                        <
th>
                        </
th>
                        <
td>
                            <
a href="<{$xoops_url}>/modules/frameworksdownload/admin/extract.php?version=<{$frameworks->get_version()}>">
                                
Extract
                            
</a>
                        </
td>
                    </
tr>
                <{/if}>
            <{else}>
                <
tr>
                    <
th>
                    </
th>
                    <
td>
                        <
a href="<{$xoops_url}>/modules/frameworksdownload/admin/download.php?version=<{$frameworks->get_version()}>">
                            
Download
                        
</a>
                    </
td>
                </
tr>
            <{/if}>
        </
table>
    <{/foreach}>
<{/
strip}>

File: /modules/frameworksdownload/xoops_version.php
<?php
if (false === defined("XOOPS_ROOT_PATH")) {
    exit();
}
$modversion["name"] = "Frameworks Download";
$modversion["version"] = 0.02;
$modversion["description"] = "Download Frameworks.";
$modversion["author"] = <<<AUTHOR
Hu Zhenghui http://xoops.org.cn/userinfo.php?uid=8616 QQ: 443089607
QQMail: hu_zhenghui@qq.com Skype: huzhenghui GMail: huzhengh@gmail.com
GTalk: huzhengh
AUTHOR;
$modversion['license'] = "All rights reserved.";
$modversion['image'] = "images/logo.png";
$modversion['dirname'] = "frameworksdownload";
$modversion['hasAdmin'] = 1;
$modversion['adminindex'] = "admin/index.php";
$modversion["adminmenu"] = "admin/menu.php";
$i 1;
$modversion['templates'][$i]['file'] = 'frameworksdownload_admin_index.html';
$modversion['templates'][$i]['description'] = '';
$i++;
$modversion['templates'][$i]['file'] = 'frameworksdownload_admin_help.html';
$modversion['templates'][$i]['description'] = '';
$i++;
$modversion['templates'][$i]['file'] = 'frameworksdownload_admin_download.html';
$modversion['templates'][$i]['description'] = '';
$i++;
$modversion['templates'][$i]['file'] = 'frameworksdownload_admin_delete.html';
$modversion['templates'][$i]['description'] = '';
$i++;
$modversion['templates'][$i]['file'] = 'frameworksdownload_admin_extract.html';
$modversion['templates'][$i]['description'] = '';
?>
原创粉丝点击