Joomla jconsole 開發應用

如果在執行指令時有需要其它額外的指令或選項,在 JConsole 可以這樣做:
[cc lang=”bash”]
php cli/console hello who where -a
[/cc]

鍵入 php cli/console hello -h 時會列出以下的 help:
qweqwe
其中紅線所指的指令格式 [command] 為 Argument , [option] 當然不用說就是 option。
Continue reading Joomla jconsole 開發應用

使用 Joomla Jconsole 操作方法

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

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

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]