如果不熟悉儲存資源提供程式(SRP)及其與用戶生成內容(UGC)的關係,請訪問社區內容儲存和儲存資源提供程式概述。
本檔案的本節提供關於SRP和UGC的一些基本資訊。
SocialResourceProvider API(SRP API)是各種Sling資源提供者API的擴充功能。 其中包括分頁和原子增量支援(對計分和計分很有用)。
SCF元件需要查詢,因為需要按日期、幫助性、投票數等進行排序。 所有SRP選項都具有不依賴分段的彈性查詢機制。
SRP儲存位置併入元件路徑。 SRP API應一律用於存取UGC,因為根路徑取決於所選SRP選項,例如ASRP、MSRP或JSRP。
SRP API不是抽象類,而是介面。 自訂實作不應輕率進行,因為升級至新版本時,將會遺漏未來改善內部實作的優點。
使用SRP API的方法是透過提供的公用程式,例如SocialResourceUtilities套件中的公用程式。
從AEM 6.0或更舊版本升級時,必須移轉所有可使用開放原始碼工具的SRP的UGC。 請參閱升級至AEM Communities 6.3。
過去,用於存取UGC的公用程式會顯示在SocialUtils套件中,但該套件已不存在。
如需取代公用程式,請參閱SocialUtils重構。
若要存取UGC,請使用SocialResourceUtilities套件中的方法,此方法會傳回適合從SRP存取UGC的路徑,並取代SocialUtils套件中已棄用的方法。
以下是在servlet中使用resourceToUGCStoragePath()方法的最小範例:
import com.adobe.cq.social.srp.utilities.api.SocialResourceUtilities;
@Reference
private SocialResourceUtilities socialResourceUtilities;
@Override
protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
String ugcPath = socialResourceUtilities.resourceToUGCStoragePath(request.getResource());
// rest of servlet
}
如需其他SocialUtils替代項目,請參閱SocialUtils重構。
如需編碼准則,請造訪使用SRP存取UGC。
返回的路徑resourceToUGCStoragePath()為not,適合於ACL檢查。
一些SRP實施,例如ASRP和MSRP,將社區內容儲存在不提供ACL驗證的資料庫中。 卷影節點在本地儲存庫中提供可應用ACL的位置。
所有SRP選項都使用SRP API,在所有CRUD操作之前對卷影位置執行相同的檢查。
若要檢查ACL,請使用傳回適合檢查套用至資源UGC之權限的路徑的方法。
以下是在servlet中使用resourceToACLPath()方法的簡單範例:
import com.adobe.cq.social.srp.utilities.api.SocialResourceUtilities;
@Reference
private SocialResourceUtilities socialResourceUtilities;
@Override
protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
String aclPath = socialResourceUtilities.resourceToACLPath(request.getResource());
// rest of servlet
}
resourceToACLPath()返回的路徑為not,適合於訪問UGC本身。
使用JSRP或MSRP開發時,下列儲存位置說明可能有所幫助。 目前沒有UI可存取儲存在ASRP中的UGC,因為JSRP(CRXDE Lite)和MSRP(MongoDB工具)皆有。
元件位置
當成員在發佈環境中輸入UGC時,他們會與AEM網站中的元件互動。
社區元件指南站點中存在的注釋元件就是這樣一個元件的示例。 本地儲存庫中注釋節點的路徑是:
/content/community-components/en/comments/jcr:content/content/includable/comments
卷影節點位置
UGC的建立還建立了卷影節點,以應用所需ACL。 指向本地儲存庫中相應卷影節點的路徑是將卷影節點根路徑前置到元件路徑的結果:
/content/usergenerated
/content/usergenerated/content/community-components/en/comments/jcr:content/content/includable/comments
UGC位置
UGC不會在這些位置中建立,而只應使用公用程式方法來存取,該方法會叫用SRP API。
/content/usergenerated/asi/srp-choice
/content/usergenerated/asi/jcr/content/community-components/en/comments/jcr:content/content/includable/comments/srzd-let_it_be_
請注意,對於JSRP,UGC節點只 ** 會出現在輸入JSRP的AEM例項(製作或發佈)上。如果在發佈例項上輸入,則無法從作者上的協調控制台進行協調。