我在類別列表中的組件添加了新的參數添加一個WHERE查詢,在類別列表組件
它是一個組合框 過濾器類型
- 所有
- 本月
- 本週
- 過去的
我能夠通過使用代碼$ params-> get('filter_type')來獲取值。
現在我陷入了在com_contents中添加自定義查詢的位置。那可能嗎?
謝謝!
我在類別列表中的組件添加了新的參數添加一個WHERE查詢,在類別列表組件
它是一個組合框 過濾器類型
我能夠通過使用代碼$ params-> get('filter_type')來獲取值。
現在我陷入了在com_contents中添加自定義查詢的位置。那可能嗎?
謝謝!
這裏沒有很多去這裏,但這裏的一般方法:
$sql = 'SELECT whatever FROM com_contents';
switch ($params->get('filter_type')) {
case 'This Month':
$sql .= ' WHERE EXTRACT(YEAR_MONTH FROM my_date) = EXTRACT(YEAR_MONTH FROM CURRENT_DATE)';
break;
case 'This Week':
$sql .= ' WHERE YEARWEEK(my_date) = YEARWEEK(CURRENT_DATE)';
break;
case 'Past':
$sql .= ' WHERE <whatever "past" means>';
break;
}
... and then execute the query
注意,有沒有case
爲All
選項;這是因爲它不需要WHERE
子句。
謝謝埃德吉布斯。 .. \ components \ com_content \ models \ articles.php – user1675030
當您查看#__categories
表時,您會看到自定義參數以json格式存儲在params
列中。
有兩種解決方法:
JCateogies
或自定義代碼)。請注意,這可能對性能在這兩種情況下,你必須創建自己的分類列表視圖是壞的,
廣告1(did't test):
// Get Extension Categories helper
$catInstance = JCategories::getInstance($extension);
// Get Root
$catRoot = $catInstance->get('root');
// Get Children
$categories = $catRoot->getChildren(true);
// Uncompress parameters and set duration
foreach ($categories as $childId => &$child)
{
$params = $child->getParams();
$child->duration = $params->get('duration', 0);
}
// Sort by duration
JArrayHeper::sortObjects($categories, 'duration', $direction = 1);
請問您可以顯示您的查詢字符串嗎? – BlitZ
這是「本月」 - SELECT * FROM'content' where月份(已創建)=月份(now()) – user1675030
Joomla 3支持日期數學,您可以查看標籤查詢或者熱門標籤模塊。 – Elin