123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- <?php if(!defined('DEDEINC')) exit('forbidden');
- /**
- * 会员自定义模块
- *
- * @version $Id: oxwindow.class.php 1 15:21 2010年7月5日Z tianya $
- * @package DedeCMS.Libraries
- * @copyright Copyright (c) 2007 - 2010, DesDev, Inc.
- * @license http://help.dedecms.com/usersguide/license.html
- * @link http://www.dedecms.com
- */
- require_once DEDEINC.'/dedetag.class.php';
- require_once DEDEINC.'/customfields.func.php';
- require_once DEDEINC.'/enums.func.php';
- /**
- * 会员自定义模块
- *
- * @package membermodel
- * @subpackage DedeCMS.Libraries
- * @link http://www.dedecms.com
- */
- class membermodel
- {
- var $modid;
- var $db;
- var $info;
- var $name;
- var $table;
- var $public;
- var $egroups;
- var $listTemplate;
- var $viewTemplate;
- var $postTemplate;
- //兼容PHP4版本
- function membermodel($modtype){
- $this->__construct($modtype);
- }
-
- //析构函数
- function __construct($modtype){
- $this->name = $modtype;
- $this->db = $GLOBALS['dsql'];
- $query = "SELECT * FROM #@__member_model WHERE name='{$modtype}'";
- $diyinfo = $this->db->getone($query);
- if(!is_array($diyinfo))
- {
- showMsg('参数不正确,该会员模型不存在','javascript:;');
- exit();
- }
- $etypes = array();
- $egroups = array();
- $this->db->Execute('me','SELECT * FROM `#@__stepselect` ORDER BY id desc');
- while($arr = $this->db->GetArray())
- {
- $etypes[] = $arr;
- $egroups[$arr['egroup']] = $arr['itemname'];
- }
- $this->egroups = $egroups;
- $this->modid = $diyinfo['id'];
- $this->table = $diyinfo['table'];
- $this->description = $diyinfo['description'];
- $this->state = $diyinfo['state'];
- $this->issystem = $diyinfo['issystem'];
- $this->info = $diyinfo['info'];
- }//end func __construct()
- /**
- * 获取用户数据表单
- *
- * @access public
- * @param string $type 表单类型
- * @param string $value 值
- * @param string $admintype 模型类型
- * @return string
- */
- function getForm($type = 'post', $value = '', $admintype='membermodel2')
- {
- global $cfg_cookie_encode;
- $dtp = new DedeTagParse();
- $dtp->SetNameSpace("field","<",">");
- $dtp->LoadSource($this->info);
- $formstring = '';
- $formfields = '';
- $func = $type == 'post' ? 'GetFormItem' : 'GetFormItemValue';
- if(is_array($dtp->CTags))
- {
- foreach($dtp->CTags as $tagid=>$tag)
- {
- if($tag->GetAtt('autofield'))
- {
- if($tag->GetAtt('state') == 1)
- {
- //如果启用该字段
- if($type == 'post')
- {
- //对一些字段进行特殊处理
- if($tag->GetName() == 'onlynet')
- {
- $formstring .= '<li><span>联系方式限制:</span><div class="lform">
- <input name="onlynet" type="radio" id="onlynet" value="2" checked="checked" />
- 不公开所有联系方式
- <input name="onlynet" type="radio" id="onlynet" value="1" />
- 不公开电话、详细地址
- <input name="onlynet" type="radio" id="onlynet" value="0" />
- 公开所有联系方式</div></li>';
- } else if ($tag->GetName() == 'place' || $tag->GetName() == 'oldplace')
- {
- $formtitle = ($tag->GetName() == 'place')? '目前所在地' : '家乡所在地';
- $formstring .='<li><div class="lform">' . GetEnumsForm('nativeplace',
- 0,$tag->GetName()).'</div><span>'.$formtitle.':</span></li>';
- } else if (array_key_exists($tag->GetName(),$this->egroups))
- {
- //对联动模型进行特殊处理
- $formstring .='<li><div class="lform">'. GetEnumsForm($tag->GetName(),
- 0,$tag->GetName()).'</div><span>'.$this->egroups[$tag->GetName()].':</span></li>';
- } else if ($tag->GetAtt('type') == 'checkbox')
- {
- //对checkbox模型进行特殊处理
- $formstring .=$func($tag,$admintype);
- } else {
- $formstring .= $func($tag,$admintype);
- }
- } else {
- if($tag->GetName() == 'onlynet')
- {
- $formstring .= '<p style="display:none"><label>联系方式限制:</label>
- <input name="onlynet" type="radio" id="onlynet" value="2" checked="checked" />
- 不公开所有联系方式
- <input name="onlynet" type="radio" id="onlynet" value="1" />
- 不公开电话、详细地址
- <input name="onlynet" type="radio" id="onlynet" value="0" />
- 公开所有联系方式</p>';
- } else if ($tag->GetName() == 'place' || $tag->GetName() == 'oldplace'){
- $formtitle = ($tag->GetName() == 'place')? '目前所在地' : '家乡所在地';
- $formstring .='<p><label>'.$formtitle.':</label>' . GetEnumsForm('nativeplace',$value[$tag->GetName()],$tag->GetName()).'</p>';
- } else if ($tag->GetName() == 'birthday'){
- $formstring .='<p><label>'.$tag->GetAtt('itemname').':</label><input type="text" class="intxt" style="width: 100px;" id="birthday" value="'.$value[$tag->GetName()].'" name="birthday"></p>';
- } else if (array_key_exists($tag->GetName(),$this->egroups)){
- //对联动模型进行特殊处理
- $formstring .='<p><label>'.$this->egroups[$tag->GetName()].':</label> '. GetEnumsForm($tag->GetName(),$value[$tag->GetName()],$tag->GetName()).'</p>';
- } else if ($tag->GetAtt('type') == 'checkbox'){
- //对checkbox模型进行特殊处理
- $formstring .=$func($tag,dede_htmlspecialchars($value[$tag->GetName()],ENT_QUOTES),$admintype);
- }
- else if ($tag->GetAtt('type') == 'img')
- {
- $fieldname = $tag->GetName();
- $labelname = $tag->GetAtt('itemname');
- $fvalue = dede_htmlspecialchars($value[$tag->GetName()],ENT_QUOTES);
- $imgstrng = "<p><label>{$labelname}:</label><input type='text' name='$fieldname' value='$fvalue' id='$fieldname' style='width:300px' class='text' /> <input name='".$fieldname."_bt' class='inputbut' type='button' value='浏览...' onClick=\"SelectImage('addcontent.$fieldname','big')\" />\r\n</p>";
- $formstring .=$imgstrng;
-
- }
- else {
- $formstring .= $func($tag,dede_htmlspecialchars($value[$tag->GetName()],ENT_QUOTES),$admintype);
- //echo $formstring;
- }
- }
- $formfields .= $formfields == '' ? $tag->GetName().','.$tag->GetAtt('type') : ';'.$tag->GetName().','.$tag->GetAtt('type');
- }
- }
- }
- }
- $formstring .= "<input type=\"hidden\" name=\"dede_fields\" value=\"".$formfields."\" />\n";
- $formstring .= "<input type=\"hidden\" name=\"dede_fieldshash\" value=\"".md5($formfields.$cfg_cookie_encode)."\" />";
- return $formstring;
- }//end func getForm
- /**
- * 获取字段列表
- *
- * @access public
- * @param string
- * @return array
- */
- function getFieldList()
- {
- $dtp = new DedeTagParse();
- $dtp->SetNameSpace("field","<",">");
- $dtp->LoadSource($this->info);
- $fields = array();
- if(is_array($dtp->CTags))
- {
- foreach($dtp->CTags as $tagid=>$tag)
- {
- $fields[$tag->GetName()] = array($tag->GetAtt('itemname'), $tag->GetAtt('type'));
- }
- }
- return $fields;
- }
- }
|