欢迎来到XOOPS China
用户名 密码 记住我 还未注册?
现在最新的稳定版本是 2.3.3
XOOPS China 讨论区 > 查看所有帖子 (surance)

 到底部   前一个主题   下一个主题

(1) 2 »


翻译:xoops搜索功能的使用
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 110
离线

原文地址:http://www.xoops.org/modules/mediawik ... tion&curid=355&oldid=1067


翻译原地址:http://www.cnblogs.com/xxpyeippx/archive/2008/08/16/1269517.html






注意:我是一个新的xoops开发者,请时刻留意这一点

记录一下我开发myguestBook模块时候学到的搜索功能

1. 第一,向xoops_version.php文件加入以下的代码


Search $modversion
['hasSearch'] = 1;

 
$modversion['search']['file'] = "include/search.inc.php";

 
$modversion['search']['func'] = "guestbook_search";


2.第二,按照以上的设定添加文件,并写代码:

<?php
// 这些代码是从newbb借鉴的

// 函数名是在xoops_version.php里面定义的

// 加入参数 "$queryarray, $andor, $limit, $offset, $userid"

// 注意: $andor 默认值为 AND, 可以设置为 'AND', 'OR' or 'exact', 取决于高级搜索界面的三个选项。你的搜索逻辑必须考虑以上的三个值

function guestbook_search($queryarray$andor$limit$offset$userid){

      

       global 
$xoopsDB;

       
// 开始构造sql语句

       
$sql "SELECT id,name,title,message,time FROM ".$xoopsDB->prefix("myguestbook")."";

       
// 如果$queryarray不是一个数组,count()函数也会返回1. 因此要使用is_array()检查是否是数组

  

       
if ( is_array($queryarray) && $count count($queryarray) ) {

               
$sql .= " WHERE ((name LIKE '%$queryarray[0]%' OR title LIKE '%$queryarray[0]%' OR message LIKE

               %$queryarray[0]%')"
;

               for(
$i=1;$i<$count;$i++){

                       
$sql .= " $andor ";

                       
$sql .= "(name LIKE '%$queryarray[$i]%' OR title LIKE '%$queryarray[$i]%' OR message LIKE

                               '%$queryarray[$i]%')"
;

               }

               
$sql .= ") ";

       } 
// end if

       
$sql .= "ORDER BY id DESC";



       
// 因为Gusetbook的index.php显示了我需要知道的实体

    // 既然用index.php代码

       
$query $xoopsDB->query("SELECT COUNT(*) FROM ".$xoopsDB->prefix("myguestbook")." WHERE id>0");

       list(
$numrows) = $xoopsDB->fetchrow($query);

       
// 假设sql获取到数据

       
$result $xoopsDB->query($sql,$limit,$offset);

       
$ret = array();

       
$i 0;

       
// 使用搜索结果创建到query的连接对象

       
while($myrow $xoopsDB->fetchArray($result)){

               
// 你可以用任何图片

               
$ret[$i]['image'] = "images/url.gif";

               
// 设置结果查看明细的信息

               
$ret[$i]['link'] = "index.php?start=".($numrows-$myrow['id']);

               
$ret[$i]['title'] = $myrow['name'];

               
$ret[$i]['time'] = $myrow['time'];

               
// guestbook中,id没有用

               
$ret[$i]['uid'] = "";

               
$i++;

       }

       return 
$ret;

}

// 注意: 象上面声明的一样, $ret 是一个多维数组,这个多维数组的第一维是一个顺序号,第二维是图片、连接、标题、uid和时间。这些属性指向搜索到的一个实体。 image, uid and time 是可选的,time 是一个unix的标准时间戳

// 参见xoops中的 search.php . 路径为: kernel/module.php 调用了各个模块的搜索方法
?>

2008/8/16 22:23
Email PDF 书签 打印 Blog 举报 回顶部
主题 | 论坛


