You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ha...@apache.org on 2011/07/07 05:59:32 UTC

svn commit: r1143647 - in /ofbiz/trunk: applications/content/script/org/ofbiz/content/content/ applications/content/servicedef/ specialpurpose/ecommerce/data/ specialpurpose/ecommerce/widget/blog/

Author: hansbak
Date: Thu Jul  7 03:59:31 2011
New Revision: 1143647

URL: http://svn.apache.org/viewvc?rev=1143647&view=rev
Log:
add services to create the alternative seo friendly url's for contant from the contentname, only when they are missing in the current locale. Also updated the related demo data

Modified:
    ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentServices.xml
    ofbiz/trunk/applications/content/servicedef/secas.xml
    ofbiz/trunk/applications/content/servicedef/services.xml
    ofbiz/trunk/specialpurpose/ecommerce/data/DemoContentAltUrl.xml
    ofbiz/trunk/specialpurpose/ecommerce/widget/blog/BlogScreens.xml

Modified: ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentServices.xml?rev=1143647&r1=1143646&r2=1143647&view=diff
==============================================================================
--- ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentServices.xml (original)
+++ ofbiz/trunk/applications/content/script/org/ofbiz/content/content/ContentServices.xml Thu Jul  7 03:59:31 2011
@@ -1278,39 +1278,62 @@
     </simple-method>
 
     <simple-method method-name="createContentAlternativeUrl" short-description="Create Content Alternative URLs.">
-        <set field="contentId" from-field="parameters.contentId"/>
-        <entity-one value-field="content" entity-name="Content">
-            <field-map field-name="contentId" from-field="contentId"/>
-        </entity-one>
-        <if-not-empty field="content.contentName">
-            <call-class-method method-name="invalidCharacter" class-name="org.ofbiz.common.UrlServletHelper" ret-field="altUrl">
-                <field field="content.contentName"/>
-            </call-class-method>
-            <set field="altUrl" value="/${altUrl}-${content.contentId}-content"/>
-            <sequenced-id sequence-name="DataResource" field="createDataResourceCtx.dataResourceId"/>
-            <set field="createDataResourceCtx.dataResourceTypeId" value="ELECTRONIC_TEXT"/>
-            <set field="createDataResourceCtx.dataTemplateTypeId" value="FTL"/>
-            <set field="createDataResourceCtx.objectInfo" from-field="altUrl"/>
-            <set field="createDataResourceCtx.statusId" value="CTNT_IN_PROGRESS"/>
-            <call-service service-name="createDataResource" in-map-name="createDataResourceCtx" include-user-login="true">
-                <result-to-field result-name="dataResourceId" field="dataResourceId"/>
-            </call-service>
-            <set field="electronicTextCtx.dataResourceId" from-field="dataResourceId"/>
-            <set field="electronicTextCtx.textData" from-field="content.contentName"/>
-            <call-service service-name="createElectronicText" in-map-name="electronicTextCtx"></call-service>
-            
-            <sequenced-id sequence-name="Content" field="contentCtx.contentId"/>
-            <set field="contentCtx.contentTypeId" value="DOCUMENT"/>
-            <set field="contentCtx.dataResourceId" from-field="dataResourceId"/>
-            <call-service service-name="createContent" in-map-name="contentCtx" include-user-login="true">
-                <result-to-field result-name="contentId" field="contentIdTo"/>
-            </call-service>
-            
-            <set field="createContentAssocCtx.contentId" from-field="content.contentId"/>
-            <set field="createContentAssocCtx.contentIdTo" from-field="contentIdTo"/>
-            <set field="createContentAssocCtx.contentAssocTypeId" value="ALTERNATIVE_URL"/>
-            <call-service service-name="createContentAssoc" in-map-name="createContentAssocCtx"/>
-        </if-not-empty>
+        <set field="defaultLocaleString" from-field="parameters.locale"/>
+        <entity-condition list="contents" entity-name="Content">
+            <condition-list combine="and">
+                <condition-expr field-name="contentName" operator="not-equals" from-field="nullField"/>
+                <condition-expr field-name="contentId" operator="equals" from-field="parameters.contentId" ignore-if-empty="true" ignore-if-null="true"/>
+            </condition-list>
+            <select-field field-name="contentId"/>
+            <select-field field-name="contentName"/>
+            <select-field field-name="localeString"/>
+        </entity-condition>
+        <iterate entry="content" list="contents">
+            <set field="localeString" from-field="content.localeString" default-value="${defaultLocaleString}"/>
+            <entity-condition list="contentAssocDataResources" entity-name="ContentAssocDataResourceViewTo">
+                <condition-list combine="and">
+                    <condition-expr field-name="caContentAssocTypeId" operator="equals" value="ALTERNATIVE_URL"/>
+                    <condition-expr field-name="contentIdStart" operator="equals" from-field="content.contentId"/>
+                    <condition-expr field-name="localeString" operator="equals" from-field="localeString"/>
+                </condition-list>
+                <select-field field-name="contentIdStart"/>
+                <select-field field-name="dataResourceId"/>
+                <select-field field-name="localeString"/>
+                <select-field field-name="caFromDate"/>
+                <select-field field-name="caThruDate"/>
+            </entity-condition>
+            <filter-list-by-date list="contentAssocDataResources" from-field-name="caFromDate" thru-field-name="caThruDate"/>
+            <if-empty field="contentAssocDataResources">
+                <call-class-method method-name="invalidCharacter" class-name="org.ofbiz.common.UrlServletHelper" ret-field="altUrl">
+                    <field field="content.contentName"/>
+                </call-class-method>
+                <set field="altUrl" value="/${altUrl}-${content.contentId}-content"/>
+                <sequenced-id sequence-name="DataResource" field="createDataResourceCtx.dataResourceId"/>
+                <set field="createDataResourceCtx.dataResourceTypeId" value="ELECTRONIC_TEXT"/>
+                <set field="createDataResourceCtx.dataTemplateTypeId" value="FTL"/>
+                <set field="createDataResourceCtx.localeString" from-field="localeString"/>
+                <set field="createDataResourceCtx.objectInfo" from-field="altUrl"/>
+                <set field="createDataResourceCtx.statusId" value="CTNT_IN_PROGRESS"/>
+                <call-service service-name="createDataResource" in-map-name="createDataResourceCtx" include-user-login="true">
+                    <result-to-field result-name="dataResourceId" field="dataResourceId"/>
+                </call-service>
+                <set field="electronicTextCtx.dataResourceId" from-field="dataResourceId"/>
+                <set field="electronicTextCtx.textData" from-field="content.contentName"/>
+                <call-service service-name="createElectronicText" in-map-name="electronicTextCtx"></call-service>
+                
+                <sequenced-id sequence-name="Content" field="contentCtx.contentId"/>
+                <set field="contentCtx.contentTypeId" value="DOCUMENT"/>
+                <set field="contentCtx.dataResourceId" from-field="dataResourceId"/>
+                <set field="contentCtx.localeString" from-field="localeString"/>
+                <call-service service-name="createContent" in-map-name="contentCtx" include-user-login="true">
+                    <result-to-field result-name="contentId" field="contentIdTo"/>
+                </call-service>
+                
+                <set field="createContentAssocCtx.contentId" from-field="content.contentId"/>
+                <set field="createContentAssocCtx.contentIdTo" from-field="contentIdTo"/>
+                <set field="createContentAssocCtx.contentAssocTypeId" value="ALTERNATIVE_URL"/>
+                <call-service service-name="createContentAssoc" in-map-name="createContentAssocCtx"/>
+            </if-empty>
+        </iterate>
     </simple-method>
-    
 </simple-methods>

Modified: ofbiz/trunk/applications/content/servicedef/secas.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/servicedef/secas.xml?rev=1143647&r1=1143646&r2=1143647&view=diff
==============================================================================
--- ofbiz/trunk/applications/content/servicedef/secas.xml (original)
+++ ofbiz/trunk/applications/content/servicedef/secas.xml Thu Jul  7 03:59:31 2011
@@ -180,7 +180,7 @@ under the License.
     </eca>
     
     <eca service="createContent" event="return">
+        <condition field-name="contentId" operator="is-not-empty"/>
         <action service="createContentAlternativeUrl" mode="sync" run-as-user="system"/>
     </eca>
-
 </service-eca>

Modified: ofbiz/trunk/applications/content/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/servicedef/services.xml?rev=1143647&r1=1143646&r2=1143647&view=diff
==============================================================================
--- ofbiz/trunk/applications/content/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/content/servicedef/services.xml Thu Jul  7 03:59:31 2011
@@ -1201,6 +1201,6 @@
     <service name="createContentAlternativeUrl" engine="simple"
             location="component://content/script/org/ofbiz/content/content/ContentServices.xml" invoke="createContentAlternativeUrl" auth="true">
         <description>Create Content Alternative URL</description>
-        <attribute name="contentId" mode="IN" type="String" optional="false"></attribute>
+        <attribute name="contentId" mode="IN" type="String" optional="true"></attribute>
     </service>
 </services>

