0%

[技能檢定]題組一 步驟17 完成標題圖片/動態文字前台功能

前台的功能大多都是讀取資料,然後顯示出來,除了選單功能較複雜外,其他的功能就只是要細心點,別打錯字就可以了。

  • 由於網站標題圖片在前後台都有,要記得兩個檔案都做修改,如果怕忘記,可以把網站標題圖片獨立出來成為一個引入的檔案,使用include的方式來載入,這樣只要改一個檔案就可以前後台都生效。
  • 依題目要求,在 index.php 中對應的位置去讀出資料來。
  • 動態文字的效果需要使用迴圈的方式把文字輸出成一個字串來顯示,記得在資料之間加個空白或逗號來做出區隔。
  • front/home.phpfront/login.phpfront/news.php 都會使用到動態文字廣告,可以考慮把動態文字切出成為一個include檔的來使用。

TITLE-前台網站標題區

網站標題需要的資料為設定為顯示資料的那一筆,圖片的部份會呈現在畫面上,而文字的部份則放在title這個屬性中,當滑鼠停留在圖片上一秒後,文字會顯示出來。

我們的做法是在類別中先取出資料,然後前端再去決定要使用那個欄位的內容,也就是說,取資料的邏輯是寫在類別中的。

/Controller/Title.php

1
2
3
4
5
//show()這個方法會取得title資料表中sh為1的那筆資料
function show(){
return $this->find(['sh'=>1]);
}

index.phpbackend.php

1
2
3
4
5
6
7
8
9
<!--標籤中的title屬性可以在滑鼠停留時顯示,因此這裏放上網站標題替代文字-->
<div id="main">
<!--執行物件中的show()方法,並取出欄位text值-->
<a title="<?=$Title->show()['text'];?>" href="index.php">
<!--指定圖片所在的路徑-->
<div class="ti" style="background:url(&#39;./upload/<?=$Title->show()['img'];?>&#39;);
background-size:cover;"></div>
<!--標題-->
</a>

MARQUEE-前台動態文字廣告區

我們將 front/home.phpfront/news.phpfront/login.php 中的動態文字區塊獨立出來成為一個被引入的檔案。

接著我們在類別中設定跑馬燈文字的方法
/Controller/Ad.php

1
2
3
4
5
6
7
8
function show(){
//取出所有設為顯示的資料
$rows=$this->all(['sh'=>1]);

//利用內建函式array_column(),可以將二維陣列中每個陣列的指定欄位取出成為一個陣列
//再利用join()函式,將字串陣列結合成一個跑馬燈字串
return join("&nbsp;&nbsp;",array_column($rows,'text'));
}
1
2
3
4
<marquee scrolldelay="120" direction="left" style="position:absolute; width:100%; height:40px;">
<!--執行物件中的show()方法,便會得到跑馬燈文字-->
<?=$Ad->show();?>
</marquee>

最後在 front/home.phpfront/news.phpfront/login.php 引入這個跑馬燈檔案

1
2
3
4
5
6
<div class="di"
style="height:540px; border:#999 1px solid; width:53.2%;
margin:2px 0px 0px 0px; float:left; position:relative; left:20px;">
<!--引入跑馬燈檔案-->
<?php include "marquee.php";?>
<div style="height:32px; display:block;"></div>