2013-12-22 68 views
0

我將僅使用Joomla K2組件作爲目錄系統,因此只需在前端內容中顯示Extra-Fields。刪除Joomla K2提交表單中的其他輸入,並保留額外字段輸入

因此,在註冊用戶可以使用的K2物品提交表單中,我傾向於刪除所有其他輸入(包括內容選項卡及其用於撰寫文章,附件選項卡,標題輸入,發佈單選按鈕等的巨大文本區域)並只保留超田的輸入。我試圖通過使用CSS或HTML隱藏這些輸入來覆蓋k2模板,但是這不是一個好主意,因爲用戶仍然可以通過設置顯示將正在顯示的隱藏東西通過瀏覽器的開發人員工具顯示出來。

此外,通過將這些字段置於一個始終爲假的PHP條件下是不可能的,因爲某些輸入需要至少有一個值。

下面是用戶部分K2提交表單的默認佈局,紅色區域是那些我要讓他們刪除和非活動:

enter image description here

而這裏的默認佈局的來源:

com_k2/templates/default/itemform.php

通過隱藏來自用戶的類別輸入,我還需要設置一個預定義的類別,用戶提交的所有內容將應用於該類別,並且與該c相關的額外字段以用戶提交的形式向用戶展示了ategory。 有沒有什麼辦法在模板覆蓋文件中定義一個值並完全隱藏它的相關字段? (最好是通過變量,但常數也會起作用)。我需要它自動標題分配的用戶提交的項目太多(但是這不是必要的 其他東西)

所有這些變化將是K2將在前端的網站項目的形式,而不是管理部分。

這是什麼解決方法?

問候

+0

我不認爲K2是你需要的最好的擴展,你有沒有看過像fabrik seblod和其他joomla的其他「CCK組件」? –

+0

@chadocat其實我正在考慮這個,但是我需要一個類似於[** JA K2 Filter **]的高級搜索模塊(http://www.joomlart.com/joomla/extensions/ja-k2-search),當我發現它,我唯一的問題是它的提交表單。即使我看到Joomla的ContentBuilder CCK(http://crosstec.de/.sub-contentbuilderdemo/application-form.html)看起來不錯,但我沒有找到有用的搜索模塊因爲它與那些先進的功能都可以在'JA K2過濾器' – DummyBeginner

+0

以及我不知道seblod是否可以滿足您的需求,他們有一個搜索插件來查看http://www.seblod.com/products/918 –

回答

0

我知道這個問題是舊的,但,這是我的想法,我沒有類似的東西,不完全一樣。

因爲如果您刪除了類別或標題等必填字段,則無法提交表單,只要不是空值,就可以將隱藏的INPUT字段設置爲隨機值。在您的覆蓋文件模板/模板/ HTML/com_k2 /默認/ itemform.php而不是顯示類別選擇:

<tr> 
    <td class="adminK2LeftCol"> 
     <label><?php echo JText::_('K2_CATEGORY'); ?></label> 
    </td> 
    <td class="adminK2RightCol"> 
     <?php echo $this->lists['categories']; ?> 
    </td> 
</tr> 

您可以使用這樣的事情

<input type="hidden" id="catid" name="catid" value="-1"> 

是頑皮的用戶可以使用Firebug把它們的值放在那個INPUT中,但是你仍然可以構建一個插件並且監聽onBeforeK2Save事件,然後在將內容保存到數據庫之前將你的默認值類別設置爲你自己的值(0,1,2任何值)。通過使用這種方式,您也可以爲您的K2產品生成標題。

<?php 
defined('_JEXEC') or die ; 

JLoader::register('K2Plugin', JPATH_ADMINISTRATOR.'/components/com_k2/lib/k2plugin.php'); 

class plgK2MyExample extends K2Plugin 
{ 
    var $pluginName = 'myexample'; 
    var $pluginNameHumanReadable = 'My Example K2 Plugin'; 

    function onBeforeK2Save(&$item, $isNew) 
    { 
     $item->catid = 10000; 
     $item->title = 'my own title'; 
    } 
} 

檢查這裏的例子插件:https://github.com/joomlaworks/example-k2-plugin(onBeforeK2Save中缺少的例子插件)。

onBeforeK2Save在管理員/ components/com_k2/models/item.php(「save」函數)中調用。

+0

雖然問題很老,但我還沒有得到答案。所以謝謝你關心解決方案。 – DummyBeginner