joomla ( rdadd php ) ws cpwin1251

Сергей Владимирович
На сайте с 24.08.2008
Offline
121
632

Вобщем проблема такая.

Есть joomla она работает с кодировкой utf-8 есть установленный компонент rdadd php позволяющий вставлять в материалы произвольные пхп файлы

Собственно проблема заключается в том что вставляемый скрипт работает с другой кодировкой cp1251

и соответственно данные выводятся в виде непонятных загогулин. Может кто сталкивался с подобного рода проблемой подскажите решение.

Спасибо.

решение заключается в том что данные выводимые скриптом надо как то оперативно перекодировать в утф 8, а как это реализовать ... ?

Массовый постинг на AVITO.RU | IRR.RU (http://job.consultant-plus.com/)
T.R.O.N
На сайте с 18.05.2004
Offline
314
#1

Сергей Владимирович,

если нет желание сильно мудрить, берете все данные скрипта (если он выводит напрямую, все пихаете в переменную) а потом делаете echo iconv("CP1251", "UTF-8",text) из нормальной кодировки в UTF8

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
Сергей Владимирович
На сайте с 24.08.2008
Offline
121
#2

я не знаю на прямую не на прямую с базы он берет данные. не силен я php

но примерно понял что надо сделать

надо как то сюда

<?php

/**
* plugin rd_addphp
* @version $Id: rd_addphp.php 42 2007-10-27 10:16:40Z deutz $
* @package RD_AddPhp
* @copyright Copyright (C) 2006 run-digital
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
*
* This is free software
**/

/**
* Add PHP Plugin
*
* Usage:
* {rdaddphp file=realtive_path_to_file_in_mambodir_include_file_name}
*
* Example:
* Joomla installed in /var/www/joomla
* PHP-Files in /var/www/joomla/myphpfiles/
* Filename ist my_file.php
* {rdaddphp file=myphpfiles/my_file.php}
*
*/

/** ensure this file is being included by a parent file */
defined( '_JEXEC' ) or die( 'Restricted access' );

$mainframe->registerEvent( 'onPrepareContent', 'pluginAddPhp' );


function pluginAddPhp( &$row, &$params, $page=0 )
{
// expression to search for
$regex = '/{(rdaddphp)\s*(.*?)}/i';

$plugin =& JPluginHelper::getPlugin('content', 'rd_addphp');

if (!JPluginHelper::isEnabled('content', 'rd_addphp') ) {
$row->text = preg_replace( $regex, '', $row->text );
return;
}

// find all instances of plugin and put in $matches
$matches = array();
preg_match_all( $regex, $row->text, $matches, PREG_SET_ORDER );

foreach ($matches as $elm) {

parse_str( $elm[2], $args );
$phpfile=@$args['file'];
$output = "";
if ( $phpfile ) {
$phpfile = JPATH_ROOT . DS . $phpfile;
if (file_exists($phpfile)) {
ob_start();
include($phpfile);
$output .= ob_get_contents();
ob_end_clean();
} else {
$output = "File: $phpfile don't exists";
}
}
$row->text = preg_replace($regex, $output, $row->text, 1);

}
return true;
}
/* EOF */
?>

добавить декодер это самый ... может подойдет это ???


<?
...
$o['charset'] = 'UTF-8';
$sape = new SAPE_client($o);
unset($o);
echo $sape->return_links();
?>

Помогите совместить, может я не прав это все на уровне интуиции т.к пхп знаю на уровне новичка.

Сергей Владимирович добавил 08.10.2009 в 08:39

Может быть подойти к решению вопроса с правильной стороны ? ...

А точнее спросить сколько будет стоить поправить плагин rdadd php ? чтобы он умел перекодировать скрипты добавляемые в joomla из cp1251 в utf8 ?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий