Tagged

CMS

內容管理系統相關

WordPress NinjaFirewall 外掛刪除導致無法上傳檔案
WordPress

WordPress NinjaFirewall 外掛刪除導致無法上傳檔案

案發現場 今早起床時突然看到了一位棒子傳來的訊息欸 圖片不能上傳阿 HTTP 錯誤真的是讓人睡意全消阿,待著忐忑不安的心情只好上班去,我記得我沒有做什麼事情阿 下班時終於可以好好的來處理這個問題,首先先來看看 還真的壞了…. 等等…這傢伙怎麼有點眼熟,這不是我兩天前停用的外掛嗎!!為了驗證是他的問題,所以我將外掛裝了回來,回復預設值之後果不其然的正常運作了。為了解決此問題立馬查了一下外掛官方的 FAQ 一瞧 To uninstall NinjaFirewall: 1. Log in to your administration console, click on the “Plugins” menu and deactivate the NinjaFirewall. 2. Click “Delete” to remove it.

WordPress 中 is_home() 與 is_front_page() 的差異
WordPress

WordPress 中 is_home() 與 is_front_page() 的差異

當我們在開發自己的 theme 時,常需要針對判斷當前頁面是否為首頁,這件事情來做相對應的判斷,舉個例子 <body class ="<?php is_home() ? print 'front' : print 'not-front'; ?>"> //balabala </body> 判斷當前是否為首頁並在 body 的元素上給上想要的 class 方便我們寫 CSS 樣式,可是設定為首頁卻得到 not-front 實在讓人疑問,難道是 BUG 嗎 在這裡使用 PHP if() 條件式的簡寫 可以參考PHP: if 翻了一下 WordPress 官方的文件有 is_home() 以及 is_front_

WordPress

【WordPress筆記】 利用shortcode 的方式將指定的post type 文章顯示在頁面中

前言 當WordPress頁面都是用shortcode疊出來的時候,你的文章(post)也是需要變成shortcode的情況下才有辦法將它卡到頁面的某個地方,以下方式可以將你的文章(post)轉成shortcode的方式,讓你在頁面中可以方便的調用它!! 以下範例code,可以寫至theme目錄下的functions.php中 function home_post_listing_shortcode( $atts ) { ob_start(); <!--將query 到的資料存到$query--> $query = new WP_Query( array( 'post_type' => 'post', <!--post_type輸入你想要抓取的文章類型--> 'posts_per_page' => 3, <!--取出x筆數據--> 'order' => 'DSC', <

CMS

Drupal Ajax 執行後 Javascript 會沒反應

前言 當你在寫 Drupal 前台的 Javascript 時, 可能曾發生過當頁面有 Ajax 時,會導致你所撰寫的 Javascript code 會完全無效。會有這種情況,其實是因為當頁面部分元素被 Ajax 修改後,你所撰寫好的程式碼並不會動態的重新抓取更新過後的元素,這是一件令人頭痛的事啊。不過也別覺得這東西是無解,小編這裡有三個方法提供給各位,讓你們再也沒煩惱。 方法一:Drupal behavior 這是 Drupal 提供給前端開發者和模組開發者的 API 每當 Drupal Ajax 被執行後, 會把開發者所撰寫好的 Javascript 再重新讀取一次。如果你對這個東西很陌生的話,可以來參考這篇,他非常詳細的告訴你 behavior 的運作方式。 方法二: Jquery on() event function jQuery 在 1.7

HybridAuth Social Login Facebook 登入又壞啦
Facebook

HybridAuth Social Login Facebook 登入又壞啦

案發經過 HybridAuth Social Login FB 登入又壞啦,真的我也是醉了,之前遇到 HTTPS 登入失效這次是沒有 HTTPS 的網站也壞了,立馬去查模組 Issues 果然也是有人遇到相同的問題 解法 阿反正去打一下 Patch 去更新一下 Library 就好了大家也都是這樣所以他被 Closed (fixed) 理所當然我也照做了,裝 dev 版本用最新的 Library 豈料最新的 Library 有問題阿,模組直接噴錯給你看 結論 吃我的 Simple FB Connect 這個模組沒問題,就是你了。

WordPress

如何利用 FB2WP integration tools 讓粉絲團發文同步至我們的網站上(2018/03/07更新)

FB2WP integration tools 今天來介紹 FB2WP integration tools 這個外掛,它可以幫我們在粉絲專頁發文之後,Facebook 自動的幫我們把資料送回網站上並且發佈這篇文章,簡單來說就是粉絲團發文會順便送給 WordPress 將文章儲存,講到這裡你是不是覺得很興奮呢?想想有多少的小編只要專心在粉絲團上面操作就好,剩下的交給程式幫我們搬到網站上,聽起來真的是懶人的一大福音阿。 我需要什麼? 那我們會需要什麼呢? 我們會需要 一個 HTTPS 的網址 一個 Facebook 應用程式 一個粉絲專頁 在這之前你的網站必須要是 HTTPS 因為 Facebook 的 App Messenger, Webhooks 的回呼網址 需要 HTTPS 如果你的網站還不是 HTTPS 的話可以參考使用 Let’s Encrypt 這項服務來幫你的網址掛上 HTTPS 並且我們會需要 Facebook 以下資訊

WordPress 學習筆記 :文章列表加入 even 與 odd 的class
WordPress

WordPress 學習筆記 :文章列表加入 even 與 odd 的class

目的: 為文章列表項目以基數偶數區分加入 odd 與 even 的 class 已達到更客製化的前端效果 1、使用函數: WP_Query 裡的 $current_post 屬性: 取於wordpress官方屬性說明: (available during The Loop) Index of the post currently being displayed. 直接翻譯來說就是顯示於迴圈內的文章索引,從 0 開始 1、2、3、4、5、6、7…..照順序排列 2、於 have_posts() 迴圈裡使用 $current_post 屬性進行運算 於

WordPress

WordPress 學習筆記 : 文章摘要 the_excerpt()

excerpt (摘要) <?php the_excerpt(); ?> 使用方式如同 //文章標題 <?php the_title?> //文章內文 <?php the_content?> 另外如果沒有使用 wordpress 預設的 文章摘要 區塊,則會直接擷取文章內容的文字使用 修改文章摘要後綴文字 wordpress the_excerpt() 原生摘要後綴為 […] 的方式顯示,如果要更改後綴文字方式: 在 function.php 檔案裡建立一個 function <?php function excerpt_more-example(){ return "read_more"; } ?> 在使用 wordpress

CMS

UX/UI系列:Drupal 快速權限管理(Fast Permissions Administration),讓你跟簡陋的權限管理說再見!

前言 身為一個工程師,對於一些權限的管理,總會特別重視,但是drupal預設的權限管理介面,不禁令人感到簡陋,並且並不好管理。如果對預設的管理權限感到不滿,來試試看”Fast Permissions Administration”吧。 介紹 Fast Permissions Administration(fpa)這個模組在改善drupal權限設定的問題,提供drupal權限設定時有更好的界面。 安裝 在drupal.org的Modules中找到Fast Permissions Administration 找到下方穩定版,複製連結網址。 在drupal安裝模組中,貼上連結網址並安裝。 啟用模組。 或者直接使用drush安裝 drush en fpa 使用 點開”使用者”裡面的”權限”會發現比原本預設的管理界面好上很多 安裝前 安裝後 結論 使用者權限管理,

CMS

UX/UI系列:Drupal必裝模組之一『Administration menu』,讓您享受便利、快速的管理者操作選單!

前言 身為一個工程師帶給客戶便利就是就是帶給自己便利,『Administration menu』可以讓您在使用drupal管理者選單時省去多餘的步驟,直接到您想要進入的設定中,此模組安裝完開啟之後便可直接使用,非常方便,讓我們來看看怎麼操作吧! 安裝模組 首先我們先到Administration menu 去安裝此模組。 step1:複製模組連結 step2:接著到Home » Administration » Modules貼上連結,並按下install step3:完成之後開啟相關模組及關閉drupal原生的menu設定 開啟相關模組: 關閉drupal原生模組: 以上步驟完成之後相信您已經可以看到有什麼地方不一樣拉~ drupal預設: 使用Administration menu後 結語 看完以上教學之後希望大家都可以自己動手試試~安裝自己的第一個Administration menu。 使用過後都會說:瑞凡:我們回不去了~~

CMS

UX/UI系列:網站拉皮術,跟簡陋的下拉選單說再見!

前言 你是否有時覺得Drupal後台某些功能看起來就是醜醜的,用起來也並不是那麼的直覺,給自己使用就還好如果是給客戶使用總會希望給予更好的使用體驗,今天要介紹一個我們常常在使用的模組:Chosen,這個模組使用jQuery讓你的下拉式選單更加的美觀以及方便使用,讓我們看看他可以做到哪些事情吧。 簡介 Chosen模組使用了jQuery套件讓我們的下拉式選單更美化更好用,安裝上只需要模組以及放入libraries,在後台選擇啟用就可以看到效果囉。 使用教學 首先我們先安裝chosen模組 你可以使用drush幫你放好libraries 或是手動放入libraries 以下我們使用drush示範 drush en chosen drush chosenplugin 當你安裝好後可以在設定/使用者界面/chosen看到一些預設的設定 你也可以在欄位的設定選擇是否啟用chosen 預設是No preference如果要啟用我們選擇Apply即可 以下就是啟用之後的差別囉 未啟用 單選 複選 總結 看完了以上介紹之後是不是也想在你的網站裝一下呢?chosen模組提供了使用者更好的體驗,而我們也在尋找更多增進使用者體驗的模組,如果您有其他的模組想要推薦也歡迎在底下告訴我們喔!

CMS

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

前言 『如果您有任何問題歡迎聯絡我們喔,以下是我們的email』這句話想必大家常常看到吧,如果您是網站的管理者收到大家的來信一定是相當開心,可是email的缺點就是難以管理難道就沒有更好的選擇了嗎?這次我們要介紹的就是webform這個模組,他提供了我們一個方便管理的後台以及,可以自定義的欄位讓網站瀏覽者輸入,網站管理員也可以不用再信箱堆裡面翻信囉,讓我們來看看他有什麼樣的功能吧。 簡介 要建立一個基本的webform其實非常簡單,只需要以下幾個步驟即可。 新增一個webform 建立想給使用者填的欄位 將webform變成一個區塊/或是按照原樣 放在你想放的地方 詳細教學 首先我們使用drush下載並啟用webform模組,如果您不會用drush可以參考我們的 Drupal 的好朋友 Drush 外掛,讓你管理 Drupal 有一套[Linux版] drush en webform -y 接著我們在內容>新增內容>webform 就像建立node一樣簡單輸入title 接著我們就可以新增自己想要的欄位囉,讓我們點選新增 輸入Field Key就當作是機器名稱的概念,而下方的VALIDATION跟顯示就請各位依照自己的需求囉 給了一些範例的欄位 呈現的樣子會變成這樣 一個簡單的表單就完成囉,讓我們看一下別人提交了什麼吧,在內容/webforms 找到你想要觀看提交的表單選擇Submissions

CMS

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

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

Drupal

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

簡介 Commerce Discount提供了使用者一個新的界面來定義、管理產品或是訂單層級的折價方式,使用上你只需要會懂一點Rules的UI界面即可。核心系統沒辦法提供的貨運或是產品條件的折價方式,但是只要使用這個模組解就可以解決大部分的折價問題。 使用方式 安裝Commerce Discount模組 再Srote/Discount新增一個折價方式 選擇折價整筆訂單還是商品折價 給予折價的條件 折價多少 是否與其他折價方式並用 以下是一個簡單的教學 首先我們先建立一個新的折價方式 取好折價的名稱,以及在結算時顯示的折價名稱 讓我們對整筆訂單進行折價,並且給予折價條件 讓我實際結帳一次試試看 如此一來一個簡單的折價方式就已經完成囉,如果有需求可以搭配Commerce Discount Extra一起使用 可能遇到的問題 經過實際的測試把玩之後有發現了以下這些小問題,不過並不影響整個模組的運行,希望再未來的版本可以被加以改善 某些條件並無法共存 群組的概念並不是非常完善 確認結帳頁無法與Commerce Price Decimals Formatter結合的非常好 當你手動更改了折價的rules將無法再ui上再進行更改 不過不需要擔心,這個模組是由Commerce Guys進行開發的相信不久以上這些問題都可以被解決囉

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 /usr/local/bin/

CMS

剛開始玩drupal不知道怎麼下手?那就從安裝一個佈景主題開始吧!!

剛開始玩一個CMS系統時,都會碰到一件事,就是要從哪裡開始學習。 那就從安裝人家寫好的佈景主題開始吧!!可以從人家寫的佈景主題中慢慢的找到方向。 Step1:找尋喜歡的主題,下載它! 點擊進入drupal theme大本營 裡面很好多的佈景主題可以供你下載服用~ 這次教學的佈景主題以zen來做範例 點擊上方連結進入網站之後滾輪滾到下方點右鍵“另存連結”下載下來。 Step2:將解壓縮後的檔案放到指定資料夾目錄下,並修改內容。 將解壓縮下來的資料夾“zen”放到drupal 的根目錄底下 路徑:sites/all/themes/ 如附圖 接著進入zen資料夾底下將STARTERKIT資料夾整個複製出來到sites/all/themes/ 如附圖 接著將STARTERKIT更改資料夾名稱,例如:test 接下來要進入到test資料夾中,對裡面的這三個檔案做修改 (STARTERKIT.info.txt ,template.php ,theme-settings.php) 首先先把STARTERKIT.info.txt 副檔名.txt拿掉並改名 檔名更改就會是

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以及Composer 安裝Composer 當我們下載下來之後點擊安裝並且點擊下一步直到選擇PHP的路徑畫面 選擇我們xampp的php路徑(預設的話應該是C:xamppphpphp.exe) 安裝完畢之後就可以開啟我們的git bash 輸入 composer --version 觀察一下composer是否安裝成功 既然安裝好composer之後我們就能安裝drush了打入指令 composer global require drush/drush:7.* 接下來我們到控制台系統及安全性系統的進階系統設定新增一個環境變數 新增使用者變數 新增一個變數 變數名稱為PATH 變數值輸入路徑C:/Users/

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的命名方法可是對於我們的狀況page並不認得這種寫法,所以我們必須讓page tpl認得content type 首先我們要先在sites\all\themes\MYTHEME\template.php加入這段程式碼 MYTHEME記得要換成你的theme的名稱 function MYTHEME_preprocess_page(&$vars, $hook) { if (isset($vars['node']->type)) { // If the content type's machine name

CMS

drupal field-group module 使用教學

Field Group 是drupal強大模組之一,它給使用者帶來很多的方便性,像是當你外層還需要一層div包住內容時就很需要用到,而且還可以用這模組快速建立Accordion menu等。。 接下來我們就來一一介紹它的功能性吧 首先要先建立group_field Home » Administration » Structure » Content types » fieldset step1:建立好content_type接著到manege display設定 step2:設定值 step3:展示的效果如下 div step1:建立好content_type接著到manege display設定 step2:設定值 step3:展示的效果如下

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之後去管理顯示就可以看到Formatted amount with n decimals這個選項 當我們點開詳細設定可以看到 Number of decimals to show這邊我們可以設定我們想要顯示幾個小數,而我們這邊設定0也就是沒有小數 就可以看到我們的價錢變成整數了 接下來購物車也可以用相同的方式 當我們點開Commerce Line item:

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來了解運作 初始化 有三個重要的變數$form_id每個form都會有自己一個ID $formform的陣列結構 $form_state有關於form的資料 設定一個token 在初始化的時候Drupal都會設定一個私鑰來防止攻擊,這個金鑰是在初始化時被髓機產生出來的,