這是我的第一篇文章,所以我希望我已經使用了正確的地方.........篩選結果(3.2.2的Joomla)
如果任何人都可以用這個查詢幫助我將非常感激。
我在我的網站上有一個數據表,需要對其進行定製,以僅顯示基於登錄用戶分配給的用戶組訪問級別的允許信息。所以這是我當前的查詢,它顯示了當前登錄用戶根據他們註冊的電子郵件所做的記錄。因此,例如,如果我在'標準'用戶組中有5個用戶,並且他們每個都創建一條記錄,通過這個查詢,他們可以分別查看他們自己的記錄,如果用戶處於'高級'用戶組,他們需要的是他們可以查看自己的記錄以及「標準」用戶組中用戶創建的任何記錄。這是在joomla網站上,不知道這是否有所作爲,但所有的訪問級別由CMS定義,我不能在查詢中擁有實際用戶組的名稱,因爲它們會有許多不同的名稱,它需要找到基於誰是登錄的電子郵件地址/用戶的ID的用戶組。
SELECT (CASE WHEN state = '1' THEN 'Accepted' WHEN state = '-2' THEN 'Waiting' WHEN state = '-1' THEN 'Archived' WHEN state = '0' THEN 'Rejected' ELSE 'Unknown' END) AS Status, s.names, s.phone, FROM_UNIXTIME(datetime1,'%d/%m/%y %T'), s.begin, s.PickupAddr1, s.end, s.PickupAddr4, s.message, s.selpassengers, s.selluggage, IF(s.returntrip=0, 'No', 'Yes'), IF(FROM_UNIXTIME(datetime2,'%Y') = '1970', NULL, FROM_UNIXTIME(datetime2, '%d/%m/%y %T')), tc.title AS Vehicle, s.cprice, pm.title As Payment, s.payment, s.selinfantseats, s.selchildseats, s.selboosterseats, s.selcarry, s.email, s.id, s.prepay, s.vehicletype FROM #__taxibooking_orders s
INNER JOIN #__taxibooking_cars tc ON tc.id = s.vehicletype
INNER JOIN #__taxibooking_paymentmethods pm ON pm.id = s.payment
WHERE s.email = {$UserEmail}
我需要做的是修改此使得所顯示的記錄是由那些在任何特定用戶組創建。
對誰創造的記錄是「taxibooking_orders」表 的用戶組中的「羣組」表中定義的「郵件」字段 的用戶在「用戶」表裏面也有一個定義的參考「電子郵件'字段
非常感謝您的幫助。
爲什麼你不使用Joomla中的標準API進行基於權限的過濾?這一切都內置到Joomla中,所有標準的核心擴展都告訴你如何做到這一點。另外,爲什麼你會使用電子郵件而不是用戶ID?訪問級別由網站管理員設計,而不是由CMS設計,CMS爲您提供了使權限對您有意義的權力。 – Elin