2017-08-29 81 views
0

我正在嘗試設置Drupal 7 Facebook頁面插件模塊,並且一切正常,它工作正常。爲Drupal上的每個節點設置Facebook頁面插件

我的問題是這樣的:我不需要整個網站的獨特小部件。我需要N個Facebook PagePlugin小部件才能在特定內容類型的M個節點中顯示。我有一個內容類型「公司」,我需要在公司創建的每個配置文件中,這個小部件的配置可以分段的方式提供。 (1節點「公司」= 1個Facebook頁面插件小部件)。

有沒有辦法爲每個節點做到這一點?每個節點是否顯示來自Facebook頁面插件的配置臨時?

代碼?網站建設?

致各人問候

+0

丟掉模塊,並且只需將必要的FB代碼放置在此節點類型的自定義模板中...? – CBroe

+0

每個客戶端都將是創建其公司配置文件的drupal編輯器用戶。要求他們生成代碼並插入代碼並不直觀。最好自動做到這一點:通過表單中的字段請求鏈接到Facebook頁面,然後將其插入到窗口小部件設置中,但我不知道這是否可能: -/ – davidjguru

+0

誰說過讓他們這樣做?你對每個公司使用不同的模板,或者是什麼?並且添加另一個字段到您的自定義節點類型應該不是真正的挑戰。 – CBroe

回答

0

好的,任務完成了。 我只使用了六個(或七個:-P)部分:

  1. 首先,我創建了一個新的文本字段名爲 facebook_direction的內容類型。
  2. 其次,我收到了Facebook Developers給出的facebook腳本。
  3. 第三,我寫了一些PHP代碼,用於獲取有關當前節點 的信息並處理與節點關聯的字段值。
  4. 第四,我使用PHP 代碼更改了片段中的URL值,以便從每個節點獲取每個Facebook頁面。
  5. 第五,我在Drupal站點,名爲「Facebook的 流部件」

  6. 第六取得了新的自定義塊,我已經插入自定義塊體的代碼與PHP 主編活躍,標誌着塊僅限於種類 「公司」的內容類型。

地址:我確信,只有Facebook構件視圖中創建是且僅當節點已經完成了現場的Facebook方向。否則,小部件不會生成(line if(!is_null($ direction))),所以它不顯示爲空。

下面是代碼和正常工作:從塞維利亞

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/es_ES/sdk.js#xfbml=1&version=v2.10"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 

<?php 

$field = 'field_facebook_direction'; 
$node = menu_get_object(); 
$items = field_get_items('node', $node, $field); 
$direction = $items[0]['value']; 
if (!is_null($direction)) { 
?> 
<div class="fb-page" data-adapt-container-width="true" data-hide- 
cover="false" data-href="<?php 
echo $direction;?>" data-show-facepile="false" data-small- 
header="false" data-tabs="timeline"> 

<blockquote cite="<?php echo $direction;?>" class="fb-xfbml-parse- 
ignore"> 
<a href="<?php echo $direction;?>">Facebook Stream</a></blockquote> 
</div> 

<?php 
} 

?> 

問候! :-)

相關問題