Новости 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 Гость просматривают эту тему.
  • 28 Ответов
  • 14100 Просмотров
*

krazyyolka

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Здравствуйте. Возник вопрос при работе с версиями Joomla 1.6 и 1.7

Каким образом возможно автоматически ограничить количество символов вводного текста без использования K2?

Заранее, спасибо.
*

elscept

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Присоединяюсь к вопросу.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
В настройках Менеджера материалов -> Первая закладка (Материалы) -> Ограничение для Подробнее
*

elscept

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
bzzik, насколько я понял, это несколько другое. Предложенный Вами вариант подразумевает ограничение по тексту заголовка материала при его добавлении к кнопке "подробнее".
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
А, блин сорри! Чего-то затупил. Текст вводного текста ограничивается тегом Подробнее в статье:
Код
<hr id="system-readmore" />

Насколько мне известно в Joomla нет возможности ставить его автоматом.
*

elscept

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Цитировать
Каким образом возможно автоматически ограничить количество символов вводного текста без использования K2?
А что нужно ограничить и где? Вводимого или выводимого?
Есть функция substr, правда при обрезании квадратик непонятный вконце
Например, если не ставить подробнее в материале, а в блоге категории заменить
Цитировать
<?php echo JFilterOutput::ampReplace($this->item->text);  ?>
На
Цитировать
<?php echo JFilterOutput::ampReplace(substr($this->item->text, 0, 75)); ?>
То будет обрезать примерно на 25 символов  (75/3)
P.S. Понял, как квадратик убрать. Нужно substr заменить на mb_substr
« Последнее редактирование: 09.03.2012, 19:34:09 от Efanych »
Создание сайтов, шаблонов, помощь в решении проблем.
*

zeher

  • Захожу иногда
  • 169
  • 12 / 0
можно пожалуйста по подробней где это заменить
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Efanych, эт ты по символам, по словам оптимальнее.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Efanych, эт ты по символам, по словам оптимальнее.
Не. Оптимальнее по символам, по словам может очень сильно разниться обьём текста. Нашёл ещё оптимальнее - обрезать по символам, не обрезав последнее слово.
Код: php
<?php 
$text = strip_tags($this->item->text);
if (!function_exists('truncate_words')) {
function truncate_words($text, $limit=99)
{
$text=mb_substr($text,0,$limit);
/*если не пустая обрезаем до  последнего  пробела*/
if(mb_substr($text,mb_strlen($text)-1,1) && mb_strlen($text)==$limit)
{
$textret=mb_substr($text,0,mb_strlen($text)-mb_strlen(strrchr($text,' ')));
if(!empty($textret))
{
return $textret;
}
}
return $text;
}}
echo truncate_words($text)."..."; ?>
« Последнее редактирование: 14.03.2013, 21:27:06 от Efanych »
Создание сайтов, шаблонов, помощь в решении проблем.
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Ага. Траблу нашёл. При таком обрезании возникает незакрытый тег. Если это <p>, то некритично, а при <div> может и вёрстка посыпаться.
Исправил предыдущий пост. Теперь сначала текст очищается от всех тегов.
« Последнее редактирование: 21.06.2012, 10:41:44 от Efanych »
Создание сайтов, шаблонов, помощь в решении проблем.
*

Ravilka

  • Осваиваюсь на форуме
  • 33
  • 5 / 1
Не. Оптимальнее по символам, по словам может очень сильно разниться обьём текста. Нашёл ещё оптимальнее - обрезать по символам, не обрезав последнее слово.
Код: php
<?php 
$text = $this->item->introtext;
function truncate_words($text, $limit=200)
{
$text_substr=mb_substr($text,0,$limit);
/*если не пустая обрезаем до  последнего  пробела*/
if(mb_substr($text,mb_strlen($text)-1,1) && mb_strlen($text)==$limit)
{
$textret=mb_substr($text,0,mb_strlen($text)-mb_strlen(strrchr($text,' ')));
if(!empty($textret))
{
return $textret;
}
}
return $text_substr;
}
echo truncate_words($text)."..."; ?>

Подскажите, может кто в курсе, как это применить для краткого описания переменная $product_s_desc, она как-раз только текстовая varchar

Ставлю вот так

Спойлер
[свернуть]
а у меня весь вид странице теряется
« Последнее редактирование: 15.05.2012, 15:49:08 от Ravilka »
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Сохраните файл в кодировке utf-8 без boom
Создание сайтов, шаблонов, помощь в решении проблем.
*

wert9

  • Новичок
  • 5
  • 0 / 0
Подскажите пожалуйста а как такое же провернуть на Joomla 2.5, для страницы категорий и модуля новостей. На Joomla 1.5 получалось, но она по другим параметрам мне не подошла >:(, пришлось брать 2.5 версию, а тут никак решения для автоматического обрезания текста отображаемого в блоке категорий материала и новостей ( mod_articles_news) никак не найду, а пользователи категорически отказываются сами разделитель ставить и заливают многостраничные документы >:(
*

wert9

  • Новичок
  • 5
  • 0 / 0
С "Блоком категорий" я разобрался, как там сделать автообрезание метериала, а вот с mod_articles_news никак не разобраться, как автоматом отрезать !
*

cantsave

  • Захожу иногда
  • 215
  • 2 / 0
С "Блоком категорий" я разобрался, как там сделать автообрезание метериала, а вот с mod_articles_news никак не разобраться, как автоматом отрезать !

Покажи пожалуйста как сделал на 2.5 Блога категорий.
*

wert9

  • Новичок
  • 5
  • 0 / 0
Покажи пожалуйста как сделал на 2.5 Блога категорий.
Нашол тут на сайте решение, но сейчас что-то не найти. У себя грохнул эту модификацию, т.к. в конечном итоге не понравилось , что оно без кнопоря "читать далее ...", было тупо обрезание по 200 символов и 3 точки в конце.
*

ycsus

  • Новичок
  • 2
  • 0 / 0
Код
 echo JHtml::_('string.truncate', ($item->title), '100');
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Код: php
<?php 
$text = strip_tags($this->item->text);
if (!function_exists('truncate_words')) {
function truncate_words($text, $limit=99)
{
$text=mb_substr($text,0,$limit);
/*если не пустая обрезаем до  последнего  пробела*/
if(mb_substr($text,mb_strlen($text)-1,1) && mb_strlen($text)==$limit)
{
$textret=mb_substr($text,0,mb_strlen($text)-mb_strlen(strrchr($text,' ')));
if(!empty($textret))
{
return $textret;
}
}
return $text;
}}
echo truncate_words($text)."..."; ?>


люди добрые, объясните мне идиоту, как в этот код запихнуть строку $product->name?  ?
куда ее вставлять? в PHP полный ноль, все что пробовал делать приводило к ошибке загрузки страницы, ошибки синтаксиса и т.п.

Заранее спасибо!
*

OmniWizard

  • Захожу иногда
  • 51
  • 3 / 0
Пример $item->content = JString::substr($item->content, 0, $params->get('introtext_limit')); Чтобы ребята квадратиков не было пользуйтесь JString)))
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Прошу прощения, я снова не понял... Т.е. в моем случае целиком код будет выглядеть так:

<?php
$item->content = JString::substr($product->name, 0, $params->get('introtext_limit'));
?>

?
*

OmniWizard

  • Захожу иногда
  • 51
  • 3 / 0
Я привел пример) для тех людей у кого проблемы с ограничение в php русских слов.

А вам надо просто, найти компонент или модуль , я не знаю что у вас выводит данный текст и просто добавить данную функцию в тело))  Дайте ссылку на компонент которым вы пользуетесь
« Последнее редактирование: 10.12.2013, 13:02:39 от OmniWizard »
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
это JoomShopping обычный. $product->name - это название продукта.
*

OmniWizard

  • Захожу иногда
  • 51
  • 3 / 0
Ладно )) тогда слушай....
Создаешь папку в M:\home\test1.ru\www\libraries
назови ее libword в ней создай файл word.php в него закинь код

<?php
class word_str{
function str_word($text, $counttext = 10) {
    $sep = ' ';
    $words = explode($sep, $text);
    if ( count($words) > $counttext )
        $text = join($sep, array_slice($words, 0, $counttext));
    return $text;
}
}

далее зайди в папку своего компонента и найди вид который отвечает за это у меня это тут \www\components\com_jshopping\templates\default\list_products файл product.php
его как раз и меняем.
В шапку дописываем путь до нашей функции
<?php defined('_JEXEC') or die();
 jimport('libword.word')
?>

находим наше название
<div class="name">
            <a href="<?php print $product->product_link?>"><?php print $product->name?></a>
            <?php if ($this->config->product_list_show_product_code){?><span class="jshop_code_prod">(<?php print _JSHOP_EAN?>: <span><?php print $product->product_ean;?></span>)</span><?php }?>
        </div>
и меняем на
<div class="name">
            <a href="<?php print $product->product_link?>"><?php print word_str::str_word( $product->name,2)?></a>
            <?php if ($this->config->product_list_show_product_code){?><span class="jshop_code_prod">(<?php print _JSHOP_EAN?>: <span><?php print $product->product_ean;?></span>)</span><?php }?>
        </div>
так, описание word_str::str_word( $product->name,2) - так как это штука режет по словам, значение 2- значит он выводит 2 слова только.
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
ого! Спасибо большое! Буду разбираться.

Правда, думаю, по символам было бы интересней.

Кстати, это же все слетит при обновлении?
*

OmniWizard

  • Захожу иногда
  • 51
  • 3 / 0
jimport('libword.word')  - это твоя функция .. не куда она уже не денется, то есть в шапку любого выводимого файла вставляешь и любое имя word_str::str_word( $product->name,2), хоть это новости, хоть что угодно. А вот, обновиться может файл самого продукта. Ну я думаю, если FireBug есть и Total Командер)) то всегда можешь в поиске по тексту найти файл с отображением)))


если тебе нужен твой пример-> то просто открой файл word.php и добавь свой пример

function truncate_words($text, $limit=99)
{
   $text=mb_substr($text,0,$limit);
   if(mb_substr($text,mb_strlen($text)-1,1) && mb_strlen($text)==$limit)
   {
      $textret=mb_substr($text,0,mb_strlen($text)-mb_strlen(strrchr($text,' ')));
      if(!empty($textret))
      {
         return $textret;
      }
   }
   return $text;
}


только в тексте шаблона надо будет вместе word_str::str_word( $product->name,2) вставить word_str::truncate_words( $product->name,100) второй показатель тут уже не количество слов, а количество символов
« Последнее редактирование: 10.12.2013, 14:31:43 от OmniWizard »
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
благодарю! буду пробовать.
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
все работает! огромное спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отступ текста от изображения

Автор lexus26

Ответов: 6
Просмотров: 1327
Последний ответ 27.01.2019, 21:32:17
от lexus26
Вывод количества комментариев jcomment

Автор Vlasnov

Ответов: 1
Просмотров: 1534
Последний ответ 19.06.2018, 09:53:58
от kern.USR
не сохраняется материал с большим количеством символов

Автор diman_bush

Ответов: 5
Просмотров: 1312
Последний ответ 31.08.2017, 05:49:13
от diman_bush
Фильтрации текста (Нужна реанимация)

Автор vetalb91

Ответов: 0
Просмотров: 1326
Последний ответ 17.08.2017, 17:56:42
от vetalb91
Автоматическое уменьшение размера изображений для статей

Автор rean1mator

Ответов: 5
Просмотров: 5749
Последний ответ 21.05.2017, 16:27:32
от valcoray