'ca_ES', 1 => 'cs_CZ', 2 => 'da_DK', 3 => 'de_DE', 4 => 'es_ES', 5 => 'fa_IR', 6 => 'fr_CA', 7 => 'fr_FR', 8 => 'he_IL', 9 => 'hr_HR', 10 => 'hu_HU', 11 => 'it_IT', 12 => 'ja_JP', 13 => 'ka_GE', 14 => 'lv_LV', 15 => 'mk_MK', 16 => 'nl_NL', 17 => 'pl_PL', 18 => 'pt_BR', 19 => 'pt_PT', 20 => 'ro_RO', 21 => 'ru_RU', 22 => 'sk_SK', 23 => 'sr_RS', 24 => 'sv_SE', 25 => 'tr_TR', 26 => 'vi_VN', 27 => 'zh_CN', ); // User language $language = $user['language']; if (! in_array($language, $valid_fb_languages)) { $code_lang = substr($language, 0, 2); // Compose a language $language = $code_lang.'_'.strtoupper($code_lang); if (! in_array($language, $valid_fb_languages)) { // Search a language foreach ($valid_fb_languages as $valid_fb_language) { if ($code_lang == substr($valid_fb_language, 0, 2)) { return $valid_fb_language; } } // default language $language = 'en_US'; } } return $language; } function fbp_header($content, &$smarty) { // replace tag html $search = 'assign('FACEBOOK_APP_ID', (is_numeric($conf['fbp']['facebook_app_id']) ? $conf['fbp']['facebook_app_id'] : FACEBOOK_APP_ID)); // define language $template->assign('FACEBOOK_LANGUAGE', fbp_get_fb_language()); $template->assign('FBP_PATH', FBP_PATH); $template->assign('fbp', $conf['fbp']); //~ $template->smarty->register_modifier('boolean_to_string', 'boolean_to_string'); } } function fbp_loc_end_page_header() { global $template, $conf, $user, $page; if ($page['fbp']['do_facebook_init']) { // set prefilter $template->set_prefilter('header', 'fbp_header'); if (empty($page['fbp']['url'])) { $page['fbp']['url'] = get_absolute_root_url().script_basename(); if ($conf['php_extension_in_urls']) { $page['fbp']['url'] .= '.php'; } } $template->assign('fbp_page', $page['fbp']); $template->set_filename('fbp_init.fb', FBP_DIR.'/tpl/init.fb.tpl'); $template->append('head_elements', $template->parse('fbp_init.fb', true)); if ( (script_basename() == 'index') and ($conf['fbp']['social_plugin_activity_feed']['enabled'] or $conf['fbp']['social_plugin_like_box']['enabled']) ) { $template->block_html_head('', '', $smarty, $repeat); } } } function fbp_do_facebook_init($do_it) { global $conf; return $do_it or ( ( (script_basename() == 'picture') and ($conf['fbp']['social_plugin_like_button']['enabled'] or $conf['fbp']['social_plugin_facepile']['enabled'] or $conf['fbp']['social_plugin_comments']['enabled'] or $conf['fbp']['share_picture']) ) or ( (script_basename() == 'index') and ($conf['fbp']['social_plugin_activity_feed']['enabled'] or $conf['fbp']['social_plugin_like_box']['enabled'] or $conf['fbp']['share_album']) ) or ( (script_basename() == 'admin') and (isset($_GET['page']) and $_GET['page'] == 'plugin') and (isset($_GET['section']) and strtok($_GET['section'], '/') == 'FacebookPlug') ) ) ; } function fbp_is_facebook_ip() { foreach (array( FBP_IP_FB, //~ '127.0', ) as $ip_fb) { if (preg_match('/'.$ip_fb. '/', $_SERVER["REMOTE_ADDR"])) { return true; } } return false; } function ftp_loc_end_section_init() { global $conf, $page, $user; // No restristion for facebook user if ( $page['fbp']['do_facebook_init'] and is_a_guest() and $conf['fbp']['allow_fb_access_private_page'] and fbp_is_facebook_ip() ) { global $user, $header_notes; // Notes $header_notes[] = 'Facebook robot detected, guest can access private page'; // Allow guest access $conf['guest_access'] = true; // No forbidden categorie $user['forbidden_categories'] = ''; $user['level'] = max($conf['available_permission_levels']); switch (script_basename()) { case 'picture': if (isset($page['image_id'])) { $page['rank_of'][$page['image_id']] = 0; $page['items'] = array_flip($page['rank_of']); } break; case 'index': if (isset($page['category']['representative_picture_id'])) { fbp_loc_begin_index_category_thumbnails(array($page['category'])); } break; } //~ else if $page['category']['id'] } } add_event_handler('init', 'fbp_init'); add_event_handler('loc_end_page_header', 'fbp_loc_end_page_header'); add_event_handler('fbp_do_facebook_init', 'fbp_do_facebook_init'); add_event_handler('loc_end_section_init', 'ftp_loc_end_section_init'); ?>