JTBC5.0发布在即,JTBC官网展示各版本开源协议

始于2006年大学校园的知名CMS程序JTBC,近期在官网更新了相关介绍,同时展示了各历史版本和即将于2021年发布的5.0版本的开源协议.

大家来一起看一下吧.

 

JTBC网站内容管理系统

JTBC 是一套有15年历史的模块化网站系统核心。
JTBC 采用 语言/代码/程序 两两分离的技术模式。
JTBC 遵循大道至简原则,崇尚开源与工匠精神,承诺永久免费。

协议链接:https://www.jtbc.cn/license/

相关图片

 

 

同时,官方服务也进行了全新变动,现已支持语音支持服务,如果您工作日有什么困扰,可以尝试购买金牌会员获取工作日5*8小时的贴心服务.

全新服务价格对比如下:

(PHP)JTBC1.0原版下载

(PHP)JTBC_CMS_1.0来源于JTBC官网:

原下载地址为: https://www.jtbc.cn/download/detail-2.html

网盘下载: http://share.menglei.net/file/16922972-465250894

 

概述:

JTBC网站内容管理系统是一套可对现有模块进行扩充与克隆的网站系统核心,采用UTF-8编码,采取 语言-代码-程序两两分离的技术模式,全面使用了模板包与语言包结构,为用户的修改提供方便,网站内容的每一个角落都可以在后台予以管理,是一套非常适合用做系统建站或者进行二次开发的程序核心。

附原官网截图:

 

(PHP)JTBC1.0图片集功能增强教程

教程下载地址:

https://wdjacms.pipipan.com/fs/16922972-385595717

(PHP)JTBC1.0图片集默认是用竖线 | 隔开的图片地址字符串

为了增强其功能,可以为每张图片添加标题和介绍,我们再对每条图片地址进行扩展.

增加标题和介绍文字

原格式

 1.jpg|2.jpg|3.png|4.gif

新格式

 1#:#1介绍方案#:#1.jpg|2#:#2介绍方案#:#2.jpg|3#:#3介绍方案#:#3.png|4#:#4介绍方案#:#4.gif

为此,需要修改图片集上传图片的方式,修改预览图片集的方式,修改插入到内容中的方式

下面我们逐一进行操作:

1.添加语言

位置: /common/language/lng_config.jtbc

    <item>
      <disinfo><![CDATA[img_title]]></disinfo>
      <chinese><![CDATA[图片标题]]></chinese>
    </item>
    <item>
      <disinfo><![CDATA[img_desc]]></disinfo>
      <chinese><![CDATA[图片介绍]]></chinese>
    </item>
    <item>
      <disinfo><![CDATA[img_url]]></disinfo>
      <chinese><![CDATA[图片链接]]></chinese>
    </item>

说明:

这里的三个语言节点是作为后台添加和编辑模板中调用的.

2.添加函数

位置: /common/incfiles/common.inc.php

复制一份function mm_get_images_list($strers)函数

修改成如下

function mm_get_img_list($strers)
{
  if (!(ii_isnull($strers)))
  {
    $option_unselected = ii_itake('global.tpl_config.option_unselect', 'tpl');
    $tary = explode('|', $strers);
    $tmpstr = '';
    foreach ($tary as $key => $val)
    {
        $sary = explode('#:#', $val);
        $tstr = $option_unselected;
        $tstr = str_replace('{$explain}', $sary[0], $tstr);
        $tstr = str_replace('{$value}', $sary[0].'#:#'.$sary[1].'#:#'.$sary[2], $tstr);
        $tmpstr .= $tstr;
    }
    return $tmpstr;
  }
}

说明:

这里的mm_get_img_list函数是用来格式化图片集字段的.

如果前台输出的话,也可以参考此函数进行处理.

3.添加js

3.1 位置: /common/images/js/preview_images.js

最下面添加代码

function preview_img(strurl, e)
{
  var curPosX, curPosY
var img_arr = strurl.split("#:#");
var img_arr_len = img_arr.length - 1;
var img_url = img_arr[img_arr_len];
var img_desc = img_arr[1];
  if(window.event){
    curPosX = document.body.scrollLeft + event.x;
    curPosY = document.body.scrollTop + event.y;
  } else{
    curPosX = e.pageX;
    curPosY = e.pageY;
  }
  if (curPosX + 340 > document.body.clientWidth) {curPosX = curPosX - 340;}
  if (curPosY + 220 > document.body.clientHeight + document.body.scrollTop) {curPosY = curPosY - 220;}
  with(get_id("preview_images"))
  {
    style.display = "block";
    style.left = curPosX + "px";
    style.top = curPosY + "px";
  }
  get_id("preview_images_bottom").innerHTML = "<img src="" + img_url + "" border="0" onload="if (this.width > 300)this.width = 300;if (this.height > 180)this.height = 180;" alt="" + img_url + "">";
}

说明:

这里的js是用来进行预览图片集中的图片的,因为更改了图片集的存储格式,需要使用新方法进行预览.

3.2 位置: /common/images/js/manage.js

最下面添加以下代码

function img_info(){
var img_title = get_id("img_title").value ;
var img_desc = get_id("img_desc").value ;
var img_url = get_id("img_url").value ;
var opname = img_title ;
var opvalue = img_title+"#:#"+img_desc+"#:#"+img_url ;
if (img_title == "" || img_title.length == 0){
alert('标题不可为空');
}
else if (img_url == "" || img_url.length == 0){
alert('图片不可为空');
}
else{
selects.add(get_id("content_images"), opname, opvalue);
get_id("img_title").value = '';
get_id("img_desc").value = '';
get_id("img_url").value = '';
alert('增加成功');
}
}
function insert_img(strid, strurl, strntype, strtype, strbase)
{
  var tstrtype;
var img_arr = strurl.split("#:#");
var img_arr_len = img_arr.length - 1;
var img_url = img_arr[img_arr_len];
var img_desc = img_arr[1];
//alert(img_arr);
  if (strtype == -1)
  {tstrtype = strntype;}
  else
  {
    var thtype = request["htype"];
    if (thtype == undefined)
    {tstrtype = strtype;}
    else
    {tstrtype = get_num(thtype);}
  }
  switch (tstrtype)
  {
    case 0:
      editor_insert(strid, "<img src="" + img_url + "" alt="" + img_desc + "" border="0">");
      //editor_insert(strid, "<img src="" + strbase + "/" + img_url + "" border="0">");
      break;
    case 1:
      itextner(strid, "[img]" + img_url + "[/img]");
      break;
    case 3:
      itextner(strid,  "<img src="" + img_url + "" border="0">");
      break;
  }
}

说明:

img_info()是插入图片集表单内容到图片集的js函数.

insert_img是插入选择的图片集图片到内容编辑框中.

4.模块中的修改

位置: /模块/common/template/manage.jtbc

4.1节点add修改如下:

修改图片集表单代码


                    <tr>
                      <td height="25">{$=ii_itake('global.lng_config.images','lng')}</td>
                      <td><input type="hidden" name="content_images_list" id="content_images_list"><select name="content_images" id="content_images" class="select" onkeydown="selects.displace(this, this.selectedIndex, event.keyCode)"></select> <input type="button" class="button" value="{$=ii_itake('global.lng_config.preview','lng')}" onclick="preview_img(get_id('content_images').value, event)"> <input type="button" class="button" value="{$=ii_itake('global.lng_config.delete','lng')}" onclick="selects.remove(get_id('content_images'))"> <input type="button" class="button" value="{$=ii_itake('global.lng_config.insert','lng')}" onclick="insert_img('content', get_id('content_images').value, {$=#ncttype}, 0, '{$=ii_get_lrstr($GLOBALS['nuri'], "/", "leftr")}')"></td>
                    </tr>

说明:

这里的preview_img和insert_img是更改后的js方法.用来重新处理图片集的新格式,实现原预览和插入功能.

替换图片集上传代码为:


                    <tr>
                      <td height="25">{$=ii_itake('global.lng_config.img_title','lng')}</td>
                      <td><input type="text" id="img_title" name="img_title" size="40" value=""></td>
                    </tr>
                    <tr>
                      <td height="25">{$=ii_itake('global.lng_config.img_desc','lng')}</td>
                      <td><input type="text" id="img_desc" name="img_desc" size="40" value=""></td>
                    </tr>
                    <tr>
                      <td height="25">{$=ii_itake('global.lng_config.img_url','lng')}</td>
                      <td><input type="text" id="img_url" name="img_url" size="30" value="" ondblclick="preview_images(this.value, event)">&nbsp;<iframe src="?type=upload&upform=form&uptext=img_url&upsimg={$upsimg}" style="vertical-align: middle;" width="250" height="25" scrolling="no" marginwidth="0" marginheight="0" align="middle" name="upload" frameborder="0"></iframe></td>
                    </tr>
                    <tr>
                      <td height="25"></td>
                      <td><a onclick="img_info()" class="button">增加</a></td>
                    </tr>

说明:

这里的三个表单是新图片集格式的三个参数,用来组成新的图片集.

4.2节点edit修改如下:

