Проблемы с Mosets Tree на русском языке

Статус
В этой теме нельзя размещать новые ответы.

zverOK

Постоялец
Регистрация
15 Фев 2008
Сообщения
147
Реакции
130
Проблема такова.

Поставил
Joomla_1.0.15-Stable-Full_Package(Для просмотра ссылки Войди или Зарегистрируйся),
Mosets Tree v2.0.7 Build127(Для просмотра ссылки Войди или Зарегистрируйся),
рус. язык для Mosets Tree v2.0.7(Для просмотра ссылки Войди или Зарегистрируйся).

При заполнении поля Description(Описание) на Английском языке - в Summary View(просмотр списка материалов в категории) отображается всё правильно, т.е. полное описание обрезается, по умолчанию, до 255 символов.
А как начал заполнять на русском языке поле Description(Описание) - в Summary View(просмотр списка материалов в категории) отображается всё описание полностью, как и в Детальном просмотре материала. Хотя должен был включить в Summary View только 255 символов из полного описания.

Кодировка везде CP-1251.

Даже не знаю куда копать :nezn:
 
Проверил все в норме на 1,0,13 и 1,0,15.... Так что даже не знаю что там у тебя за причина.... :nezn:
Для просмотра ссылки Войди или Зарегистрируйся
 
Выяснили причину... Не работает обрезка при PHP5... Решение найдено... Опубликую чуть позже..

P.S. Решение:
1. Заходим в базу. Таблица jos_mt_fieldtypes - поле coredesc
2. Меняем значение ft_class на:
Код:
class mFieldType_coredesc extends mFieldType {
	var $name = 'link_desc';
	function parseValue($value) {
		$params['stripAllTagsBeforeSave'] = $this->getParam('stripAllTagsBeforeSave',0);
		$params['allowedTags'] = $this->getParam('allowedTags','u,b,i,a,ul,li,pre,br,blockquote');
		if($params['stripAllTagsBeforeSave']) {
			$value = $this->stripTags($value,$params['allowedTags']);
		}
		return $value;		
	}
	function getInputHTML() {
		global $mtconf;
		
		$inBackEnd = (substr(dirname($_SERVER['PHP_SELF']),-13) == 'administrator') ? true : false;
		if( ($inBackEnd AND $mtconf->get('use_wysiwyg_editor_in_admin')) || (!$inBackEnd AND $mtconf->get('use_wysiwyg_editor')) ) {
			ob_start();
			editorArea( 'editor1',  $this->getValue() , $this->getInputFieldName(1), '100%', $this->getSize(), '75', '25' );
			$html = ob_get_contents();
			ob_end_clean();
		} else {
			$html = '<textarea class="inputbox" name="' . $this->getInputFieldName(1) . '" style="width:95%;height:' . $this->getSize() . 'px">' . htmlspecialchars($this->getValue()) . '</textarea>';
		}
		return $html;
	}
	function getSearchHTML() {
		return '<input class="inputbox" type="text" name="' . $this->getName() . '" size="30" />';
	}
	function getOutput($view=1) {
		$params['parseUrl'] = $this->getParam('parseUrl',1);
		$params['summaryChars'] = $this->getParam('summaryChars',255);
		$params['stripSummaryTags'] = $this->getParam('stripSummaryTags',1);
		$params['stripDetailsTags'] = $this->getParam('stripDetailsTags',1);
		$params['parseMambots'] = $this->getParam('parseMambots',0);
		$params['allowedTags'] = $this->getParam('allowedTags','u,b,i,a,ul,li,pre,br,blockquote');
		$params['showReadMore'] = $this->getParam('showReadMore',0);
		$params['whenReadMore'] = $this->getParam('whenReadMore',0);
		$params['txtReadMore'] = $this->getParam('txtReadMore',(( $GLOBALS['_VERSION']->RELEASE == '1.0' )?_READ_MORE:JTEXT::_( 'Read More...' )));
		
		$html = $this->getValue();
		
		// Details view
		if($view == 1) {
			global $mtconf;
			if($params['stripDetailsTags']) {
				$html = $this->stripTags($html,$params['allowedTags']);
			}
			if($params['parseUrl'] AND $view == 0) {
				$regex = '/http:\/\/(.*?)(\s|$)/i';
				$html = preg_replace_callback( $regex, array($this,'linkcreator'), $html );
			}
			if (!$mtconf->get('use_wysiwyg_editor') && $params['stripDetailsTags'] && !in_array('br',explode(',',$params['allowedTags'])) && !in_array('p',explode(',',$params['allowedTags'])) ) {
				$html = nl2br(trim($html));
			}
			if($params['parseMambots']) {
				$this->parseMambots($html);
			}
		// Summary view
		} else {
			global $Itemid;
			$html = preg_replace('@{[\/\!]*?[^<>]*?}@si', '', $html);
			if($params['stripSummaryTags']) {
				$html = strip_tags( $html );
			}
			if($params['summaryChars'] > 0) {
				$trimmed_desc = trim($this->html_substr($html,0,$params['summaryChars']));
			} else {
				$trimmed_desc = '';
			}
			if ($this->strlen($html) > $params['summaryChars']) {
				$html = $trimmed_desc;
				$html .= ' <b>...</b>';
			}
			
			if( $params['showReadMore'] && ($params['whenReadMore'] == 1 || ($params['whenReadMore'] == 0 && $this->strlen_utf8($html) > $params['summaryChars'])) ) {
				if(!empty($trimmed_desc)) {
					$html .= '<br />';
				}
				$html .= ' <a href="' . sefReltoAbs('index.php?option=com_mtree&task=viewlink&link_id=' . $this->getLinkId() . '&Itemid=' . $Itemid) . '" class="readon">' . $params['txtReadMore'] . '</a>';
			}
		}
		return $html;
	}
}
Или этот же код поменять через админку:
1. Компоненты - MosetsTree
2.Дополнительные поля - Управление типами поля
3. Description
4. Поменять Код PHP класса на указанный выше.

И поменять прикрепленный файлик (administrator/components/com_mtree/)
 

Вложения

  • mfields.class.rar
    7,9 KB · Просмотры: 28
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху