[Решено] Ограничить количечтво символов в результатах поиска Joomla 3/x

Тема в разделе "Joomla", создана пользователем rsd, 20 янв 2018.

Статус темы:
Закрыта.
  1. rsd

    rsd

    Регистрация:
    13 июл 2012
    Сообщения:
    140
    Симпатии:
    16
    Код:
    <dd class="result-text">
            <?php echo $result->text; ?>
    </dd>
    Вот сам файл результатов поиска:

    Код:
    <?php
    /**
    * @package     Joomla.Site
    * @subpackage  com_search
    *
    * @copyright   Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
    * @license     GNU General Public License version 2 or later; see LICENSE.txt
    */
    
    defined('_JEXEC') or die;
    
    ?>
    <dl class="search-results<?php echo $this->pageclass_sfx; ?>">
    <?php foreach ($this->results as $result) : ?>
        <dt class="result-title">
            <?php echo $this->pagination->limitstart + $result->count . '. '; ?>
            <?php if ($result->href) : ?>
                <a href="<?php echo JRoute::_($result->href); ?>"<?php if ($result->browsernav == 1) : ?> target="_blank"<?php endif; ?>>
                    <?php // $result->title should not be escaped in this case, as it may ?>
                    <?php // contain span HTML tags wrapping the searched terms, if present ?>
                    <?php // in the title. ?>
                    <?php echo $result->title; ?>
                </a>
             
            <?php else : ?>
                <?php // see above comment: do not escape $result->title ?>
                <?php echo $result->title; ?>
            <?php endif; ?>
        </dt>
        <?php if ($result->section) : ?>
            <dd class="result-category">
                <span class="small<?php echo $this->pageclass_sfx; ?>">
                    (<?php echo $this->escape($result->section); ?>)
                </span>
            </dd>
        <?php endif; ?>
        <dd class="result-text">
            <?php echo $result->text; ?>
        </dd>
        <?php if ($this->params->get('show_date')) : ?>
            <dd class="result-created<?php echo $this->pageclass_sfx; ?>">
                <?php echo JText::sprintf('JGLOBAL_CREATED_DATE_ON', $result->created); ?>
            </dd>
        <?php endif; ?>
    <?php endforeach; ?>
    </dl>
    <div class="pagination">
        <?php echo $this->pagination->getPagesLinks(); ?>
    </div>
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    Нужно ограничить кол-во символов в "$result->text" ?
     
  3. rsd

    rsd

    Регистрация:
    13 июл 2012
    Сообщения:
    140
    Симпатии:
    16
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    PHP:
    <?php substr($result->text0123); ?>
    где 123 максимальная длинна строки, которая тебе нужна.

    p.s. Это если делать по топорному, без параметров в админке.
     
  5. rsd

    rsd

    Регистрация:
    13 июл 2012
    Сообщения:
    140
    Симпатии:
    16
  6. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    ради тебя поставил джумлу :Biggrin:

    я упустил echo. Должно быть так:
    Код:
    <?php echo substr($result->text, 0, 123); ?>
    Но тут есть проблемы, на сколько я вижу, он там подставляет html тэги и с этим решением (с substr) может быть проблема, может обрезать закрывающий тэг и тогда вёрстка может поехать.
     
  7. rsd

    rsd

    Регистрация:
    13 июл 2012
    Сообщения:
    140
    Симпатии:
    16
    Сейчас проверю, спасибо.
    --- Добавлено, 20 янв 2018 ---
    Я все увидел. Но всеравно, спасибо.
     
  8. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    нашёл, как правильно:

    в language\en_GB\en-GB.localise.php найти
    PHP:
    public static function getSearchDisplayedCharactersNumber()
    {
        return 
    200;
    }
    200 (или сколько у тебя там будет), заменить на сколько тебе надо.

    p.s. вместо en_GB может быть твой язык, что-нибудь по типу ru_RU. Это самый правильный способ
     
    Zulus и rsd нравится это.
  9. rsd

    rsd

    Регистрация:
    13 июл 2012
    Сообщения:
    140
    Симпатии:
    16
    Вот это ты красавец, молодец, что можно сказать, спасибо.
     
    $iD нравится это.
Статус темы:
Закрыта.