Plugin+Wordpress+Кирилица = Проблем

scorebg

Active Member
Здравейте,
Имам следния проблем - искам да ползвам един безплатен плугин за добавяне на съдържание е от youtube. Проблема е естествено в кирилицата и идея нямам защо се получава.
Направил съм чисто нова инсталация на wordpress, с неговата си тема.
-При създаване на msql таблица съм задал кодиране utf8_general_ci
-във wp-config - съм оставил кодиране - utf8
- ето и фукциите за създаване на база данни
- ще съм благодарен ако предложите някакво решение
- при нужда ще изпратя целия код, свободно достъпен е, но взе пак не качва целия код
- благодаря
PHP:
if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') ) {
	if ( ! empty($wpdb->charset) )
		$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
	if ( ! empty($wpdb->collate) )
		$charset_collate .= " COLLATE $wpdb->collate";
}

   $table_name = $wpdb->prefix . "myvideoblog";
   if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
      
      $sql = "CREATE TABLE " . $table_name . " (
	  fid mediumint(9) NOT NULL AUTO_INCREMENT,
	  feed varchar(200) NOT NULL,
	  category varchar(200) NOT NULL,
	  active varchar(3) NOT NULL,
	  maxvideos mediumint(9) NOT NULL,
	  poststatus varchar(10) NOT NULL,
	  sunday char(3) NOT NULL,
	  monday char(3) NOT NULL,
	  tuesday char(3) NOT NULL,
	  wednesday char(3) NOT NULL,
	  thursday char(3) NOT NULL,
	  friday char(3) NOT NULL,
	  saturday char(3) NOT NULL,
	  commentstatus varchar(10) NOT NULL,
	  pingstatus varchar(10) NOT NULL,
	  blocktags blob NOT NULL,
	  checktitle varchar(3) NOT NULL,
	  checkdesc varchar(3) NOT NULL,
	  checktags varchar(3) NOT NULL,
	  postauthor mediumint(3) NOT NULL DEFAULT  '1',
	  scheduletime int(10) NOT NULL,
	  grab_comments varchar(3) NOT NULL DEFAULT 'no',
	  max_comments int(50) NOT NULL DEFAULT '0',
	  aprove_comments varchar(3) NOT NULL DEFAULT 'yes',
	  PRIMARY KEY fid (fid)
	) $charset_collate;";

      require_once(ABSPATH . 'wp-admin/upgrade-functions.php');
      dbDelta($sql);
	}
	$sk = mainnewsk();
	add_option('mvb_postdefault', '<p><a href="[posturl]"><img src="[videoimage]" alt="[videotitle]" border="0" align="left" style="width:120px;height:80px;"></a>[videodescription]<br clear="all"></p>[hide]<p><center>[videoplayer]</center></p>');
	add_option('mvb_posttemplate', '<p><a href="[posturl]"><img src="[videoimage]" alt="[videotitle]" border="0" align="left" style="width:120px;height:80px;"></a>[videodescription]<br clear="all"></p>[hide]<p><center>[videoplayer]</center></p>');
	add_option('mvb_securitykey', $sk);
	add_option('mvb_removeurls', 'yes');
	add_option('mvb_copyimages', 'yes');
	add_option('mvb_descsize', '800');
	add_option('mvb_imglib', 'yes');
	add_option('mvb_pwsize', '540');
	add_option('mvb_phsize', '420');
	add_option('mvb_myplayer', 'no');
	add_option('mvb_utf8_active', 'yes');
	add_option('mvb_customfield_thumb', 'mvb_thumb_url');
	add_option('mvb_customfield_desc', 'mvb_vid_desc');
	add_option('mvb_customfield_vid', 'mvb_vid_url');
	add_option('mvb_customfield_vidsource', 'mvb_vid_source');
	add_option('mvb_thumbs_dir', 'uploads/mvbthumbs');
	add_option('mvb_theme_setting', 'default');
	add_option('mvb_jwplayer', 'no');
	add_option('mvb_customfield_vidembed', '');
	add_option('mvb_customfield_vidtime', 'duration');
	add_option('mvb_maxpages', '0');
	add_option('mvb_resizethumb', 'no');
	add_option('mvb_resizethumb_width', '200');
	add_option('mvb_resizethumb_height', '140');
	add_option('mvb_installed_ver', $mvb_version);
}
- според мен в плугина има фукция да намира сам енкодинга
PHP:
function fixEncoding($in_str) 
{ 
if (function_exists('mb_detect_encoding')) {
  $cur_encoding = mb_detect_encoding($in_str) ; 
  if($cur_encoding == "UTF-8" && mb_check_encoding($in_str,"UTF-8")) {
    return $in_str; 
  } else {
    return utf8_encode($in_str);
	}
} else {
    return $in_str;
}
}

function returnImage($text) {
    //$text = html_entity_decode($text, ENT_QUOTES, 'UTF-8');
    //echo $text;
    $pattern = "/<img[^>]+\>/i";
    preg_match($pattern, $text, $matches);
    $text = $matches[0];
    return $text;
}
function scrapeImage($text) {
    
    $pattern = '/src=[\'"]?([^\'" >]+)[\'" >]/'; 
    
preg_match($pattern, $text, $link);

$link = $link[1];
//$link = urlencode($link);
return $link;
}

1.jpg1a.png1.jpg1a.png
 
От: Plugin+Wordpress+Кирилица = Проблем

Колега нямам решение на проблема ти, обаче пробвай с Stream Video Player плъгин. В сайта за вицовете по-долу го използвам и си сработва много добре, препоръча ми го ktomov.
 
От: Plugin+Wordpress+Кирилица = Проблем

Я запази файловете като utf-8 без BOM и пробвай.
 
От: Plugin+Wordpress+Кирилица = Проблем

Благодаря за оказаната помощ. С помощта от rombeca, се оправи съдържанието всичко е наред освен постоянните връзки, остават си както са снимката отбелязани в 1. Сега ще търсим решение и на този проблем :)
 
От: Plugin+Wordpress+Кирилица = Проблем

Благодаря за оказаната помощ. С помощта от rombeca, се оправи съдържанието всичко е наред освен постоянните връзки, остават си както са снимката отбелязани в 1. Сега ще търсим решение и на този проблем :)

Махни // от тук:

//$link = urlencode($link);
 
От: Plugin+Wordpress+Кирилица = Проблем

За съжаление не е там проблема. Немога да разбера но явно цялата проблемация идва при създаването на thumbnails, по-необяснима за мен причина неможе да създаде правилно файла, прави файлове от сорта - /img_13_dhdhdhndhdhdh-dh-dhdhdhdhdh-dhdhdhdhdh.jpg, което напълно съвпада с пермалинка.
За публикуване на пост plugina прави това:
PHP:
<p><a href="[videotitle]"><img src="[videoimage]" alt="[videotitle]" border="0" align="left" style="width:120px;height:80px;"></a>[videodescription]<br clear="all"></p>[hide]<p><center>[videoplayer]</center></p>

Резултатът като html код е това:
<p><a href="Ивана - Кръв ми капе от сърцето"><img src="http://****.me/wp-content/uploads/mvbthumbs/img_94_dhdhdhdhdh-dhsnensdh-dhdh-dhdhdhdhu-dhn-nnsnendhundh.jpg" alt="Ивана - Кръв ми капе от сърцето" border="0" align="left" style="width:120px;height:80px;"></a><br clear="all"></p><!--more--><p><center><!--videoplayer--><iframe title="YouTube video player" class="youtube-player" type="text/html" width="540" height="420" src="http://www.youtube.com/embed/E_Oop2v4mgs?rel=0" frameborder="0" allowFullScreen></iframe><!--endvideoplayer--></center></p>

Но как и защо неможе да създаде файл на кирилица ми остава непонятно.

Проблема трябва да е някъде тук:
PHP:
if (($copyimages == "yes") OR ($fromxvideos == "1")) {
	$thumbtitle = sanitize_title($title);
	$thumbtitle = preg_replace('#[.?$@!]#i','',$thumbtitle);
	$thumbtitle = substr($thumbtitle, 0, 100);
	$thumbpath = ABSPATH . 'wp-content/'.$thumbs_dir.'';

	if(!file_exists($thumbpath)) { 
	mkdir($thumbpath, 0777);
	}
	$thumbname = "".$thumbpath."/img_".$post_id."_".$thumbtitle.".jpg";
	$thumbname_big = "".$thumbpath."/img_".$post_id."_".$thumbtitle.".jpg";
	
	copy_image_curl($thumbnail, $thumbname);
	resizeImage($thumbname, 480, 315, $thumbname_big);
	$siteurl = get_bloginfo('wpurl');
	if (!file_exists($thumbname)){
	$videoimage = $thumbnail;
	} else {
	$videoimage = "".$siteurl."/wp-content/".$thumbs_dir."/img_".$post_id."_".$thumbtitle.".jpg";
		if ($imglib == "yes") {
	$imglib_dir = str_replace("uploads/", '', $thumbs_dir);
	$imglocation = "".$imglib_dir."/img_".$post_id."_".$thumbtitle.".jpg";
	$imglocation2 = ''.$thumbpath.'/img_'.$post_id.'_'.$thumbtitle.'.jpg';
	$imglib_title = "img_".$post_id."_".$thumbtitle."";
	
	
	$wp_filetype = wp_check_filetype(basename($imglocation), null );
	$attachment = array(
     'post_mime_type' => $wp_filetype['type'],
     'post_title' => preg_replace('/\.[^.]+$/', '', basename($imglocation)),
     'post_content' => '',
     'post_status' => 'inherit'
	);
	if(!function_exists('wp_create_thumbnail')){
	require ( ABSPATH . 'wp-admin/includes/image.php' );
	}
	$attach_id = wp_insert_attachment( $attachment, $imglocation, $post_id );
	$attach_data = wp_generate_attachment_metadata( $attach_id, $imglocation2 );
	wp_update_attachment_metadata( $attach_id,  $attach_data );
	update_post_meta($post_id, "_thumbnail_id", $attach_id);
		}
	}
} else {
	$videoimage = $thumbnail;
}
 
От: Plugin+Wordpress+Кирилица = Проблем

Проблемът още е не решен, включи се един програмист уж , пак остана не решен.

Значи проблемът е следната таблица - wp_posts , графи съответно
guid и post_name.

И двете са свързани в postname има запис "dhdhdhdhdh-dhdhdhdhdh-dh-dhnensndhdh"
а guid " http://domein.com/dhdhdhdhdh-dhdhdhdhdh-dh-dhnensndhdh"

Някой може ли да даде съвет какво да търся в php кода, къде точно се правят тези записи, заявки и т.н

Благодаря.
 
От: Plugin+Wordpress+Кирилица = Проблем

Проблемът още е не решен, включи се един програмист уж , пак остана не решен.

Значи проблемът е следната таблица - wp_posts , графи съответно
guid и post_name.

И двете са свързани в postname има запис "dhdhdhdhdh-dhdhdhdhdh-dh-dhnensndhdh"
а guid " http://domein.com/dhdhdhdhdh-dhdhdhdhdh-dh-dhnensndhdh"

Някой може ли да даде съвет какво да търся в php кода, къде точно се правят тези записи, заявки и т.н

Благодаря.

Нещо не мога да схвана какво искаш да кажеш, самия url на браузъра-ти ли показва така линка, или? Ако е самия url може да е от браузъра ти, на някой излизт само символи заради енкодинга и, дай сайта да видим как излиза. ако пък не виж в самите настройки на wordpress, дане би да си го направил на енкодинг windows-1251, ако е така го направи на utf-8, или ми обясни по подробно защото аз така те разбрах.
 
От: Plugin+Wordpress+Кирилица = Проблем

Значи пробвах всички варианти с енкодинга - в момента е utf-8. Проблемът е следния
plugin работи добре с изключение, когато клипът започва на кирилица :
пример:http://gledai.me/dhdhdhdhudhdh-dhdhnedh-dhdhu-1st-class-remix/


ако има един символ или буква която да не е на кирилица всичко е наред:
пример: http://gledai.me/new-брутално-азис-и-галена-без-причина-official-so/

Със сигурност не е от браузъра.

И не мога да разбера защо се случва това.
 
От: Plugin+Wordpress+Кирилица = Проблем

Проблема мисля че е в създаването на име на тумба. След това го обръща в post_name, и после съответно в url.
Тая функция

sanitize_title($title);

какво прави?
 
От: Plugin+Wordpress+Кирилица = Проблем

Би трябвало да е това:

sanitize_title('This Long Title is what My Post or Page might be')

резултат:
this-long-title-is-what-my-post-or-page-might-be
 

Горе