本文整理汇总了PHP中PackageList::load方法的典型用法代码示例。如果您正苦于以下问题:PHP PackageList::load方法的具体用法?PHP PackageList::load怎么用?PHP PackageList::load使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PackageList
的用法示例。
在下文中一共展示了PackageList::load方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: setup_package
function setup_package($dirname)
{
$pkgs = new PackageList();
$pkgs->load();
$pkg = $pkgs->getVar($dirname);
if (empty($pkg)) {
$pkg = $pkgs->selectPackage($dirname);
}
$pname = $pkg ? $pkg['pname'] : _AM_PKG_NOCURRENT;
// current package-name
if ($dirname) {
$modversion = get_modversion($dirname);
if (empty($modversion)) {
return;
}
// illigal dirname?
$title = $modversion['name'] . " ({$dirname})";
} else {
$title = XOOPS_VERSION;
}
echo "<h1>" . htmlspecialchars($title) . "</h1>\n";
echo "<table class='outer' border='0' cellspacing='1'>\n";
$n = 0;
$form = new XoopsThemeForm(_AM_REG_DETAIL, "CustomForm", 'pkgadmin.php');
$form->addElement(new XoopsFormHidden('dirname', $dirname));
$form->addElement(new XoopsFormLabel(_AM_PKG_NAME, $pkg['name']));
$form->addElement(new XoopsFormLabel(_AM_PKG_DIRNAME, $dirname));
$form->addElement(new XoopsFormLabel(_AM_PKG_CURRENT_PNAME, $pname));
$select = new XoopsFormSelect(_AM_PKG_PNAME, 'pname');
foreach ($pkgs->getAllPackages() as $pn => $apkg) {
$select->addOption($pn);
}
$select->setValue($pname);
$form->addElement($select);
$form->addElement(new XoopsFormButton("", "custom", _AM_REG_SUBMIT, "submit"));
echo $form->render();
}
示例2: 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;
}