>  기사  >  php教程  >  phpcms V9 2차 개발------(클릭수에 대한 자세한 설명)

phpcms V9 2차 개발------(클릭수에 대한 자세한 설명)

WBOY
WBOY원래의
2016-10-22 00:00:071412검색

phpcms V9에서 클릭 사용에 관해서는 인터넷에서 검색한 코드에 대한 직접 호출이 많을 것입니다. 그러나 깊이 있게 연구하고 개발하려는 일부 사람들은 코드를 보고 더 혼란스러워합니다. 인터넷에서 며칠 동안 읽은 후 배운 내용을 여기에 적어서 공유하겠습니다.

pc_base::load_model(‘*<span style="color: #000000;">_model’) 加载数据库模型 
pc_base::load_sys_class(‘classname’) 实例化系统类
pc_base::load_app_class(‘classname’,’admin’) 实例化模块类
pc_base::load_sys_func (‘funcfile’) 调用系统函数库</span>
위는 모델을 호출하고 객체를 인스턴스화하는 4가지 방법입니다
pc_base::load_model('*_model')은 루트 디렉터리 phpcmsmodel
pc_base::load_sys_class('classname') 루트 디렉토리 phpcmslibsclasses 에서 파일을 로드하는 것에 해당합니다
pc_base::load_app_class('classname','admin') 에 해당 루트 디렉터리 phpcmsmodulesadminclasses
아래에 파일을 로드합니다.
pc_base::load_sys_func ('funcfile') 로드 루트 디렉토리 phpcmslibsfunctions에 해당
다음은 클릭수 획득 예시입니다
<span style="color: #008080;">1</span> {pc:content action=<span style="color: #800000;">"</span><span style="color: #800000;">lists</span><span style="color: #800000;">"</span> catid=<span style="color: #800000;">"</span><span style="color: #800000;">$catid</span><span style="color: #800000;">"</span> num=<span style="color: #800000;">"</span><span style="color: #800000;">25</span><span style="color: #800000;">"</span> order=<span style="color: #800000;">"</span><span style="color: #800000;">id DESC</span><span style="color: #800000;">"</span> page=<span style="color: #800000;">"</span><span style="color: #800000;">$page</span><span style="color: #800000;">"</span> moreinfo=<span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;">}
</span><span style="color: #008080;">2</span> <span style="color: #000000;">{loop $data $r}
</span><span style="color: #008080;">3</span> {php $db = pc_base::load_model(<span style="color: #800000;">'</span><span style="color: #800000;">hits_model</span><span style="color: #800000;">'</span>);   $_r = $db->get_one(array(<span style="color: #800000;">'</span><span style="color: #800000;">hitsid</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">c-</span><span style="color: #800000;">'</span>.$modelid.<span style="color: #800000;">'</span><span style="color: #800000;">-</span><span style="color: #800000;">'</span>.$r[id])); $views =<span style="color: #000000;"> $_r[views]; }
</span><span style="color: #008080;">4</span> {php $comment_tag = pc_base::load_app_class(<span style="color: #800000;">"</span><span style="color: #800000;">comment_tag</span><span style="color: #800000;">"</span>, <span style="color: #800000;">"</span><span style="color: #800000;">comment</span><span style="color: #800000;">"</span>); $comment_total = $comment_tag->count(array(<span style="color: #800000;">'</span><span style="color: #800000;">commentid</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">content_</span><span style="color: #800000;">'</span>.$catid.<span style="color: #800000;">'</span><span style="color: #800000;">-</span><span style="color: #800000;">'</span>.$r[id].<span style="color: #800000;">'</span><span style="color: #800000;">-</span><span style="color: #800000;">'</span><span style="color: #000000;">.$modelid));}
</span><span style="color: #008080;">5</span> 25edfb22a4f469ecb59f1190150159c68e9e4758c679b6e9bd5f5bbbcabab88d{date(<span style="color: #800000;">'</span><span style="color: #800000;">Y-m-d H:i:s</span><span style="color: #800000;">'</span>,$r[inputtime])}54bdf357c58b8a65c66d7c19c8e4d114·fb05272ad2051abb3b2706d75eb515df{$r[title]}5db79b134e9f6b82c0b36e0489ee08ed 点击:{$views} 评论数:{<span style="color: #0000ff;">if</span> $comment_total}{$comment_total}{<span style="color: #0000ff;">else</span>}<span style="color: #800080;">0</span>{/<span style="color: #0000ff;">if</span>}bed06894275b65c1ab86501b08a632eb{/<span style="color: #000000;">loop}
</span><span style="color: #008080;">6</span> <span style="color: #000000;">{$pages}
</span><span style="color: #008080;">7</span> {/pc}

세 번째 줄은 클릭수 획득 방법을 별도로 설명하겠습니다.

$db = pc_base::load_model('hits_model')  

인스턴스화된 객체는 $db이고, 인스턴스화된 클래스 hit_model이 로드됩니다. 이 클래스의 위치는 루트 디렉터리인 phpcmsmodelhit_model.class.php 파일에 있습니다.

<span style="color: #0000ff;">class</span><span style="color: #000000;"> hits_model extends model {
    </span><span style="color: #0000ff;">public</span> $table_name = <span style="color: #800000;">''</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> function __construct() {
        $</span><span style="color: #0000ff;">this</span>->db_config = pc_base::load_config(<span style="color: #800000;">'</span><span style="color: #800000;">database</span><span style="color: #800000;">'</span><span style="color: #000000;">);
        $</span><span style="color: #0000ff;">this</span>->db_setting = <span style="color: #800000;">'</span><span style="color: #800000;">default</span><span style="color: #800000;">'</span><span style="color: #000000;">;
        $</span><span style="color: #0000ff;">this</span>->table_name = <span style="color: #800000;">'</span><span style="color: #800000;">hits</span><span style="color: #800000;">'</span><span style="color: #000000;">;
        parent::__construct();
    }
}</span>
이 클래스 파일 로드는 모델 클래스 파일과 내부 메소드를 상속하므로 아래에서 get_one() 메소드가 호출됩니다.
$_r = $db->get_one(배열('hitsid'=> ;'c-'.$modelid.'-'.$r[id])) $db 객체에서 get_one 메소드를 호출합니다. 이 메소드는 Hits_model이 상속한 모델 클래스에 있습니다. 코드는 다음과 같습니다.
final <span style="color: #0000ff;">public</span> function get_one($<span style="color: #0000ff;">where</span> = <span style="color: #800000;">''</span>, $data = <span style="color: #800000;">'</span><span style="color: #800000;">*</span><span style="color: #800000;">'</span>, $order = <span style="color: #800000;">''</span>, $group = <span style="color: #800000;">''</span><span style="color: #000000;">) {
        </span><span style="color: #0000ff;">if</span> (is_array($<span style="color: #0000ff;">where</span>)) $<span style="color: #0000ff;">where</span> = $<span style="color: #0000ff;">this</span>->sqls($<span style="color: #0000ff;">where</span><span style="color: #000000;">);
        </span><span style="color: #0000ff;">return</span> $<span style="color: #0000ff;">this</span>->db->get_one($data, $<span style="color: #0000ff;">this</span>->table_name, $<span style="color: #0000ff;">where</span><span style="color: #000000;">, $order, $group);
    }</span>
get_one(arr(
'hitsid'

=>'c-'.$modelid.'-'.$r[id])) 메소드에 전달된 배열은 v9_hits 데이터 테이블의 필드 값입니다. 히트 테이블의 구조는 다음과 같습니다

이때 $_r은 테이블의 데이터 조각입니다. 데이터 테이블의 필드 조회수는 이 기사에 대한 클릭수이므로 클릭수는 $_r[views]를 사용하여 구하세요! ! !

참고: hitsid 필드 데이터 c-1-2에서 1은 현재 모델 ID를 나타내고 2는 현재 기사의 ID를 나타냅니다.

 

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.