对某一篇文章,某一种产品等设置访问权限修改教程
 
对某一篇文章,某一种产品等设置访问权限修改教程
    最近失业在家,正好接到朋友公司做网站的项目,其他都弄好了,就差访问权限这一块功能了,查找论坛中
没有此功能的教程,苦于重疾无药,只得自己研究,经过两天查资料奋斗,终于DIY出来了,高兴之余,不敢独
享,拿出来与大家分享!经过实战检验,文章与产品模块可实现对某一种产品访问权限的控制。其他模块的修改
也是一样吧。刚入门一个星期,不是科班,没系统学过代码,不熟悉代码,第一次做教程,对JTBC认识也较浅显
,其中有什么错误希望大家指正,谢谢。资料查阅主要在论坛,特别感谢大象教程中对“关于我们”的修改章节
的启示。感谢!交流QQ:781971540
一、先是想对整个栏目的设置访问权限修改。
(一)整个栏目的访问权限:
1、打开article栏目下面的 index.asp 第一行 与  <%  之间添加:
<!--#include file="../passport/common/api/user.asp"-->
2、然后在下面的 <% 的里面,添加:
Call user_init()
Call isuserlogin("0")
很简单,这样就达到只有登录会员才可以访问的控制了。




二、下面是想对某一篇文章设置访问权限修改,也是本教程的重点与价值所在。
(二)文章模块(article) 等中对某一篇文章或产品访问权限修改(只有会员才可以访问等的权限):

1、在数据库jtbc_article表中增加一项,比如名称为 a_popedom类型为文本,其他默认.
2、修改article后台模板样式(后台修改模板处输入article.tpl.manage)
        add模板适当位置,如标题下面,增加一行:
                    <tr class="green">
                      <td height="25">{$=itake('manage.popedom','lng')}</td>
                      <td>{$=sel_usergroup("popedom", "checkbox", "")}</td>
                    </tr>
        edit模板适当位置,如标题下面,增加一行:
                    <tr class="green">
                      <td height="25">{$=itake('manage.popedom','lng')}</td>
                      <td>{$=sel_usergroup("popedom", "checkbox", "{$popedom}")}</td>
      </tr>
3、在article文件夹中,修改\article\common\incfiles\manage_config.asp,
      在Sub jtb_cms_admin_manage_adddisp()部分添加一行:

    rs(cfname("popedom")) = left_intercept(format_checkbox(get_str(request.Form("popedom"))), 50)
      在Sub jtb_cms_admin_manage_editdisp()部分添加一行:
    rs(cfname("popedom")) = left_intercept(format_checkbox(get_str(request.Form("popedom"))), 50)

                   
4、在\article\common\incfiles\module_config.asp中的
<%
'****************************************************
' Jetiben CMS Power by Jetiben.com
' Email: jetiben@hotmail.com
' Web: http://www.jetiben.com/
'****************************************************
在这里加入下面一段判断语句代码

Function pp_check_popedom(ByVal strpopedom)
  Dim tstrpopedom: tstrpopedom = get_str(strpopedom)
  If check_null(tstrpopedom) Then
    pp_check_popedom = true
  Else
    Dim tutype: tutype = get_userinfo("utype", nusername)
    If cinstr(tstrpopedom, tutype, ",") Then
      pp_check_popedom = true
    Else
      pp_check_popedom = false
    End If
  End If
End Function

5、在\article\common\incfiles\module_config.asp中的(与上面是同一个文件,已经打开):
Function jtbc_cms_module_detail()
  Dim tid, tmpstr
  tid = get_num(request.querystring("id"),0)
  sqlstr = "select * from " & ndatabase & " where " & nidfield & "=" & tid & " and " & cfname
("hidden") & "=0"
  Set rs = conn.Execute(sqlstr)
  If Not rs.eof Then
    加到这地方
    Dim ttpoic: ttpoic = htmlencode(get_str(rs(cfname("topic"))))
加入代码:
If Not pp_check_popedom(rs(cfname("popedom"))) Then Call imessage(itake("module.popedom", "lng"),
-1)
6、在\article\common\language\manage.jtbc 的
<?xml version="1.0" encoding="utf-8"?>
<xml mode="jtbc" author="jetiben">
  <configure>
    <node>item</node>
    <field>disinfo,chinese</field>
    <base>language_list</base>
  </configure>
  <language_list>
 
    加到这
  </language_list>
</xml>
加入代码:

    <item>
      <disinfo><![CDATA[popedom]]></disinfo>
      <chinese><![CDATA[阅读权限]]></chinese>
    </item>
7、在\article\common\language\module.jtbc 的
<?xml version="1.0" encoding="utf-8"?>
<xml mode="jtbc" author="jetiben">
  <configure>
    <node>item</node>
    <field>disinfo,chinese</field>
    <base>language_list</base>
  </configure>
  <language_list>
 
    加到这
  </language_list>
</xml>
加入代码:

    <item>
      <disinfo><![CDATA[popedom]]></disinfo>
      <chinese><![CDATA[抱歉,您并没有阅读此文的权限]]></chinese>
    </item>
8、在\article\index.asp中
(1)在 index.asp 第一行 与  <%  之间添加:
<!--#include file="../passport/common/api/user.asp"-->
(2)然后在下面的 <% 的里面,添加:
Call user_init()
9、在\article\manage.asp中
在 manage.asp 第一行 与  <%  之间添加:
<!--#include file="../passport/common/api/user.asp"-->

按照上面的方法做完所有修改就可以了。