Modified: ofbiz/trunk/specialpurpose/ecommerce/data/DemoContentAltUrl.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/data/DemoContentAltUrl.xml?rev=1143647&r1=1143646&r2=1143647&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/data/DemoContentAltUrl.xml (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/data/DemoContentAltUrl.xml Thu Jul  7 03:59:31 2011
@@ -21,19 +21,19 @@ under the License.
     
     <!-- Demo Content Alternative Url -->
     <!-- The content alternative url come from the contentName in the Content entity.-->
-    <DataResource dataResourceId="DRS_CNT_URL005" dataResourceTypeId="ELECTRONIC_TEXT" statusId="CTNT_IN_PROGRESS" objectInfo="/Cute-Kid-BLG10000-content"/>
+    <DataResource dataResourceId="DRS_CNT_URL005" dataResourceTypeId="ELECTRONIC_TEXT" statusId="CTNT_IN_PROGRESS" objectInfo="/Cute-Kid-BLG10000-content" localeString="en_US"/>
     <ElectronicText dataResourceId="DRS_CNT_URL005" textData="Cute Kid"/>
-    <Content contentId="CNT_ALTURL_005" contentTypeId="DOCUMENT" dataResourceId="DRS_CNT_URL005" statusId="CTNT_IN_PROGRESS"/>
+    <Content contentId="CNT_ALTURL_005" contentTypeId="DOCUMENT" dataResourceId="DRS_CNT_URL005" statusId="CTNT_IN_PROGRESS" localeString="en_US"/>
     <ContentAssoc contentId="BLG10000" contentIdTo="CNT_ALTURL_005" contentAssocTypeId="ALTERNATIVE_URL" fromDate="2011-06-23 01:01:01"></ContentAssoc>
     
-    <DataResource dataResourceId="DRS_CNT_URL006" dataResourceTypeId="ELECTRONIC_TEXT" statusId="CTNT_IN_PROGRESS" objectInfo="/Next-Linus-BLG10010-content"/>
+    <DataResource dataResourceId="DRS_CNT_URL006" dataResourceTypeId="ELECTRONIC_TEXT" statusId="CTNT_IN_PROGRESS" objectInfo="/Next-Linus-BLG10010-content" localeString="en_US"/>
     <ElectronicText dataResourceId="DRS_CNT_URL006" textData="Next Linus"/>
-    <Content contentId="CNT_ALTURL_006" contentTypeId="DOCUMENT" dataResourceId="DRS_CNT_URL006" statusId="CTNT_IN_PROGRESS"/>
+    <Content contentId="CNT_ALTURL_006" contentTypeId="DOCUMENT" dataResourceId="DRS_CNT_URL006" statusId="CTNT_IN_PROGRESS" localeString="en_US"/>
     <ContentAssoc contentId="BLG10010" contentIdTo="CNT_ALTURL_006" contentAssocTypeId="ALTERNATIVE_URL" fromDate="2011-06-23 01:01:01"></ContentAssoc>
     
-    <DataResource dataResourceId="DRS_CNT_URL007" dataResourceTypeId="ELECTRONIC_TEXT" statusId="CTNT_IN_PROGRESS" objectInfo="/2008-Elections-BLG10007-content"/>
+    <DataResource dataResourceId="DRS_CNT_URL007" dataResourceTypeId="ELECTRONIC_TEXT" statusId="CTNT_IN_PROGRESS" objectInfo="/2008-Elections-BLG10007-content" localeString="en_US"/>
     <ElectronicText dataResourceId="DRS_CNT_URL007" textData="2008 Elections"/>
-    <Content contentId="CNT_ALTURL_007" contentTypeId="DOCUMENT" dataResourceId="DRS_CNT_URL007" statusId="CTNT_IN_PROGRESS"/>
+    <Content contentId="CNT_ALTURL_007" contentTypeId="DOCUMENT" dataResourceId="DRS_CNT_URL007" statusId="CTNT_IN_PROGRESS" localeString="en_US"/>
     <ContentAssoc contentId="BLG10007" contentIdTo="CNT_ALTURL_007" contentAssocTypeId="ALTERNATIVE_URL" fromDate="2011-06-23 01:01:01"></ContentAssoc>
 
 </entity-engine-xml>

Modified: ofbiz/trunk/specialpurpose/ecommerce/widget/blog/BlogScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/widget/blog/BlogScreens.xml?rev=1143647&r1=1143646&r2=1143647&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/widget/blog/BlogScreens.xml (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/widget/blog/BlogScreens.xml Thu Jul  7 03:59:31 2011
@@ -676,6 +676,7 @@
                 <entity-condition entity-name="ContentAssocViewTo" list="blogs" use-cache="true">
                     <condition-list combine="and">
                         <condition-expr field-name="contentIdStart" operator="equals" value="BLOGROOT"/>
+                        <condition-expr field-name="caContentAssocTypeId" operator="equals" value="SUB_CONTENT"/>
                         <condition-list combine="or">
                             <condition-expr field-name="caFromDate" operator="equals" from-field="null"/>
                             <condition-expr field-name="caFromDate" operator="less-equals" from-field="nowTimestamp"/>