成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 網(wǎng)站建設(shè) > 建站知識(shí) > 淺談dedecms模板引擎工作原理及自定義標(biāo)簽

淺談dedecms模板引擎工作原理及自定義標(biāo)簽

POST TIME:2017-11-13 00:00

理解織夢(mèng)模板引擎有什么意義?一方面可以更好地自定義標(biāo)簽。更多在于了解織夢(mèng)系統(tǒng),理解模板引擎是理解織夢(mèng)工作原理的第一步。理解織夢(mèng)會(huì)使我們寫(xiě)php代碼時(shí)更順手,同時(shí)能學(xué)習(xí)一些php代碼的組織方式。

這似乎不是那么簡(jiǎn)單,如果你只想學(xué)習(xí)自定義標(biāo)簽,可以看一下“是否需要自定義標(biāo)簽”和““擴(kuò)展標(biāo)簽””就夠了。

一解析式引擎

如果你還沒(méi)用過(guò)dedecms的標(biāo)簽,先用一下,也可以看一下“dedecms網(wǎng)頁(yè)模板編寫(xiě)”。熟悉一下memberlist這個(gè)標(biāo)簽,下面會(huì)以這個(gè)標(biāo)簽為例。

織夢(mèng)提供的模板分析引擎有解析式和編譯式兩種,由于現(xiàn)在主要使用前者,這里也只討論前者。

先來(lái)寫(xiě)個(gè)模板解析的hello world 程序

***root/test.php 封面php(root指的是根目錄,以下都假設(shè)dedecms被放在了網(wǎng)站的根目錄)

<?php
require_once (dirname(__file__).'/include/common.inc.php');
//利用解析式模板所需的文件
require_once (dirname(__file__).'/include/dedetag.class.php');
//生成解析模板引擎類(lèi)對(duì)象
$dtp=new DedeTagParse();
//設(shè)置命名空間,由于下面的標(biāo)簽用tianya命名空間,所以要設(shè)置一下。
$dtp->SetNameSpace('tianya');
$dtp->LoadTemplate(dirname(__file__).'\test.tpl.htm ');
//把標(biāo)簽替換成具體的值
foreach ($dtp->CTags as $id=>$tag)
{
if($tag->GetName()=='my')
//把id為$id的tag翻譯成這是my標(biāo)簽<br/>
$dtp->Assign($id,'這是my標(biāo)簽<br/>');
else if($tag->GetName()=='test')
$dtp->Assign($id,'這是test標(biāo)簽<br/>');
}
//把解析好的html文本echo出來(lái)
$dtp->Display();
?>


***root/test.tpl.htm 網(wǎng)頁(yè)模板

    {tianya:my att1=1 att2='2'}
        [field:my/]
    {/tianya:my}
    {tianya:test att1=1 att2='2'}
        [field:test/]
    {/tianya:test}


執(zhí)行root/test.php就能查看結(jié)果

由上面的例子可以看出解析式模板運(yùn)作的套路

1php文件調(diào)用網(wǎng)頁(yè)模板,并顯示。

2htm文件提供網(wǎng)頁(yè)的大體框架,等待數(shù)據(jù)來(lái)完善網(wǎng)頁(yè)的具體內(nèi)容,稱(chēng)為網(wǎng)頁(yè)模板。

上面的代碼就是把第一個(gè)標(biāo)簽(my標(biāo)簽)顯示為這是my標(biāo)簽<br/>;第二個(gè)標(biāo)簽顯示為這是test標(biāo)簽<br/>。

上面的代碼是怎么辦妥的

更改***root/test.php如下

<?php
require_once (dirname(__file__).'/include/common.inc.php');
//利用解析式模板所需的文件
require_once (dirname(__file__).'/include/dedetag.class.php');
$dtp=new DedeTagParse();
//設(shè)置命名空間,由于下面的標(biāo)簽用tianya命名空間,所以要設(shè)置一下。
$dtp->SetNameSpace('tianya');
$dtp->LoadTemplate(dirname(__file__).'\test.tpl.htm ');
var_dump($dtp); //這是查看解析結(jié)果的重要方法
?>

