fecshop小部件,不同于fecshop的小部件,fecshop的小部件是集數(shù)據(jù)庫數(shù)據(jù)與view文件
生成的一個(gè)區(qū)塊,譬如網(wǎng)站側(cè)欄的熱銷產(chǎn)品,做成一個(gè)小部件,可以很方便的
在其他頁面進(jìn)行引入。當(dāng)然,fecshop的head header(頭部),footer(尾部)都是小部件實(shí)現(xiàn)的。
小部件由兩部分組成,動(dòng)態(tài)數(shù)據(jù)提供部分 和 提供html代碼的view部分,共同組合 ,顯示出來小部件。
@fecshop/config/services/Page.php
里面進(jìn)行小部件的配置,示例代碼:
'widget' => [
'class' => 'fecshop\services\page\Widget',
'widgetConfig' => [
'head' => [
# 動(dòng)態(tài)數(shù)據(jù)提供部分
'class' => 'fecshop\app\appfront\widgets\Head',
# 根據(jù)多模板的優(yōu)先級(jí),依次去模板找查找該文件,直到找到這個(gè)文件。
'view' => 'widgets/head.php',
# 緩存
'cache' => [
'enable' => false, # 是否開啟
'timeout' => 4500, # 緩存過期時(shí)間
],
],
'header' => [
'class' => 'fecshop\app\appfront\widgets\Headers',
# 根據(jù)多模板的優(yōu)先級(jí),依次去模板找查找該文件,直到找到這個(gè)文件。
'view' => 'widgets/header.php',
'cache' => [
'enable' => false,
'timeout' => 4500,
],
],
'topsearch' => [
'view' => 'widgets/topsearch.php',
],
譬如header小部件,數(shù)據(jù)提供部分為:@fecshop\app\appfront\widgets\Headers.php
,
view部分為:@fecshop\app\appfront\theme\base\default\widgets\header.php
。
其中,head header都是一個(gè)小部件,里面的class是動(dòng)態(tài)數(shù)據(jù)提供部分, view是顯示部分,cache是緩存,您可以通過該配置將緩存打開,以及設(shè)置緩存的超時(shí)時(shí)間。
小部件的view部分遵循fecshop的多模板機(jī)制,可以在二開theme路徑下添加 相應(yīng)文件實(shí)現(xiàn)view部分的重寫,可以通過classMap機(jī)制進(jìn)行動(dòng)態(tài)數(shù)據(jù)提供class文件 的重寫。
<?= Yii::$service->page->widget->render('header',$this); ?>
上面?zhèn)鞯牡?code>$this,在view文件中對應(yīng)的變量為:$parentThis
,舉例子可以參看head小部件
<?= Yii::$service->page->widget->render('head',$this); ?>
<?php $parentThis->head() ?>
$parentThis
就是render()
函數(shù)調(diào)用傳入的$this
變量。
更多建議: