使用 Joomla Jconsole 操作方法

在前篇 [Joomla 3 cli 開發範例] 有提過使用 Joomla 內所使用的 cli 目錄來開發 CLI 的應用程式。

除此這樣的應用之外,還有一個叫做 JConsole 的套件可提供許多現有的方法來快速開發,你可以到這位作者 asika32764 的 Github asika32764/JConsole 查閱相關資訊。
Continue reading 使用 Joomla Jconsole 操作方法

直接從 Github fetch PR 做測試

如何直接從別人家所開 PR 直接抓下來測試?

現在 Github 有個新功能可以直接抓 PR ,命令如下:
[cc code=”bash”]
$git fetch remoteName pull/PRNumber/head:PRNumber
[/cc]

如果開的 PR 號碼是 199 那指令就像這樣:
[cc code=”bash”]
$git fetch upstream pull/199/head:pr199
[/cc]

然後切換要測試的 Branch
[cc code=”bash”]
$git checkout pr199
[/cc]

這樣就可以直接測試人家做的程式了。

Soft Raid 架設

相片 14-3-2 2 50 54

現在手上的硬碟是越來越多,不知道放著要幹嘛,那就拿來玩玩磁碟陣列。練習練習一下功力。

手上有 5 顆硬碟,有 40G、80G、120G、250G、650G,而其中有兩顆是筆電的 IDE ,其實剛開始架的時候,比較因難的是一個 5 Port 的 USB HUB 仍然提供不了足夠的電流,因此只要增加 IO 的工作量,比較吃電的舊款式會不斷的跳掉,讓整個陣列失效或是離線。
Continue reading Soft Raid 架設

Joomla 3 cli 開發範例

在 Joomla 3.3 的版本中,要用 Command line 操作命令比先前的版本較為簡單多了,一來是不需要用到 Web Server 來埶行,只要用 php cli 就可以使用,這篇先用比較簡單的方式來新增一個用 cli 的應用程式。

  • 首先在 joomla/cli 下用 update_cron.php 為範例,複製一個名為 test.php 的檔案,並保留檔頭資訊。
  • 在 class Updatecron extends JApplicationCli 的 Updatecron 變更 class 名稱為 TestSample 。
  • 將 doExecute() 的裡的程式碼也移除。並鍵入這樣的程式碼。
    [cc lang=”php”]echo ‘Hello world !!’ . PHP_EOL;[/cc]
  • 在最後一行 JApplicationCli::getInstance(‘Updatecron’)->execute(); 中的 Updatecron 也更改為剛剛的 class 名稱 TestSample。
  • 最後在文字提示命令輸入 php cli/test.php 出現如下的畫面,接下來就可以再做後續的 cli 應用開發了。

2014_7_8_上午11_33

整個程式碼如下,請參考。
Continue reading Joomla 3 cli 開發範例

在 Joomla 使用 SQL 字串的 IN()

一般說來要用 WHERE “IN()” 這個功能來選出指定的資料,都會寫這樣的程式碼來組 SQL 字串。
[cc lang=”php”]
//原資料如下
$filterCity = Array
(
[0] => 臺北市
[1] => 臺中市
[2] => 宜蘭縣
[3] => 花蓮縣
)

//用 implode 組成 IN 的 SQL 字串
$inCity = “‘” . implode(“‘, ‘”, $filterCity) . “‘”;
$sqlWhereCity = sprintf(“city_title IN(%s)”, $inCity);

[/cc]

在 Joomla 中可以這樣直接寫。

[cc lang=”php”]

//在這因為是字串,所以必需要借用 getDbo 的 quote 為陣列成為字串時加上單引號
$db = \JFactory::getDbo()
$filterCity = $db->quote($filterCity);

//如果要選的資料是純數字的 ID 其實只要這行即可
$sqlWhereCity = ‘`city_title`’ . new \JDatabaseQueryElement(‘IN()’, $filterCity);
[/cc]

另外,如果使用了 Windwalker 還可以這樣寫。

[cc lang=”php”]
//如果在 name space 下要在該檔最前面引入 Windwalker 的程式組
use Windwalker\Compare\InCompare;

$sqlWhereCity = (string) new InCompare(‘`city_title`’, $filterCity);
[/cc]

PHP 效率寫法

原來寫法是這樣
[cc lang=”php”]
type == ‘individual’)
{
$buttonStyle = ‘btn-info’;
}
elseif($item->type == ‘resident’)
{
$buttonStyle = ‘btn-warning’;
}
else
{
$buttonStyle = ‘btn-inverse’;
}
echo $buttonStyle;
?>
[/cc]

後來看到這樣有效率的寫法

[cc lang=”php”]
$styles = array(‘individual’ => ‘btn-info’, ‘resident’ => ‘btn-warning’);
$buttonStyle = (isset($styles[$item->type]) ? $styles[$item->type] : ‘btn-inverse’;
echo $buttonStyle;
[/cc]

把要檢查的值都放在 Array 裡,再將 Array 裡的鍵值做比對轉換出來的值跟當初用 if 判斷是一樣的效果的。

讓舊電視也能看 PPS

相片 13-10-7 21 44 46

現在的電視大都更換成液晶平面電視,而且也有HDMI的視訊輸入,讓過去十幾二十年只有480p的媒體影像進步至今到1080p的解析度,未來將會邁向4K的畫質前進。

也就因為這樣,現在的液晶電視要主流尺吋是42吋,價格仍高於一萬元以上,我還是覺的太貴,不要錢的最好了! XD

Raspberry Pi 有RCA輸出,所以安裝RaspBMC連傳統電視也能看網路的節目,然而最近為了能AirPlay手機裡的PPS節目去問狗,卻找到一個令我吃驚的東西。

Continue reading 讓舊電視也能看 PPS