jimmy8646

jimmy8646

因緣際會之下接觸了 Drupal CMS 慢慢學會了寫程式,在參加了一日班之後用 Laravel Framework 找到了工程師的工作,碰上公司改組轉而成為了前端工程師,因為技術線是 Vue 所以我是 Vue 派的XD 現在公司的技術線是用 Ruby on Rails ,偶而會碰碰行銷案當個切版工。 現在覺得最難的事情是增肌,同時是個重機、滑板的初學者。

📍 Taipei
CMS

解放你的信箱,利用Webform來打造聯絡我們功能

前言 『如果您有任何問題歡迎聯絡我們喔,以下是我們的email』這句話想必大家常常看到吧,如果您是網站的管理者收到大家的來信一定是相當開心,可是email的缺點就是 難以管理 難道就沒有更好的選擇了嗎?這次我們要介紹的就是webform這個模組,他提供了我們一個方便管理的後台以及,可以自定義的欄位讓網站瀏覽者輸入,網站管理員也可以不用再信箱堆裡面翻信囉,讓我們來看看他有什麼樣的功能吧。 簡介 要建立一個基本的webform其實非常簡單,只需要以下幾個步驟即可。 1. 新增一個webform 2. 建立想給使用者填的欄位 3. 將webform變成一個區塊/或是按照原樣 4. 放在你想放的地方 詳細教學 首先我們使用drush下載並啟用webform模組,如果您不會用drush可以參考我們的 Drupal 的好朋友 Drush 外掛,讓你管理 Drupal 有一套[Linux版] [https://bonze.tw/%E5%BE%8C%E7%AB%AF%E7%A0%94%E7%A9%

CMS

用Drupal Views來做統計:加總、平均、標準差

前言 你是否曾經遇過客戶問說:可否幫我統計一下文章並請輸出一份報表給我,並且依據各文章分類分組,亦或是我要某一段期間的統計資料,內心OS:我該不會要自己算吧,不必擔心!不需要寫任何一行程式碼也可以做出統計數據,只要使用views的aggregation功能,統計的問題通通幫你搞定。 簡介 在進行統計之前,文章需要一些欄位作為進行分組的依據,在這邊我們有一些分類文章,並且建立一個新的views來統計各個分類有多少篇文章,有以下要點。 * 建立一個views * 開啟Use aggregation * 將篩選條件通通移除 * 抓取要進行統計的欄位 * 選擇計算方式 詳細教學 首先,我有一些文章並且我給予了每篇文章分類如下圖 建立一個新的views來呈現資料 開啟aggregation功能 位置在 Advanced>OTHER>Use aggregation 接著新增一個文章分類的欄位 Aggregation type 選擇 Group results together 我們可以看到雖然我們的文章分類有出現可是現在並不是合併在一起的,這是因為 發

Drupal

Drupal Commerce利用Commerce Discount來進行打折超簡單

簡介 Commerce Discount提供了使用者一個新的界面來定義、管理產品或是訂單層級的折價方式,使用上你只需要會懂一點Rules的UI界面即可。核心系統沒辦法提供的貨運或是產品條件的折價方式,但是只要使用這個模組解就可以解決大部分的折價問題。 使用方式 > 1. 安裝Commerce Discount模組 2. 再Srote/Discount新增一個折價方式 3. 選擇折價整筆訂單還是商品折價 4. 給予折價的條件 5. 折價多少 6. 是否與其他折價方式並用 以下是一個簡單的教學 首先我們先建立一個新的折價方式 取好折價的名稱,以及在結算時顯示的折價名稱 讓我們對整筆訂單進行折價,並且給予折價條件 讓我實際結帳一次試試看 如此一來一個簡單的折價方式就已經完成囉,如果有需求可以搭配Commerce Discount Extra [https://www.drupal.org/project/commerce_discount_extra]一起使用 可能遇到的問題 經過實際的測試把玩之後有發現了以下這些小問題,不過並不影響整個模組的運

CMS

Drupal 的好朋友 Drush 外掛,讓你管理 Drupal 有一套[Linux版]

什麼是Drush Drush是drupal在unix的環境下方便操作drupal的一個command line指令介面,drush提供了很多有用的指令code來操作modules/themes/profiles。同樣的他可以去更新你的drupal、執行sql指令、資料庫備份遷移,跟一些瑣碎的事情像是執行cron,清理快取等。drush也提供了第三方程式來擴充它的指令。 Drush這個名子怎麼來的?他有什麼意思? Drush就是Drupal跟Shell兩字的合體。shell翻作中文叫外殼顧名思義就是我們利用這個外殼來操縱drupal,讀音的念起來就像是”抓許” 安裝方式 目前Drush最新的版本已經到了8.X,而linux版本的安裝方式較為簡單只要照著官方指令一步一步來就可以安裝好囉。 輸入以下指令 下載安裝檔 wget http://files.drush.org/drush.phar 測試一下安裝檔 php drush.phar core-status 更改一下權限與路徑 chmod +x drush.phar sudo mv drush.phar /us

CMS

Drupal 的好朋友 Drush 外掛,讓你管理 Drupal 有一套[Windows版]

什麼是Drush Drush是drupal在unix的環境下方便操作drupal的一個command line指令介面,drush提供了很多有用的指令code來操作modules/themes/profiles。同樣的他可以去更新你的drupal、執行sql指令、資料庫備份遷移,跟一些瑣碎的事情像是執行cron,清理快取等。drush也提供了第三方程式來擴充它的指令。 Drush這個名子怎麼來的?他有什麼意思? Drush就是Drupal跟Shell兩字的合體。shell翻作中文叫外殼顧名思義就是我們利用這個外殼來操縱drupal,讀音的念起來就像是”抓許” 安裝方式 如果你沒接觸過其他作業系統的話會覺得有點憋扭,因為在windows下執行指令並沒有很直覺的方式。 在windows環境我們必須要借助其他程式來輔助我們,所以我們必須要安裝git [https://git-scm.com/download/win]以及 Composer [https://getcomposer.org/download/] 安裝Composer 當我們下載下來之後點擊安裝並且點擊下一步直到選擇PHP

CMS

Drupal 如何改寫tpl並在node頁呈現content type名稱

前言 有時候需要會在node內頁顯示出我的內容類型名稱,可是drupal並沒有這個功能,這個時候我們就需要改寫tpl了,在這邊我們以zen的tpl當作範例 一開始本來是想要使用node.tpl.php來改寫的,不管怎麼改都沒有任何效果,此時才想起我的node頁已經被display suit改寫過了,所以才改使用page.tpl.php 可是這樣會導致另一個問題,如果改寫全部的page會造成連我的views page都會被修改到,所以找了一下solution找到了針對content type改寫page的tpl寫法 先看node針對type的命名方法 [https://api.drupal.org/api/drupal/modules!node!node.tpl.php/7] 可是對於我們的狀況page並不認得這種寫法,所以我們必須讓page tpl認得content type 首先我們要先在sites\all\themes\MYTHEME\template.php加入這段程式碼 MYTHEME記得要換成你的theme的名稱 function MYTHEME_preproces

CMS

天殺的!這個時代誰還在用五毛來付錢的阿,Drupal Commerce去除小數點就靠他了

前言 相信大家多多少少有在網路上買東西的經驗,當你要打造一個自己的購物網站的時候,一定會遇到一個問題:天殺的這個時代誰還在用五毛來付錢的阿,可是在國外的貨幣是很稀鬆平常的事情,這個時候就可以用Commerce Price Decimals Formatter這個模組來幫助我,讓該死的小數點滾離我們的購物車。 這個模組是drupal commerce的擴充,他提供了commercee價錢的欄位顯示格式,你可以用他來顯示不同的小數點格式。 如果你不知道如何修改小數點,commerce有預設的模組可以修改小數點位置,可是無法去除小數點。 Commerce Price Decimals Formatter有以下功能 > * 顯示n個小數 * 顯示n個小數以及其他的組成 * views處理的訂單總計n個小數 * views處理的line item顯示n個小數 這個模組是需要drupal commerce模組才能使用的,當我們安裝好之後預設的價錢顯示格式是有兩個小數點的 而當我們裝好Commerce Price Decimals Formatter之後去管理顯示就可以看到Fo

CMS

Drupal Form API

Form API Drupal 擁有一個application programming interface(API)來產生,驗證,處理HTML表單。Form API 抽象來說就是崁入陣列的屬性(properties)和值(value)。這個陣列會讓Drupal呈現出form。有以下幾點: > * 利用個陣列讓form engine產生HTML * 結構化處理資料,可以編輯修改表單 * 任何form的元素可以對應任何theme function * 可以附加驗證或處理到任何form * 針對注入攻擊保護form 了解Form運作 Form:建立、驗證、運行 Form API的運作流程 Drupal的form有三個步驟:驗證、提交、重導向。 可以使用drupal_get_form [https://api.drupal.org/api/drupal/includes%21form.inc/

Drupal 運用Crontab 來trigger Elysia Cron

elysia cron是一個可以細部控制drupal cron的模組,像是定時的清除快取、定時的備份、每隔幾小時發信等工作。 elysia cron主要有以下這些功能: > * 設定每個cron的執行的順序與頻率 * 同時執行cron * 為cron分頻道 * 停用某些cron * 詳細的紀錄cron的執行時間與次數 * 提供API給模組使用 * 支援自訂cron job 當你有這些需求時可以使用這個模組: > * 不想再巔峰時刻執行cron * 不想一次執行所有的cron * 管理微調快取cron * 同時執行cron * 關閉/開啟你想要的cron * 分開debug cron 當我們安裝好elysia cron可以直接在設定/系統/cron settings看到模組已經執行起來了 選擇設定頁籤 展開CLICK FOR HELP AND CRON RULES AND SCRIPT SYNTAX可以看到時間的設定範例 SINGLE JOB SETTINGS就是我們設定時間跟頻道的地方 像是我們這邊以ctools_cron為舉例

CMS

Drupal Rules 抓取customer profiles send mail

Rules是一個很好用的模組,常常發信要用到rules,可是要抓取到正確想要的值並不是那麼容易的事情,像是要發送訂購資訊這種信件等等…. 首先先新增自己的一個rules 設定/流程/Rules Add new rule 根據我們要的條件選擇觸發事件在這邊我們選擇Completing the checkout process 條件這個區域就是幫助我們抓取值得地方 動作這個區域就是我們後續要處理的事情 這邊我們先新增一個條件可以看到Select the condition to add 我們選擇Entity has field Data selector我們選擇commerce-order 數值選擇commerce_customer_billing 動作的Select the action to add選擇Fetch_entity_by_id 此時就可以看到我們要抓取的entity Data selector選擇commerce-order:commerce-customer-billing:profile-id 這裡我們給上自己的標

CMS

Drupal Commerce Form Validate

有時候製作commerce的時候會遇到一些購買上數量限制,這個時候就必須要自己去寫自己的validate ,畢竟這種事情是沒有模組可以幫你的,這個時候我們就必須要create自己的module 首先我們先create自己的module,然後就要去查一下相關的hook 1.hook_form_alter 2.hook_validate function hellosanta_form_alter(&$form, &$form_state, $form_id) { //dpm($form); if($form_id=='views_form_commerce_cart_form_default'){ $form['#validate'][] = 'hellosanta_batch_commerce_form_validate'; //新增一個自己的validate } } function

CMS

Drupal Markdown filter

Markdown 其實就是給大家一個統一標準的格式,Markdown會自動幫你把文章內容編譯成HTML,好處是哪一天網站突然改版了CSS換了不會造成內文大崩壞的事情drupal使用起來也是非常的簡單只要安裝起模組,並且啟用文字格式就可以了。 那麼首先在這邊安裝的是 Markdown filter [https://www.drupal.org/project/markdown] 模組安裝好之後在 設定/內容撰寫/文字格式新增一個文字格式吧。 新增文字格式 將啟用過濾器內的Markdown功能打勾 文字格式選擇剛剛啟用markdown 就成功囉!!很簡單吧 不過比較不方便的是插入圖片,像是大家習慣的Insert模組插入圖片之後也只是一串img標籤囉

CMS

Drupal Commerce 觀念小筆記

因為工作的關係,有機會可以接觸到購物車這塊,所以特地來寫一點小筆記以免自己日後忘記 Drupal的Commerce組成有以下這些: > * product display (產品顯示) * product (實際上的產品,SKU) * order (訂單) * line item (有數量 價錢 總totla) * tax (稅) * fee (手續費) * shipment (運費) product display就是在content type給人看得node 內容有圖片 簡介之類 ex: iphone product 就是後台給使用者訂 價錢 貨號 尺寸 型號 ex: iphones 64G  白色 一筆order內可以有很多個line item 再加上 tax(line item) shipment(line item)

CMS

Drupal 7 CKEditor Code Snippet 高亮顯示

既然要當作技術筆記的部落格,難免需要放一些code啦,可是如果只用ckeditor放code在複製的時候可能會將網站的html參數也給一起複製,經過了搜尋之後發現ckeditor本身就有code snippet插件可以讓我們來放code 不過原生的樣式非常的醜,而且沒有高亮顯示,讓人不知道頭尾在哪,所以又找了可以跟code snippet整合的模組或是插件,找到了以下模組 1. GeSHi Filter for syntax highlighting [https://www.drupal.org/project/geshifilter]整合性較高 2. highlight js [https://www.drupal.org/project/highlightjs]懶人款 3. Prism [https://www.drupal.org/project/prism]未來潛力組 這三個模組來幫助我們的code 更容易辨識 先來講解一下如何將code snippet叫出來好了 在 設定/內容撰寫/