發表文章

目前顯示的是 二月, 2017的文章

於Xoops2.58佈景中新增加【頁尾左區塊】,【頁尾中區塊】,【頁尾右區塊】功能的方法。

圖片
Xoops2.58版佈景功能新增加了【頁尾左】,【頁尾中】,【頁尾右】的區塊功能,

所以除了原本的區塊外,目前共有11個區塊可以增加,但原本的Xoops佈景只有8個區塊的配置,現在要再增加這三個區塊,所以需要增加以下的語法及檔案設定,方法如下。

1、於佈景檔的theme.tpl(或是theme.html)中的id="footerbar"區塊的前面貼上以下的smarty語法。
<{if $xoBlocks.footer_left || $xoBlocks.footer_right || $xoBlocks.footer_center}> <table> <tr> <{if $xoBlocks.footer_left}> <td id="footerLeft"> <{foreach from=$xoBlocks.footer_left item=block}> <{include file="$theme_name/theme_blockfooter.tpl" id=blockfooterl}> <{/foreach}> </td> <{/if}> <{if $xoBlocks.footer_center}> <td id="footerCenter"> <{foreach from=$xoBlocks.footer_center item=block}> <{include file="$theme_name/theme_blockfooter.tpl" id=blockfooterc}> …

用php取得youtube內建的影片縮圖方法!!

現在很多網站都喜歡在網站首頁上崁入youtube影片播放,但是如果影片太多,網站開啟速度就會變慢,最好的方法就是放個影片的代表圖然後點了連到網站模組內頁或自訂頁面來播放影片,youtube在建立影片的時候已經很貼心的幫我們做好了各種尺寸的縮圖如下:

範例影片網址
https://www.youtube.com/watch?v=lDK9QqIzhwk

縮圖大小
480*360  影片大圖
http://img.youtube.com/vi/lDK9QqIzhwk/0.jpg

120*90  影片開始小縮圖
http://img.youtube.com/vi/lDK9QqIzhwk/1.jpg

120*90 影片中間小縮圖
http://img.youtube.com/vi/lDK9QqIzhwk/2.jpg

120*90  影片結尾小縮圖
http://img.youtube.com/vi/lDK9QqIzhwk/3.jpg

120*90 影片縮圖
http://img.youtube.com/vi/lDK9QqIzhwk/default.jpg

320*180 影片大圖沒黑邊
http://img.youtube.com/vi/lDK9QqIzhwk/mqdefault.jpg

640*480 影片大圖
http://img.youtube.com/vi/lDK9QqIzhwk/sddefault.jpg

1280*720 影片大圖
http://img.youtube.com/vi/lDK9QqIzhwk/maxresdefault.jpg

其中紅字部分為影片的縮圖編號名稱,與網址後面的編號是一樣的,所以我們只需要擷取網址後面的編號就能用youtube的縮圖了。

假入要開發一個PHP影片播放模組的區塊功能,讓USER點擊影片代表圖進到影片內容頁,可以先吧youtube的影片網址儲存到資料表中,然後在於區塊程式中讀出youtube網址欄位,然後加上以下的 substr();擷取網址後面的編碼(預設值為-11由最後面開始往前擷取11個字元)

<?php

   $youtubelink="youtube網址";
   $youtubeimg = substr($youtubelink, -11);


$youtubeimgok="&l…

解決php-Get傳遞中文變數時接收變亂碼的問題

圖片
使用 Get傳遞中文變數在接收後會出現亂碼,例如傳遞index.php?content=返回首頁的變數,接收變數後變成以下的亂碼


這時候就要用urlencode(“中文”);函式來解決這問題,於傳遞中文字或變數前加上urlencode(),
index.php?content=urlencode(返回首頁) 這樣傳遞變數後再接收就不會出現亂碼了!

其中的返回首頁中文字可以改成變數,吧變數包在urlencode($變數名稱)裡面也是可以的。
教學撰寫 徐嘉裕 Neil Hsu

好用的jquery.datepicker下拉月曆(繁體中文)

圖片
分享一個好用的jquery.datepicker下拉月曆,原本是英文版的,我已經加了繁體中文的設定,所以現在顯的日期是中文介面。






時間格式為yy-mm-dd,也就是顯示2017-2-14,只要在input上加上name='datepicker'就能吧欄位數值直接post到php用 $_POST["datepicker"]接收變數了。




以下為jquery.datepicker月曆的code語法




1、於<head></head>之間加入





<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>

<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>


<script>

$(function() {



$("#datepicker").datepicker({

//可使用下拉式選單 - 月份

changeMonth : true,

//可使用下拉式選單 - 年份

changeYear : true,

//設定 下拉式選單月份 在 年份的後面

showMonthAfterYear : true

});

});

$(function() {

( function( factory ) {

if ( typeof define === "function" && define.amd ) {

// AMD. Register as an anonymous module.

define( [ "../widgets/datepicker" ], factory );

} else {

// B…

伺服器GMT+8時區設置方法(包括虛擬主機)

一般來說伺服器架好之後預設的時區是顯示GMT的,也就是【格林威治】時間,與台灣的時間相差8小時,所以如果使用PHP的 date("Y-m-d H:i:s");函數是會顯示與當前時間差8小時的時間,解決方法如下。
方法1、如果是自己的主機(例如XAMPP),只需要修改PHP中的php.ini這支檔用筆記本打開,搜尋找到以下的設定:
date.timezone =
改成
date.timezone = Asia/Taipei
即可,注意如果檔名前面有;要吧他拿掉,這樣伺服器的時區就會顯示台灣時區了。
方法2、如果是租虛擬主機沒有修改php.ini的權限,那可以在根目錄中加一個.htaccess檔,用筆記本打開貼入以下設定:
php_value date.timezone 'Asia/Taipei'
這樣虛擬主機根目錄中所有網站的時區就會顯示台灣時區了。
方法3、如果虛擬主機不支援php_value date.timezone方法,那只能修改php檔了,可以在每個跟時間有關的date("Y-m-d H:i:s");函數檔頭最頂端加上一段
ini_set('date.timezone','Asia/Taipei');  
這樣這個檔案中所有的date("Y-m-d H:i:s");函數都會顯示台灣時區,但如果有其他檔也有用到date("Y-m-d H:i:s");函數則檔頭都要加上ini_set('date.timezone','Asia/Taipei');  才行。
方法4、如果虛擬主機不支援ini_set();函數,那只能用php的date_default_timezone_set方法,跟ini_set用法一樣,在與時間有關的檔案頂端加上宣告
date_default_timezone_set('Asia/Taipei');
即可,這樣這個檔案中所有的date("Y-m-d H:i:s");函數都會顯示台灣時區,但如果有其他檔也有用到date("Y-m-d H:i:s");函數則檔頭都要加上date_default_timezone_set('Asia/Tai…

jQuery用.each()取代for迴圈

今天要幫客戶寫一個自動滑到錨點的jQuery特效功能,共有5個按鈕,所以正常程式寫法是click()寫5次然後帶入按鈕的id及要滑入到錨點的id,但是這樣code又寫的落落長,不利seo優化,才想說用javaScript常用的for迴圈設個$i值<6的時候$i++的寫法,誰知道這方法在jQuery居然不能用,因為所有的數值都會被前面的數值所覆蓋。

例如迴圈本來因該是要帶出#s1,#s2,#s3,#s4,#s5的id數值,但用for迴圈卻只會顯示最後的數值,所以5個id通通都會變成#s5,#s5,#s5,#s5,#s5,沒辦法只好花時間研究一下jQuery用的迴圈方法,找到了.each()方法,經測試後的確是能帶入#s0,#s1,#s2,#s3,#s4的id數值,不會被最後的數值覆蓋到,以下為.each()使用方法範例

   $(".menu").each(function(index) {
  $("#s"+index+"").click(function() {
               $('html,body').animate({scrollTop:$("#section"+index+"").offset().top}, "show");
               return false;
           });  

   }); 其中紅色字的index就是for迴圈$i值的意思, each()會自動去解析在頁面中全部的class="menu"共有幾個,由上往下排序帶出數值,如果有5個則 each()就會產生5個迴圈,index數值會從0開始計算產生0,1,2,3,4等數值出來,就可以帶入變數中產生id的編號了。

教學撰寫:徐嘉裕  Neil hsu