回复: 求助:开启了“专题”区块的显示,我的Article模块报这个错误
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 110
离线
不劳烦大家了,知道答案了。原来是我加入的自定义区块和它原来的区块的函数名称重复了

2008/8/11 22:56
Email PDF 书签 打印 Blog 举报 回顶部
主题 | 论坛


求助:开启了“专题”区块的显示,我的Article模块报这个错误
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 110
离线
Fatal error: Cannot redeclare article_article_show() (previously declared in G:\htdocs\xoops_ch\modules\article\include\functions.parse.php(135) : eval()'d code:18) in G:\htdocs\xoops_ch\modules\article\include\functions.parse.php(135) : eval()'d code on line 151

2008/8/11 22:11
Email PDF 书签 打印 Blog 举报 回顶部
主题 | 论坛


TadNews 简体中文(utf-8)
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 110
离线
感谢台北的朋友boy0917提供了此模块。不过是Big5的繁体中文版。我看到后立刻搞了一个utf-8的简体中文版。支持对xoops中文做贡献的同志。
时间仓促,我只是简单的加了一个utf-8.他原来的版本可以自由在utf-8和Big5之间切换,而且不用写2份。那简体中文版,应该也这么做。。。呵呵 有时间再搞一下吧。使用word的自动翻译搞的,如果有不对的地方,请指出哦!

注意:本简体中文化免费使用,不同保留作者版权(是在是word的功能啊);下载使用本模块简体中文化,出现任何问题,作者不负责任。



================
原文介绍


[公告] TadNews 新闻+电子报模块 1.2.8 版正式释出
人气:10308
tad - XOOPS2 模块 | 2008-06-25 14:54:00
TadNews 1.2.8 修正项目(2008-06-25)
 修正一般使用者无法修改文件的问题。
 修正分类设定bug,避免分类消失。
 加入批次文章搬移到不同分类的功能。
 加入新的版面呈现方式。
 新增分类图上传功能。
 新增「自订页面分类」功能,亦即该分类文章不纳入新闻中,而是自成一个独立区块,例如本站右边的「关于本站」区块。
 「自订页面」区块支持多层目录。并可自行设定其呈现外观。
【模块缘起】
有鉴于原来的新闻区模块实在不方便使用,所以,重新写一个小小的新闻区模块,没有什么复杂的功能,一切以直觉易使用为最高原则,XOOPS2.0.x以及2.2.x,Big5及UTF8都能使用。
【模块特色】
 功能:电子报可自制布景
 功能:分月新闻功能
 管理:可指定群组在某分类发布新闻
 管理:模块升级工具
 功能:提供新闻主题 RSS
 功能:电子报制作发送
 区块:「电子报订阅」区块
 功能:无限附文件功能
 管理:自动转移原有的news新闻区数据功能
 特色:模块会自动判断语系,不用自己手动修改tchinese目录名称
 特色:内建FCKEditor所见即所得编辑器,兼容2.0、2.2。
 特色:可直接上传图档并于文章中直接使用。
 特色:不限层数的分类
 特色:分类及文章都可轻易设定给某特定群组观看,免去繁琐的细部群组权限设定。
 特色:文章加密功能
 特色:文章除了可以预约发表外,亦可设定停止发布的时间
 特色:文章有摘要功能
 功能:提供新闻搜寻
 功能:提供评论功能
【下载位置】
TadNews 新闻+电子报模块 1.2.8 版
【安装方法】
不管是 XOOPS2.0.x 或 XOOPS 2.2.x,系统语系是 UTF-8 或 Big5 安装步骤完全相同,只有以下两个步骤。
 将模块解压,把tadnews目录上传到modules下
 进入后台进行模块安装即可。
 请加入「电子报订阅 / 取消区块」以便让使用者输入Email订阅
【更新方法】
 更新时,请先进到后台。
 将新模块解压,把tadnews目录上传到modules下,直接覆盖即可。
 进入后台「模块→本站新闻→模块升级」,进行数据结构升级。
 进入后台「模块→系统」进行模块更新。
【注意事项】
 关于「摘要」,工具列第一行最右边那个「插入分页符号」按钮按一下会插入一个分隔线,在分隔线之前的就是「摘要」~
 数据转换功能是将news新闻复制一份到tadnew,但评论部份则是直接转移到tadnews,故转移后,news新闻、附档仍在,但评论已消失。
 数据转换功能仅测试过news1.44和1.50版,其余版本并不保证成功。
 数据转换仅转换新闻相关讯息以及评论,但没有转移附档。
【下一版预计加入或修正的功能】
 签收功能
 友善打印功能
【模块改版历程纪录】
TadNews 1.2.7 修正项目(2008-05-26 释出)
 修正中文附檔,在IE下无法正常下载的问题。
 修正使用「标题前置文字」导致无法发布新闻的问题。
 修正登入会员可以在未经允许的分类发表、修改文章之问题。
 修正加密文章在RSS中会秀出内容的问题。
 修正新闻电子报日期无法抓到真实发布日的问题。
 修正1.2.6更新时,因字段未升级而导致无法正常显示页面的问题。
TadNews 1.2.6 修正项目(2008/05/15释出)
 新增置顶功能。
 新增标题前置文字功能。
 新增模块首页的列表呈现模式
 放宽定阅电子报 Email 的标准,避免网友无法订阅。
 修正月历会有乱码的现象。
 修正「本站最新消息」区块,用「完整新闻」模式,导致2.0网页空白的问题。
 修正「最新回应」区块结尾有乱码的情况。
 在主选单加入「发布新闻」、「分越新闻」、「电子报一览」的次选单。
 修正发布接口,让发布接口更简洁,并适用于宽度较小的布景。
 修正图片大于本文时,会跨越到下方内容的问题。
 变更「摘要」机制,可以更精确的使用摘要。
 修正RSS(或友站新闻)中文章的连结不正确的问题。
 修正删除分类后,子分类会消失的问题。
 修正设定分类或文章读取权限时,若是全选,反而无法全部开放读取的问题。
 修正部份用语。
 解决主机架在 Windows 上,而无法用 FCK Editor 来上传图片的问题。
 修正「本站最新消息」,上下页切换会多跑一页的问题。
TadNews 1.2.5(2008/03/24)修正项目
 新增电子报布景功能
 修正分月新闻只有一个月时会无法正确执行的问题。
 修正区块附档无法下载的问题。
 修正有管理权的非管理员群组无法进入新闻管理接口问题。
 修正发布画面重复出现错误讯息的问题。
 调整管理工具位置
 加入观看旧版news的内文BBCode转换功能
 修正转移news数据时许功盖乱码问题。
 修正前端发布接口月历无法使用问题
 可自己设定首页新闻每页出现的数目
 修正中文檔名的下载问题,FireFox和IE可以正常下载中文档。
 编辑电子报时,已经可以自订新闻的先后顺序。
 修正「http://网址/~账号」的网站无法上传附档的问题。
 修正修改新闻内容时,作者会变成修改者名称的问题。
TadNews 1.2.4(2008/03/14)修正项目
 修正订阅区块取消订阅不正常的问题。
 订阅时,也会检查Emial是否合法。
 「本站最新消息」区块的表格模式加入ajax 的「上下页」机制。
 增加指定群组发新闻的功能。
 在前端新增发布新闻的接口。
 加入手动更新功能(避免自动更新失效)
 修正UTF8语系在寄信时Gmail会将标签列出问题。
 修正有管理权,却无法在首页看到管理工具的问题。
 加入分月新闻接口。
 修正管理接口群组名称显示成数字问题。
 加强删除与更新的权限控管,除了管理员与自己发布的文章外,无法动到别人的文章。
TadNews 1.2.3(2008/03/03)修正项目
 修正反安装时数据库未移除干净的问题。
 修正邮寄方式,改成和XOOPS一致,换言之,只要XOOPS能寄信,您的新闻电子报就可以寄!
 重新整理CSS,管理接口美化。
TadNews 1.2.2(2008/02/22)修正项目
 修正电子报接口问题
TadNews 1.2.1(2008/02/21)修正项目
 主题区块加入RSS种子连结
 修正日历不正常的问题
 修正无法上传附档的问题
 修正工具列位置
 修正档案下载找不到counter字段的问题
TadNews 1.2(2008/02/20)修正项目
 提供RSS种子
 加入电子报订阅及发送功能
 修改最新消息区块为选择显示类型表格会乱掉的bug
TadNews 1.1(2008/02/12)修正项目
 加入附文件上传功能
 加入数据转移功能(含评论也会转移)
 修正成直接支持Big5与UTF-8双语系(也就是您不用自己去修改tchinese的目录了,模块会自行判断。)
 数十个小地方的修正
TadNews 1.0(2007/12/11)修正项目
 修正区块语系问题
 修正月历缺图问题
 修正月历之Big5与UTF8兼容问题

附件:


rar tadnews.rar 大小: 720.48 KB; 下载次数: 233

2008/7/20 9:38
Email PDF 书签 打印 Blog 举报 回顶部
主题 | 论坛


回复: 常用模块
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 110
离线
是啊 其实很多时候用户都只需要一个“简单”的功能!

2008/7/18 22:46
Email PDF 书签 打印 Blog 举报 回顶部
主题 | 论坛


推荐liaise模块,并顺便汉化
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 110
离线
===================================
汉化作者:Surance Yin
个人主页:http://www.fltek.com.cn
联系邮箱:[email protected]
===================================


此模块作用:生成联系我们表单。
优点:可以自定义表单元素。
可以自定义发送到admin的邮箱还是站内信。

汉化的不好,还请多多指教!汉化作品免费使用,但请保留作者信息(文件顶部)
如若此汉化引起任何问题,作者一概不负责。

附件:


rar liaise_schinese_utf8.rar 大小: 71.71 KB; 下载次数: 89

2008/7/18 22:43
Email PDF 书签 打印 Blog 举报 回顶部
主题 | 论坛


回复: XOOPS模块开发快速入门中文翻译(一) (4-17 20:33)
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 110
离线

2008/4/19 14:02
Email PDF 书签 打印 Blog 举报 回顶部
主题 | 论坛


回复: XOOPS模块开发快速入门中文翻译(一) (4-17 20:33)
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 110
离线
转:其他人做的快速入门


============================

这是一个Xoops爱好者所创建的两个非官方的模块之一。 如果任何人想要对这
份档加入更多的帮助,请尽情的做!

开始之前
你应该:
‧ 已经安装一个 Xoops 系统 ,而且能够正常运行
‧ 已经熟悉 Xoops 模块安装的方法
‧ 知道如何编写 PHP 语言 http://www.php.net/
‧ 了解 SQL (如果你的模块需要存取数据库) http://www.mysql.com/
‧ 了解Smarty模板工具箱(templating toolkit)的基本知识 http://smarty.php.net/ (那里提供了不错的速成课程)。
‧ 请参考阅读: XoopsCodingStandards, ModuleNamingConventionsand ModuleBasicStructure.

规格表

我们学习制作的这个模块,目的是要向正在浏览该模块的用户表示欢迎。 在未来我们将会扩充这个模块的功能,但是现在先让我们把基本架构弄出来。
‧ 模块名: 欢迎您
‧ 模块目录: greeter

这模块必须能够
‧ 它本身要能够在主选单中显示
‧ 支持多语言(multiple languages)环境
‧ 能够向用户说「您好」

目录结构

当您已经阅读过
ModuleBasicStructure我假设你已经把基本目录结构都建好了, 如果还没有,请现在就阅读一下ModuleBasicStructure现在我所建好的目录结构看起来就像如下的样子:
XOOPS_ROOT/modules/greeter
            /---- language
                 /--- tchinese
            /---- templates
将来,我们会在上述目录下面建更多新的文件和目录,但是现在,请先建如同上述的结构就行了。

请注意:在以下的描述中,当我列出一个目录名或文件名时,除非有明确地解释,否则它们都对应于XOOPS_ROOT/modules/greeter 。

XOOPS 版本信息

建一个文件 /xoops_version.php 其程序代码内容如下:

<?php
// 版权信息,说明,等等,放在这里
$modversion['name'] = _MI_GREETER_NAME;
$modversion['version'] = 1.00;
$modversion['description'] = _MI_GREETER_DESC;
$modversion['credits'] = '';
$modversion['author'] = '<insert name>';
$modversion['help'] = 'help.html';
$modversion['license'] = 'GPL see LICENSE';
$modversion['official'] = 0;
$modversion['image'] = 'greeter_slogo.png';
$modversion['dirname'] = 'greeter';

// 管理
$modversion['hasAdmin'] = 0;
$modversion['adminmenu'] = '';

// 选单
$modversion['hasMain'] = 1;

// 样板
$modversion['templates'][1]['file'] = 'greeter_greet.html';
$modversion['templates'][1]['description'] = 'Greeter Form';
?>


说明
上述的文件是相当容易了解的﹐但是我还是要说明一些项目。

_MI_ ... ? 那是什么?

任何以 _MI_ 为前导的词,都是在 /language/tchinese/modinfo.php语言文件里面定义的。 我们马上会建立这个文件,但是现在,我们只要知道,这是模块讯息,它将被及时显示在用户眼前,因此需要在语言文件里事先定义。

Templates样板

样板(Templates)会在模块安装时被编译,而且保存在数据库中。 因此,你必须让系统知道你将会使用到的每个样板。

模块讯息语言文件

编辑 /language/schinese/modinfo.php 而且将下列内容放入其中

<?php
define('_MI_GREETER_NAME', '欢迎您';
define('_MI_GREETER_DESC', '一个简单的模块,欢迎用户登录.';
?>

说明

看来挺容易的,对吧? 稍后我们将会把较多的讯息加入这个文件里,但是它仍然是一样的语法;非常容易的。 现在如果我们想要增加一个英文的语言文件,我们要做的只是多建 /language/english/modinfo.php,然后放上相同的定义,不过这些定义要改为英文。 现在如果某人在英文的语系中使用此系统,Greeter会以他们的语言(英文)来显示它的名字和描述。

一个简单的步骤

以如下的内容,建立 /header.php :

<?php
require('../../mainfile.php';
?>

最主要的文件,index.php

这个其实也非常容易:

<?php
require('header.php';

$uname = !empty($xoopsUser) ? $xoopsUser->getVar('uname','E' : _GR_ANONYMOUS;

// 我们必须在引用header之前,设置好Template:
$xoopsOption['template_main'] = 'greeter_greet.html';

// 引用headers
include(XOOPS_ROOT_PATH.'/header.php';

$xoopsTpl->assign('greeting', _GR_GREETING);
$xoopsTpl->assign('uname', $uname);

// 引用footer
include(XOOPS_ROOT_PATH.'/footer.php';
?>


说明

哇!这里多了一点点的程序代码(但是还不算太多)。

$xoopsUser

当 /header.php 它的项目包含 ../../mainfile.php 时,很多变量和种类就会自行产生。 $xoopsUser 就是其中的一个变量。 如果用户已经登录,用户名这个值赋给变量$xoopsUser,否则$xoopsUser仍是空的。因此,我们就可以得知用户的名字或者是访客(anonymous)。

_GR_ ... ? 还要再一次定义语言文件?

说对了!它们就是在语言文件里面用define定义的,不过这次,它们没有在 /language/tchinese/modinfo.php 里面定义,因为这些「_GR_ ...」并不包含模块信息,它们是在 /language/tchinese/main.php 这个文件里定义的,稍候我们会建立这个文件。

$xoopsTpl

这是另一个变量,当程序引用了 /header.php 时就自动产生了,它也是Smarty种类。 在Smarty的速成课程中http://smarty.php.net/crashcourse.php,他们定义$xoopsTpl 变量为$smarty它只是你在 $xoopsOption['template_main'] = 'greeter_greet.html'; 样板中所建的 Smarty种类。
为了完整的利用这些功能,你可能需要学习Smarty。 而我现在并不会在这里使用它的完整功能。

XOOPS_PATH.'/header.php' 和 XOOPS_PATH.'/footer.php'

这只是 header 与 footer。在这里你要知道的重要一点是:
1. 你必须将它们包含进来
2. 在还没把XOOPS_PATH.'/header.php'包含之前,你不能使用$xoopsTpl
3. 所有$xoopsTpl操作必须在两个include语句之间完成

/language/schinese/main.php

这个文件也很简单,和 /language/schinese/modinfo.php 差不多。 以下就是内容:

<?php
define('_GR_GREETING', '您好,';
define('_GR_ANONYMOUS','游客';
?>


说明
h……,我觉得没什么需要解释的了!

/template/greeter_greet.html

这个文件是个真实的Smarty 模板文件。 它也很简单。

<p>
<{$greeting}> <{$uname}>
</p>


说明

重要说明: 在 Xoops 世界中,所有的Smart 程序代码的Smarty标签都是
<{...}>而不是像Smartys速成课程中所说的{...} 标签。 {...} 是无法在XOOPS里工作的。请牢记!
现在,<{$greeting}> 就从 /index.php里面的 $xoopsTpl->assign('greeting', ...); 获取已经定义好的值;<{$uname}> 也是一样的作用。

准备好了吗?

好了。 我认为我们已经完成使这个模块运行的所有必要工作。我们来个测试吧! 我不打算在这里讲述如何安装这个模块。 你应该已经知道该怎么做了。 但是我要说,如果每个步骤都准确无误地完成,那么你应该可以在 Admin/Modules 的页面上看到欢迎您这个模块。 安装它,然后回到你的首页。你应该看见欢迎您出现在你的主选单上。 点击它,看看它工作得如何!

你应该看到和下面类似的画面:
您好,Liya
至少那是它对我说的。 如果是你自己登录的话,当然就是您好,您的名字或者,如果没有登录,就显示您好,访客

总结

本文就说这些。但是我将会添加更多的信息到 XoopsModuleDoc 里,以便处理更多像数据库连结、管理页面等话题。如果你有任何的意见或问题,请发电子邮件给我: http://cowgar.com/ 。在那里你可以下载完整的 欢迎您(Greeter)程序代码。它被包装的很好,也很容易安装。 直接访问下载区就可以了。

2008/4/19 14:00
Email PDF 书签 打印 Blog 举报 回顶部
主题 | 论坛


XOOPS模块开发快速入门中文翻译(含附件)
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 110
离线

附件:


pdf xoops模块快速入门翻译.PDF 大小: 296.25 KB; 下载次数: 615

2008/4/19 11:05
Email PDF 书签 打印 Blog 举报 回顶部
主题 | 论坛


XOOPS模块开发快速入门中文翻译(一) (4-17 20:33)
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 110
离线
呵呵 这里是一个模块开发的快速入门。
原文是英语的,我把它翻译了一下。
原文地址:http://www.kaotik.biz/tutorial/tutorial_part_2.html译文地址:
http://www.cnblogs.com/xxpyeippx/archive/2008/04/17/1158728.html

2008/4/17 22:43
Email PDF 书签 打印 Blog 举报 回顶部
主题 | 论坛



 回顶部
(1) 2 »



[高级搜索]


快点报名参加XOOPS China佳站展示吧!
只要你的网站是用XOOPS建立的,便可以报名参加XOOPS China佳站展示。你只需写一篇建站经验或者技巧分享的文章,连同你的网站一同提交,便可以在XOOPS China首页的佳站展示中展览不少于一个周。为你的网站增加知名度,带来更大流量,同时也和其他XOOPSer一起分享经验,共同进步。
点击这里报名参加!