用户信息
帖子内容
1 楼
qihui
注册会员
积分 242
注册 2011-11-05
     
3.0 学习贴

1、模板编辑都在 系统管理 -> 模板管理下。

         如果要编辑关于我们模块模板需要 输入 aboutus.tpl.index 自己搜索。

         貌似找不到添加节点按钮了

 

2、首页列表调用

        1.0 :  {$=vv_itransfer('top', 'h5-1', 'topx=6;tnum=30;genre=cases;class=1')}

        3.0   :       

                <jtbc $function="transfer" $parameter="genre=case;type=new;limit=3">
                      ......

                 </jtbc>

                 目测 1.0 版 第一个参数和第三个参数 在 3.0 中都放到了 $parameter 中; 1.0 中 第 2 个参数 在 3.0 中就是 <jtbc></jtbc> 中间这部分。有时间再具体验证

本帖由 qihui 于 2017-07-21 23:22:37 编辑过
2017-07-21 23:08:48 QQ:470271565 / 微信:w470271565
2 楼
jetiben
管理人员
积分 8100
注册 2006-06-28
     
回复: 3.0 学习贴

确实如此 3.0 那个调用是快捷方式,用老的 {$=transfer(....)} 方式也可以调用。

2017-07-22 18:32:22 十年磨一剑,还没磨完那就再来十年!
3 楼
qihui
注册会员
积分 242
注册 2011-11-05
     
回复: 3.0 学习贴

以下版本为3.0.0.7版本使用总结

一、<jtbc $function="transfer" $parameter="genre=news;type=new;limit=4;osql= and n_att!=\'\'">

        ...

     </jtbc>

     注意:osql=   osql与=之间不能有空格

 

二、

模块执行的一般流程

1、jtbc\ui::getResult()其中 getResult()方法  在 ui类的 父类 page 类中。

2、拼接方法  $module = 'module' . ucfirst($type); 

                      if ($type == 'action') $module = 'moduleAction' . ucfirst($action);

3、执行开始初始化       if (method_exists($class, 'start')) call_user_func(array($class, 'start'));

4、执行拼接好的 方法 if (method_exists($class, $module)) $tmpstr = call_user_func(array($class, $module));

三、
     1、给模块下记录增加排序规则
     1)给数据表增加 order 字段
     2)分别给模块下add、edit模板增加  字段,参见官方 3.0教程
     4)首页调用 
                   <jtbc $function="transfer" $parameter="genre=news;type=order">
                      ......
                   </jtbc>

      2、模块下记录增加 “推荐” 功能
        1)数据表增加 commendatory 
         2)分别给模块下add、edit模板增加  字段,参见官方 3.0教程
         3)首页调用
                   <jtbc $function="transfer" $parameter="genre=news;type= commendatory">
                      ......
                   </jtbc>   
             
四、模板调用相关
       {$=take('::console.th-sort', 'lng')}   “  :: ” 表示去 后台模块下调用
      “ :/ ” 还有这个应该是去后台模块的子模块调用
       通用规则可参考 3.0 官方教程  http://help.jtbc.cn/php/3.0/index.html#faq/take.xml
       global.universal/label:manage.tag_list  绝对路径用法

五、
     模块下图片模式配置(注非附件中的),模块名. cfg.config 下 upload_fileresize_limit_image节点。{"width":"640","height":"360","scale":"1","quality":"80"} 

         scale: 是缩放还是剪裁;quality:图片品质

六、关于(三 - 2)中权限配置:
        1、 配置 popedom  配置文件   news.cfg.guide.popedom
               如:add,edit,publish,delete,commendatory
         2、配置语言   console.lng.config.console 添加语言 (这个应该是受保护了,需手动打开文件修改)如:
            <item>
              <name><![CDATA[text-popedom-commendatory]]></name>
              <zh-cn><![CDATA[推荐]]></zh-cn>
            </item>
        3、在相关位置增加权限检验代码,请参照现有代码
             如: $account -> checkPopedom(self::getPara('genre'), 'commendatory')
七、<jtbc>标签调用,可以通过 {$-i} 来获得序号,如1,2,3
       <jtbc $function="transfer" $parameter="......">
           {$-i}
        </jtbc>
八、{$=take('global.universal/label:sel_dynasty.{$dynasty}', 'lng')}  ,注意:universal 与 label 之间的路径分隔符 “/” , \  和 / 在 windows 服务起下都可以, linux 下 \ 不可以。

九、注意模块的后台处理文件  header('content-type: text/xml; charset=utf-8');  输出类型是 XML ; 程序输出时数据要处理成 xml 格式,否则会出错。

十、{$=takeAndFormat('sel_dynasty.*', 'sel', 'manage.dynasty-list')}  格式化 xml 文件,  一般用于下拉列表、多选项等。
十一、common\incfiles\lib\jtbc\console\account.inc.php   \console\common\incfiles\manage.inc.php 登录权限判断相关
十二、 transfer ,type 加 @ 前缀忽略 publish , new 需要有 time 字段
十三、内页 {$=formatDate($GLOBALS['RS_time'], '1')} {$=formatDate({$time}, '1')} 后者不对,需要在{$time} 上加引号 ‘{$time}’
十四、js 重复加载问题, 加点击次数,编辑页面要添加此字段,不然还原成默认值
十五、注意: 点9版本后  \common\incfiles\lib\jtbc\sql.inc.php  的用法。
十六、后台 js 调用流程:jtbc.console.ready(); -> tthis.loadHTML();  -> tthis.insertHTML(); -> tthis.bindEventsByMode(obj);
十七、base::htmlEncode
十八、1.0 版本自动自动,需要在 /common/language/config.jtbc  添加相应的语言文件。
=============================3.0.1.6=======================================一、:/account:config.db_prefix,:/后台子模块下
=========================================3.0.1.7===========================一、批量操作              1 、 模下 manage.inc.php   $batch = array('publish', 'delete', 'commendatory');       2、后台语言文件  console\common\language\sel_batch.jtbc     
     3、lib  console\fragment\util::moduleActionBatch
二、下拉框       1、字段 {"fieldType":"select","fieldRelatedFile":"quyu"}       2、模块加加选项文件
=======================3.0.1.8====================================附加模板  {"fieldType":"manage.att","fieldRelatedEditor":"content","uploadStatusAutoUpdate":"true"}注意修改 auto.inc.php 250 行 getAutoFieldFormat$currentFieldType == 'att' || $currentFieldType == 'manage.att'
本帖由 qihui 于 2019-03-13 10:29:43 编辑过
2017-09-13 21:04:18 QQ:470271565 / 微信:w470271565
4 楼
qihui
注册会员
积分 242
注册 2011-11-05
     
回复: 3.0 学习贴

3.0 版标签下载 (3.0.07)

                           :https://pan.baidu.com/s/1skY7pGL

                           : http://qihui.name/bian-cheng/112.html

 

会员模块下载:(3.0.0.7) 

jtbc3.0会员模块下载 

 

参考网站  www.dafengge.net

 会员参考地址 http://www.dafengge.net/yingshi/?type=detail&id=62

 

======================由于3.0不断迭代暂停最新版本支持 (2018-6-6)===================

有需要的可以定制开发






===================== 3.0 final 版标签、会员 (2021-3-3) ===================== 


链接:https://pan.baidu.com/s/1LuSao8ElZTlLWSyq5AyyKQ 

提取码:xulu

标签、会员实现的都比较简单仅供参考,3.0 暂时告一段落。期待 5.0 开新帖了。



本帖由 qihui 于 2021-03-04 22:09:30 编辑过
2017-11-19 16:54:36 QQ:470271565 / 微信:w470271565
5 楼
shadoweb
钻石会员
积分 1546
注册 2014-11-27
     
回复: 3.0 学习贴
qihui 发表于 2017-11-19 16:54:36 

3.0 版标签下载  :https://pan.baidu.com/s/1skY7pGL

                         : http://qihui.name/bian_cheng/112.html

 

参考网站  www.dafengge.net

有空学习下,感谢大神分享.
2017-11-20 08:14:44 承接JTBC二次开发,建站仿站,可开票 www.wdja.net QQ 925474725
6 楼
weeya
钻石会员
积分 1746
注册 2010-10-28
     
回复: 3.0 学习贴
楼主是高手,感谢大神分享!
2017-11-20 09:58:24 易速网络 www.yiisu.com 承接JTBC3.0 定制建站 仿站,正规网络公司,可开发票,QQ:93715358(微信同号)
7 楼
qihui
注册会员
积分 242
注册 2011-11-05
     
回复: 3.0 学习贴

jtbc 3.0 final使用总结,以后陆续总结 final 版了。欢迎关注!

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

autoUpdateByRequest($argId, $argVars = null, $argSpecialField = null, $argTable = null, $argPrefix = null, $argDbLink = 'any')

  1. $argId (int) 记录id;
  2. $argVars (array) 预设字段,表单中没有手动填写的字段如:语言、时间(添加记录时)
    undefined


  3. $argSpecialField (string) 一般用于编辑时不需要处理的字段。可参考分类的编辑如

    undefined


  4. $argTable (string) 表名

  5. $argPrefix (string)字段前缀

  6. $argDbLink 应该是分库,数据库链接。

添加表字段后语言的添加: 

  • 如 “/common/language/config.jtbc” 中没有相应字段,添加。或者“模块/common/language/config.jtbc” 下添加。

