当前位置: 首页>>代码示例>>PHP>>正文


PHP PackageList::getBaseName方法代码示例

本文整理汇总了PHP中PackageList::getBaseName方法的典型用法代码示例。如果您正苦于以下问题:PHP PackageList::getBaseName方法的具体用法?PHP PackageList::getBaseName怎么用?PHP PackageList::getBaseName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PackageList的用法示例。


在下文中一共展示了PackageList::getBaseName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: get_packages

function get_packages($pname = 'all', $local = true)
{
    $pkgs = new PackageList();
    $pkgs->load();
    $lists = array();
    foreach ($pkgs->pkgs as $dir => $pkg) {
        if (empty($dir)) {
            $pname = $pkgs->getBaseName();
            foreach ($pkg as $info) {
                if ($info['pname'] == $pname) {
                    $lists[$dir] = $info;
                    break;
                }
            }
        } else {
            if (count($pkg)) {
                $lists[$dir] = $pkg[0];
            }
        }
    }
    if (!$local) {
        return $lists;
    }
    // add inactive modules
    $base = XOOPS_ROOT_PATH . "/modules";
    $dh = opendir($base);
    $mlist = array();
    while ($dir = readdir($dh)) {
        if ($dir == '.' || $dir == '..' || !is_dir("{$base}/{$dir}")) {
            continue;
        }
        if (isset($lists[$dir])) {
            continue;
        }
        $modversion = get_modversion($dir);
        if ($modversion == false) {
            continue;
        }
        $mlist[$dir] = array('name' => $modversion['name'] . " " . $modversion['version'], 'pname' => $dir, 'pversion' => '', 'dtime' => 0, 'vcheck' => $dir);
    }
    ksort($mlist);
    global $xoopsDB;
    $llist = array();
    $que = "";
    foreach ($mlist as $dir => $v) {
        $hash = md5_file(XOOPS_ROOT_PATH . "/modules/{$dir}/xoops_version.php");
        $res = $xoopsDB->query("SELECT pkgref FROM " . UPDATE_FILE . " WHERE hash=" . $xoopsDB->quoteString($hash) . " AND path LIKE '%/xoops_version.php'");
        if ($xoopsDB->getRowsNum($res)) {
            // find package
            list($pkgid) = $xoopsDB->fetchRow($res);
            $res = $xoopsDB->query("SELECT * FROM " . UPDATE_PKG . " WHERE pkgid={$pkgid}");
            $data = $xoopsDB->fetchArray($res);
            if ($data['vcheck'] == '') {
                continue;
            }
            // include base module
            $v['pname'] = $data['pname'];
            $v['pversion'] = $data['pversion'];
            $v['dtime'] = $data['dtime'];
            $lists[$dir] = $v;
        } else {
            $que .= "{$hash} {$dir}\n";
            $llist[$hash] = $v;
        }
    }
    if ($que) {
        $server = get_update_server();
        if (!empty($server)) {
            $url = $server . "list2.php";
            $list = file_get_url($url, 'list', array('que' => $que), 0);
            if (empty($list)) {
                foreach (preg_split('/\\n/', $list) as $ln) {
                    $pkg = pkg_info_csv($ln);
                    $hash = $pkg['delegate'];
                    if (isset($llist[$hash])) {
                        $pkg['dirname'] = $dir = $llist[$hash]['vcheck'];
                        unset($llist[$hash]);
                        $lists[$dir] = $pkg;
                    }
                }
            }
        }
    }
    ksort($lists);
    foreach ($llist as $v) {
        $lists[$v['vcheck']] = $v;
    }
    closedir($dh);
    return $lists;
}
开发者ID:nbuy,项目名称:xoops-modules-update,代码行数:90,代码来源:package.class.php


注:本文中的PackageList::getBaseName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。