2017-08-29 4 views
0

J'essaye de configurer le module plug-in de la page Facebook Drupal 7, et tout va bien, ça marche très bien.Mise en place de la page Facebook Plugin pour chaque noeud sur Drupal

Mon problème est le suivant: je n'ai pas besoin d'un widget unique pour l'ensemble du site. J'ai besoin de widgets Facebook PagePlugin pour afficher dans M nœuds d'un type de contenu spécifique. J'ai un type de contenu "entreprises" et j'ai besoin que dans chaque profil créé de l'entreprise, la configuration de ce widget soit disponible de manière segmentée. (1 noeud "company" = 1 widget de plugin de page facebook).

Y a-t-il un moyen de le faire pour chaque nœud? Est-ce que chaque nœud affiche un bloc de la page Facebook plugin configuré ad-hoc?

Code? Construction de site? Salutations à tous

+0

Jetez le module et placez simplement le code FB nécessaire dans un modèle personnalisé pour ce type de nœud ...? – CBroe

+0

Chaque client sera l'utilisateur de l'éditeur Drupal qui crée son profil d'entreprise. Il n'est pas intuitif de leur demander de générer le code et de l'insérer. Le mieux est de le faire automatiquement: demander le lien vers la page Facebook à travers un champ du formulaire puis l'insérer dans les paramètres du widget, mais je ne sais pas si c'est possible: -/ – davidjguru

+0

Qui a dit quoi que ce soit de les laisser faire ça? Utilisez-vous différents modèles pour chaque entreprise, ou quoi? Et ajouter un autre champ à votre type de noeud personnalisé ne devrait pas vraiment être un défi. – CBroe

Répondre

0

Ok, mission accomplie. Je ne ai utilisé six (ou sept :-P) parties:

  1. D'abord, je l'ai créé un nouveau champ de texte pour le type de contenu appelé facebook_direction. Ensuite, j'ai reçu le script facebook donné par Facebook Developers.
  2. Troisièmement, j'ai écrit du code PHP pour obtenir l'information sur le nœud actuel et le traitement des valeurs de champ associés au nœud.
  3. Quatrièmement, j'ai changé les valeurs d'URL de l'extrait avec le code PHP pour obtenir chaque page Facebook de chaque noeud.
  4. cinquième, j'ai fait un nouveau bloc personnalisé dans mon site Drupal, appelé « facebook widget flux »

  5. sixième, j'ai inséré le code dans le corps de bloc personnalisé avec PHP éditeur actif, marquant la bloquer comme seulement pour les types de contenu de type "sociétés".

Ajouter: Je me suis assuré que seul le point de vue widget Facebook est créé oui et seulement si le nœud a terminé sa direction de facebook sur le terrain. Sinon, le widget n'est pas généré (ligne if (! Is_null ($ direction))), donc il ne l'affiche pas vide.

Voici le code et fonctionne très bien:

<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 
} 

?> 

Salutations de Séville! :-)