修改图片集表单代码


                    <tr>
                      <td height="25">{$=ii_itake('global.lng_config.images','lng')}</td>
                      <td><input type="hidden" name="content_images_list" id="content_images_list"><select name="content_images" id="content_images" class="select" onkeydown="selects.displace(this, this.selectedIndex, event.keyCode)">{$=mm_get_img_list('{$content_images_list}')}</select> <input type="button" class="button" value="{$=ii_itake('global.lng_config.preview','lng')}" onclick="preview_img(get_id('content_images').value, event)"> <input type="button" class="button" value="{$=ii_itake('global.lng_config.delete','lng')}" onclick="selects.remove(get_id('content_images'))"> <input type="button" class="button" value="{$=ii_itake('global.lng_config.insert','lng')}" onclick="insert_img('content', get_id('content_images').value, {$=#ncttype}, 0, '{$=ii_get_lrstr($GLOBALS['nuri'], "/", "leftr")}')"></td>
                    </tr>

说明:

这里的preview_img和insert_img是更改后的js方法.用来重新处理图片集的新格式,实现原预览和插入功能.

其中mm_get_img_list函数是通过php来处理新的图片集格式进行输出.

替换图片集上传代码为:


                    <tr>
                      <td height="25">{$=ii_itake('global.lng_config.img_title','lng')}</td>
                      <td><input type="text" id="img_title" name="img_title" size="40" value=""></td>
                    </tr>
                    <tr>
                      <td height="25">{$=ii_itake('global.lng_config.img_desc','lng')}</td>
                      <td><input type="text" id="img_desc" name="img_desc" size="40" value=""></td>
                    </tr>
                    <tr>
                      <td height="25">{$=ii_itake('global.lng_config.img_url','lng')}</td>
                      <td><input type="text" id="img_url" name="img_url" size="30" value="" ondblclick="preview_images(this.value, event)">&nbsp;<iframe src="?type=upload&upform=form&uptext=img_url&upsimg={$upsimg}" style="vertical-align: middle;" width="250" height="25" scrolling="no" marginwidth="0" marginheight="0" align="middle" name="upload" frameborder="0"></iframe></td>
                    </tr>
                    <tr>
                      <td height="25"></td>
                      <td><a onclick="img_info()" class="button">增加</a></td>
                    </tr>

说明:

这里的三个表单是新图片集格式的三个参数,用来组成新的图片集.

5.注意点

以上教程只作为新站或新模块使用

如已有数据,不建议使用.

前台调用的方法,其实通过一个函数来进行输出比较好.可以自行修改.

 

(PHP)JTBC3.0_C远程图片本地化教程

(PHP)JTBC网站内容管理系统目前已经更新到v3.0.1.7版,作为网站开发框架,核心技术已经稳定可用。

JTBC官网: https://www.jtbc.cn/

影子作为JTBC的钻石会员,第一时间针对性的制作了远程图片本地化教程。

因近期在筹建JTBC教程网,后期还要长期投入大量资金,在域名和服务器上希望可以实现众筹的形式来解决。

JTBC教程网: https://www.jtbc.com.cn/

因目前无法提供回馈的内容。

所以选择开发JTBC的一些功能,用来收取一定费用。来支撑JTBC教程网的建设。

本次推出的为远程图片本地化教程。收费50元。

淘宝购买:https://item.taobao.com/item.htm?id=592755783412

或者在本文下方扫描二维码用微信或支付宝支付费用,然后联系客服获取远程图片本地化教程

客服联系方式

QQ: 858512104 QQ: 925474725 微信: shadoweb

(PHP)JTBC1.0版网站地图Sitemap插件

上传到插件文件夹即可直接使用

后台可以配置管理生成的模块内容

可选是否生成分类数据

保存生成的sitemap.xml文件位置可以设置

生成的sitemap.xml文件为标准的百度地图sitemap格式.

生成的sitemap.xml文件演示数据查看: http://www.wdja.cn/sitemap.xml

下载地址:https://wdjacms.pipipan.com/fs/16922972-322388650

后台图片

说明:图片是最新的功能,下载的配置少了一些.但功能上还是一样的.

可以选择更多功能开发.

 

(asp)jtbc1.0调用模块下最新分类文章列表方法

(asp)jtbc1.0调用模块下最新分类文章列表方法

打开commonincfilesmodule.asp
添加函数
//add

Function get_topcid(ByVal strgenre)
Dim trs, tsqlstr
tsqlstr = "select max(sortid) from jtbc_sys_sort where sort_genre='" & strgenre &"' and sort_hidden=0"
Set trs = conn.Execute(tsqlstr)
get_topcid = trs(0)
Set trs = Nothing
End Function

修改函数
Function itransfer(ByVal itype, ByVal itpl, ByVal ivars)
找到
Case "top"
tsqlstr = "select top " & ttopx & " * from " & tdatabase & " where " & tfpre & "hidden=0"
tsqlorder =" order by " & tidfield & " asc"
下面添加
Case "top_cid"
tclass = get_num(get_topcid(tgenre), 0)
tsqlstr = "select top " & ttopx & " * from " & tdatabase & " where " & tfpre & "hidden=0"
tsqlorder =" order by " & tidfield & " desc"

调用实例

{$=itransfer('top_cid', 'anli_img', 'topx=1;tnum=25;rows=2;genre=anli;')}

PHP define() 函数

在用jtbc做站时,遇到一个定义常量,无法获取到值,经过排查,得知,define() 函数未设置case_insensitive参数时,默认是区分大小写的。

定义和用法

define() 函数定义一个常量。

常量类似变量,不同之处在于:

在设定以后,常量的值无法更改
常量名不需要开头的美元符号 ($)
作用域不影响对常量的访问
常量值只能是字符串或数字
语法

define(name,value,case_insensitive)
参数 描述
name 必需。规定常量的名称。
value 必需。规定常量的值。
case_insensitive
可选。规定常量的名称是否对大小写敏感。

若设置为 true,则对大小写不敏感。默认是 false(大小写敏感)。

例子

例子 1

定义一个大小写敏感的常量:

<?php
define("GREETING","Hello world!");
echo constant("GREETING");
?>
输出:

Hello world!
例子 2

定义一个大小写不敏感的常量:

<?php
define("GREETING","Hello world!",TRUE);
echo constant("greeting");
?>
输出:

Hello world!

JTBC网站内容管理系统

JTBC网站内容管理系统是一套可对现有模块进行扩充与克隆的网站系统核心,
采用UTF-8编码,采取 语言/代码/程序 两两分离的技术模式。

JTBC是什么?
JTBC是一个CMS产品,她可以帮助您快速的建立网站应用而不需要太多的专业知识。

使用JTBC需要支付费用吗?
不管您制作的是个人网站,还是公司或者企业网站,又或者是赢利性网站,使用JTBC都是免费的,不收取任何费用。

我为什么要选择JTBC,她有哪些优势?
JTBC的优势主要在于以下几点:

  1. JTBC是开源,免费的,这意味着您使用程序不需要为此支付任何费用。
  2. JTBC是跨平台的,有ASP/PHP/ASP.NET/JAVA四种开发环境,这意味着您只需了解JTBC即可在多环境下开发网站。
  3. JTBC是安全的,自发布以来JTBC暂未出现过任何程序上的重大安全问题,这意味着您不需要再为网站安全而担心。

使用JTBC需要了解哪些专业技术?

  1. 如果做为最终使用用户,则不需要任何的专业技术知识,只需对电脑操作有一定了解,就可以登录网站后台进行日常维护,比如添加新闻,查看客户留言等。
  2. 如果做为网站应用的搭建者,则需要了解一些域名,服务器,FTP上传,数据库连接等知识,将JTBC程序放置到服务器后进行简单的设置后即可使用。
  3. 如果做为网站栏目与视觉的设计者,则需要了解一些HTML与CSS的知识,再对JTBC的使用方法进行一些了解,即可方便的将网站程序修改成自己所希望的样子,如果使用者对程序与数据库也有了解,则更佳。

我以前使用JTBC制作的网站忘记密码了,应该怎么处理?
可以按照所使用的程序版本,下载一份最新的原版程序,然后分别打开老网站的数据库和原版的数据库,将老数据库中的管理员表(admin)删除,将原版数据库中对应的表复制进去即可恢复默认的用户名和密码的状态。

我在后台修改了网站模板,但是为什么不生效?
这个原因是因为JTBC会缓存网站中的模板,可以在后台的系统缓存管理中,删除全部缓存即可生效。

我的一个空间上放置了2份JTBC程序,为什么会相互冲突?
这个原因是因为JTBC使用了高速缓存来存储一些配置以及模板等文件,同时运行2个JTBC会引起高速缓存名称相同,因此才出现冲突的情况,解决的办法是修改其中1个网站程序的参数(appName)使其拥有独立的名称即可。

asp版jtbc中文章或产品模块detail模板的缩略图调用方法

asp版jtbc中文章或产品模块detail模板的缩略图调用方法

因建站需求,需要在jtbc文章详细页显示缩略图,可在jtbc默认的情况下无法调用,现影子通过研究,得出以下方法:

首先找到 articlecommonincfilesmodule_config.asp 文件

在函数 jtbc_cms_module_detail()中
在tmpstr = Replace(tmpstr, "{$topic}", ttpoic)行下面添加

tmpstr = Replace(tmpstr, "{$image}",  htmlencode(get_str(rs(cfname("image")))))
这样在detail模板就可以通过{$image} 调用产品缩略图了。