php – Joomla! 在 xml 中自訂欄位

參考來源

範例元件名稱 com_todolist

添加我們自訂的 xml

  • name=”clickme” 名稱是作為 tmpl 渲染使用,代表你的欄位叫什麼名字。
  • type=”mybutton” 會去尋找 models/fields/mybutton.php
<?xml version="1.0" encoding="utf-8"?>
<!-- components/com_todolist/models/forms/upload.xml -->
<form>
    <fieldset name="others" addfieldpath="components/com_todolist/models/fields/">
        <field name="cliekme" type="mybutton" label="我是自訂欄位" />
    </fieldset>
</form>

 

自訂欄位的物件邏輯

我們要自訂一個類型叫做 mybutton 的 HTML <button> 元件。

  • JFormFieldMybutton 為 JFormField{首字大寫你的類型名稱}
  • $type 設定首字大寫你的類型名稱
  • 務必指定 protected function getInput(),這是為了覆寫 JFormField 的方法。
<?php
// components/com_todolist/models/fields/mybutton.php
defined('JPATH_BASE') or die;
class JFormFieldMybutton extends JFormField
{
    protected $type = 'Mybutton';

    protected function getInput()
    {
        return '<button onclick="alert()">我是按鈕</button>';
    }
}

 

在 tmpl 中渲染

<!-- C:\www\joomla\components\com_todolist\views\upload\tmpl\main.php -->
<?=$this->form->renderField('cliekme')?>

 

phpmyadmin – 更新版本後,重啟 Apache 發生錯誤 (Job for apache2.service failed because the control process exited with error code.)

Ubuntu 16 重啟系統 service apache2 restart 報錯

Job for apache2.service failed because the control process exited with error code. 
See "systemctl status apache2.service" and "journalctl -xe" for details.

於是下指令查看問題

 systemctl status apache2.service

發現提示如下圖

發現原來是我的 /etc/phpmyadmin/apache.conf 的第 4 行設定錯誤 (我用了兩個別名),於是使用

vim /etc/phpmyadmin/apache.conf

修改我的檔案以後,重新啟動 Apache 就沒問題了~