模块: XOOPS已变更为多站(beta测试)

发布者:wishcraft于2009/3/17 6:51:34 阅读次数 9051
XOOPS已变更为多站!!

你是否曾想要在XOOPS网站中有多个子域名或域名传播?现在你可以了,作为XOOPS扩展的一部分,多站beta测试现在已经提供。你可以从XOOPS SVN下载安装/升级。

注意:由于它是beta版本,请不要在生产网站上安装!!!

XOOPS为你和你的客户提供了世界级的差异,但现在有了多XOOPS,你可以拥有多域环境的额外功能。它还包含防火墙(“访问策略”)。例如,如果你有一个多语言网站,使用此版本,你可以传播域名如下

http://www.example.com - 门户的顶层。
http://fr.example.com - 门户的法语层。
http://gr.example.com - 门户的希腊层。
http://nz.example.com - 门户的新西兰层。

以此类推,进行域名传播,这是一个XOOPS,多个访问点。
设置多XOOPS的方式是将所有域名指向相同的XOOPS_ROOT_PATH。这将允许xoops自己确定访问它的代码库的域名并做出更改。许多模块尚未使用此功能,所以不要对它的小范围支持感到惊讶。

有一个新的域表对象

http://xoops.svn.sourceforge.net/viewvc/xoops/XoopsCore/branches/tasks/multi-xoops-wishcraft.tar.gz?view=tar

下载包括升级到这个版本,以及从旧的XOOPS版本到这个版本的迁移。

结构数据库更改

数据库已更改,因为多站需要的关系材料。这包括一个用于防火墙(访问策略)的新表,以及一个用于模块之间协作的feed表,不必说还有一个基于配置系统设置传递的域名表(3)。这些表可以通过升级进行修改,但可能会有检查它们是否存在并将它们传播为SHOW Table SQL子句的支持。

访问策略(XOOPS防火墙

Xoops策略系统旨在提供代理重定向、IP范围锁定/解锁(对于内网应用很有用)等功能。下表定义在安装时的mysql.structure.sql文件中。

与内核接口的文件是为了确保在XoopsModel中使用新的持久化对象系统。以下文件遵循这一原则。

引用

/kernel/policy.php
/class/xoopspolicy.php


如您所见,策略防火墙可以被保护者和类似的产品使用,以锁定激进的IP和详细信息。它还可以用于定义代理重定向,例如,对于具有nokia代理类型的移动.examplesite.com扩展,可以作为重定向条款。

Resized Image

用于定义此内容的表单位于系统管理中,允许删除或创建策略。对于任何激进的宿主,客户端会向浏览器发送403禁止访问的HTTP头部。

Xoops订阅源协作

订阅源协作非常重要,例如在spaces.live.com、facebook以及许多应用程序中,来自站点的RSS订阅源是您在服务上安装的所有系统(模块)的协作。这一协作包括广泛的功能选项,允许通过订阅源访问系统数据趋势。

这一版将模块从backend.php & sitemap.php中添加进来,以使用协作方法搜索RSS数据。这包括模块表中的两个新字段以及一个名为newfeeds的新表。在/kernel/module.php中有两个新的子例程,用于解析RSS和Sitemap数据。

这通过修改xoops_version.php来实现,包括协作所需的功能和文件。

xoops_version.php - 示例扩展

// 后端 RSS 订阅源
// 请注意 **** 模块开发者 **** 
// 这将是模块安装中的一个新条款。
$modversion['hasRss'] = 1
$modversion['rss']['rss_func'][0] = "xcenter_backend_rss"
$modversion['rss']['rss_file'][0] = "include/rss.php"

// 后端 网站地图 订阅源
// 请注意 **** 模块开发者 **** 
// 这将是模块安装中的一个新条款。
$modversion['hasSitemap'] = 1
$modversion['sitemap']['sitemap_func'][0] = "xcenter_sitemap"
$modversion['sitemap']['sitemap_file'][0] = "include/sitemap.php"
$modversion['sitemap']['sitemap_agent'][0] = "all";


这意味着现在您可以通过XOOPS_ROOT_PATH路径与backend.php和sitemap.php核心文件协作您的模块RSS和链接地图。当您安装一个模块时,这些设置也会被搜索,这意味着站点地图或后端RSS源中的数据可以自主地用这些新条款填充。这也意味着站点可以在后端源中正确协同数据,而应包含所有数据。

/kernel/module.php已发生更改以包含此功能,新增了2个函数

引用

$module_handler -> function rss($items, $userid, $sort)
$module_handler -> function sitemap($items, $userid, $sort, $agent)


多XOOPS – 域名管理

域名管理是通过基于xoops中现有配置表的模型进行的。还有一个新字段称为domains,它在newblocks中是一个mediumtext字段。它可能仍然需要引入配置表,以便按域名进行配置。

Resized Image

这是域名管理表单。它在域名表中传播。它允许选择语言、启动模块和主题。但是我已经使用了具有父ID选择的配置表结构,以便在xoops中对此概念进行任何方向的开发生态研究。

它使用易于调整的干净代码的XOOPS表单对象。这将允许人们在对核心和模块开发进行主观数据添加到域名配置中,而不 epicatingly 影响 配置脚本的运行时。

还有一个针对域名的区块管理,可以根据您运行的主题克隆区块或将区块放置在不同的位置,区块管理是通过带有可选域名区块的标准表单完成的。
这确保了您可以有一个简洁的分布,不会被不同域名上的多个相同页面所降级。

区块

Resized Image

您可以看到在区块管理中有个新选项可以根据您想要显示的域进行选块。这意味着对 klass/xoopsblocks.php 的 /class/xoopsblocks.php 进行了一些微小的SQL更改。
系统其他部分也有更改,以避免模板系统冲突,这是到smarty函数的一些更改以及一些管理员缓存文件名。