三、标签的使用(简版)

  1. 数据表添加 “tag” (varchar(255))字段,备注为 {"fieldType":"tag"}
  2. 修改“\console\common\assets\js\jtbc.console.js” 
    1)第 947 行 
    var currentValArray = JSON.parse(currentVal); -> var currentValArray = currentVal.split(',');
    2)第 977 行
    myObj.find('input.val').val(JSON.stringify(currentTag)); -> myObj.find('input.val').val(currentTag.toString());
    然后,压缩jtbc.console.js 替换掉 同目录下的 jtbc.console.min.js
  3. 复制 search 模块,并命名模块名为 tag,修改 “\tag\common\incfiles\index.inc.php” 
    1)第 13行
    $keyword = base::getString(request::get('keyword')); -> $keyword = base::getString(request::get('tag'));
    2)注释掉 第 17、18行,并在其后添加下面语句
    // $folder = route::getFolderByGuide('search'); // 需要注释掉的语句
    // $folderAry = explode('|+|', $folder); // 需要注释掉的语句
    $folderAry = array('news');  // “news”, 为数据表中添加了 tag 字段的模块。
    3)修改第 28 行$sqlstr .= "select " . $prefix . "id as un_id, " . $prefix . "topic as un_topic, " . $prefix . "time as un_time, '" . addslashes($val) . "' as un_genre from " . $table . " where " . $prefix . "delete=0 and " . $prefix . "publish=1 and " . $prefix . "lang=" . base::getNum(self::getParam('lang'), 0) . " union all ";  -> 

    $sqlstr .= "select " . $prefix . "id as un_id, " . $prefix . "topic as un_topic, " . $prefix . "tag as un_tag, " . $prefix . "time as un_time, '" . addslashes($val) . "' as un_genre from " . $table . " where " . $prefix . "delete=0 and " . $prefix . "publish=1 and " . $prefix . "lang=" . base::getNum(self::getParam('lang'), 0) . " union all ";
    4)修改第 33 行 
    $sqlstr .= ") jtbc where 1=1" . sql::getCutKeywordSQL('un_topic', $keyword); -> $sqlstr .= ") jtbc where 1=1 and find_in_set('" .  addslashes($keyword) .  "', un_tag)";
  4. 首页、列表页、内容页模板中,标签的调用如下
    <div>{$=formatLine(#tag, '<a href="/tag?tag=$line" target="_blank">$line</a> ', ',')}</div>


  5. 方法二、需要 mysql 数据库版本为 5.7+ 。
    1)数据库表添加 tag (json) 备注为 {"fieldType":"tag"}
    2)\common\incfiles\lib\jtbc\sql.inc.php,getInsertSQL()、getUpdateSQL() 添加对 json 类型字段的处理
    else if ($fieldTypeName == 'json') {
       $fieldString .= $fieldName . ',';
       if (base::isEmpty($fieldValue)) {
          $fieldValues .= "NULL, ";
        } else $fieldValues .= "'" . addslashes(base::getLeft($fieldValue, 20000)) . "',";
      } 
      getUpdateSQL()
      else if ($fieldTypeName == 'json') {
        if (base::isEmpty($fieldValue)) {
           $fieldStringValues .= $fieldName . "= NULL,";
        } else else $fieldStringValues .= $fieldName . "='" . addslashes(base::getLeft($fieldValue, 20000)) . "',";
      }
    3)复制 search 模块,并命名为 tag。第 13 、17、18、28 行修改同上。
    第33 行 
    $sqlstr .= ") jtbc where 1=1" . sql::getCutKeywordSQL('un_topic', $keyword); ->
    $sqlstr .= ") jtbc where 1=1 and JSON_SEARCH(un_tag, 'one', '" .  addslashes($keyword) . "') IS NOT NULL";
    4)首页、列表页、内容页中标签调用
        <div>{$=formatLine(implode(',', json_decode(#tag, true)), '<a href="/tag?tag=$line" target="_blank">$line</a> ', ',')}</div>
  6. 需要更复杂的功能如预选词、提示词等,需要添加表和相应的代码。

四、J3 中模板中标签。{$xxx}、 {$-xxx}、 {$>xxx}、  #xxx 、[~xxx]、


五、J3 模板中三元运算符 {$={$XXX}  == 0  ?  'YYY'  :  'ZZZ'}

  1. 其中,"{$XXX}  == 0"  中  {$XXX} 被替换后,这部分要构成一个布尔表达式,

六、j3 final 版标签、会员下载,到 4 楼。

本帖由 qihui 于 2021-03-04 22:11:36 编辑过
2020-12-30 17:37:05 QQ:470271565 / 微信:w470271565
8 楼
jtbc
注册会员
积分 130
注册 2006-10-14
     
回复: 3.0 学习贴

楼主辛苦啦

2021-02-08 11:44:13