Jump to content
xt:Commerce Community Forum

[social] Facebook Integration


mzanier

Recommended Posts

  • 2 weeks later...
  • Replies 139
  • Created
  • Last Reply

Hallo,

hätte auch mal ne frage und zwar spuckt dieser lint check von facebook mir folgende meldung aus:

Required Property Missing og:title is required

Required Property Missing og:type is required

Required Property Missing og:url is required

Required Property Missing og:image is required

Name instead of Property Du hast <meta name="language" /> statt <meta property="og:language" /> benutzt

Nun ist meine frage, wie ändere bzw. füge ich diese ganzen OG sachen ein??

und ist der fettgedruckte teil relevant? wenn ja was hat es auf sich und wie kann ichs ändern? wäre für hilfreiche antworten sehr dankbar :)

Link to comment
Share on other sites

bin ich der einzige bei dem der button nicht funktioniert??

habt ihr alle diese OG sachen da eingefügt und es klappt bei euch oder woran liegt es bei mir?

ich habe das plugin installiert und meine daten eingefügt mehr stand in der anleitung nicht drinne.

Link to comment
Share on other sites

  • 3 weeks later...

Gibt es dazu ein Lösung?

Ja, die gibt es. Mit Open Graph Tags von Facebook.

<meta property="og:image" content="deine url zum Bild" />[/HTML]

Man sollte ohnehin für alle relevanten Informationen wie Titel, Beschreibung, Bild etc. mittels og Tags übergeben. Alles andere ist Zufall ;)

Die ganzen og Tags müssen halt in den Headbereich. Weiss nicht wie ich das in Veyton umsetzen kann.

Gruß

Link to comment
Share on other sites

Zu dem Head bereich: wenn du in den Ordner "templates->Dein Template->javascript" gehst findest du die Datei js.php.

In die Datei kannst du die Meta Tags einfügen und die werden dann auch im Head bereich angezeigt.

So weit bin ich auch gekommen, aber wir kann ich in die meta tags eine Variable einfügen?? Jedes Produkt hat ja eine andere Beschreibung ein anderes Bild etc. und dafür muss man ja zum Beispiel die Variable des bildes einfügen. Has du dazu eine Idee?

Link to comment
Share on other sites

Da das Facebook Plugin leider bei weitem nicht die konforme Einbindung von Open Graph Tags unterstützt und alles andere als kontrollierte Inhalte übergeben werden, habe ich das jetzt von Hand selbst gemacht.

Folgende Datei ist für den Head zuständig (xtCore/display.php). Hier wären Änderungen allerdings nicht updatesicher. Daher kann man meinen Code in der deinTemplate/javascript/js.php verwenden.

Hier werden jetzt NUR in der Produktansicht Open Graph Tags hinzugefügt und mit den bestehenden Variablen gefüllt. Prüfen könnt ihr die Geschichte mit dem Facebook Linter: https://developers.facebook.com/tools/debug


<!-- Facebook Open Graph Integration -->

<?php 

if($_GET["page"]=="product"){

	echo '<meta property="og:type" content="article" />';

	echo '<meta property="og:language" content="'.$language->code.'" />';

	echo '<meta property="og:title" content="'.htmlspecialchars($p_info->data['products_name']).'" />';

	echo '<meta property="og:description" content="'.htmlspecialchars(strip_tags($p_info->data['products_short_description'])).'" />';	

	echo '<meta property="og:url" content="'.$p_info->data['products_link'].'" />';

	echo '<meta property="og:site_name" content="'._SYSTEM_BASE_URL.'" />';

	echo '<meta property="og:image" content="'._SYSTEM_BASE_URL.'/media/images/thumb/'.str_replace('product:', '', $p_info->data['products_image']).'" />';

	echo '<meta property="fb:admins" content="123456789" />';

}

Zusätzlich binde ich alle nötigen JS nur dann ein wenn man sich auf der Produktansicht befindet, da nur hier Socialmediabuttons vorhanden sind. Da in unserem Shop immer eine LikeBox in der seitlichen Spalte sein wird, wird der Facebook Codeschnipsel immer geladen.

<!-- Social Media JS -->

<?php

if($_GET["page"]=="product"){

?>

<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>

<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>

<?php

}

?>

<script type="text/javascript" src="http://connect.facebook.net/de_DE/all.js#xfbml=1"></script>

Wenn daraus jemand ein Plugin basteln will wäre das super. Ich kanns leider nicht ;)

Gruß

Franky

Link to comment
Share on other sites

  • 3 weeks later...

OK, gefunden!

Anstatt: <fb:like href="{$products_link}"></fb:like>

nur: <fb:like href={$products_link}></fb:like>

...dann läuft es! Danke!

Wäre doch gelacht, wenn ich das nicht hinbekomme!

Ich habe ein ähnliches Problem gehabt, es lag daran, wo ich

<fb:like href="{$products_link}"></fb:like>

im Quellcode der product.html plaziert hatte.

Jedoch tut sich mir dabei ein Neues Problem auf: Es zerschießt mir das Layout vom Stratotemplate. Siehe Navigationsleiste verschiebt sich jetzt etwas nach unten.

Wie kann ich hier abhilfe schaffen?

siehe: Luxurydrinks Sélektion Prestige

Link to comment
Share on other sites

<h1>{$products_name}</h1>

{socialbookmark url=$products_link title=$products_name}

<div id="productinfowrap">

{if $products_image!=''}

<div id="productinfoimages">

<a href="{img img=$products_image type=m_popup path_only=true}" class="thickbox">{img img=$products_image type=m_info alt=$products_name}</a>

<!-- MORE IMAGES begin-->

{if $more_images !=''}

{foreach name=aussen item=img_data from=$more_images}

<div class="more_productinfoimages" ><a href="{img img=$img_data.file type=m_popup path_only=true}" class="thickbox" >{img img=$img_data.file type=m_thumb alt=$products_name}</a></div>

{/foreach}

{/if}

{/if}

<!-- MORE IMAGES end-->

</div>

<div id="boxes_produkt_middlecol">

{if $products_model!=''}<p class="product_id">{txt key=TEXT_PRODUCTS_MODEL}: {$products_model}</p>{/if}

{if $products_weight > 0}<p class="taxandshippinginfo">{txt key=TEXT_PRODUCTS_WEIGHT}: {$products_weight} KG</p>{/if}

{if $shipping_status}<p class="shippingtime">{txt key=TEXT_SHIPPING_STATUS} {$shipping_status}</p>{/if}

{if $stock_image}

<p class="stockimage">{img img=$stock_image.image type=t_img_stockrules alt=$stock_image.name}</p>

<p class="stockimagetext">{$stock_image.name}</p>

{/if}<div class="hrlightgrey"></div>

{if $review_stars_rating}

{if $date_available!=''}

<ul class="info_info">

<li class="infoInfo">{txt key=TEXT_PRODUCT_AVAILABLE}

{$date_available|date_format:"%A, %B %e, %Y"}</li>

</ul>

<br />

{/if}

<div class="reviews_rating_light"><div class="reviews_rating_dark" style="width:{$review_stars_rating}%"></div></div>

<p class="reviews_text">{if $products_rating_count}{$products_rating_count}{else}0{/if} <a href="{$link_reviews_list}">{txt key=TEXT_XT_REVIEWS_INFO}</a> | <a href="{$link_reviews_write}" rel="nofollow">{txt key=TEXT_XT_REVIEWS_WRITE}</a></p>

{/if}

{if $base_price}<div class="hrlightgrey"></div>{$base_price.price} {txt key=TEXT_SHIPPING_BASE_PER} {$base_price.vpe.name}{/if}

{if $products_discount!=''}<div class="hrlightgrey"></div>{$products_discount}{/if}

{if $products_fsk18=='1'}<div class="hrlightgrey"></div><img src="media/images/icon/usk18.gif" alt="" style="cursor:default" />{/if}

{if $smarty.const._CUST_STATUS_SHOW_PRICE eq '1'}{if $link_priceinquiry}<p><a href="{$link_priceinquiry}">{txt key=TEXT_XT_PRICEINQUIRY_ASK}</a></p>{/if}{/if}

<div class="hrlightgrey"></div>

</div>

<div id="boxes_produkt_rightcol">

{if $products_image!=''}<div id="productinfopricewithimages">{else}<div id="productinfopricewithoutimages">{/if}

<div id="productinfoprice">

{if $smarty.const._CUST_STATUS_SHOW_PRICE eq '1'}<p class="productprice">{$products_price.formated}</p>

<p class="taxandshippinginfo">{$products_tax_info.tax_desc}  {if $products_shipping_link}<a href="{$products_shipping_link}" target="_blank" rel="nofollow">{txt key=TEXT_EXCL_SHIPPING}</a>{/if}</p>

{price_table}

{/if}</div>

{hook key=product_info_tpl_before_cart}

{if $allow_add_cart eq 'true'}

{form type=form name=product action='dynamic' link_params=getParams method=post}

{form type=hidden name=action value=add_product}

{form type=hidden name=product value=$products_id}

{hook key=product_info_tpl_form_cart}

<div style="clear:both;"></div>

<div class="addtobasket">

<table border="0" cellspacing="0" cellpadding="2">

<tr><td colspan="2">{$products_information}</td></tr>

</td>

</tr>

<tr>

<td style="width:100%">{form type=text name=qty value=1 style='width:35px;'}</td>

<td>{button text=$smarty.const.BUTTON_ADD_CART file='button_in_cart.gif' type='form' btn_template='tpl_button_2.gif' space_left='25'}</td>

</tr>

</table>

</div>

{form type=formend}

{/if}

<div class="hrlightgrey"></div>

</div>

</div>

{hook key=product_info_tpl_cart}

</div>

<div style="clear:both;"></div>

<br />

<div id="productinfodetail">

{if $products_description !=''}

<div id="productinfo_desc">

<h2>{txt key=TEXT_PRODUCTS_DESCRIPTION}</h2>

{$products_description}

</div>

{/if}

{box name=xt_cliplister type=user}

{if $media_files !=''}

<br />

{include file="$selected_template/xtCore/pages/files/product_public_files.html"}

{/if}

</div>

<fb:like href="{$products_link}"></fb:like>

{hook key=product_info_tpl}

{if $_socialbookmarks}

<br />

<div id="socialbookmark">

{$_socialbookmarks}

</div>

{/if}

Link to comment
Share on other sites

also ich hatte "nur" das Problem mit diesem 'n' ganz links oben im Browserfenster, wie es auch Kahmoon beschrieben hat...

vielleicht hab ich hier zu wenig gelesen aber ich hab mich dann auf die Suche gemacht und in den Plugin-Hookpoints folgendes entfernt: ."\n"

Frag mich warum das da drinnen war, ist doch ein Zeilenumbruch....

Bitte klärt mich auf falls dieser doch "lebensnotwendig ist!!!:D

Bin ja nicht so ein Könner.

Danke schonmal

schoorli

Link to comment
Share on other sites

  • 2 weeks later...

War Gedanke Nr. 2 von mir.

Werd des wahrscheinlich auch so machen, da ich sonst ned aufn grünen Zweig komme.

Find´s halt schade, dass man des ned editieren kann.

Ist aber oftmals (leider) so, dass man letztendlich selber ran muss, um das gewünschte Ergebnis zu erzielen.

Dank dir!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
  • Create New...