| 
							- <?php
 - if (!defined('DEDEINC')) exit('dedebiz');
 - /**
 -  * 自定义表单解析类
 -  *
 -  * @version        $Id: diyform.class.php 1 10:31 2010年7月6日Z tianya $
 -  * @package        DedeBIZ.Libraries
 -  * @copyright      Copyright (c) 2022, DedeBIZ.COM
 -  * @license        https://www.dedebiz.com/license
 -  * @link           https://www.dedebiz.com
 -  */
 - require_once DEDEINC.'/dedetag.class.php';
 - require_once DEDEINC.'/customfields.func.php';
 - /**
 -  * diyform
 -  *
 -  * @package          diyform
 -  * @subpackage       DedeBIZ.Libraries
 -  * @link             https://www.dedebiz.com
 -  */
 - class diyform
 - {
 -     var $diyid;
 -     var $db;
 -     var $info;
 -     var $name;
 -     var $table;
 -     var $public;
 -     var $listTemplate;
 -     var $viewTemplate;
 -     var $postTemplate;
 -     function diyform($diyid)
 -     {
 -         $this->__construct($diyid);
 -     }
 -     /**
 -      *  析构函数
 -      *
 -      * @access    public
 -      * @param     string  $diyid  自定义表单ID
 -      * @return    string
 -      */
 -     function __construct($diyid)
 -     {
 -         $this->diyid = $diyid;
 -         $this->db = $GLOBALS['dsql'];
 -         $query = "SELECT * FROM `#@__diyforms` WHERE diyid='{$diyid}'";
 -         $diyinfo = $this->db->GetOne($query);
 -         if (!is_array($diyinfo)) {
 -             showMsg('参数不正确,该自定义表单不存在', 'javascript:;');
 -             exit();
 -         }
 -         $this->info = stripslashes($diyinfo['info']);
 -         $this->name = $diyinfo['name'];
 -         $this->table = $diyinfo['table'];
 -         $this->public = $diyinfo['public'];
 -         $this->listTemplate = $diyinfo['listtemplate'] != '' && file_exists(DEDETEMPLATE.'/plus/'.$diyinfo['listtemplate']) ? $diyinfo['listtemplate'] : 'list_diyform.htm';
 -         $this->viewTemplate = $diyinfo['viewtemplate'] != '' && file_exists(DEDETEMPLATE.'/plus/'.$diyinfo['viewtemplate']) ? $diyinfo['viewtemplate'] : 'view_diyform.htm';;
 -         $this->postTemplate = $diyinfo['posttemplate'] != '' && file_exists(DEDETEMPLATE.'/plus/'.$diyinfo['posttemplate']) ? $diyinfo['posttemplate'] : 'post_diyform.htm';;
 -     }
 -     /**
 -      *  获取表单
 -      *
 -      * @access    public
 -      * @param     string  $type  类型
 -      * @param     string  $value  值
 -      * @param     string  $admintype  管理类型
 -      * @return    string
 -      */
 -     function getForm($type = 'post', $value = '', $admintype = 'diy')
 -     {
 -         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 ($type == 'post') {
 -                         $formstring .= $func($tag, $admintype);
 -                     } else {
 -                         $formstring .= $func($tag, dede_htmlspecialchars($value[$tag->GetName()], ENT_QUOTES), $admintype);
 -                     }
 -                     $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;
 -     }
 -     /**
 -      *  获取字段列表
 -      *
 -      * @access    public
 -      * @return    string
 -      */
 -     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;
 -     }
 - }//End Class
 
 
  |