***root/test.tpl.htm 網(wǎng)頁(yè)模板

    {tianya:my att1=1 att2='2'}
        [field:my/]
    {/tianya:my}
    {tianya:test att1=1 att2='2'}
        [field:test/]
    {/tianya:test}

可以看到$dtp對(duì)象的內(nèi)部結(jié)構(gòu),其中有一個(gè)DedeTag類(lèi)的數(shù)組CTags,DedeTag類(lèi)的定義見(jiàn)root/include/ dedetag.class.php。最好不要直接用DedeTag類(lèi)的字段,而用DedeTag提供的函數(shù)。比如用tag1->GetName()而不是用tag1->TagName?;ㄒ恍《螘r(shí)間就能把DedeTag類(lèi)看完,這些語(yǔ)法在以后自定義標(biāo)簽時(shí)會(huì)有用。

再看一個(gè)例子,***root/test.php

<?php
require_once (dirname(__file__).'/include/common.inc.php');
require_once (dirname(__file__).'/include/dedetag.class.php');
function lib_my($att1,$att2)
{
return '這是my標(biāo)簽<br/>屬性值'.$att1.$att2.'<br/>';
}
$dtp=new DedeTagParse();
$dtp->SetNameSpace('tianya');
$dtp->LoadTemplate(dirname(__file__).'\test.tpl.htm');
foreach ($dtp->CTags as $id=>$tag)
{
if($tag->GetName()=='my')
$dtp->Assign($id , lib_my($tag->GetAtt('att1'),$tag->GetAtt('att2')));
}
$dtp->Display();
?>


***root/test.htm 網(wǎng)頁(yè)模板

    {tianya:my att1=1 att2='2'}
        [field:my/]
    {/tianya:my}
    {tianya:test att1=1 att2='2'}
        [field:test/]
    {/tianya:test}

會(huì)發(fā)現(xiàn)模板解析中有四種“勢(shì)力”

在include/ DedeTagParse.class.php中定義的解析引擎類(lèi),負(fù)責(zé)讀取模板,把其中的dedecms標(biāo)簽替換成具體html文本。DedeTagParse、SetNameSpace、LoadTemplate就是類(lèi)里面的方法。

標(biāo)簽翻譯需要一些轉(zhuǎn)換規(guī)則,lib_my就是這一類(lèi)根據(jù)標(biāo)簽的屬性和具體數(shù)據(jù)得出html。

待顯示的php創(chuàng)建編譯引擎類(lèi)對(duì)象,對(duì)模板進(jìn)行編譯,在Display時(shí),echo出html文件。

htm模板,調(diào)用標(biāo)簽,用html的形式寫(xiě)出動(dòng)態(tài)網(wǎng)頁(yè)的效果,屬于被翻譯的部分。Html模板主要負(fù)責(zé)界面層次,利用封裝好的標(biāo)簽進(jìn)行內(nèi)部處理。

除了這四大勢(shì)力,還有一個(gè)勢(shì)力視圖類(lèi)。include/中以arc開(kāi)頭的文件都是解析引擎的視圖類(lèi)。視圖類(lèi)就是封裝了解析引擎類(lèi)的類(lèi),僅僅加了一些函數(shù)而已。在下載的cms默認(rèn)模板中,root/index.php就用了PartView這個(gè)視圖類(lèi),解析了templets/default/index.htm。五大勢(shì)力的關(guān)系如下圖。

我們現(xiàn)在想象一個(gè)標(biāo)簽如何被解析的。我們知道,一個(gè)xml標(biāo)簽有四個(gè)元素:命名空間(上面的tianya,在dedecms中是dede)、標(biāo)簽名(my)、屬性(att)、InnerText(標(biāo)簽之間的內(nèi)容)。命名空間在SetNameSpace中指明了,標(biāo)簽名由if($tag->GetName()=='my')這一句分配任務(wù),屬性作為函數(shù)參數(shù)使用,就差I(lǐng)nnerText的處理。

再來(lái)看看如何處理底層模板字段([field:my/]等,field是一個(gè)關(guān)鍵字,在實(shí)際應(yīng)用中,常常是數(shù)據(jù)庫(kù)元組中的字段)

***root/test.php

<?php
require_once (dirname(__file__).'/include/common.inc.php');
require_once (dirname(__file__).'/include/dedetag.class.php');
//看完后面的代碼再來(lái)看這個(gè)函數(shù)
function lib_zoo(&$ctag)
{
//還記得剛才$dtp->CTags的結(jié)構(gòu)嗎?這里把$ctag作為參數(shù)傳遞,lib__zoo外面的代碼就不用涉及太多的標(biāo)簽處理了
$reval='這是my標(biāo)簽<br/>屬性值'. $ctag->GetAtt('att1').$ctag->GetAtt('att2').'<br/>';
$innerText = $ctag->GetInnerText();
//底層模板字段的結(jié)構(gòu)都形如[field:XX]這里把它看作以field為命名空間,[]為分隔符的標(biāo)簽。
$dtp=new DedeTagParse();
$dtp->SetNameSpace('field','[',']');
$dtp->LoadSource($innerText);
//不妨把$row想想成從數(shù)據(jù)庫(kù)中讀取出來(lái)的出來(lái)的數(shù)據(jù)
$row[‘name’]= 'Snoopy';
$row[‘animal’]= 'dog';
//把標(biāo)簽替換成具體的值
foreach ($dtp->CTags as $id=>$tag)
{
if($tag->GetName()=='name')
$dtp->Assign($id, $row[‘name’]);
else if($tag->GetName()=='animal')
$dtp->Assign($id, $row[‘animal’]);
}
$reval.=$dtp->GetResult().'<br/>';
return $reval;
}
$dtp=new DedeTagParse();
$dtp->SetNameSpace('tianya');
$dtp->LoadTemplate(dirname(__file__).'\test.htm');
foreach ($dtp->CTags as $id=>$tag)
{
if($tag->GetName()=='zoo')
$dtp->Assign($id, lib_zoo($tag));
}
$dtp->Display();
?>


***root/test.htm

{tianya:zoo att1=1 att2='2'}
     [field:name/] is a [field:animal/]
{/tianya:zoo}

可見(jiàn),解析底層模板和解析標(biāo)簽是一樣的,只不過(guò)把底層模板當(dāng)作是以field為命名空間,‘[’和‘]’為邊界的標(biāo)簽而已。

接著看一下include/taglib/memberlist.lib.php,和lib_zoo很像吧。你是不是突然懂得如何定義標(biāo)簽了,讀memberlist.lib.php里面的代碼,模仿,就能自定義標(biāo)簽了,可參考“擴(kuò)展標(biāo)簽”。所以自定義標(biāo)簽只用在include/taglib里加入XX.lib.php文件,里面定義lib_XX函數(shù)即可。快點(diǎn)去試一試。

***把root/index.php(默認(rèn)模板根目錄中的)里面的

$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);

改成$pv->SetTemplet($cfg_basedir .'/test.htm');

在root/test.htm使用自定義標(biāo)簽吧

是否需要自定義標(biāo)簽

筆者剛學(xué)織夢(mèng)標(biāo)簽時(shí),第一個(gè)感覺(jué)就是之夢(mèng)的標(biāo)簽比較抽象,不夠好用。比如說(shuō)剛才的zoo的問(wèn)題,我就會(huì)定義一個(gè)zoo標(biāo)簽。后來(lái)才發(fā)現(xiàn)應(yīng)該用定義頻道的方法解決,可參考“dedecms中自定義數(shù)據(jù)模型”這篇文章。另外,標(biāo)簽也有一些弱點(diǎn),在開(kāi)發(fā)中會(huì)慢慢體會(huì)到。

