UTF-8 a Facebook sharer bug

Ahoj,

prosím vás o pomoc. Mám internetovou stránku na Drupalu 6 (http://ekoporno.cz/) a mám nainstalovaný modul facebooksharer. Zobrazuji ho s uzlama. Problém je, že když na něj kliknu, změní se mi v dialogovém okně na facebookove strane pismo, ktere nezna cestinu. Např. "Proletáři všech zemí, spojte se doslova" napíše jako: "Proletáři vÅ¡ech zemÃ, spojte se doslova". Všechny moduly včetně tohoto jsou v UTF-8 a já fakt ani necítím, kde by mohl být problém. Může mi prosím někdo poradit?

Děkuji

Profile picture for user Jan Polzer

Zdravím, na první pohled jsem myslel, že se dívám na stránky Seznamu :-)

Nepomohlo by, kdyby to URL odkazující na Facebook mělo nadpis článku uváděný jako parametr překódovaný na HTML entity? Pomocí PHP funkce urlencode().

návštěvník

Ahoj,

:) ten seznam to máte pravdu, tady je inspirace jasná, ale žlutá je tam hlavně kvůli grafice na ekoporno, jiná se mi tak nelíbila :( No a jinak, děkuju za výbornou knihu kterou jsem četl a stále používám,

Bohužel nejsem zrovna mistr v php ještě, takže nevim jak mám tu funkci použít a hlavně nevim, jestli to okno vůbec jde editovat, jestli to není iframe prostě ..

Profile picture for user Jan Polzer

No jo... To asi bude spíše záležitostí toho modulu, muselo by se kouknout do jeho kódu a někam tu funkci nacpat. Nepoužívám ho, takže víc asi konkrétně neporadím. Třeba někdo jiný.

návštěvník

Vypadá takto:

 

Nevíte někdo prosím?

 

<?php
// $Id: facebookshare.module,v 1.2 2010/04/08 15:54:37 willsteinmetz Exp $

/**
* @file
* Adds a button to a node to share on a user's Facebook stream
*/

/**
* Implements hook_help()
*/
function facebookshare_help($path, $arg) {
switch ($path) {
case 'admin/settings/facebookshare':
case 'admin/help#facebookshare':
return '<p>'. t('Provides a way for viewers to share a link to a node on' .
' their Facebook stream.') .'</p>';
}
}

/**
* Implements hook_perm()
*/
function facebookshare_perm() {
return array(
'administer facebookshare',
'access facebookshare'
);
}

/**
* Implements hook_menu()
*/
function facebookshare_menu() {
$item['admin/settings/facebookshare'] = array(
'title' => 'Facebook Share',
'description' => 'Provides the configuration options for how Facebook Share operates on the site.',
'page callback' => 'drupal_get_form',
'page arguments' => array('facebookshare_admin_settings'),
'access arguments' => array('administer facebookshare'),
'file' => 'facebookshare.admin.inc',
);

return $item;
}

/**
* Implements hook_nodeapi()
*/
function facebookshare_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
if ($op == 'view') {
// Make sure we're on the right content type.
if (!in_array($node->type, variable_get('facebookshare_types', array()), TRUE)) {
return NULL;
}

// Make sure we're actually building the page to render in a browser.
if ($node->build_mode != NODE_BUILD_NORMAL) {
return NULL;
}

// Make sure the user has access to use Facebook Share.
if (!user_access('access facebookshare')) {
return NULL;
}

// Retrieve the location where we should show it, the style and the URL of the button.
$location = variable_get('facebookshare_location', array());
$url = url('node/' . $node->nid, array('absolute' => TRUE));

// Check in the teaser and full view.
if (($teaser && !empty($location['teasers'])) || (!$teaser && !empty($location['content']))) {
drupal_add_css(drupal_get_path('module', 'facebookshare') . '/facebookshare.css');
$node->content['facebookshare'] = array(
'#value' => theme('facebookshare', $url),
'#weight' => 10,
);
}
}
}

/**
* Implements hook_theme()
*/
function facebookshare_theme($existing, $type, $theme, $path) {
return array(
'facebookshare' => array(
'arguments' => array(
'url' => NULL,
),
),
'facebookshare_button' => array(
'arguments' => array(
'url' => NULL,
'size' => NULL,
'text' => NULL,
),
),
);
}

/**
* Themes facebook share button box
*/
function theme_facebookshare($url) {
$output = '<div class="facebookshare-box">';
$output .= theme(
'facebookshare_button',
$url,
variable_get('facebookshare_size', ''),
variable_get('facebookshare_text', '')
);
$output .= '</div>';

return $output;
}

/**
* Themes facebook share button
*/
function theme_facebookshare_button($url, $size, $text) {
$output = '<a name="fb_share" ' .
'type="' . $size . '" share_url="' . $url . '">' .
$text . '</a>' .
'<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" ' .
'type="text/javascript"></script>';

return $output;
}

návštěvník

TGak nakonec se to zaridilo samo :) Facebook to asi vyresil sam..

Odpovědět

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru