2

私は現在、Alfresco 4.2.bでシステム全体のクイック共有機能を無効にする方法を見つけようとしています。それが不可能な場合は、少なくともドキュメントライブラリとドキュメント詳細ページの両方からクイック共有リンクを削除してください。

私が最初に試したのは、 alfresco-global.propertiesファイルで構成可能なsystem.quickshare.enabledプロパティを利用することです。次の例外をスローしても機能しません。

それについて開かれた問題を見つけました:https ://issues.alfresco.com/jira/browse/ALF-16233 。

これはバグのようであり、今後のリリースで修正される予定なので、UIからクイックシェアリンクを可能な限り削除することに重点を置いています。ちなみに、私は役立つ投稿を見つけました:https ://forums.alfresco.com/en/viewtopic.php?f=48&t=46659 。次の拡張機能を作成して、ドキュメントの詳細ページのドキュメントリンク領域を正常に削除しました。

<extension>
    <modules>
        <module>
            <id>Removes from document-details page the Share region.</id>
            <auto-deploy>true</auto-deploy>
            <components>
                <component>
                    <scope>template</scope>
                    <region-id>document-links</region-id>
                    <source-id>document-details</source-id>
                    <sub-components>
                        <sub-component id="default">
                            <evaluations>
                                <evaluation id="hideDocumentLinks">
                                    <render>false</render>
                                </evaluation>
                            </evaluations>
                        </sub-component>
                    </sub-components>
                </component>
            </components>
        </module>
    </modules>
</extension>

それはいいです。また、ドキュメントの詳細ページから、share-config.xmlファイルにいくつかの変更を実行するクイックシェアリンクがあります。具体的には、[ソーシャル]セクション内のタグを空のままにします。

<config evaluator="string-compare" condition="Social">
      <!-- Alfresco QuickShare social widget - for creating public url that can be shared -->
      <quickshare>
         <!--
            Will be available as Alfresco.constants.QUICKSHARE_URL using javascrip in the browser.
            If changing this, make sure this url matches the quickshare rule in urlrewrite.xml
         -->
         <url>{context}/s/{sharedId}</url>
      </quickshare>

      <!-- Alfresco LinkShare social widget - share a link to social sites -->
      <linkshare>
         <!--
            These actions will be available as Alfresco.constants.LINKSHARE_ACTIONS using javascript in the browser.
            Labels will be retrieved from msg key "linkshare.action.<id>.label" unless explicitly provided as an
            attribute to the action element.
            Each param value accepts the following input: {shareUrl}, {displayName} or a msg key that will be prefixed.
            I.e. {body} for the email action's href param will be retrieved using "linkshare.action.email.body".
         -->
         <action id="email" type="link" index="10">
            <param name="href">mailto:?subject={subject}&amp;body={body}</param>
            <param name="target">new</param>
         </action>
         <action id="facebook" type="link" index="20">
            <param name="href">https://www.facebook.com/sharer/sharer.php?u={shareUrl}&amp;t={message}</param>
            <param name="target">new</param>
         </action>
         <action id="twitter" type="link" index="30">
            <param name="href">https://twitter.com/intent/tweet?text={message}&amp;url={shareUrl}</param>
            <param name="target">new</param>
         </action>
         <action id="google-plus" type="link" index="40">
            <param name="href">https://plus.google.com/share?url={shareUrl}</param>
            <param name="target">new</param>
         </action>
      </linkshare>

   </config>

このロジックはnode-header.get.jsWebスクリプトで定義されているため、次のようになります。

model.showQuickShare = (!model.isContainer && model.showQuickShare && config.scoped["Social"]["quickshare"].getChildValue("url") != null).toString();

それにもかかわらず、クイックシェアリンクはドキュメントライブラリページに残っているので、私は驚いています。ドキュメントライブラリページにリンクを表示するかどうかについては、上記と同様のロジックが存在すると思いましたが、そうではありません。だから、今私は他に何ができるのか疑問に思っています...私が見てきたように、そのリンクはドキュメントライブラリウィジェット(documentlist.js)を使用してクライアント側で生成されます:

    if (!record.node.isContainer)
    {
       html += '<span class="item item-social item-separator">' + Alfresco.DocumentList.generateQuickShare(this, record) + '</span>';
    }

documentlibrarywidgetをカスタマイズする拡張機能を作成することを考えています:[url] http://blogs.alfresco.com/wp/ddraper/2012/05/22/customizing-share-javascript-widget-instantiation-パート-1/[/url]。それは可能でしょうか?

ウィジェットのカスタマイズを開始する前に、必要なことを行うためのより簡単な方法があるかどうかを知りたいです。その「魔法の」方法が存在しない場合は、説明されているアプローチが正しいかどうかを知りたいと思います。

前もって感謝します。

4

1 に答える 1

2

documentlibraryウィジェット(documentlist.js)の拡張は思ったほど簡単ではなかったので、元の質問のコメントの1つで説明されたアイデアに基づいて、より簡単で、シンプルで、邪魔にならないソリューションで解決しました。一般的には、すべてのページのヘッダーにカスタムCSSを追加する拡張モジュールを定義することで構成されます。そのCSSは、クイックシェアリンクのスタイルを次のようにオーバーライドします。

/* Disables the Quick Share link both in documentlibrary and document-details pages */
.item-social a.quickshare-action {
    visibility: hidden;
}

この種の拡張モジュールを定義する方法については、https ://forums.alfresco.com/en/viewtopic.php?f = 48&t = 47912#p140623で説明されています。

それが同じことを達成しようとしている他の人に役立つことを願っています。

于 2012-12-17T18:35:13.000 に答える