技术论坛 - 查看所有帖子 imag1
XOOPS China 讨论区 > 查看所有帖子 (文明猪)


(1) 2 3 4 ... 19 »


回复: 诚征XOOPS内核文档撰写人员(有偿)
Support Team
注册日期:
2004/9/20 23:30
所属群组:
注册会员
Dev+Hack
帖子: 208 | 精华: 7
等级: 13; EXP: 45
HP: 0 / 311
MP: 69 / 2872
离线
公司现在正在写用xoops开发的网站的文档,需要译成英文,不知哪位有能力啊。

另外需要bmfroum论坛及lifetype文档写作人员

费用电话或mail洽谈。

联系方式:
010-58859701/02/03/04 转809(工作时间)
13691540190
mail:[email protected]

急啊!

9/20 14:20
_________________
域名一大堆,一个都没建!
有不想要20D的么?可以送给我,我给你做个网站。
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


诚征XOOPS内核文档撰写人员(有偿)
Support Team
注册日期:
2004/9/20 23:30
所属群组:
注册会员
Dev+Hack
帖子: 208 | 精华: 7
等级: 13; EXP: 45
HP: 0 / 311
MP: 69 / 2872
离线
北京班布技术有限公司(蓝竹 子公司)基于xoops核心开发了几个大中型网站并在成功运营,为感谢xoops及所有开发人员、促进xoops的应用及发展,班布公司计划为xoops做些应有贡献:

由蓝竹进行费用投入,诚征XOOPS内核文档撰写人员进行开发方面的文档整理(注意,侧重开发方面,为开发人员准备)。

时间:两个月,8月中旬到10月中旬
语言:中英文均可
条件:了解XOOPS,对XOOPS内核有较深了解。

这次工作得到总社区及中文社区领导D.J.的及相关人员的大力支持,他们会对工作做强有力的支持。


联系方式:
010-58859701/02/03/04 转809(工作时间)
13691540190
mail:[email protected]

也可以和D.J.直接沟通。

班布主要网站:
装聪明:http://www.chinadeco.com.cn
留学:http://www.6xue.info
新娘网:http://www.ixinniang.com
我要婚纱照:http://www.51hunshazhao.com(正进行测试)

8/10 16:55
_________________
域名一大堆,一个都没建!
有不想要20D的么?可以送给我,我给你做个网站。
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


D.J. framework在开发中的应用 art类 用它来写数据库啦!
Support Team
注册日期:
2004/9/20 23:30
所属群组:
注册会员
Dev+Hack
帖子: 208 | 精华: 7
等级: 13; EXP: 45
HP: 0 / 311
MP: 69 / 2872
离线

D.J. framework在开发中的应用 art类 用它来写数据库啦!
第一帖和第二帖讲了创建方式及最基本的读的方式,这次说说真正用它来对数据进行操作

插入或更新数据用insert
得到一个指定的值用getVar
此文件名称命名为store_edit.php,如果直接调用,则是一个空表单,如果用store_edit.php?ns_id=9 的方式调用,则是编辑指定的信息,提交后添加或编辑

注意:由于这部分工作已经交给其他人做了,所以,临时写的代码,非正式使用。

include_once 'header.php';
//下面调用form的各个类,Frameworks中融合了几个原先xoops22中的form类,比较实用
if(!@include_once (XOOPS_ROOT_PATH."/Frameworks/xoops22/class/xoopsformloader.php")){
 include_once XOOPS_ROOT_PATH."/class/xoopsformloader.php";
}

//判断是否是用户,不是的话就让他登录或注册,这个文件可以仅对用户开放,对匿名用户不开放
if(!is_object($xoopsUser))
{
 redirect_header(XOOPS_URL."user.php",3,_MD_FRIEND_UMUSTMEMBER);
}

//我习惯将_GET和_POST的值给原先的变量
$ns_id = 0;//预置商家ID为0如果有_GET或_POST它会被重新赋值
$op = '';//同上意思

if ( isset( $_GET ) ){
 foreach ( $_GET as $k => $v ) {
  ${$k} = $v;
 }
}
if ( isset( $_POST ) ){
 foreach ( $_POST as $k => $v ) {
  ${$k} = $v;
 }
}

$store_handler =& xoops_getmodulehandler("store", "newphoto");//初始化
$store_obj = $store_handler->get($ns_id);//得到指定ID商店的obj,如果$ns_id是0则会create一个空的
//下面做各权限的判断,让这个商店信息只能商店的管理者和网站的管理者能修改编辑
$thisstoradmin = $store_obj->getVar('uid');//是得到这个商店的uid字段的值,如果是新的应该是0
if(!$xoopsUser->isAdmin() && empty($thisstoradmin){
 redirect_header("index.php",3,"你不是这个商店的管理者,也不是管理员,你没有权力编辑它!");
}

//如果是保存就进行下面的操作
if(!empty($_POST['op']) && $_POST['op']=='save'){
//这里对POST的数据循环给store_obj赋值,如果obj中没有,也无所谓,但有可能有点安全隐患,我没有试验,
  foreach($_POST as $k=>$v){
   $store_obj->setVar($k, $v);
  }
  //$groupobj->setVar('g_updatedate', time());这是一个其他的地方的语句,放在这里告诉大家如果有特殊的字段,可以在这里重新赋值
  //赋值完毕了,下面就写数据库了,如果$ns_id不为0就更新,如果为0就插入新的,返回新$ns_id
  $new_id = $store_handler->insert($store_obj);

  if($new_id){
   //成功
   $url = "store_view.php.php?ns_id=".$new_id ;
   $msg = "商店信息几经被保存";
  }else{
   //失败
   $url = "index.php";
   $msg = "商店信息保存错误,如果多次出现这种情况,请与我们联系,我们表示万分感谢";
  }
  redirect_header($url,3,$msg);
}
include_once XOOPS_ROOT_PATH.'/header.php';
//下面使用了getvars,并将其循环将字段名和字段值对应起来
foreach($store_obj->getvars() as $k=>$v){
 ${$k}= $v['value'];
}
$formtitle = $ns_id?"编辑商店信息":"添加商店信息";//对提交表格的头做个变换
//开始使用我最喜欢的xoops类组
$form = new XoopsThemeForm($formtitle, "storeform", "store_edit.php");
$form->setExtra("enctype='multipart/form-data'");
//把已经有的ns_id值作为hidden传递,它有可能是0也可能不是
$ns_id_hidden = new XoopsFormHidden("ns_id", $ns_id);
$form->addElement($ns_id_hidden);

$ns_name_text = new XoopsFormText("商店名称", "ns_name", 50, 255,$ns_name);
$form->addElement($ns_name_text,true);
$ns_sname_text = new XoopsFormText("商店简称", "ns_sname", 50, 255,$ns_sname);
$form->addElement($ns_sname_text,true);
//下面略去代码N行,不凑篇幅了
……
……
//先对op来个空值
$op_hidden     = new XoopsFormHidden("op", '');
$form->addElement($op_hidden);
//下面添加了一个确定按钮,点击之后给op赋值,之所以用这用方法,因为也可以调用预览、删除等其他的操作
$preview_submit = new XoopsFormButton("", "submitit", "确定", "submit");
$preview_submit->setExtra( "onclick='this.form.elements.op.value=\"save\"'");
$form->addElement( $preview_submit );
$form->display();

include_once XOOPS_ROOT_PATH.'/footer.php';
?>


7/11 9:13
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


D.J.的 framework在开发中的应用 art类 2.get和getValues的使用
Support Team
注册日期:
2004/9/20 23:30
所属群组:
注册会员
Dev+Hack
帖子: 208 | 精华: 7
等级: 13; EXP: 45
HP: 0 / 311
MP: 69 / 2872
离线

上次谈到创建了基础类,这次谈谈最简单的使用方法:get和getValues
get是创建一个新类,并将指定ID的数据提取出来给这个类中的参数赋值,如果ID为0,则会自动创建一个新的(以后会谈到)。
getValues是将obj中的所有key对应value提取出来,组成一个数组。看下面的代码,呵呵,有的地方是为xajax用的,在你的系统中不会正常运行,仅做演示。

<?php
include_once 'header.php';
if(empty($_GET['ns_id'])){
 redirect_header("store.list.php",3,"您没有指定商家!");
}
$store_handler =& xoops_getmodulehandler("store", "newphoto");//初始化
$store_obj = $store_handler->get($_GET['ns_id']);//得到指定ID商店的obj
$storeinfo = $store_obj ->getValues();//得到这个商店的所有值

require_once("./server/server.common.php");//调用xajax初始文件
$xoopsOption["template_main"] = "newphoto_store_view.html";

include_once XOOPS_ROOT_PATH.'/header.php';
$xoopsTpl -> assign("storeinfo",$storeinfo);//将商店的信息数组传递给模板
$xoopsTpl -> assign("xoops_module_header", $xajax->getJavascript(XOOPS_URL."/Frameworks/xajax"));//页面内容中xajax初始化
include_once XOOPS_ROOT_PATH.'/footer.php';
?>


7/10 19:16
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


D.J.的 framework在开发中的应用 art类(不断更新中)
Support Team
注册日期:
2004/9/20 23:30
所属群组:
注册会员
Dev+Hack
帖子: 208 | 精华: 7
等级: 13; EXP: 45
HP: 0 / 311
MP: 69 / 2872
离线

D.J. framework在开发中的应用 art类1
在实际开发应用中,有N多的数据库读写操作,如果每个都写成sql,是巨费事的事,但我不否认,直接写sql会有些执行效率的提高,但那提高的效率在一般的网站中几乎是显现不出来的,而快速的开发、及数据库读写的安全性是我们更多的考虑的,老板总是问你:什么时候能完成?这时候你需要运用比较好的方法。
感谢D.J.把article模块中的art类总结出来,并加上其他的很多内容形成framework贡献给大家,使开发人员在实际的应用中提高了效率。
我不是纯粹的代码编写者,但我知道现在的代码工作不是要你从最底层的写起,而应该更注重应用层面,所以从今天开始,我将伴随我一个新的工作的进度,将D.J.的framework实际应用写给大家,希望大家在应用xoops时能更加的快速。

1.创建你的数据表
art类是在xoops的object的基础上继承的,最重要的工作是对数据库的读写,因此,按正常的工作一样,你先创建你的数据表,下面的表是工作中实际应用的一个表,你可以按你的需要自己创建一个。

#商家表
CREATE TABLE newphoto_store (
  ns_id mediumint(8) unsigned NOT NULL auto_increment,#序号
  np_pid mediumint(8) not null default 0,#父商家(不为0为子商家)
  uid mediumint(8) not null default 0,#管理人
  ns_name varchar(150) default '',#商家名称
  ns_sname varchar(150) default '',#商家简称
  ns_logo varchar(250) default '',#图标
  ns_address text NULL,#商家地址
  ns_postcode varchar(250) default '',#邮政编码
  ns_phone varchar(250) default '',#联系电话
  ns_linkman varchar(250) default '',#联系人
  ns_email varchar(250) default '',#联系email
  ns_desc text NULL,#商家介绍
  ns_clicked mediumint(8) not null default 0,#点击
  ns_status tinyint(1) default '1',#是否删除
  ns_style varchar(250) default '',#主打风格
  PRIMARY KEY  (ns_id),
  KEY  (np_pid),
  KEY  (ns_status)
) TYPE=MyISAM;


好了,这是一个实际应用的表,关于各个字段的作用大家就不必关心了,这是我们正在做的一个模块中的一个表,以后我们将以此表为例子来说明art类的基本使用。
2.创建一个基础类
基础类是是为初始化及相关操作准备的,有了它,你就可以继承使用art的其他的各个类了,这个类的名称我们命名为Store。
①在模块目录下面创建一个目录名称为class
②在class下面创建php文件store.php,注意:这里的文件名称为小写英文字母,文件名和类的名字相同

下面是这个文件的文件内容

<?php
/*
*下面保证是被其他的文件引用
*/
if (!defined("XOOPS_ROOT_PATH")) {
 exit();
}
/*
*下面判断是由已经定义了ArtObject,如果没有就require一下
*/
if(!class_exists("ArtObject")) {
 require_once(XOOPS_ROOT_PATH."/Frameworks/art/object.php");
}
/*
*这是基础类的主题,注意类的名称第一个字母要大写
*有关初始化的都有哪些类型,可以参考kernel中的object.php
*如果想深入了解这些类型是如何被操作的,可以查看kernel中的object.php或/Frameworks/art/object.persistable.php两个文件
*/
class Store extends ArtObject
{
    function Store( $id = null )
    {
 $this->ArtObject();
 $this->table = "newphoto_store";//这是调用的表的名称
        $this->initVar("ns_id", XOBJ_DTYPE_INT, null, false);//初始化int型
 $this->initVar("np_pid", XOBJ_DTYPE_INT);//初始化int型
 $this->initVar("uid", XOBJ_DTYPE_INT);//初始化int型
        $this->initVar("ns_name", XOBJ_DTYPE_TXTBOX, "");//初始化txtbox型
        $this->initVar("ns_sname", XOBJ_DTYPE_TXTBOX, "");//初始化txtbox型
        $this->initVar("ns_logo", XOBJ_DTYPE_TXTBOX, "");//初始化txtbox型
        $this->initVar("ns_address", XOBJ_DTYPE_SOURCE, "");//初始化源代码型
        $this->initVar("ns_postcode", XOBJ_DTYPE_TXTBOX, "");//初始化txtbox型
        $this->initVar("ns_phone", XOBJ_DTYPE_TXTBOX, "");//初始化txtbox型
        $this->initVar("ns_linkman", XOBJ_DTYPE_TXTBOX, "");//初始化txtbox型
        $this->initVar("ns_email", XOBJ_DTYPE_EMAIL, "");//email型
        $this->initVar("ns_desc", XOBJ_DTYPE_SOURCE, "");//初始化源代码型
 $this->initVar("ns_clicked", XOBJ_DTYPE_INT);//初始化int型
 $this->initVar("ns_status", XOBJ_DTYPE_INT);//初始化int型
        $this->initVar("ns_style", XOBJ_DTYPE_TXTBOX, "");//初始化txtbox型
 }
}
/*
*初始化handler
*命名规则:模组目录名+类名+Handler ,第一个字母大写
*参数:newphoto_store是数据表名称,Store是上面类的名称,具体可以看看 object.persistable.php ,在这里大家模仿一下吧,了解的多了会花时间,呵呵
*/
class NewphotoStoreHandler extends ArtObjectHandler
{
    function NewphotoStoreHandler(&$db) {
        $this->ArtObjectHandler($db, "newphoto_store", "Store", "ns_id", "ns_sname");
    }
}
?>


7/10 14:06
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 紧急求助?用的文明猪的页面管理后出的错!
Support Team
注册日期:
2004/9/20 23:30
所属群组:
注册会员
Dev+Hack
帖子: 208 | 精华: 7
等级: 13; EXP: 45
HP: 0 / 311
MP: 69 / 2872
离线
原因就是你把排错模式打开了,这个模组因为要通过ajax(javascript),传递数据,我没有做相关的技术。请把排错模式关上就可以使用了。
提示的那个错误不会影响运行,是一个变量没有提前赋值。

6/20 8:44
_________________
域名一大堆,一个都没建!
有不想要20D的么?可以送给我,我给你做个网站。
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 怎么把自己的机器变成服务器??
Support Team
注册日期:
2004/9/20 23:30
所属群组:
注册会员
Dev+Hack
帖子: 208 | 精华: 7
等级: 13; EXP: 45
HP: 0 / 311
MP: 69 / 2872
离线
修改你的mainfile.php文件中的:XOOPS_URL后面的值为你的计算机在实验室的ip地址,这样其他计算机就可以通过IP访问你的网站了.

类似:
define('XOOPS_URL', 'http://10.0.0.218');

3/13 18:16
_________________
域名一大堆,一个都没建!
有不想要20D的么?可以送给我,我给你做个网站。
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 请问如何安装文明猪的PAGE模块
Support Team
注册日期:
2004/9/20 23:30
所属群组:
注册会员
Dev+Hack
帖子: 208 | 精华: 7
等级: 13; EXP: 45
HP: 0 / 311
MP: 69 / 2872
离线
不是mail.php 是main.php 直接覆盖就可以了,最好先将原先的改个名字。
header.php覆盖根下的就可以了。恢复时覆盖回来。
我没有做utf-8的版本,仅能gb2312
没有后台管理,只要/modules/page/就可以了.

3/13 8:46
_________________
域名一大堆,一个都没建!
有不想要20D的么?可以送给我,我给你做个网站。
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 一个困饶了我多天的问题,请高手指点。
Support Team
注册日期:
2004/9/20 23:30
所属群组:
注册会员
Dev+Hack
帖子: 208 | 精华: 7
等级: 13; EXP: 45
HP: 0 / 311
MP: 69 / 2872
离线
问题一
<input type="text" name="pass 需要改成type="password"

3/12 19:29
_________________
域名一大堆,一个都没建!
有不想要20D的么?可以送给我,我给你做个网站。
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 会员菜单中的帐号信息看不到?
Support Team
注册日期:
2004/9/20 23:30
所属群组:
注册会员
Dev+Hack
帖子: 208 | 精华: 7
等级: 13; EXP: 45
HP: 0 / 311
MP: 69 / 2872
离线
是否打开了除错模式来查看一下?

3/12 19:26
_________________
域名一大堆,一个都没建!
有不想要20D的么?可以送给我,我给你做个网站。
工具箱 短消息 Email PDF 书签 打印 举报 回顶部



(1) 2 3 4 ... 19 »