Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 13 Ответов
  • 1519 Просмотров
*

amor

  • Захожу иногда
  • 58
  • 0 / 0
В кодировке ли дело. SOS
« : 14.05.2015, 22:24:31 »
Друзья, прошу помощи. Сайт объявлений на Adsmanaget 2.9.11, Joomla 3.4.0
   В превью объявления должен отображаться текст (около 120 символов), ну т. е. часть текста из объявления. По факту отображается намного меньше и пару знаков в виде ромба с вопросам или угловой скобки.
   Если текст писать на английском, то отображение корректно, т. е. в превью около 120 символов и все знаки отображаются правильно.
   Возможно дело в кодировке, если да, то как правильно перекодировать - отдельные файлы или весь сайт, короче хотелось бы знать ваше мнение, если можно поподробней.
Ссылка на страницу:
http://www.meb-yarm.ru/catalog/gostinye
Речь идет о конкретном объявлении под названием "Вера-Ника".
« Последнее редактирование: 14.05.2015, 22:29:08 от amor »
*

Siber

  • Захожу иногда
  • 150
  • 9 / 0
Re: В кодировке ли дело. SOS
« Ответ #1 : 14.05.2015, 23:24:54 »
Цитировать
По факту отображается намного меньше
Считаются и теги, а также необходимо учитывать то, что кирилица↓

Цитировать
пару знаков в виде ромба с вопросам или угловой скобки
Кирилический символ кодируется 2 байтами. Функция, которая обрезает текст это не учитывает. "Полсимвола, кирилица" - это и будут ромбы и т.д.
Необходимо заменить функцию, которая обрезает текст при выводе превью объявлений.
Ключевая фраза mb_substr кириллица в поиске.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Re: В кодировке ли дело. SOS
« Ответ #2 : 15.05.2015, 06:23:25 »
Должно быть так:
Код
<?php 
$content->ad_text = str_replace ('<br />'," ",$content->ad_text);
$af_text = JString::substr($content->ad_text, 0, 100);
if (strlen($content->ad_text)>100) {
$af_text .= "...";
}
echo $af_text;
?>
Или вообще так:
Код
<?php 
$content->ad_text = str_replace ('<br />'," ",$content->ad_text);
$af_text = JString::substr($content->ad_text, 0, 100)."...";
                                                echo $af_text;
?>

amor, можно вопрос не по теме? Что у вас за галерея стоит? Может есть мануал как ее подключить?
« Последнее редактирование: 15.05.2015, 06:37:41 от max_1985 »
*

khan-alex

  • Давно я тут
  • 649
  • 30 / 1
Re: В кодировке ли дело. SOS
« Ответ #3 : 15.05.2015, 16:20:55 »
Это если я не ошибаюсь модуль от smartaddons SJ для AdsManager.
*

amor

  • Захожу иногда
  • 58
  • 0 / 0
Re: В кодировке ли дело. SOS
« Ответ #4 : 15.05.2015, 18:41:57 »
   Ну да, у меня в админке он называется
SJ Extra Slider for Ads Manager
   По поводу мануала к сожалению ничего подсказать не могу, установкой и настройкой я сам не занимался, был уже установлен и настроен.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Re: В кодировке ли дело. SOS
« Ответ #5 : 15.05.2015, 19:16:56 »
   Ну да, у меня в админке он называется
SJ Extra Slider for Ads Manager
   По поводу мануала к сожалению ничего подсказать не могу, установкой и настройкой я сам не занимался, был уже установлен и настроен.
Можете заархивировать папочку /modules/mod_sj_adsm_extraslider и выложить здесь?

Кстати как код помог?
*

amor

  • Захожу иногда
  • 58
  • 0 / 0
Re: В кодировке ли дело. SOS
« Ответ #6 : 15.05.2015, 19:34:13 »
Можете заархивировать папочку /modules/mod_sj_adsm_extraslider и выложить здесь?

Кстати как код помог?

Данный код нашел, он точь в точь соответствует выложенному.

Может в этом коде нужно что-то править

if($field->type == 'textarea'){
                     $ads_content['desc']= $c ;
                     echo "<div class='adsmanager_ads_desc'>".limitString($ads_content['desc'],120)."</div>";

Код выделенный жирным непосредственно выводит текст в превью объявления?

Папку сейчас посмотрю и выложу.
*

amor

  • Захожу иногда
  • 58
  • 0 / 0
Re: В кодировке ли дело. SOS
« Ответ #7 : 15.05.2015, 19:45:30 »
Папка

mod_sj_adsm_extraslider
*

amor

  • Захожу иногда
  • 58
  • 0 / 0
Re: В кодировке ли дело. SOS
« Ответ #8 : 15.05.2015, 22:48:18 »
Выкладываю весь код файла:

Код
<?php
/**
 * @package AdsManager
 * @copyright Copyright (C) 2010-2013 JoomPROD.com. All rights reserved.
 * @license GNU/GPL
 */
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die( 'Restricted access' );
?>
<script type="text/javascript">
function tableOrdering( order, dir, task )
{
        var form = document.adminForm;
 
        form.filter_order.value = order;
        form.filter_order_Dir.value = dir;
        document.adminForm.submit( task );
}
</script>
<?php
$conf= $this->conf;
// if(!function_exists('loadImg')) {

// function loadImg($path, $replacement = 'http://placehold.it/275x173',, $replacement = 'http://placehold.it/275x173'){
// return (file_exists($path) || @getimagesize($path)!== false )? $path : $replacement;
// }
 // }
 
?>
<?php if ($conf->display_inner_pathway == 1) { ?>
<div class="adsmanager_pathway breadcrumb">
<?php
$pathway ="";
$nb = count($this->pathlist);
for ($i = $nb - 1 ; $i >0;$i--)
{
$pathway .= '<a href="'.$this->pathlist[$i]->link.'">'.$this->pathlist[$i]->text.'</a>';
$pathway .= ' <img src="'.$this->baseurl.'components/com_adsmanager/images/arrow.png" alt="arrow" /> ';
}
if (isset($this->pathlist[0]))
$pathway .= '<a href="'.$this->pathlist[0]->link.'">'.$this->pathlist[0]->text.'</a>';
echo $pathway;
?>
</div>
<?php } ?>

<h1 class="contentheading">
<?php
if ($this->list_img != "") {
echo '<img  class="imgheading" src="'.$this->list_img.'" alt="'.$this->list_img.'" />';
}
echo JText::_($this->list_name);
if ($this->conf->show_rss == 1)
{
if (isset($this->listuser))
$linkrss = TRoute::_("index.php?option=com_adsmanager&view=list&format=feed&user=".$this->listuser);
else
$linkrss = TRoute::_("index.php?option=com_adsmanager&view=list&format=feed&catid=".$this->catid);
echo '<a href="'.$linkrss.'" target="_blank"><img class="imgheading" src="'.$this->baseurl.'components/com_adsmanager/images/rss.png" alt="rss" /></a>';
}
?>
</h1>

<div class="adsmanager_description">
<?php //echo $this->list_description; ?>
</div>

<div class="adsmanager_subcats ">
 <?php foreach($this->subcats as $key => $subcat) {
$subcat->link = TRoute::_('index.php?option=com_adsmanager&view=list&catid='.$subcat->id);
if ($key != 0)
echo ' | ';
echo '<a  href="'.$subcat->link.'">'.$subcat->name.'</a>';
}
?>
</div>


<script type="text/JavaScript">
function jumpmenu(target,obj){
  eval(target+".location='"+obj.options[obj.selectedIndex].value+"'");
  obj.options[obj.selectedIndex].innerHTML="<?php echo JText::_('ADSMANAGER_WAIT');?>";
}

jQ(function() {
jQ('#order').change(function() {
order = jQ(this).val();
orderdir = jQ(":selected",this).attr('dir');
var form= document.createElement('form');
        form.method= 'post';
        <?php if ($this->catid != 0) { ?>
        form.action= '<?php echo TRoute::_("index.php?option=com_adsmanager&view=list&catid=".$this->catid)?>';  
<?php } else if ($this->modeuser == 1) {?>
form.action= '<?php echo TRoute::_("index.php?option=com_adsmanager&view=list&user=".$this->listuser)?>';  
<?php } else  {?>
form.action= '<?php echo TRoute::_("index.php?option=com_adsmanager&view=list")?>';  
<?php } ?>  
        var input= document.createElement('input');
        input.type= 'hidden';
        input.name= "order";
        input.value= order;
        form.appendChild(input);
        var input2= document.createElement('input');
        input2.type= 'hidden';
        input2.name= "orderdir";
        input2.value= orderdir;
        form.appendChild(input2);
     document.body.appendChild(form);
     form.submit();
});
});
</script>

<?php if (($conf->display_list_sort == 1)||($conf->display_list_search == 1)) { ?>
<div class="adsmanager_search_box clearfix">
<div class="adsmanager_inner_box pull-left">
<p style="margin:10px 0 0;"><?php echo $this->pagination->total . $this->pagination->getResultsCounter(); ?></p>
</div>
<div class="adsmanager_inner_box pull-right">
<?php if ($conf->display_list_search == 1) { ?>
<?php if ($this->catid != 0) { ?>
<form action="<?php echo TRoute::_('index.php?option=com_adsmanager&view=list&catid='.$this->catid)?>" method="post">
<?php } else if ($this->modeuser == 1) {?>
<form action="<?php echo TRoute::_('index.php?option=com_adsmanager&view=list&user='.$this->listuser)?>" method="post">
<?php } else  {?>
<form action="<?php echo TRoute::_('index.php?option=com_adsmanager&view=list')?>" method="post">
<?php } ?>
<div align="left">
<input name="tsearch" id="tsearch" maxlength="20" alt="search" class="inputbox" type="text" size="20" value="<?php echo $this->tsearch;?>"  onblur="if(this.value=='') this.value='';" onfocus="if(this.value=='<?php echo $this->tsearch;?>') this.value='';" />
</div>
<div align="left">
<a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=search&catid=".$this->catid);?>"><?php echo JText::_('ADSMANAGER_ADVANCED_SEARCH'); ?></a>
</div>
</form>
<?php } ?>
<?php if ($conf->display_list_sort == 1) { ?>
<?php
if (($this->catid != 0)&&($this->catid != -1)) {
$urloptions = "&catid=".$this->catid;
} else if ($this->modeuser == 1) {
$urloptions = "&user=".$this->listuser;
} else  {
$urloptions = "";
} ?>
<?php if (isset($this->orders)) { ?>
<?php echo JText::_('ADSMANAGER_ORDER_BY_TEXT'); ?>
<select name="order" size="1" id="order">
<option value="0" dir="DESC" <?php if ($this->order == "0") { echo "selected='selected'"; } ?>><?php echo JText::_('ADSMANAGER_DATE'); ?></option>
  <?php foreach($this->orders as $o)
  {
  ?>
<option value="<?php echo $o->fieldid ?>" dir="DESC" <?php if (($this->orderdir == "DESC") && ($this->order == $o->fieldid)) { echo "selected='selected'"; } ?>><?php echo sprintf(JText::_('ADSMANAGER_ORDER_BY_DESC'),JText::_($o->title))?></option>
<option value="<?php echo $o->fieldid ?>" dir="ASC" <?php if (($this->orderdir == "ASC") && ($this->order == $o->fieldid)) { echo "selected='selected'"; } ?>><?php echo sprintf(JText::_('ADSMANAGER_ORDER_BY_ASC'),JText::_($o->title))?></option>
<?php
  }
?>
</select>
<?php } ?>
<?php } ?>  
</div>
</div>
<?php } ?>

<?php //$this->general->showGeneralLink()?>

<?php
if ($this->pagination->total == 0 )
{
echo JText::_('ADSMANAGER_NOENTRIES');
}
else
{

?>
<?php
        //echo ;
        
        if(@$conf->display_map_list == 1){
           // echo TTools::loadModule('mod_adsmanager_adsmap', 'AdsMap');
        }
    ?>

<form name="adminForm" id="adminForm" method="post" action="<?php echo $this->requestURL; ?>" style="margin:0;" >
<input type="hidden" id="mode" name="mode" value="<?php echo $this->mode?>"/>
</form>
<?php if ($this->conf->display_expand == 2) { ?>
<script type="text/javascript">
function changeMode(mode)
{
element = document.getElementById("mode");
element.value = mode;
form = document.getElementById("adminForm");
form.submit();
}
</script>
<div class="adsmanager_subtitle">
<?php
/* Display SubTitle */
echo '<a href="javascript:changeMode(0)">'.JText::_('ADSMANAGER_MODE_TEXT')." ".JText::_('ADSMANAGER_SHORT_TEXT').'</a>';
   echo " / ";
   echo '<a href="javascript:changeMode(1)">'.JText::_('ADSMANAGER_EXPAND_TEXT').'</a>';
?>
</div>
<?php } ?>
<?php if ($this->mode != 1) { ?>
<table class="adsmanager_table table table-striped">
<tr>
 <th><?php echo JText::_('ADSMANAGER_CONTENT'); ?>
<a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=5&orderdir=ASC");?>"><img src="<?php echo $this->baseurl ?>administrator/images/sort_asc.png" alt="+" /></a>
 <a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=5&orderdir=DESC");?>"><img src="<?php echo $this->baseurl ?>administrator/images/sort_desc.png" alt="-" /></a>
 
 </th>
 <?php
   foreach($this->columns as $col)
 {
echo "<th class='hidden-phone'>".JText::_($col->name);
$order = @$this->fColumns[$col->id][0]->fieldid;
?>
<a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=$order&orderdir=ASC");?>"><img src="<?php echo $this->baseurl ?>administrator/images/sort_asc.png" alt="+" /></a>
   <a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=$order&orderdir=DESC");?>"><img src="<?php echo $this->baseurl ?>administrator/images/sort_desc.png" alt="-" /></a>
   ?>
                    <?php echo "</th>";
 }
 ?>
 <th class="hidden-phone"><?php echo JText::_('ADSMANAGER_DATE'); ?>
 <a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=orderdir=ASC");?>"><img src="<?php echo $this->baseurl ?>administrator/images/sort_asc.png" alt="+" /></a>
 <a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=orderdir=DESC");?>"><img src="<?php echo $this->baseurl ?>administrator/images/sort_desc.png" alt="-" /></a>
 
              </th>
</tr>
<?php
foreach($this->contents as $content)
{
$linkTarget = TRoute::_( "index.php?option=com_adsmanager&view=details&id=".$content->id."&catid=".$content->catid);
if (function_exists('getContentClass'))
$classcontent = getContentClass($content,"list");
     else
$classcontent = "";
?>  
<tr class="adsmanager_table_description <?php echo $classcontent;?> trcategory_<?php echo $content->catid?>">
<td class="column_desc">
<?php
if (isset($content->images[0])) {
echo "<a href='".$linkTarget."'><img class='adimage' name='adimage".$content->id."' src='".$this->baseurl."images/com_adsmanager/ads/".$content->images[0]->thumbnail."' alt='".htmlspecialchars($content->ad_headline)."' /></a>";
} else if ($this->conf->nb_images > 0) {
echo "<a href='".$linkTarget."'><img class='adimage' src='".ADSMANAGER_NOPIC_IMG."' alt='nopic' /></a>";
}
?>
<div>
<h2>
<?php echo '<a href="'.$linkTarget.'">'.$content->ad_headline.'</a>'; ?>
<span class="adsmanager_cat"><?php echo "(".$content->parent." / ".$content->cat.")"; ?></span>
</h2>
<?php
$content->ad_text = str_replace ('<br />'," ",$content->ad_text);
$af_text = JString::substr($content->ad_text, 0, 100);
if (strlen($content->ad_text)>100) {
$af_text .= "[...]";
}
echo $af_text;
?>

</div>
</td>
<?php
foreach($this->columns as $col) {
echo '<td class="tdcenter column_'.$col->id.' hidden-phone">';
if (isset($this->fColumns[$col->id]))
foreach($this->fColumns[$col->id] as $field)
{
$c = $this->field->showFieldValue($content,$field);
if (($c !== "")&&($c !== null)) {
$title = $this->field->showFieldTitle(@$content->catid,$field);
if ($title != "")
echo "<b>".htmlspecialchars($title)."</b>: ";
echo "$c<br/>";
}
}
echo "</td>";
}
?>
<td class="tdcenter column_date hidden-phone">
<?php
$iconflag = false;
if (($conf->show_new == true)&&($this->isNewcontent($content->date_created,$conf->nbdays_new))) {
echo "<div class='center'><img alt='new' src='".$this->baseurl."components/com_adsmanager/images/new.gif' /> ";
$iconflag = true;
}
if (($conf->show_hot == true)&&($content->views >= $conf->nbhits)) {
if ($iconflag == false)
echo "<div class='center'>";
echo "<img alt='hot' src='".$this->baseurl."components/com_adsmanager/images/hot.gif' />";
$iconflag = true;
}
if ($iconflag == true)
echo "</div>";
echo $this->reorderDate($content->date_created);
?>
<br />
<?php
if ($content->userid != 0)
{
  echo JText::_('ADSMANAGER_FROM')." ";

  $target = TLink::getUserAdsLink($content->userid);
 
  if ($conf->display_fullname == 1)
  echo "<a href='".$target."'>".$content->fullname."</a><br/>";
  else
  echo "<a href='".$target."'>".$content->user."</a><br/>";
}
?>
<?php echo sprintf(JText::_('ADSMANAGER_VIEWS'),$content->views); ?>
</td>
</tr>
<?php
}
?>
</table>
<?php } else { ?>
<?php foreach($this->contents as $key => $content)
{
if ($key == 0)
$this->loadScriptImage($this->conf->image_display);
if (function_exists('getContentClass'))
$classcontent = getContentClass($content,"details");
     else
$classcontent = "";

$number = 3;
$clear_col =($key % $number == 0)? ' first' : '';

?>  

<div class="<?php echo $classcontent. $clear_col;?> adsmanager_ads span4">
<div class="adsmanager_ads_image">
<?php
if (count($content->images) == 0)
$image_found =0;
else
$image_found =1;
foreach($content->images as $img)
{
$thumbnail = JURI::base()."images/com_adsmanager/ads/".$img->thumbnail;
$image = JURI::base()."images/com_adsmanager/ads/".$img->image;
//check placeholder path is exist or not exist?
$imgsrc =( file_exists($image) ||  @getimagesize($image))?  $thumbnail : "http://placehold.it/636x424";
$imgthumb =( file_exists($thumbnail) ||  @getimagesize($thumbnail))?  $thumbnail : "http://placehold.it/275x173";

switch($this->conf->image_display)
{
case 'popup':
echo "<a href=\"javascript:popup('$image');\"><img src='".$imgthumb."' alt='".htmlspecialchars($content->ad_headline)."' /></a>";
break;
case 'lightbox':
case 'lytebox':
if($img->index ==1){
echo "<a href='".$imgsrc."' rel='lytebox[roadtrip".$content->id."]'><img src='".$imgthumb."' alt='".htmlspecialchars($content->ad_headline)."' /><div class='item-opacity'></div></a>";
}
break;
case 'highslide':
echo "<a id='thumb".$content->id."' class='highslide' onclick='return hs.expand (this)' href='".$imgsrc."'><img src='".$imgthumb."' alt='".htmlspecialchars($content->ad_headline)."' /></a>";
break;
case 'default':
default:
echo "<a href='".$imgsrc."' target='_blank'><img src='".$imgthumb."' alt='".htmlspecialchars($content->ad_headline)."' /></a>";
break;
}
}
if (($image_found == 0)&&($conf->nb_images >  0))
{
echo '<img src="'.ADSMANAGER_NOPIC_IMG.'" alt="nopic" />';
}
?>

</div>

<div class="adsmanager_ads_title">
<h2>
<?php
if (isset($this->fDisplay[1]))
{
foreach($this->fDisplay[1] as $field)
{
$linkTarget = TRoute::_( "index.php?option=com_adsmanager&view=details&id=".$content->id."&catid=".$content->catid);
$c = $this->field->showFieldValue($content,$field);
if (($c !== "")&&($c !== null)) {
$title = $this->field->showFieldTitle(@$content->catid,$field);
if ($title != "")
echo "<br><h3><u>".htmlspecialchars($title)."</u>: ";
echo " <a href='".$linkTarget."'> $c </a></h3>";

}
}

} ?>
</h2>

</div>
<div class="adsmanager_ads_date">

<?php  $date_ads = $content->date_created;
echo JHtml::date($date_ads,'d F Y');
?>
</div>
<?php
//Shorten String
if(!function_exists('limitString')) {
function limitString($string, $limit = 100) {
// Return early if the string is already shorter than the limit
if(strlen($string) < $limit) {return $string;}

$regex = "/(.{1,$limit})\b/";
preg_match($regex, $string, $matches);
return $matches[1];
}
}

if (isset($this->fDisplay[3]))
{ $ads_content= array();
foreach($this->fDisplay[3] as $field)
{
$c = $this->field->showFieldValue($content,$field);

if (($c !== "")&&($c !== null)) {

if($field->type == 'price'){
$ads_content['price']= $c ;
echo "<div class='adsmanager_ads_price'>".$ads_content['price']."</div>";
}



if($field->type == 'textarea'){
$ads_content['desc']= $c ;
echo "<div class='adsmanager_ads_desc'>".limitString($ads_content['desc'],120)."</div>";

}


}
}

} ?>
</div>
<?php } ?>
<?php } ?>

<?php
}

Подскажите, что конкретно нужно исправить и на что исправить, чтобы текст не обрезался и выводился корректно.  !

*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Re: В кодировке ли дело. SOS
« Ответ #9 : 16.05.2015, 19:54:43 »
В коде все нормально. Только выводится у Вас 100 символов, а не 120. Причина скорее всего в другом. А не пробовали пересоздать объявление?
*

amor

  • Захожу иногда
  • 58
  • 0 / 0
Re: В кодировке ли дело. SOS
« Ответ #10 : 16.05.2015, 23:02:00 »
В коде все нормально. Только выводится у Вас 100 символов, а не 120. Причина скорее всего в другом. А не пробовали пересоздать объявление?
Пробовал, не помогает.
*

amor

  • Захожу иногда
  • 58
  • 0 / 0
Re: В кодировке ли дело. SOS
« Ответ #11 : 17.05.2015, 11:23:50 »
Считаются и теги, а также необходимо учитывать то, что кирилица↓

↓Кирилический символ кодируется 2 байтами. Функция, которая обрезает текст это не учитывает. "Полсимвола, кирилица" - это и будут ромбы и т.д.
Необходимо заменить функцию, которая обрезает текст при выводе превью объявлений.
Ключевая фраза mb_substr кириллица в поиске.

Заменил substr на mb_substr
не помогло.

Хостер тоже ссылается на это же, вот их сообщение:

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

В частности, причиной может быть использование функции substr(), так как она отсекает один байт данных в кодировке UTF-8 (каждый символ занимает 2 байта), при этом крайние символы (первый и/или последний) отображаются в виде знака вопроса в черном ромбе.

Рекомендуем Вам использовать модули, совместимые с кириллическим текстом, либо заменить функции в файлах расширений на корректные.

Также рекомендуем Вам ознакомиться со следующим материалом по схожей теме:
http://www.joomla-prosto.ru/index.php/home/joomla-nastrojki/67-rombiki-s-voprosami-vmesto-bukv-kirillitsy
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Re: В кодировке ли дело. SOS
« Ответ #12 : 17.05.2015, 12:27:21 »
А если
Код: php
$regex = "/(.{1,$limit})\b/";
заменить на
Код: php
$regex = "/(.{1,$limit})\b/u";
P.S. 413 строка.
*

amor

  • Захожу иногда
  • 58
  • 0 / 0
Re: В кодировке ли дело. SOS
« Ответ #13 : 17.05.2015, 12:50:29 »
А если
Код: php
$regex = "/(.{1,$limit})\b/";
заменить на
Код: php
$regex = "/(.{1,$limit})\b/u";
P.S. 413 строка.

О чудо! Работает!

passer, огромное спасибо!

Всех участников дискуссии тоже благодарю.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

AdsManager | походу дело в MySQL //Решено//

Автор Pobeg

Ответов: 1
Просмотров: 1473
Последний ответ 27.01.2011, 00:30:04
от Pobeg