上面講了五大勢(shì)力的關(guān)系、一個(gè)標(biāo)簽的解析過(guò)程和如何定義標(biāo)簽,回憶一下看看是否對(duì)標(biāo)簽解析有了六七成的把握。解析式模板的運(yùn)作還有很多細(xì)節(jié),讀源碼是最好的學(xué)習(xí)方法。但有點(diǎn)難度,看自己需要的程度吧,可以跳過(guò)這一段。

***把root/index.php(默認(rèn)模板根目錄中的)里面的

$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);

改成$pv->SetTemplet($cfg_basedir .'/test.htm');

編寫(xiě)root/test.htm

{dede:memberlist row=6 signlen=30} 
<li><a href="[field:spaceurl/]" target="_blank">[field:uname/]</a></li>
{/dede:memberlist}

運(yùn)行index.php

這是怎么辦到的,跟蹤代碼自己想吧(tips:適當(dāng)?shù)豽ar_dump一些變量,還有用一下ctrl+F)。主要看dedetag.class.php這個(gè)文件,是織夢(mèng)的核心文件,還是該看一看的。

過(guò)程大概是這樣的:new PartView()(include/ arc.partview.class中)調(diào)用了DedeTagParse(),SetNameSpace ()做了一些初始化工作。LoadTemplate() 一方面讀取網(wǎng)頁(yè)模板代碼,另一方面調(diào)用ParseTemplet()把網(wǎng)頁(yè)模板分解標(biāo)簽,屬性,底層模板等,得到$pv->CTags。

Display()調(diào)用echo GetResult()的結(jié)果。GetResult()就是由分解好的標(biāo)簽,屬性,底層模板等算出結(jié)果html。由于dedecms標(biāo)記滿足樹(shù)形的語(yǔ)法規(guī)則(像html一樣),所以,計(jì)算標(biāo)簽是一個(gè)遍歷樹(shù)的過(guò)程。至于每個(gè)標(biāo)簽的值的計(jì)算,就調(diào)用了AssignSysTag(),它處理了global等標(biāo)記。對(duì)于自定義標(biāo)記,通過(guò)調(diào)用IncludeFile處理,這個(gè)函數(shù)又通過(guò)了復(fù)雜的調(diào)用,最后調(diào)用了include\helpers\channelunit.helper中的MakeOneTag()的函數(shù)。

自己整理一下吧!

解析與網(wǎng)頁(yè)的上下文

后面的部分是我在寫(xiě)完“關(guān)于網(wǎng)頁(yè)模板”后補(bǔ)上的,涉及到封面模板、列表模板和文檔模板,不了解的讀者可以先看看那篇文章。

通過(guò)鏈接,網(wǎng)頁(yè)可以在封面頁(yè)、列表頁(yè)和文檔頁(yè)間跳轉(zhuǎn),那怎么樣在頁(yè)面中傳遞信息呢?可以用get方式。由于系統(tǒng)有生成功能,它會(huì)把解析的結(jié)果生成純的html頁(yè)面,不太容易看清解析的過(guò)程。不妨先不用生成功能,如在后臺(tái)添加一篇文章,在發(fā)布選項(xiàng)處選“僅動(dòng)態(tài)瀏覽”,之后保存,預(yù)覽??吹降刂窓趦?nèi)容形如http://localhost/plus/view.php?aid=114。

