模块: 10个Xoops新闻模块的操作方法 [英文版]

发布者: hervet在 2006/2/25 9:10:00 9268 次阅读
你好,

我决定发布一套对Xoops新闻模块进行修改(技巧)的集合。
这是一种FAQ摘要


总结

- 如何将"xx字节更多"替换为"xx更多文字"
- 如何在文章底部的表格中获得不同数量的文章
- 如何为注册用户提供增强的编辑器,并保留基本Xoops编辑器给匿名用户
- 如何更改模块生成的元关键词数量
- 如何禁止模块在其自己的评论中搜索
- 如何有一个链接到完整文章的路径
- 如何只允许注册用户对文章进行评分
- 如何列出同一类别中的最近文章
- 如何修改作者列表使其排序
- 如何使您下一篇文章的编号从1000开始

要阅读完整文章,请查看下面

再见,
Hervé


首先,在开始之前,我想说在应用这些修改之前,您必须具备一定的知识。我建议您备份所有要修改的文件,并在不使用测试站点(例如本地环境)的情况下,不要直接在您网站上应用这些修改。
定义("_NW_BYTESMORE","%s bytes more");
然后将其替换为
定义("_NW_BYTESMORE","%s more words");
然后编辑文件 /xoops/module/news/class/class.newsstory.php 搜索
$morelink .= ' | '.sprintf(_NW_BYTESMORE,$totalcount);
然后将其替换为
链接更多.= ' | '.sprintf(_NW_BYTESMORE,str_word_count($this->bodytext()));
如果您想从显示中删除此信息,请删除以下行(在相同文件中)
$morelink .= ' | '.sprintf(_NW_BYTESMORE,$totalcount);
如何使底部表格中的文章数量不同 在用于显示文章的页面中,在页面底部,您可以显示一个列出最后发布的文章的表格。默认情况下,文章数等于模块选项“选择首页显示的新闻项数量”。编辑文件/xoops/modules/news/article.php,并查找此行
$sarray $tmparticle->getAllPublished($xoopsModuleConfig['storyhome'], 0$xoopsModuleConfig['restrictindex']);
替换为
$sarray $tmparticle->getAllPublished(100['restrictindex']);
10 是要显示在表格中的文章数量(选择您想要的)。如何为注册用户使用增强编辑器并为匿名用户保留基本Xoops编辑器 如何为注册用户使用增强编辑器(如kiovi)并为匿名用户保留基本Xoops编辑器?在模块设置中,首先选择要使用的编辑器(例如kiovi)。然后编辑文件/xoops/modules/news/include/functions.php,查找此行
switch(strtolower(getmoduleoption('form_options'))){
然后将其替换为
global $xoopsUser;
if(isset(
$xoopsUser) && is_object($xoopsUser)) {
$editor strtolower(getmoduleoption('form_options'));
} else {
$editor 'dhtml';
}

switch(
$editor){
注意,您可以选择
$editor 'dhtml'
或者
$editor 'textarea'
如何更改模块生成的元关键词数量 如果您在创建文章时没有输入元关键词,则模块将自动根据文章内容创建它们。实际上,模块创建20个关键词。如果您想更改这个数字,请编辑文件/xoops/modules/news/include/functions.php,查找此行
$tmp=array_slice($tmp,0,20); // 如果您想更改关键词的限制,将这个数字从20更改为所需数字
在这行代码中,将20替换为您希望使用的关键词数量。 如何禁止模块在其注释中搜索 默认情况下,当您使用Xoops搜索时,模块将在其文章和注释中进行搜索。如果您不想模块在注释中搜索,请编辑文件/xoops/modules/include/search.inc.php,搜索以下行
$searchincomments=true;
然后将其替换为
$searchincomments=false;
如何显示全文路径链接 在名为article.php的页面中,如何有一个显示全文路径的链接?您只需在名为news_article.html的模板中使用 Smarty 变量
<{$topicpath}>
. 将其放置在您希望显示的位置。 如何仅允许注册用户评分文章 编辑文件/xoops/modules/news/article.php,搜索以下行
if (getmoduleoption('ratenews')) {
然后将其替换为
if (getmoduleoption('ratenews') && (isset($xoopsUser) && is_object($xoopsUser))) {
编辑文件/xoops/modules/ratenews.php,搜索以下行
// 2) 故事是否已经发布?
然后将其替换为
if(!isset($xoopsUser) || !is_object($xoopsUser)) {
redirect_header(XOOPS_URL.'/modules/news/index.php'3_NOPERM);
exit();
}

// 2) 故事是否已经发布?
如何在同一分类中列出最近的文章 总是在article.php文件中查找您可以在每篇文章底部找到的此表格。实际上,此模块会在所有分类中显示最近发布文章。显示当前文章分类的最近文章是可能的。打开文件/xoops/modules/news/article.php,然后搜索以下行
$sarray $tmparticle->getAllPublished($xoopsModuleConfig['storyhome'], 0$xoopsModuleConfig['restrictindex']);
然后将其替换为
$sarray $tmparticle->getAllPublished($xoopsModuleConfig['storyhome'], 0$xoopsModuleConfig['restrictindex'],$article->topicid());
如何修改作者列表以使其排序 当您编辑或创建文章时(如果您网站上的用户少于300人),模块会向您显示站点的用户列表,以便您可以选择文章的作者。此列表由Xoops内核创建,但有两个缺点,首先,列表未排序,其次,列表包含不活跃的用户。编辑名为 /xoops/modules/news/include/storyform.inc.php 的文件,然后搜索以下行
$sform->addElement(new XoopsFormSelectUser(_NW_AUTHOR,'author',true$newsauthor),false);
然后将其替换为
$seluser = new XoopsFormSelect(_NW_AUTHOR,'author',$newsauthor);
$member_handler =& xoops_gethandler('member');
$tblusers = array();
global 
$xoopsConfig;
$critere=new Criteria('level'0'>');
$critere->setSort('uname');
$tblusers $member_handler->getUserList($critere);
$tblusers[0] = $xoopsConfig['anonymous'];
natcasesort($tblusers);
$seluser->addOptionArray($tblusers);
$sform->addElement($seluser,false);
注意,还有更快的方法,但需要修改Xoops内核。 如何使您下一篇文章的编号从1000开始 当你的网站将在谷歌新闻中显示时,这种操作是必要的。如果您有Phpmyadmin,选择名为xoops_stories的表(用您在安装期间选择的表前缀替换xoops),然后点击屏幕底部的“操作”选项卡,在“此表选项:”处输入值999并验证!如果您无法使用您的Phpmyadmin版本执行此操作,则请运行以下SQL查询
ALTER TABLE `xoops_storiesPACK_KEYS =0 CHECKSUM =0 DELAY_KEY_WRITE =0 AUTO_INCREMENT 999