2016-05-19 2 views
0

Ich habe einen Standardwert für ein RTE-Feld in AEM festgelegt. Dieser Wert wird korrekt angezeigt, wenn der Dialog zum ersten Mal geöffnet wird. Wenn er jedoch gespeichert und erneut geöffnet wird, wurde die href vom A-Tag entfernt. (Dies ist ein externer Link)Wie verhindere ich, dass AEM die href von einer RTE entfernt, die einen Standardwert hat, der eine Verknüpfung enthält?

Es funktioniert korrekt, wenn diese href dann wieder mit der RTE-Link-Taste hinzugefügt wird, aber natürlich möchte ich, dass das erste Mal richtig funktioniert.

Ich bin neu in AEM und zur Zeit haben die folgende (Hinweis: für dieses Beispiel habe ich die URL und Kopie geändert haben Versionen zu testen):

<branchResultsCopy 
    jcr:primaryType="cq:Widget" 
    externalStyleSheets="[/etc/designs/rtg/clientlibs/author/style/source/rte.css]" 
    fieldLabel="Branch results copy" 
    name="./branchresultscopy" 
    defaultValue="&lt;p&gt;If you'd like information about blah blah blah, visit our &lt;a target='_blank' link-checker='skip' href='https://www.testurl.com'&gt;Link text&lt;/a&gt; page.&lt;/p&gt;" 
    xtype="richtext"> 
     <htmlRules 
      jcr:primaryType="nt:unstructured"> 
       <links 
        jcr:primaryType="nt:unstructured" 
        protocols="[http://,https://]"/> 
     </htmlRules> 
     <rtePlugins 
      jcr:primaryType="nt:unstructured"> 
       <edit 
        jcr:primaryType="nt:unstructured"> 
         <htmlPasteRules 
          jcr:primaryType="nt:unstructured"> 
           <allowBasics 
            jcr:primaryType="nt:unstructured" 
            anchor="{Boolean}true" 
            bold="{Boolean}true" 
           /> 
         </htmlPasteRules> 
       </edit> 
       <format 
        jcr:primaryType="nt:unstructured" 
        features="[bold,italic]"/> 
       <lists 
        jcr:primaryType="nt:unstructured" 
        features="[ordered,unordered]"/> 
       <links 
        jcr:primaryType="nt:unstructured" 
        features="*"/> 
     </rtePlugins> 
</branchResultsCopy> 
+0

Ist die Verbindung, die Sie verwenden, gültig (ich nehme an, das Beispiel ist eine Dummy-URL)? Vielleicht sogar mit dem Link-Checker = 'skip' (noch nie davon gehört) wird der Link vom Link Checker entfernt. – Thomas

+0

Danke Thomas, habe ich überprüft und die URL in meinem echten Code geht auf einen gültigen Link. – MarkP

Antwort

1

Ich denke, Ihr Hauptproblem ist die Syntax in der verwendeten defaultValue-Feld. Ich habe gerade den Test selbst gemacht, indem ich einen Link zu einer Textkomponente hinzugefügt habe, dann ging ich durch CRXDE und nahm den ./text des jcr: content und kopierte das direkt in das defaultValue Feld der Komponente.

Dann habe ich eine neue Instanz der Komponente zu einer Seite hinzugefügt, bearbeitet, der Standardwert war in der RTE, ich klickte einfach gespeichert und der Link blieb intakt.

Ich habe ein Paket der Komponente, um zu überprüfen, was AEM in das XML geschrieben, und es war ziemlich seltsam, gelinde gesagt, alle> Zeichen bleiben intakt, während alle < sind escaped.

hier ist mein default, die in dem Paket dialog.xml war:

defaultValue="&lt;p>Timeless beauty. Classic simplicity. It must be the circle! Each &lt;a href=&quot;http://google.ca&quot;>Geometrixx-brand&lt;/a> circle is handcrafted from an infinite number of very skinny isoceles triangles arrange in, well, a circle! We guarantee that our circles are not simply&lt;i> n&lt;/i>-gons, where &lt;i>n&lt;/i> is a very large number; ours are guaranteed round, no matter how closely you look. test&lt;/p>&#xa;" 

Beachten Sie, dass sie & quot für die Attribute verwenden.

Auch eine kleine Warnung, das RTEPlugin mag nicht das Attribut link-checker = "skip", es wird es ausziehen.

Sie müssen sagen, dass Sie ein benutzerdefiniertes Attribut haben, das bearbeitet werden soll, wenn Sie möchten, dass der Link-Checker beibehalten wird.

Der einzige Weg, ich weiß, wie dies zu tun ist, ist durch den klassischen Dialog Dies erfordert, einen neuen Knoten zu den LinkAttributes in der LinkDialogConfig des RTEPlugin hinzufügen.

so etwas wie dieses

<skipchecker 
    jcr:primaryType="nt:unstructured" 
    attribute="link-checker" 
    fieldDescription="Skip link checker" 
    fieldLabel="Skip Checker" 
    name="./linkdialog/skip" 
    xtype="selection"> 
     <options jcr:primaryType="cq:WidgetCollection"> 
      <noskip 
       jcr:primaryType="nt:unstructured" 
       text="No Skip" 
       value=""/> 
      <skip 
       jcr:primaryType="nt:unstructured" 
       text="Skip" 
       value="skip"/>   
     </options> 
</skipchecker> 

All dies wurde mit dem nicht-sightly Komponente zu testen, obwohl Sie nicht erwähnt, welche Version der Textkomponente Sie verwendet haben. Die Sightly-Komponente funktioniert zwar etwas anders, aber der klassische Dialog ist der gleiche und sollte dasselbe Plugin verwenden.

+0

Danke Francois, das " Bit löste mein Hauptproblem. – MarkP

Verwandte Themen