不妨細(xì)細(xì)研究這個(gè)超鏈接,首先是aid=114。aid指article id,是文章的編號(hào)。通過(guò)給出這個(gè)編號(hào),通過(guò)XXX處理,就能得出文章的所有信息,再加上文檔模板(就像一個(gè)格式),就能的出具體的html文檔頁(yè)。類(lèi)似地,還有tid(type id,欄目號(hào))、cid(channel id,頻道/模型號(hào))或其他。這是在上下文間傳遞的信息。

  之后說(shuō)說(shuō)plus/view.php。打開(kāi)該文件,發(fā)現(xiàn)里面用aid為參數(shù),創(chuàng)建了一個(gè)視圖類(lèi)Archives的對(duì)象(在include/arc.archives.class中定義),并調(diào)用Display函數(shù)顯示。這和根目錄/index.php用partview視圖類(lèi)對(duì)象來(lái)解析模板的道理是一樣的,不過(guò)這里多附加了aid表示具體的文章(而index中的東西是通用的,不用附加上下文)。也就是說(shuō),解析封面模板、列表模板和文檔模板都有建立解析引擎對(duì)象。

  另外,鏈接中對(duì)應(yīng)php文件不一定是plus/view.php,顯示文檔可用plus/view.php;顯示列表可用plus/list.php。我猜測(cè)之所以會(huì)有文檔模板和列表模板差異就是來(lái)自于不同的視圖類(lèi)。

  之后,若在文章的發(fā)布選項(xiàng)處選“生成html”,就是調(diào)用視圖類(lèi)的SaveToHtml函數(shù)。得到的文章鏈接形如http://localhost/a/webbase/javascript-ajax/2010/0409/114.html。




上一篇:dedecms標(biāo)簽調(diào)用大全

下一篇:織夢(mèng)dedecms多語(yǔ)言網(wǎng)站的制作

收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
国产剧情麻豆剧果冻传媒视频免费| 精品成人乱色一区二区| www.久久久久久久| 久久久久久久久久久久电影| 最新在线你懂的| 久久久久久蜜桃一区二区| 天天躁日日躁成人字幕aⅴ| 国产人妻大战黑人20p| 在线视频亚洲欧美| 国产精品男女猛烈高潮激情| 一区二区三区美女| 亚洲砖区区免费| 亚洲欧美中文日韩在线| 国产又大又长又粗又黄| 欧美大胆视频| 热久久一区二区| 啊v在线视频| www.亚洲一区二区| 中文字幕97| 日韩一区二区三区四区在线| 欧美肥老太太性生活| 51精品国自产在线| 九色蝌蚪av新入口| 国产白嫩美女无套久久| 精品在线观看一区| 中文人妻熟女乱又乱精品| 九色91av视频| 亚洲成av人片在线观看| 欧美激情一级二级三级在线视频| 91精品国产色综合久久不卡蜜臀| 亚洲图片欧美激情| 欧美xxxx综合视频| 天堂av在线一区| 亚洲成在人线免费观看| 欧美黄色小视频| 国内不卡的一区二区三区中文字幕| 成人精品美女隐私视频| 444亚洲人体| 三级在线免费观看| 欧美深夜福利视频| 美女福利视频在线| 97在线观看视频国产| 91精品中文字幕| 九九热在线免费视频| 97视频一区| 日韩写真福利视频在线| 成人av影院在线| 欧美综合77777色婷婷| 91嫩草亚洲精品| 午夜黄色小视频| 欧美精品欧美极品欧美激情| 天天干天天爽天天射| 91在线精品一区二区三区| 日韩小视频网站| 伊人免费视频二| 国产精品第72页| 日韩欧美一级在线播放| 精品一卡二卡三卡四卡日本乱码| 在线成人福利| 国产毛片欧美毛片久久久| 日产精品一区二区| 久久一区二区三区视频| www视频网站| 午夜不卡久久精品无码免费| 超碰cao国产精品一区二区| 精一区二区三区| 欧美色女视频| 91浏览器在线视频| 日本精品一二三| 国产精品盗摄久久久| 老牛精品亚洲成av人片| 51久久夜色精品国产麻豆| 老司机精品视频在线| 日韩视频第二页| 蜜桃在线一区二区三区精品| 国产精品99久久久久久www| 五十路亲子中出在线观看| 国产欧美在线观看一区| 欧美va亚洲va在线观看蝴蝶网| 精品人妻无码一区| 蜜桃av噜噜一区| 亚洲精品一区二区三区在线观看| 国产无套丰满白嫩对白| 香蕉久久国产av一区二区| 999在线观看免费大全电视剧| 好色先生视频污| 91精品国产福利尤物| 欧美日韩精品二区第二页| 99久久精品国产麻豆演员表| 午夜啪啪小视频| 最近中文字幕2019第二页视频| 精品国产欧美日韩| 性色av一区二区咪爱| 伊人无码高清| 亚洲免费视频网| 伊人影院在线视频| 蜜臀av免费一区二区三区| 北条麻妃国产九九九精品小说| 国产成人tv| 国产一区在线视频| av片在线免费| 久久久久久久久99| 激情欧美成人久久综合小说| 偷拍一区二区三区| 国产成人啪精品视频免费网| 欧美成人禁片在线观看网址| 伊人久久久久久久久| 日韩女优毛片在线| 国产综合色视频| 91精品国产高清一区二区三区| 国产精品亚洲自拍| 亚洲成人影院少妇| xx欧美视频| 天天操综合网| 黄网站免费观看| 18禁网站免费无遮挡无码中文| 日本亚洲欧美| 日本国产一级片| 波多野结衣高清视频| 你懂的免费在线观看| 黄污视频在线看| 黄色高清无遮挡| 欧美日韩免费高清一区色橹橹| 奇米影视四色在线| 18黄暴禁片在线观看| 欧美一级电影免费在线观看| 亚洲国产无线乱码在线观看| 无码aⅴ精品一区二区三区| 波多野结衣av一区二区全免费观看| 国产精品乱码一区二区视频| 成人3d动漫一区二区三区| 91久久精品www人人做人人爽| 成年人小视频网站| 成人免费乱码大片a毛片软件| 亚洲欧洲日韩精品在线| 亚州色图欧美色图| 91尤物国产福利在线观看| 久久人人爽爽爽人久久久| 亚洲一区在线免费观看| 瑟瑟视频在线| 国产亚洲精品久久久久久青梅| 国产手机在线观看| 波多野结衣乳巨码无在线观看| 欧美激情久久久久久久| 久久久久久一级片| 中文在线手机av| 精油按摩中文字幕久久| 亚洲天堂开心观看| 极品裸体白嫩激情啪啪国产精品| 欧美福利一区二区三区| 超碰97在线免费观看| 蜜桃视频在线观看网站| 成人交换视频| 精品少妇爆乳无码av无码专区| 欧美精品激情在线| 户外极限露出调教在线视频| 91在线免费视频| 日精品一区二区三区| 欧美成人免费电影| 国产美女久久精品| 国产视频网站一区二区三区| 国产精品77777| 在线欧美激情| 狠狠操精品视频| 国产亚洲毛片在线| 久久久久人妻精品一区三寸| 18禁免费观看网站| 国产精品一区二区在线观看不卡| 俄罗斯女人裸体性做爰| 三级网站在线免费观看| 天天操夜夜欢| 亚洲欧美日韩综合国产aⅴ| 亚洲免费成人在线视频| 国产99久久九九精品无码| 欧美日韩综合在线观看| 污污网站免费观看| 精品欧美日韩一区二区| 99久精品视频在线观看视频| 欧美精品一区二区三区在线看午夜| 亚洲国产欧美在线人成| 久久精品亚洲一区二区三区浴池| 在线观看国产精品淫| 成人区人妻精品一区二| 肉色超薄丝袜脚交一区二区| 亚洲精品国产综合区久久久久久久| 九九热爱视频精品视频高清| 国产精品一卡二| 日韩欧美电影在线观看| 亚洲娇小xxxx欧美娇小| 欧美少妇网站| 亚洲电影在线一区二区三区| 在线播放免费av| 欧美顶级大胆免费视频| 国产精品久久精品牛牛影视| 成人高h视频在线| 欧美亚洲视频一区| 亚洲欧美电影| 精品中文字幕在线观看| 国产成人精品一区二区色戒| 国产精品秘入口18禁麻豆免会员| 欧美精选视频在线观看| 天堂精品在线视频| 天堂成人国产精品一区| 日韩精品一区二区三区在线播放| 夜夜摸视频网| 欧美激情在线播放| 日韩精品久久| 制服国产精品| 久久99精品久久久久久青青日本| 日韩一区二区三区在线| 日韩欧美视频免费观看| 少妇免费毛片久久久久久久久| 日韩一区二区精品葵司在线| 日本不卡一区二区三区四区| 美女脱光内衣内裤视频久久网站| 一区二区三区高清不卡| 男人用嘴添女人下身免费视频| 亚洲欧美久久精品| 欧美中文字幕亚洲一区二区va在线| 美女视频免费观看网站在线| 国产精品久久久久久久久久久久久| 日本黄色一区| 国产99久久久久久免费看农村| 久久在线精品| 国产毛片毛片毛片毛片毛片| 黄色手机在线视频| 五月激情婷婷网| 日韩免费电影一区二区| 日韩一区二区三区免费观看| 视频91a欧美| 亚洲一级理论片| 黑人玩欧美人三根一起进| 色婷婷综合久久久| 亚洲av无码一区二区二三区| www.avtt| 国产亚洲精品va在线观看| 亚洲在线一区| 精品视频一区二区| 免费中文字幕日韩欧美| 欧美13一16娇小xxxx| 免费在线观看国产精品| 搡老熟女老女人一区二区| 亚洲精品大尺度| 亚欧成人精品| 日韩av网址在线观看| 久久久久久免费| 神马香蕉久久| 日韩欧美一二三四区| 午夜亚洲国产au精品一区二区| 国产成人一区二区精品非洲| 黑人极品ⅴideos精品欧美棵| 女~淫辱の触手3d动漫| 久久视频免费看| 九色精品视频在线观看| 五月婷婷一区| wwwww在线观看| 欧美成人免费播放| 一级二级在线观看| 欧美日韩在线另类| 国产又粗又大又黄| 国产黄a三级三级看三级| 人狥杂交一区欧美二区| 国产欧美一区二区精品久导航| 成人动漫视频在线观看免费| 国产精品乱码一区二区视频| 中文字幕制服丝袜成人av| 日本在线视频中文有码| 国产精品一区二区三区四| 国产在线免费视频| 国产伦精品一区二区三区在线播放| 日本黄色激情视频| 欧美卡1卡2卡| 小视频福利在线| 色88888久久久久久影院| 亚洲男女在线观看| luxu259在线中文字幕| 亚洲成人第一| 欧美日韩精品一本二本三本| 国产无套粉嫩白浆内谢的出处| …久久精品99久久香蕉国产| 99国产精品免费视频观看| 久久三级中文| 曰本三级在线| 国产成人av免费观看| 一道精品视频一区二区三区图片| 久久久久久伊人| 亚洲女同精品视频| 久久亚洲一区二区三区明星换脸| 国产精品美女久久久久久久网站| 成人在线一区二区| 一个人看的日本www的免费视频| 337p粉嫩大胆色噜噜噜噜亚洲| 久久久久久一区二区三区四区别墅| 日本黄色电影网站| 在线欧美成人| 天天操天天是| 国内精品久久久久国产盗摄免费观看完整版| 日韩欧美123区| 中文字幕在线一区免费| 一级片aaaa| 国产婷婷一区二区三区| 国产91露脸中文字幕在线| 国产精品高潮呻吟视频| 日韩不卡高清视频| 国产乱子夫妻xx黑人xyx真爽| 夫妇交换中文字幕| 欧美成人小视频| 97在线国产视频| 中文字幕在线观看一区二区三区| 日韩精品1区2区3区| 丁香资源影视免费观看| 一级片a一级片| 亚洲观看黄色网| 无码人妻精品一区二区三应用大全| 成人毛片在线播放| 欧美综合视频在线观看| 亚洲欧美日韩中文在线制服| av免费精品一区二区三区| 777米奇影视第四色| 超级碰碰久久| 狠狠躁夜夜躁人人爽超碰91| 91久久久久久久久久久久久| 久久亚洲午夜电影| 成年女人免费又黄又爽视频| 一色道久久88加勒比一| 一区免费在线| brazzers欧美最新版视频| 性高潮视频在线观看|