ЦИТАТА(DjSalamander @ Jan 28 2010, 15:25 )
$result['title']=UTF8toCP1251($metas[0]['title'])- modules/index.php
Короче сделал строки так
КОД
$result['title']=UTF8toCP1251($metas[0]['title']);
$result['keywords']=UTF8toCP1251($metas[0]['keywords']);
$result['description']=UTF8toCP1251($metas[0]['description']);
Все заработало, применяется и работает, но сами надписи "сохранить" и "панель управления", которые на скрине, так и остались в непонятной кодировке )) Как их исправить? И кстати толком не работает, если прописать титлы, то сохранается для всех страниц (( А кейворды и дискриптион, вообще сохраняются только для главной. У кого нибудь вообще пошло это ((
Вот код Index.php модуля
КОД
<?php
if (!defined('MODULE_FILE')) {
die('Location: ../../index.php');
exit;
}
if (!function_exists('UTF8toCP1251')){
function UTF8toCP1251($str){
static $table = array("\xD0\x81" => "\xA8", // ?
"\xD1\x91" => "\xB8", // ?
);
return preg_replace('#([\xD0-\xD1])([\x80-\xBF])#se',
'isset($table["$0"]) ? $table["$0"] :
chr(ord("$2")+("$1" == "\xD0" ? 0x30 : 0x70))',
$str
);
}
}
function metanavi($options=''){
global $db, $prefix, $module_name;
$content.= '<center><font class="title">Управление мета-тегами</font><br><br>';
$content.= '[ <a href="index.php?name='.$module_name.'">'._HOME.'</a>';
if ($options!='') $content.= $options;
$content.= ' ]</center>';
return $content;
}
function get_meta($ajax=true){
global $db, $prefix, $module_name, $admin;
$query=save_text(urldecode($_SESSION['cur_query']));
$md_query=md5($query);
$metas=$db->sql_fetchrowset($db->sql_query("SELECT title, keywords, description FROM ".$prefix."_meta WHERE url='".$md_query."'"));
if(count($metas)){
if($ajax) list($result['title'], $result['keywords'], $result['description'])=$metas[0];
else{
$result['title']=UTF8toCP1251($metas[0]['title'];
$result['keywords']=$metas[0]['keywords'];
$result['description']=$metas[0]['description'];
}
$result['result']='ok';
}else{
$result['result']='fail';
}
if($ajax){
if (!headers_sent()){
header('Content-type: application/json');
}
echo json_encode($result);
}else return $result;
}
function save_meta(){
global $db, $prefix, $module_name, $admin;
if (is_admin($admin)){
$title=save_text(urldecode($_POST['title']));
$kewords=save_text(urldecode($_POST['keywords']));
$description=save_text(urldecode($_POST['description']));
if(trim($title.$kewords.$description)=='') $mode='delete';
$query=save_text(urldecode($_SESSION['cur_query']));
$md_query=md5($query);
$meta_exists=count($db->sql_fetchrowset($db->sql_query("SELECT id FROM ".$prefix."_meta WHERE url='".$md_query."'")));
if($mode!='delete'){
if($meta_exists) $mode='edit';
else $mode='add';
}
switch ($mode){
case 'edit':
$db->sql_query(sprintf("UPDATE %s_meta SET title='%s', keywords='%s', description='%s' WHERE url='%s'", $prefix, $title, $kewords, $description, $md_query));
$result['result']='ok';
break;
case 'add':
$db->sql_query(sprintf("INSERT INTO %s_meta (id, url, title, keywords, description) VALUES (null, '%s', '%s', '%s', '%s')", $prefix, $md_query, $title, $kewords, $description));
$result['result']='ok';
break;
case 'delete':
if($meta_exists){
$db->sql_query(sprintf("DELETE FROM %s_meta WHERE url='%s'", $prefix, $md_query));
$result['result']='ok';
}
break;
}
if (!headers_sent()){
header('Content-type: application/json');
}
echo json_encode($result);
}else header('location: index.php');
}
switch ($op) {
case 'getmeta': get_meta(); break;
case 'savemeta': save_meta(); break;
case 'config': config_meta(); break;
}
?>
Может тут что- то для 3.5 надо переделывать ?
И еще вот код из config_header.php
КОД
<?php
if (!defined("FUNC_FILE")) die("Illegal File Access");
//====Meta====
if(is_admin($admin)) {
echo '<script src="ajax/mootools-1.2-core.js"></script>';
echo '<script src="ajax/meta.js"></script>';
}
$_SESSION['cur_query']=$_SERVER['QUERY_STRING'];
include_once('modules/meta/index.php');
$pattern=array(
'#<title>[^<]*</title>#is',
'#<meta[\s]+name="keywords"[\s]+content="[^"]*">#is',
'#<meta[\s]+name="description"[\s]+content="[^"]*">#is'
);
$replacement=array(
'title'=>'<title>%s</title>',
'keywords'=>'<meta name="keywords" content="%s">',
'description'=>'<meta name="description" content="%s">'
);
$metas=get_meta(false);
if($metas['result']=='ok'){
foreach($replacement as $key=>$item) $replacement[$key]=sprintf($item, $metas[$key]);
$strhead=preg_replace($pattern, $replacement, $strhead);
}
?>
Может тут че то для 3.5 не подходит?
Ну ооочень нужен рабочий модуль (IMG:
http://antislaed.net/style_emoticons/default/mellow.gif) А- то смысл держать сайт на AS , если его оптимизировать невозможно . Пед вообще видимо дол**еб , что не продумал возможность оптимизации.
Сообщение отредактировал rusbanka: Jan 28 2010, 21:30