Ограничение длины описания в mosets tree 2.1

Тема в разделе "Каталоги, конструкторы контента, управление", создана пользователем Trust, 24.07.2009.

  1. Offline

    Trust Пользователь

    Регистрация:
    02.12.2007
    Сообщения:
    55
    Симпатии:
    0
    Пол:
    Мужской
    В новой версии настроенное поле decscription отображается некорректно. Хотя слова оно обрезает вроде правильно, но косяк в том, что поле выводится само собой:), т.е. не по-порядку, кроме того, название поля отсутствует, хотя соответствующая галочка для его скрытия не стоит.

    Может кто-то уже успел починить себе этот баг? Помогите пожалуйста мне.

    Код поля:

    Код (PHP):
    1. class mFieldType_coredesc extends mFieldType {
    2.     var $name = 'link_desc';
    3.     function parseValue($value) {
    4.         $params['maxChars'] = intval($this->getParam('maxChars',3000));
    5.         $params['stripAllTagsBeforeSave'] = $this->getParam('stripAllTagsBeforeSave',0);
    6.         $params['allowedTags'] = $this->getParam('allowedTags','u,b,i,a,ul,li,pre,blockquote,strong,em');
    7.         if($params['stripAllTagsBeforeSave']) {
    8.             $value = $this->stripTags($value,$params['allowedTags']);
    9.         }
    10.         if($params['maxChars'] > 0) {
    11.             $value = JString::substr( $value, 0, $params['maxChars']);
    12.         }
    13.         return $value;
    14.     }
    15.     function getInputHTML() {
    16.         global $mtconf;
    17.        
    18.         if( ($this->inBackEnd() AND $mtconf->get('use_wysiwyg_editor_in_admin')) || (!$this->inBackEnd() AND $mtconf->get('use_wysiwyg_editor')) ) {
    19.             $editor = &JFactory::getEditor();
    20.             $html = $editor->display( $this->getInputFieldName(1), $this->getValue() , '100%', '250', '75', '25', array('pagebreak', 'readmore') );
    21.         } else {
    22.             $html = '<textarea class="inputbox" name="' . $this->getInputFieldName(1) . '" style="width:95%;height:' . $this->getSize() . 'px">' . htmlspecialchars($this->getValue()) . '</textarea>';
    23.         }
    24.         return $html;
    25.     }
    26.     function getSearchHTML() {
    27.         return '<input class="inputbox" type="text" name="' . $this->getName() . '" size="30" />';
    28.     }
    29.     function getOutput($view=1) {
    30.         $params['parseUrl'] = $this->getParam('parseUrl',1);
    31.         $params['summaryChars'] = $this->getParam('summaryChars',255);
    32.         $params['stripSummaryTags'] = $this->getParam('stripSummaryTags',1);
    33.         $params['stripDetailsTags'] = $this->getParam('stripDetailsTags',1);
    34.         $params['parseMambots'] = $this->getParam('parseMambots',0);
    35.         $params['allowedTags'] = $this->getParam('allowedTags','u,b,i,a,ul,li,pre,blockquote,strong,em');
    36.         $params['showReadMore'] = $this->getParam('showReadMore',0);
    37.         $params['whenReadMore'] = $this->getParam('whenReadMore',0);
    38.         $params['txtReadMore'] = $this->getParam('txtReadMore',JTEXT::_( 'Read More...' ));
    39.        
    40.         $html = $this->getValue();
    41.         $output = '';
    42.        
    43.         // Details view
    44.         if($view == 1) {
    45.             global $mtconf;
    46.             $output = $html;
    47.             if($params['stripDetailsTags']) {
    48.                 $output = $this->stripTags($output,$params['allowedTags']);
    49.             }
    50.             if($params['parseUrl']) {
    51.                 $regex = '/http:\/\/(.*?)(\s|$)/i';
    52.                 $output = preg_replace_callback( $regex, array($this,'linkcreator'), $output );
    53.             }
    54.             if (!$mtconf->get('use_wysiwyg_editor') && $params['stripDetailsTags'] && !in_array('br',explode(',',$params['allowedTags'])) && !in_array('p',explode(',',$params['allowedTags'])) ) {
    55.                 $output = nl2br(trim($output));
    56.             }
    57.             if($params['parseMambots']) {
    58.                 $this->parseMambots($output);
    59.             }
    60.         // Summary view
    61.         } else {
    62.             $html = preg_replace('@{[\/\!]*?[^<>]*?}@si', '', $html);
    63.             if($params['stripSummaryTags']) {
    64.                 $html = strip_tags( $html );
    65.             }
    66.             if($params['summaryChars'] > 0) {
    67.                 $trimmed_desc = trim(JString::substr($html,0,$params['summaryChars']));
    68.             } else {
    69.                 $trimmed_desc = '';
    70.             }
    71.             if($params['stripSummaryTags']) {
    72.                 $html = htmlspecialchars( $html );
    73.                 $trimmed_desc = htmlspecialchars( $trimmed_desc );
    74.             }
    75.             if (JString::strlen($html) > $params['summaryChars']) {
    76.                 $output .= $trimmed_desc;
    77.                 $output .= ' <b>...</b>';
    78.             } else {
    79.                 $output = $html;
    80.             }
    81.             if( $params['showReadMore'] && ($params['whenReadMore'] == 1 || ($params['whenReadMore'] == 0 && JString::strlen($html) > $params['summaryChars'])) ) {
    82.                 if(!empty($trimmed_desc)) {
    83.                     $output .= '<br />';
    84.                 }
    85.                 $output .= ' <a href="' . JRoute::_('index.php?option=com_mtree&task=viewlink&link_id=' . $this->getLinkId()) . '" class="readon">' . $params['txtReadMore'] . '</a>';
    86.             }
    87.         }
    88.         return $output;
    89.     }
    90. }
     
    Последнее редактирование: 24.07.2009
  2.  
  3. Offline

    Trust Пользователь

    Регистрация:
    02.12.2007
    Сообщения:
    55
    Симпатии:
    0
    Пол:
    Мужской
    Ап. Всё ещё актуально.
     

Поделиться этой страницей

Загрузка...