我正在構建一個自定義的Joomla 3.0管理員組件,並且它的一部分需要一些Ajax調用來插入各種類型的字段。Joomla通過ajax插入媒體表單元素
雖然我一直無法插入媒體字段。
對於我剛剛創建html的常規輸入。 對於我用下面的代碼編輯器(我剛剛粘貼的提取物):
$editor = JFactory::getEditor();
$html .= $editor->display($name, $value, '100%', '250px', 20, 20, true, $id);
echo $html;
我寧願不重新對媒體領域的HTML代碼HTML存在相當數量和JavaScript可能會在未來的Joomla版本中發生變化。有沒有類似於JFactory的方法:我可以使用getEditor()?
我也試過創建媒體類的一個實例,但它需要一個表單對象,我不認爲可以訪問(或至少我不知道如何獲取它)在做Ajax調用時。
$xml = '<field
name="test"
type="media"
/>';
$field = new SimpleXMLElement($xml);
$media = new JFormFieldMedia();
$media->setup($field,'');
echo $media->input;
在我看來,最大的問題是媒體領域通過'JFactory :: getDocument() - > addScriptDeclaration'和'modal'行爲向文檔添加腳本聲明。這使得異步加載相當有問題。爲什麼不加載媒體字段並將其隱藏至需要?或者你是否需要按需加載其中幾個,並且在頁面生成時不知道所需字段的數量? – MasterAM
不幸的是,這是一個不知道所需字段數量的情況。基本上我有自定義字段,可以創建並應用到主模型,這些字段只在用戶指定要加載哪個「組」的自定義字段時加載,因此我無法確定有多少個字段。我的後備將是在我自己的圖像領域創建html,但這意味着它不會被更新版本的joomla自動更新。 – hyarion