<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>mr.mu &#187; PHP程式設計</title> <atom:link href="http://www.mrmu.com.tw/category/webdesign/php%e7%a8%8b%e5%bc%8f%e8%a8%ad%e8%a8%88/feed/" rel="self" type="application/rss+xml" /><link>http://www.mrmu.com.tw</link> <description>WordPress 網站架設、軟體設計、互動介面研究</description> <lastBuildDate>Wed, 08 Feb 2012 08:24:17 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.1.2</generator> <item><title>使用PHP開源類別(TCPDF)製作 UTF-8 的PDF報表</title><link>http://www.mrmu.com.tw/2011/07/25/php-tcpdf-utf-8-pdf-report/</link> <comments>http://www.mrmu.com.tw/2011/07/25/php-tcpdf-utf-8-pdf-report/#comments</comments> <pubDate>Sun, 24 Jul 2011 20:29:19 +0000</pubDate> <dc:creator>mrmu</dc:creator> <category><![CDATA[PHP程式設計]]></category> <category><![CDATA[網站設計]]></category> <category><![CDATA[pdf]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[tcpdf]]></category> <category><![CDATA[報表]]></category><guid
isPermaLink="false">http://www.mrmu.com.tw/?p=1714</guid> <description><![CDATA[最近有PHP專案需要製作報表，決定了輸出使用PDF格式後，便開始尋找解決方案。目前網路上找到的大多是FPDF或是其衍生出來的專案，因為有點急，就直接拿FPDF來做，沒想到是惡夢的開始XD，使用FPDF製作英文內容的FPDF，是沒什麼問題，但如果是中文內容，便問題重重。 試了很多目前現存在網路上號稱支援中文的FPDF，試驗結果不是失敗就是只支援BIG5 (chinese.php檔)，偏偏客戶的中文資料有罕見字，像是媖、煊、堃、珉、彣、伃、峯、晧等字，若用BIG5就會出不來。 試了好幾個小時後宣告放棄FPDF，尋找它表現比較好的子孫，於是找到TCPDF。 TCPDF因為是FPDF的子孫，所以語法幾乎不太需要轉換，而且支援UTF-8，真的是感動哪。不過它最感心的不只是支援UTF-8，它還支援WriteHTML這個超級相見恨晚的函式，故名思義就是只要餵它HTML語法，它就可以忠實轉成PDF內容。 到TCPDF官網下載TCPDF後，解開後可發現裡頭的examples目錄就有很多範例了。做報表最基本的就是頁首、頁尾的設定了，可參考第1~3個範例；另外，第6個範例就是WriteHTML。 基本上它的使用方式很簡單，只要include TCPDF，自建一個class，然後去extend TCPDF類別，接著new出實體，就可以開始Play了： 如上，New出來的$pdf，就可以藉著執行一脫拉庫的方法，一步一步的建立PDF格式的內容，最後再output，這個php檔就會輸出成pdf格式了。 至於輸出UTF-8的中文字，只要使用此語法就OK了： 其他詳細用法，直接copy範例修改會比較快。 參考： TCPDF官網-範例]]></description> <wfw:commentRss>http://www.mrmu.com.tw/2011/07/25/php-tcpdf-utf-8-pdf-report/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>解決 PHP/mySQL 資料庫讀取中文顯示亂碼或問號</title><link>http://www.mrmu.com.tw/2011/01/09/php-mysql-utf8-unicode/</link> <comments>http://www.mrmu.com.tw/2011/01/09/php-mysql-utf8-unicode/#comments</comments> <pubDate>Sun, 09 Jan 2011 07:59:25 +0000</pubDate> <dc:creator>mrmu</dc:creator> <category><![CDATA[PHP程式設計]]></category> <category><![CDATA[網站設計]]></category><guid
isPermaLink="false">http://www.mrmu.com.tw/?p=1438</guid> <description><![CDATA[要搞定 PHP+mySQL 常見的中文亂碼或問號顯示的問題，最高原則就是&#8211;從頭到尾都編成UTF8。 四個編碼設定 我自己的經驗就是確認下述四個地方的編碼設定都是UTF8： mySQL資料表：用phpmyadmin建立資料表時，注意選擇utf8_unicode_ci的編碼 (通常在最下面) 在PHP內寫資料庫存取語法時，在mysql_select_db之前，加上 mysql_query("SET NAMES &#8216;UTF8&#8242;"); 顯示讀出資料庫結果的網頁，也要確認是否有加上 用編輯器開啟網頁編輯的編碼，若不是UTF8，會造成網頁內靜態中文字亂碼，因此請轉換為UTF8 從結果來看問題原因 Q. 從資料庫讀出的中文出現問號？ 如果你進phpmyadmin看資料表內的中文顯示正常，可能是1,3,4你都做了，但2沒做。 Q. 從資料庫讀出的中文及靜態文字都是亂碼？ 如果你進phpmyadmin看資料表內的中文顯示正常，可能是1,2,4你都做了，但3沒做。 Q. 從資料庫讀出的中文出現亂碼？網頁靜態文字是正常？ 如果你進phpmyadmin看資料表內的中文也是亂碼，那應該是你1沒做，有做2；若你不想做1，就別做2。 如果你進phpmyadmin看資料表內的中文顯示正常，那應該是你3,4沒做。 Q. 從資料庫讀出的中文正常了，但網頁靜態文字是亂碼？ 可能是4沒做到。 mySQL 資料表是亂碼，怎麼辦？ 用phpmyadmin查看mySQL資料庫內的中文顯示亂碼 (資料表編碼可能是預設的latin1_swedish_ci，總之是非utf8語系)，通常這種情況，是網頁前台本身沒編好UTF8，就把中文資料以亂碼的方式存入資料表。 這時建議你最好將資料表重建成utf8_unicode編碼，不然日後要用phpmyadmin看資料庫會很痛苦。如果你不打算重建，那在作mysql_select_db之前，就不要加上 mysql_query("SET NAMES &#8216;UTF8&#8242;");，資料庫內的中文資料在網頁顯示應該還是會正常。]]></description> <wfw:commentRss>http://www.mrmu.com.tw/2011/01/09/php-mysql-utf8-unicode/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>Drupal 6多國語言網站設定-使用i18n模組支援多國語系切換</title><link>http://www.mrmu.com.tw/2010/05/15/drupal-6-i18n/</link> <comments>http://www.mrmu.com.tw/2010/05/15/drupal-6-i18n/#comments</comments> <pubDate>Sat, 15 May 2010 10:31:46 +0000</pubDate> <dc:creator>mrmu</dc:creator> <category><![CDATA[Drupal開發]]></category> <category><![CDATA[PHP程式設計]]></category> <category><![CDATA[網站設計]]></category> <category><![CDATA[Drupal]]></category> <category><![CDATA[drupal 6]]></category> <category><![CDATA[drupal 模組]]></category> <category><![CDATA[多國語系]]></category><guid
isPermaLink="false">http://www.mrmu.com.tw/?p=1394</guid> <description><![CDATA[因為Drupal的設定很繁雜，所以很容易有見樹不見林或迷路的感覺，甚至突然不知道自己現在在設定什麼東西XD，或者不知道設定的意義在哪。本文除了作為筆記之用，也順帶註記一些個人覺得也許有用的說明，希望看倌們能比較容易理解。 預設的Drupal網站，有提供基本的「語系」設定及「語系翻譯」功能，可以讓有權限的使用者進入後台，進行設定網站的語系(新增語系、設定本站預設語系…等)，另外也可以匯入/匯出特定語系的翻譯檔，或針對未翻譯完整的語系進行翻譯。預設的語系功能，都是躲在後台玩的，如果要讓一般訪客都能在前台切換語系呢？安裝及設定相關模組就能達成。 安裝 Internationalization 相關模組 要讓Drupal網站前台可以提供多國語系切換的功能，可以安裝 Internationalization 模組 並進行相關設定來完成。本篇的測試環境是使用Drupal 6.16，並已安裝正體中文的翻譯，而且是以正體中文為預設語系。我們就先來介紹這個模組。 Internationalization (又稱 i18n,取internationalization字頭i及字尾n，18表示中間有18個字母) 模組是非常知名的多國語系模組，除了安裝i18n另外再安裝下列相關的推薦模組，就可以有一個基本的多國語系設定環境了： * Language Icons, 可以在節點或區塊的內的語系連結前加上國旗小圖示。 * Translation Overview, 可擁有一個複合的檢視區域，來檢視內容翻譯的狀態。 * Localization Client, 直接看畫面上的字來手動翻譯，方便快速。 安裝完這些模組後，前台不會有什麼變化，因為我們還需要在後台管理頁面進行一些設定，現在我們先啟用這些模組，待會再說明設定的部份(下圖只有部份選項，請勾選想要使用的項目)。 接著要做的事是把想在網站上提供給訪客切換的各國語系都新增並且設定好。要完成這些動作只要設定預設的後台管理項目即可。 設定網站預設的語系項目 預設後台管理項目中，有兩個跟語系相關的項目，分別是： 1.「網站設定 / 語系(language)」： 這裡列出整個網站所有支援的語系，我們可以在這裡面選擇增加語系來加入任一個國家的語系(也能自訂語系)，但加入語系後，它裡面的翻譯是空的，必須透過「網站建置 / 翻譯語系」來加入該語系的翻譯資料，接著就來談談這個頁面。 2.「網站建置 / 翻譯語系(translate)」：故名思義就是翻譯各語系在drupal網站介面上的文字，這些文字跟網站上的內容沒有太大關係，純粹是一些管理項目、預設標題、模組介面文字等，這裡可以針對目前網站已增加的語系，來進行翻譯。而這裡也提供匯入/匯出 PO檔，與搜尋的功能－可過濾出未翻譯好的文字，讓我們可以自行翻譯 (正體中文與簡體中文的翻譯包連結在此 http://drupal.org/project/translations?text=chinese)。 現在我們先把網站想支援的語系都新增進來，並且找到各語系的翻譯包安裝好，接下來才是主要的設定。 1. 請到「網站設定 / 語系」裡的「設定」分頁，勾選「僅使用路徑前導字元」項目即可 (各項目的意思頁面上都有註記)。 2. 請到「網站建置 / 區塊」，設定「語系切換」區塊的出現區域(region)，例如：左欄。 3. 完成了，如果設定左欄，應該會出現各種語系的連結項目。 現在一般的使用者可以從前台切換drupal網站的語系了，但是這些語系是網站系統的翻譯，我們發表的各種內容節點如果也想要設定多國語系，那麼還要做一點設定。 [...]]]></description> <wfw:commentRss>http://www.mrmu.com.tw/2010/05/15/drupal-6-i18n/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Drupal 7版型開發(theming)與Drupal 6的不同(下)</title><link>http://www.mrmu.com.tw/2010/05/08/drupal-7-theming-different-2/</link> <comments>http://www.mrmu.com.tw/2010/05/08/drupal-7-theming-different-2/#comments</comments> <pubDate>Sat, 08 May 2010 05:41:13 +0000</pubDate> <dc:creator>mrmu</dc:creator> <category><![CDATA[Drupal開發]]></category> <category><![CDATA[PHP程式設計]]></category> <category><![CDATA[介面設計]]></category> <category><![CDATA[網站設計]]></category> <category><![CDATA[Drupal]]></category> <category><![CDATA[Drupal 7]]></category> <category><![CDATA[版型開發]]></category><guid
isPermaLink="false">http://www.mrmu.com.tw/?p=1389</guid> <description><![CDATA[所有模版的標題都具有前置字與後置字變數 Drupal 7樣版都具備兩個新的標準變數：$title_prefix 及 $title_suffix。 這兩個變數內放的是想要被呈現在個別的標題前或後的輸出內容，可作為contextual links之用，像是讓具有某種權限的使用者可以看到一些特別的連結出現在標題上面或下面。 在node.tpl.php內局部的(Granular)展示$content 資訊 現在不需要像使用Drupal 6的$content時，要先做處理才能分隔$content的輸出。在Drupal 7使用 print render($content) 等同於在 Drupal 6的 print $content，不過當您想輸出部份的內容，像是link，在Drupal 7可以用 print render(content['links'])取得。 使用方式可以參考一下 node.tpl.php內的程式碼： 在輸出整個$content之前，先把我們想要在稍後才輸出的comments跟links先使用hide來隱藏，之後再個別輸出我們想要的順序及樣式。 Field 加入核心 如果您知道CCK這個模組，標題的這句話等同於 CCK加入核心了；如果不熟悉CCK是什麼，簡單的說，Field就是能讓你自訂新的內容型態(透過增加一些特定的欄位，就能成為新的內容型態)。這跟版型開發有啥關係嗎？嗯，因為我們也能在module/field/theme內找到field.tpl.php，來針對field作一些樣式修改。 box.tpl.php消失了 它原本是用來包覆節點內的回應部份與搜尋結果，除了很少用到，又跟區塊(block)容易搞混。 版型內的搜尋項目消失了，移到區塊(block)上 原本要在page.tpl.php內呼叫搜尋表單的情況，現在變成放進區塊內了。 模版建議符號變更 模版建議符號變成 &#8216;- -&#8217; (中間沒有空白，因為中間不留空白，wp會直接輸出成dash)，而不再是drupal 6的&#8217;-'，例如： * page- -front.tpl.php * node- -blog.tpl.php * node- -event-performance.tpl.php 注意，一個元素的文字區隔依舊使用&#8217;-'。 兩階段的變數處理函式和template_preprocess_html() 第一階段是現存的preprocess(參考http://drupal.org/node/223430)，而第二階段是process函式，是接在preprocess之後被執行。另外，多了一個template_preprocess_html 函式，用來預先處理 (preprocess) html.tpl.php內的變數。 Garland [...]]]></description> <wfw:commentRss>http://www.mrmu.com.tw/2010/05/08/drupal-7-theming-different-2/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Drupal 7版型開發(theming)與Drupal 6的不同(上)</title><link>http://www.mrmu.com.tw/2010/05/06/drupal-7-theming-different-1/</link> <comments>http://www.mrmu.com.tw/2010/05/06/drupal-7-theming-different-1/#comments</comments> <pubDate>Thu, 06 May 2010 06:49:30 +0000</pubDate> <dc:creator>mrmu</dc:creator> <category><![CDATA[Drupal開發]]></category> <category><![CDATA[PHP程式設計]]></category> <category><![CDATA[網站設計]]></category> <category><![CDATA[Drupal]]></category> <category><![CDATA[Drupal 7]]></category> <category><![CDATA[版型開發]]></category><guid
isPermaLink="false">http://www.mrmu.com.tw/?p=1383</guid> <description><![CDATA[Drupal 7預計將在今年中發佈正式版，在版型開發上有什麼不同之處需要注意的呢？ 版型(Theme)無法向下相容 一直以來新版的Drupal發佈後，舊版的模組(module) 都無法向下相容於舊版的Drupal (指主要版號發佈)，這樣的情況也同樣發生在版型上，即是指舊的版型要經過修正才能套用至新版Drupal。針對此情況，Drupal.org提出了一份「Drupal 6轉換到Drupal 7的變更清單」，這份清單目前有49個項目，但實際上這些項目存在著一些待修正的部份，另外也有尚未列入清單的項目正在討論中 (講白一點就是這份清單有一點點過時XD)。但無論如何，這份清單還是能給Drupal 6的版型師(Themer)很不錯的參考，並決定思考如何升級版型去支援Drupal 7。 有一點可以確定的是，比起 Drupal 6，Drupal 7的模型開發比較複雜一點點，但這不表示比較難學習。我想合理的複雜化，是為了更容易理解及擴充。複雜的原因可能在於，Drupal 7 想盡辦法的將版型解構成合理的項目，並且另方面還要維持概念上的一致性，如此Drupal 6的版型師在轉換上才不會太痛苦。 我們先從Drupal 7的版型架構來看看有什麼新玩意。 html.tpl.php 若從版型的新架構來看，首先最外圍的包裹檔案已經從page.tpl.php變成 html.tpl.php了，不過 html.tpl.php只是把一些內容從page.tpl.php裡抽出來而已。您可以參考 modules/system/html.tpl.php (註1) 來了解它的詳細內容。大體來說，html.tpl.php主要存放 DOCTYPE描述、Html標籤、Head資訊與Body標籤，然後在Body標籤內傳入 page.tpl.php 的內容。 html.tpl.php的內容直覺且單純，因此多數版型師不太需要覆寫(override)它去作客製化。 更多關於 html.tpl.php的資訊可參考： api文件 &#8211; http://api.drupal.org/api/drupal/modules&#8211;system&#8211;html.tpl.php/7 實作與變更 -http://drupal.org/node/579698 註1. modules/system目錄下可以找到許多以 tpl.php 為後置字的檔案，這些都是Drupal核心各部份的基底樣版檔，是很好的參考資料。而無論是核心或第三方模組的目錄下，有些也附有屬於該模組的*.tpl.php樣版檔。 region.tpl.php 區域(Region)樣版包括了內容區域、側邊欄、頁尾等設定。這份樣版檔是Drupal 7新增的，可以參考modules/system/region.tpl.php，實際內容就只有三行： 通常要在版型的.info檔內宣告要使用的區域，如果沒宣告就會用預設的設定，Drupal 7預設設定共有七個區域，分別是： header help (drupal 6放在page.tpl.php內的$help變數已被置換成這個區域) highlight (drupal 6的$mission變數已被置換成這個區域) content [...]]]></description> <wfw:commentRss>http://www.mrmu.com.tw/2010/05/06/drupal-7-theming-different-1/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Drupal 7 &#8211; 內容管理系統(CMS)開發框架</title><link>http://www.mrmu.com.tw/2010/05/04/drupal-7/</link> <comments>http://www.mrmu.com.tw/2010/05/04/drupal-7/#comments</comments> <pubDate>Tue, 04 May 2010 10:07:36 +0000</pubDate> <dc:creator>mrmu</dc:creator> <category><![CDATA[Drupal開發]]></category> <category><![CDATA[PHP程式設計]]></category> <category><![CDATA[網站設計]]></category> <category><![CDATA[CMS]]></category> <category><![CDATA[Drupal]]></category> <category><![CDATA[Drupal 7]]></category> <category><![CDATA[Framework]]></category> <category><![CDATA[網路應用]]></category><guid
isPermaLink="false">http://www.mrmu.com.tw/?p=1374</guid> <description><![CDATA[Drupal 是什麼？ Drupal是一個PHP based的內容管理系統(CMS)開發框架(framework，也有人稱它是一種平台)，但其實安裝Drupal之後，也會得到一個只有「半成品」程度的CMS，需要管理者「用力的」客製化後才能見到比較漂亮及完整的成品。因為Drupal也算是個CMS，因此常常被拿來跟Joomla、WordPress、Plone等CMS相比較，當然Joomla及WordPress安裝完後也需要User客製化一番，只是Drupal想要變的把戲比較多，所以比較麻煩一點，所以沒辦法定型的發展成針對某種應用的CMS，所以大部份新手使用Drupal的感覺是－Drupal很陽春或者很醜，至少不像Joomla，安裝完就有個漂亮的網站及後台。 我的理解是，Drupal應該是給開發者使用的CMS框架，但又不那麼Framework。個人刻板印象是覺得真正的Framework應該比較像是Cake或CodeIgniter這種東西，不過Drupal應該也算是比較高階一點的Framework吧。從Drupal 5 到 Drupal 6，感覺上跨了一大步，而Drupal 7又再一次給人全新的感受。實際上目前最新的穩定版本是 6.16，但是Drupal 7日前發佈了Alpha 4，趁著空檔就來稍微觀看一下 Drupal 7。 下載安裝 Drupal 7 Drupal 7的壓縮檔約為2.3mb，解壓縮後的目錄大約是8.2mb。安裝Drupal 7時預設有兩種安裝方式(install profiles)：標準與最小化安裝。 標準化安裝完，被開啟的模組會較多，查看資料庫會產生75個資料表，而最小化安裝只有48個資料表，且只有兩個模組會被啟用：block 和 database logging ，若你在稍早安裝時選擇了要自動更新模組，則還會多啟用一個update manager ，在此我們僅就標準版來介紹。 預設版型跟Drupal 6一樣，採用的都是Garland版型，但管理後台預設使用的是Seven這個非常精簡的版型。儘管後台的版型非常精簡，但後台的操作體驗跟Drupal 6相比，可是豐富多了。主要是因為Drupal 7為了提昇使用性，在後台操作上使用了大量的ajax效果，並且有效的控制管理項目的呈現。 體驗 Drupal 7 登入Drupal 7網站後最上排出現的是主要的管理選單，點選第一個"小房子"圖示，能連結至首頁。接著是八個主要的管理頁面選項。置右的選項有帳號、登出及捷徑列的開關。第二排就是捷徑列，置右的選項能編輯捷徑項目，方便管理者放置經常需要操作的選單捷徑。捷徑列內的項目不會依照切換不同管理頁面而改變，所以在切換各個管理頁面時，可別誤以為這是次選單。 如果您不習慣管理頁面「浮」在網頁上面，您可以到後台/Module管理頁面，將Overlay關閉。或者不要最上方的工具選單，就關閉Toolbar；不要捷徑列，就關Shortcut。 每個管理頁面都有連結至dashboard(管理後台)的連結，進入後可總覽所有管理項目。以下簡單介紹跟Drupal 6不同的管理後台頁面。 Content &#8211; 內容設定 Content - 內容列表 [可新增內容] Comments - 已發佈及未認證的回應列表 Structure &#8211; 網站架構 Blocks [...]]]></description> <wfw:commentRss>http://www.mrmu.com.tw/2010/05/04/drupal-7/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>WordPress CMS外掛-Pods CMS:簡單客製化企業網站(下)</title><link>http://www.mrmu.com.tw/2009/11/17/wordpress-cms%e5%a4%96%e6%8e%9b-pods-cms-plug-in%e7%b0%a1%e5%96%ae%e5%ae%a2%e8%a3%bd%e5%8c%96%e4%bc%81%e6%a5%ad%e7%b4%9awordpress%e7%b6%b2%e7%ab%99%e4%b8%8b/</link> <comments>http://www.mrmu.com.tw/2009/11/17/wordpress-cms%e5%a4%96%e6%8e%9b-pods-cms-plug-in%e7%b0%a1%e5%96%ae%e5%ae%a2%e8%a3%bd%e5%8c%96%e4%bc%81%e6%a5%ad%e7%b4%9awordpress%e7%b6%b2%e7%ab%99%e4%b8%8b/#comments</comments> <pubDate>Tue, 17 Nov 2009 12:44:57 +0000</pubDate> <dc:creator>mrmu</dc:creator> <category><![CDATA[PHP程式設計]]></category> <category><![CDATA[CMS]]></category> <category><![CDATA[MVC]]></category> <category><![CDATA[plugins]]></category> <category><![CDATA[pods]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[wordpress外掛]]></category> <category><![CDATA[企業網站]]></category> <category><![CDATA[網站設計]]></category><guid
isPermaLink="false">http://www.mrmu.com.tw/?p=1260</guid> <description><![CDATA[上回我們談到Pods後台能設定pods,templates,pages，就好比MVC架構的三個特性。在pods頁面，我們先選state這個pod來看一下設定畫面： 左上角的name是預設的第一個欄位，每個pods都會有一個name。而下一個欄位abbrev就是自訂出來的，所以這個pod有兩個欄位。如果需要自訂pod，就新增一個，再看自己需要什麼樣的欄位，一一設定進去就行了。設定好pod的欄位，就能到後台選單裡的Pods發現多了一個 Add xxx的選項，以state來說就是Add state，這邊就能新增pod的內容，而wp後台pods選單還有browse content選項，可以看到所有設定好的pod及其內容。 進入templates我們可以發現像標籤模版的語法，像是{@name}這樣的語法，就是取得pods的name欄位內容；而進入pages我們也能看到一些特定的api，可以去取得pods的內容，並且套用templates的設定後，再行輸出。 如果各位跟我一樣，一開始對pods的設定及使用沒有太多耐心，其實我們也能直接就用pages來設計我們自訂的動態頁面，我們來試試看吧! 首先進入pages，然後新建一個名為testphp的頁面，我們隨便寫一段php程式，就寫九九乘法表好了XD，如下 (請先別學範例在裡面打中文，稍後說明原因)： 之所以會加上那個div的語法來包住它，主要是因為配合wordpress預設的template，因為這個自訂頁面會被嵌進template之中，請依各種templates 的設定來修改，否則頁面可能會亂掉。我們用php語法如此自訂了一個動態頁面後，就可以輸入 http://您的部落格網址/testphp 來觀看結果了! 請注意，若您輸入中文可能會在這裡出錯，因為pods預設的資料庫語系是瑞典文，請進入phpmyadmin修改wp_pod_pages資料表各欄位的語系為unicode語系，才能支援中文! 在此僅僅以兩篇入門文快速介紹了Wordpress Pods CMS外掛，相關的API使用，還需要查詢官網來做進一步的理解。 Pods CMS外掛，讓我們能在Wordpress中插入自製的動態網頁，如此我們可以很方便的客製出其他類型的功能，在設計企業使用的CMS網站時，無疑是一個便利的工具! 參考資料: pods的官方教學，還有一個影片教學 [英文]]]></description> <wfw:commentRss>http://www.mrmu.com.tw/2009/11/17/wordpress-cms%e5%a4%96%e6%8e%9b-pods-cms-plug-in%e7%b0%a1%e5%96%ae%e5%ae%a2%e8%a3%bd%e5%8c%96%e4%bc%81%e6%a5%ad%e7%b4%9awordpress%e7%b6%b2%e7%ab%99%e4%b8%8b/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>WordPress CMS外掛-Pods CMS:簡單客製化企業網站(上)</title><link>http://www.mrmu.com.tw/2009/11/17/wordpress-cms%e5%a4%96%e6%8e%9b-pods-cms-plug-in%e7%b0%a1%e5%96%ae%e5%ae%a2%e8%a3%bd%e5%8c%96%e4%bc%81%e6%a5%ad%e7%b4%9awordpress%e7%b6%b2%e7%ab%99%e4%b8%8a/</link> <comments>http://www.mrmu.com.tw/2009/11/17/wordpress-cms%e5%a4%96%e6%8e%9b-pods-cms-plug-in%e7%b0%a1%e5%96%ae%e5%ae%a2%e8%a3%bd%e5%8c%96%e4%bc%81%e6%a5%ad%e7%b4%9awordpress%e7%b6%b2%e7%ab%99%e4%b8%8a/#comments</comments> <pubDate>Tue, 17 Nov 2009 12:07:02 +0000</pubDate> <dc:creator>mrmu</dc:creator> <category><![CDATA[PHP程式設計]]></category> <category><![CDATA[CMS]]></category> <category><![CDATA[MVC]]></category> <category><![CDATA[plugins]]></category> <category><![CDATA[pods]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[wordpress外掛]]></category> <category><![CDATA[企業網站]]></category> <category><![CDATA[網站設計]]></category><guid
isPermaLink="false">http://www.mrmu.com.tw/?p=1258</guid> <description><![CDATA[Wordpress是一款開放原始碼(open source)的部落格架站軟體，自從2003年問世後，就逐漸成為自架部落格的指標性軟體。也因為它開放性的外掛(Plug-in)機制，讓許多國內外的好手都加入撰寫外掛行列，成千上萬的外掛給了Wordpress無限的想像空間。 而Wordpress本身內建的Role管理機制(可註冊會員，而會員們又分為四種等級，分別有不同權限)，不僅讓Wordpress具備共筆部落格的能力，也讓開發者進一步思考到，是否能藉由安裝外掛，將Wordpress"升級"為CMS(Content Management System,內容管理系統) 的層級，於是一系列的WordPress CMS plugin就一一誕生了。 今天要介紹的是Pods CMS plug-in這套wordpress外掛，根據官網的描述，Pods是一套架構在Wordpress之上的CMS Framework plugin，允許使用者新增自定的內容，而這個自訂的內容，就稱為pods，安裝外掛後，這些pods都會存在屬於自己的資料庫欄位供自訂頁面使用。官腔式的說明很難讓人明白它到底可以幹嘛，所以我們就裝來試試看吧! 在開始安裝pods外掛前，請先設定固定鏈結。如果網頁空間是您自己的，要先作以下設定： 開啟apache的httpd.conf, 把#LoadModule rewrite_module modules/mod_rewrite.so 的註解拿掉 接著再把網頁空間路徑的 AllowOverride None 改成 AllowOverride All 建立空白的.htaccess，設為可寫777，放在wp根目錄 到wp後台選擇固定網址的類型，它就會把固定網址的類型轉換規則寫進.htaccess內 大功告成，如果不會再更換固定網址的類型，可將.htaccess設回644 如果空間是租來的，那要先確定主機商有沒有開放空間支援.htaccess，有支援的話，只要從上面的第3步開始做就行了。安排好.htaccess後，就可以到後台的固定鏈結進行下圖的設定。 設定完後，就可以開始安裝Pods CMS外掛了! 可以到wordpress外掛官網下載，下載後解開，放進wp-content/plugin下，再到後台開啟，您就可以看到它出現在選單上了! 安裝好Pods，其實裡面就有範例了，它已經有兩個pods，分別是country及state，但要檢視pods的內容，必須要有對應的page，您可以到Pods/Setup裡看到上方有pages的項目，裡面只有設定了states的page，只要確定page裡有設定，我們就能檢視它。我們可以輸入http://您的wp網址/states來看它的內容，內容如下： 而出現的這些資料，其實都以「欄位對應值」的方式定義在Pods/Setup裡面的Pods頁面，各位可以觀察一下。而展示資料的方式，主要是定義在Templates，但也能在Pages作掉，有沒有嗅到MVC 架構的味道了呢？下一篇我們再繼續談下去。對了，上圖資料出來有移位的現象，那是因為沒有配合這個wp模版的設定，應該要包上div才能正常顯示，下回的例子我們再來解決這個問題。 參考資料: 關於固定鏈結的設定問題，香腸炒魷魚的這篇有很清楚的說明 Pods官網]]></description> <wfw:commentRss>http://www.mrmu.com.tw/2009/11/17/wordpress-cms%e5%a4%96%e6%8e%9b-pods-cms-plug-in%e7%b0%a1%e5%96%ae%e5%ae%a2%e8%a3%bd%e5%8c%96%e4%bc%81%e6%a5%ad%e7%b4%9awordpress%e7%b6%b2%e7%ab%99%e4%b8%8a/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>利用CodeIgniter建立簡單的MVC架構範例 (更新至CI2)</title><link>http://www.mrmu.com.tw/2009/10/07/codeigniter-%e5%bb%ba%e7%ab%8b%e7%b0%a1%e5%96%ae%e7%9a%84mvc%e6%9e%b6%e6%a7%8b%e7%af%84%e4%be%8b/</link> <comments>http://www.mrmu.com.tw/2009/10/07/codeigniter-%e5%bb%ba%e7%ab%8b%e7%b0%a1%e5%96%ae%e7%9a%84mvc%e6%9e%b6%e6%a7%8b%e7%af%84%e4%be%8b/#comments</comments> <pubDate>Wed, 07 Oct 2009 06:17:00 +0000</pubDate> <dc:creator>mrmu</dc:creator> <category><![CDATA[PHP程式設計]]></category> <category><![CDATA[CodeIgniter]]></category> <category><![CDATA[Framework]]></category> <category><![CDATA[MVC]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[網站設計]]></category><guid
isPermaLink="false">http://www.mrmu.com.tw/2009/10/07/codeigniter-%e5%bb%ba%e7%ab%8b%e7%b0%a1%e5%96%ae%e7%9a%84mvc%e6%9e%b6%e6%a7%8b%e7%af%84%e4%be%8b/</guid> <description><![CDATA[[圖片來源: CodeIgniter.com] CodeIgniter是一套簡單、快速的PHP Framework，因為採用MVC的概念，所以能讓中、大型網站專案的架構變得漂亮乾淨許多，最近有空又開始試玩它，建議剛入門的同學可以先到官網跟著教學影片run幾次，尤其是20分鐘建立Blog的例子，實際跑過幾次流程，認識一下Controller跟View之間的互動方式。 耶，為什麼只提到Controller跟View呢？Model呢？是的，那個範例並沒有使用到Model，它是將取得資料的動作，直接寫在Controller了。其實寫CodeIgniter，並不用強制一定要M、V、C都使用，如果網站很單純，只要有C (只要有心&#8230;)，V跟M都能被實作在C裡。跑過教學影片的同學一定有印象，Controller就是一堆PHP的Class，一個繼承Controller類別的Class，本身就像是一頁網頁，使用echo的方式就能達到View的效果，而在Controller直接呼叫像是 $this-&#62;db-&#62;get(&#8216;db_table_name&#8217;)的語法就能取得資料庫的資料了，就像範例那樣。 雖說Controller似乎能控制一切，但使用MVC架構的目的本來就是不想全部的code都搞成一沱，所以我們先來看看一個簡單的MVC例子，M,V,C都用。現在請先確定已經把CodeIgniter抓下來，並且放在Server目錄內了。 好的，首先我們先建立資料庫的資料，一切從簡，以下是SQL script，請先建立一個名為ci_sample的資料庫，再執行以下SQL建立一個名為guestbook的資料表，欄位有id, name, comment，最後會再建立兩筆記錄: 在使用資料庫前，請先開啟application/config/database.php，輸入資料庫相關設定： 再來撰寫自訂的Controller類別部份，請注意，Controller的命名規則是：檔名跟類別名要一樣使用小寫英文，但類別的字首要大寫。本例是是取名為blog，所以檔名是blog.php而類別名則是Blog。請在application/controllers目錄下建立blog.php，內容如下: 可以看到我們把資料都放進data陣列裡 (不管是靜態的，還是動態從DB讀出來的)，而放在data陣列中的名稱，稍後就可看到在view中，我們直接拿來當成變數名稱使用。為什麼呢？因為在D行，我們在load view時，把$data一併丟進blog_view裡頭了。(例如：$data['title'] 就可以用 $title 來存取，$data['query']就可用 $query 來使用。) 其中標示A的那行，就是官網的教學影片使用的方式，直接在Controller取得資料庫的資料，我們希望把這個動作交給Model類別來做，所以我們先把它註解掉，以B,C行來取代它，即是使用load-&#62;model的方式，把載入資料的事交給blog_model這個類別，而接著再使用blog_model裡的getdata()來取得資料。(稍後會再說明Model的建立，這裡請先注意，在此我們的Model命名規則與Controller一樣，我們建立一個Model叫blog_model，檔名是blog_model.php，類別名為Blog_model) 對了，要記得載入database函式庫，讓我們能使用db相關的函式。要載入database這個函式庫，您可以像本範例一樣設定成自動啟用，作法是直接開啟application/config/autoload.php ，找到此行： 將它改成： 這樣就行了。您也可以用手動的方式在您自訂的Controller類別中加進： 您可以加在呼叫$this-&#62;db-&#62;get(&#8216;entries&#8217;); (即是取得資料表的語法)之前，最好是放在建構子中，這樣可叫用的範圍比較廣。不過建議還是使用像範例一樣自動載入的方式，您也就不用在Controller裡面額外加上load database的指令了。 接下來我們就來看看blog_model這個類別要怎麼寫。 請在system/application/models目錄下建立blog_model.php，因為我們只是要驗證一下，所以內容非常簡潔，如下： 很簡潔吧，好，接下來就是把View的部份也建立起來，請到application/views目錄建立blog_view.php，內容如下： 基本上，View就是一堆Html語法加上輸出一些PHP的變數，如此就完成了我們的MVC架構簡單範例了。要觀看結果，請在瀏覽器輸入網址：http://localhost/ci2/index.php/blog (請注意，其中的ci2請變更成您安裝codeigniter的目錄名稱)。 輸出結果： CI2測試中 mrmu hi,I&#8217;m here! david I&#8217;m david! *注意，如果出現了 Message: Undefined property: Blog_model::$db 就表示您沒有載入database這個函式庫，請參考上述作法加載。 CodeIgniter官網：http://codeigniter.com/ CodeIgniter官方教學影片：http://codeigniter.com/tutorials/]]></description> <wfw:commentRss>http://www.mrmu.com.tw/2009/10/07/codeigniter-%e5%bb%ba%e7%ab%8b%e7%b0%a1%e5%96%ae%e7%9a%84mvc%e6%9e%b6%e6%a7%8b%e7%af%84%e4%be%8b/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>CodeIgniter-簡單快速易上手的PHP Framework</title><link>http://www.mrmu.com.tw/2009/02/15/codeigniter-%e7%b0%a1%e5%96%ae%e5%bf%ab%e9%80%9f%e6%98%93%e4%b8%8a%e6%89%8b%e7%9a%84php-framework/</link> <comments>http://www.mrmu.com.tw/2009/02/15/codeigniter-%e7%b0%a1%e5%96%ae%e5%bf%ab%e9%80%9f%e6%98%93%e4%b8%8a%e6%89%8b%e7%9a%84php-framework/#comments</comments> <pubDate>Sun, 15 Feb 2009 15:06:00 +0000</pubDate> <dc:creator>mrmu</dc:creator> <category><![CDATA[PHP程式設計]]></category> <category><![CDATA[CodeIgniter]]></category> <category><![CDATA[Framework]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[網站設計]]></category><guid
isPermaLink="false">http://www.mrmu.com.tw/2009/02/15/codeigniter-%e7%b0%a1%e5%96%ae%e5%bf%ab%e9%80%9f%e6%98%93%e4%b8%8a%e6%89%8b%e7%9a%84php-framework/</guid> <description><![CDATA[圖片來源: http://blog.ekofedriyanto.co.cc/ 最近空閒的時候會看看PHP相關的東西，雖然我接觸的時間不長，不過因為一時興起寫了一個widget貼紙之後，就一發不可收拾了&#8230;XD 慢慢的這個貼紙從一個php檔，變五、六個，也算是像個網站了，用戶也逐漸增加&#8230;我知道除了簡單的功能外，簡單的視覺設計也是需要的，所以連同css也開始接觸&#8230; 慢慢的，這些php檔變成了一盤盤惱人的義大利麵，我知道基本又隨性的php語法已不能支撐住整個網站的發展，該是理性面對程式碼架構的時候了&#8230;XD (雖然心裡想著「我不要重寫呀!」) 年假大概花了三天重寫了，參考了一些framework的寫法，但還是不滿意&#8230;今天看到一些大大介紹的CakePHP，感覺好像不錯，但我似乎比較喜歡輕型一點的framework，於是找到了CodeIgniter這個東西&#8230; 所謂framework的東西，感覺上就有點像是整理原本的語言後再多包一層邏輯讓programmer比較容易使用。所謂"整理原本的語言"，即是指把常用的操作分類包裝；而多包一層邏輯，事實上就是各別framework的賣點(他們自認為最好理解且最易用的方式)，也能說是每個開發團隊的創意，而programmer主要就是學習這層邏輯。 CodeIgniter使用MVC的Pattern概念，把Model (可視為資料層)、View (網頁的外觀)、Control (邏輯控制) 區分開來，讓code脫離義大利麵的苦海。如果有練習過php連結資料庫的經驗，只要稍微看一下它提供的tutorials影片，就大概能感覺到它的好處了。 雖然我大言不慚一直說它好，其實目前我也只是練習了它的一些小範例而已&#8230;XD 相關文章請參考：CodeIgniter。]]></description> <wfw:commentRss>http://www.mrmu.com.tw/2009/02/15/codeigniter-%e7%b0%a1%e5%96%ae%e5%bf%ab%e9%80%9f%e6%98%93%e4%b8%8a%e6%89%8b%e7%9a%84php-framework/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching 2/53 queries in 0.089 seconds using disk
Object Caching 774/873 objects using disk

Served from: www.mrmu.com.tw @ 2012-02-12 08:47:18 -->
