We’ve migrated our documentation to a new site, which means some URLs have changed.
Audience

Neighbors / 重複排除

場合によって、モジュールがページ上に既に存在するコンテンツを表示する可能性があります。その場合、2つのユースケースがあります。

  1. エディトリアルコンテンツが実装したモジュールの近くに配置されると、同じ記事が2回表示されるリスクがあります。これを避けるために、ウィジェットを呼び出すスクリプトに表示するべきでない記事IDを記述する必要があります。これは context で "neighbors" パラメータを使うことで対応できます。詳しくは /public/widget/data をご覧ください。サンプルコードは以下の通りです。

    cX.CCE.run({ widgetId : '<widget id>', 
    			targetElementId : '<div id>'}, 
    		    { context: { neighbors: ['articleid1', 'articleid2']}});
    


    cX.CCE.callQueue.push(['run', 
    	{ widgetId : '<widget id>', 
    	targetElementId : '<div id>'},
    	{ context: { neighbors: ['articleid1', 'articleid2']}}]);
    


  2. 同じページに2つのモジュールを配置している場合、cX.CCE.runMulti 関数でサポートされています。各widgetオブジェクトは3つのフィールドを持つことができます。通常cX.CCE.runコールで渡すのと同じ3つの引数で、"widgetParams"、"widgetContext"、"widgetCallback" の3つです。サンプルコードは以下の通りです。

    widgets = [];
    widgets.push({
         widgetParams: {
                widgetId: '<widget id>',
                targetElementId: '<div id>'
         }
    });
    widgets.push({
         widgetParams: {
                widgetId: '<widget id>',
                targetElementId: '<div id>'
         }
    });
    cX.CCE.callQueue.push(['runMulti', widgets, 'recs-articleid']);
    


  3. 1と2のユースケースを組み合わせて、同一ページに2つのかつ近くにモジュールを配置した場合、同じ関数 cX.CCE.runMulti を使用し、さらに1でneighbors として渡していた引数(記事ID)を追加で記述します。

    widgets = [];
    widgets.push({ 
         widgetParams: {
         		widgetId: '<widget id>',
         		targetElementId: '<div id>'
         }
    });
    widgets.push({
         widgetParams: {
         		widgetId: '<widget id>',
         		targetElementId: '<div id>'
         }
    });
    cX.CCE.callQueue.push(['runMulti', widgets, 'recs-articleid', ['articleid1', 'articleid2']]);
     
    


Last updated: