Новости Joomla

joomLab Gallery - плагин галереи изображений для Joomla

👩‍💻 joomLab Gallery - плагин галереи изображений для Joomla.Плагин joomLab Gallery позволит Вам добавлять в любой материал неограниченное количество галерей, а главное удобно управлять файлами и эффектами в каждой галерее.Плагин использует популярны скрипты Swiper.js и FancyBox. Первый для крутой организации и эффектов галерей, а второй для красивого и функционального показа оригинальных изображений на Вашем сайте.На данный момент плагин имеет 10 макетов вывода - это 10 различных эффектов галерей и Вы можете совмещать все 10 в 1 материале.Плагин позволяет гибко настраивать индивидуально каждую галерею в материале. Вы можете выбрать макет, эффекты и даже можете управлять функциями всплывающего окна изображения.Недостатки.Такой вид реализации не предусматривает выбор изображения на сервере. Т.е. Вы не можете выбрать уже добавленное фото, только загружать заново. Плагин не предоставляет возможности доступа к медиа-менеджеру.Плагин бесплатный. Разработчик - участник нашего сообщества Александр Новиков (@pro-portal).Страница расширения@joomlafeed#joomla #расширения

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla 🖨Ну что, интересная инициатива от @webtolkru в виде интервью с разными участниками весьма меня увлекла. Я, вооружившись данным примером, решил подготовить выпуск для NorrNext (@norrnext) и экстраполировал идею на международный масштаб. Теперь готовлю эксклюзивный выпуск с участниками Joomla сообщества со всего мира, которые, в той или иной мере, внесли свой вклад в развитие и популяризацию системы. Будут беседы с людьми из разных стран и фото с юбилейной символикой 📸Работа в процессе 👆 📝О результатах оповещу отдельно.

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

bfox

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
как ограничить длину статуса. ибо так зафлудить можно...
*

bfox

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Re: ограничение длины статуса
« Ответ #1 : 05.02.2010, 21:22:00 »
   <div class="helloMeStatusText" style="margin-top:5px;">
                  <div id="helloMeEdit" style="display: none;">
                     <input name="helloMeStatusText" id="helloMeStatusText" type="text" class="status inputbox" style="width: 90%; margin: 0 auto;" value="" onblur="helloMe.saveStatus();return false;" onkeyup="helloMe.saveChanges(event);return false;" />
                  </div>
                  <div id="helloMeDisplay">
                     <span href="javascript:void(0);" id="helloMeStatusLink" style="text-decoration: none; cursor: pointer;" onclick="helloMe.changeStatus();">
                        <span id="helloMeStatus" style="text-decoration: none;"></span>
                     </span>
                    </div>
               </div>
            </div>
            
            <div style="border-bottom: 1px solid #ecebeb; margin: 4px 0; padding: 0 0 10px;">
               <a href="javascript:void(0);" id="saveLink" style="line-height: 18px; padding: 0 0 0 22px; display: none; background: transparent url(<?php echo JURI::root(); ?>modules/mod_hellome/images/icons-16x16.gif) no-repeat 0 -440px;" onclick="helloMe.saveStatus();" class="icon-save"><?php echo JText::_('MOD_HELLOME SAVE MY STATUS'); ?></a>
               <a href="javascript:void(0);" id="editLink" style="line-height: 18px; padding: 0 0 0 22px; display: block; background: transparent url(<?php echo JURI::root(); ?>modules/mod_hellome/images/icons-16x16.gif) no-repeat 0 -419px;" onclick="helloMe.changeStatus();" class="icon-edit"><?php echo JText::_('MOD_HELLOME EDIT MY STATUS'); ?></a>
            </div>
подскажите как мах длину указать
*

Zombeee

  • Захожу иногда
  • 328
  • 55 / 3
Прикрутил себе MyBlog и тут же в ленте активности стали напрягать огромные сообщения, которые там совершенно ни к чему... к тому же, чисто теоретически и другие активности могут быть тоже длинными, например комментарии... в общем решил копать не в MyBlog, а сделать более универсальный вариант.

Нам нужен файл: /com_community/libraries/activities.php начиная со строк 103-105, которые выглядят следующим образом:

Код
		if( $act->content == 'This is the body' ){
return '';
}

после этих строк вставляем следующий код:

Код
		$str = strip_tags(html_entity_decode(JString::trim($act->content))); // приводим строку к виду "только текст", теги на всякий случай тоже удаляем, зачем они нам в анонсе?

$limit = 600; // сколько символов оставляем
if (JString::strlen($str) > $limit) {
$limit = JString::strpos($str, " ", $limit);
$str = JString::substr($str, 0, $limit). '...'; //обрезаем до ближайшего пробела после указанного кол-ва символов и добавляем в конце многоточие
}

$str = htmlentities ($str, ENT_COMPAT, 'UTF-8'); //возвращаем строке вид, который хавает jomsocial

$act->content = $str;

Вуаля! Этот же кусок кода можно использовать для обрезания всех остальных объёмных данных в социалке, например длинные описания групп на главной
« Последнее редактирование: 09.03.2010, 12:39:52 от Zombeee »
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Хмм, если я не ошибаюсь, то функция strlen (да и вообще все строковые функции) некорректно работает с UTF-8. Для работы со строками лучше всего использовать соответствующие методы JString.
*

Zombeee

  • Захожу иногда
  • 328
  • 55 / 3
Хмм, если я не ошибаюсь, то функция strlen (да и вообще все строковые функции) некорректно работает с UTF-8. Для работы со строками лучше всего использовать соответствующие методы JString.

нормально всё в данном случае работает, проверено :) с методами JString не разбирался, не знаю что там есть по этому поводу...
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Не работать то будет, но длина будет вычисляться некорректно + возможные некорректные обрезания строк.

Цитировать
PHP по умолчанию не поддерживает UTF-8 и поэтому надо быть очень осторожными при работе со строковыми переменными. PHP «предполагает», что все символы состоят из 8 бит (1 байт), но так как Unicode символы могут быть длинее, то возможно повреждение Unicode данных.

Конечно, существует специальный модуль для PHP – mbstring, который добавляет поддержку Unicode, но не на всех системах он установлен. В Joomla! у нас  есть специальный static JString класс; этот класс позволяет нам использовать множество строковых функций для работы с UTF-8 символами.

В данном примере мы используем JString для перевода строки в заглавные символы. Обратите внимание, что названия методов JString совпадают с привычными для нас строковыми функциями PHP:

$string = JString::strtoupper($string);

http://api.joomla.org/Joomla-Framework/Utilities/JString.html
*

Zombeee

  • Захожу иногда
  • 328
  • 55 / 3
уговорил :) я исправил первый пост! Кстати, спасибо за ссылочку на Joomla API, а то я всю joomla.org излазил но так и не нашел...
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
А где добавить эту функцию, чтоб ограничить - статус.
Сейчас там хоть книгу пихай.
Всё есть в тебе. Реализовывайся.
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Попробуйте в статус добавить 10000 символов. Они войдут... и отобразятся. И в ленте активности тоже.
Не могу найти , где применить данный вами код, чтоб ограничить длину статуса.
Всё есть в тебе. Реализовывайся.
*

Zombeee

  • Захожу иногда
  • 328
  • 55 / 3
дело в том, что у меня шаблон свой и статус добавляется не в textarea. а в простой input, а так кол-во символов легко ограничить
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
дело в том, что у меня шаблон свой и статус добавляется не в textarea. а в простой input, а так кол-во символов легко ограничить
У меня шаблон стандартный. Может подскажешь куда смотреть и что править?
Всё есть в тебе. Реализовывайся.
*

Yavich

  • Захожу иногда
  • 133
  • 3 / 1
Спасибо, как раз начал это искать :)
*

Zombeee

  • Захожу иногда
  • 328
  • 55 / 3
У меня шаблон стандартный. Может подскажешь куда смотреть и что править?
ну, тут не так всё просто... во-первых надо ограничить кол-во вводимых знаков, у textarea это возможно сделать только с помощью java script, во-вторых, чтобы наверняка, нужно сделать проверку кол-ва символов перед записью в базу и выдавать ошибку, если их больше... короче тут надо писать, думать, время тратить... поищи по форумам готовые ява скрипты для ограничения ввода символов в текстареа
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Попробуйте в статус добавить 10000 символов. Они войдут... и отобразятся. И в ленте активности тоже.
Не могу найти , где применить данный вами код, чтоб ограничить длину статуса.
Zombeee, у тебя на сайте  такая-же проблема со статусом, сегодня оставил с testerа километровый статус.....
Может все-таки ограничить как нибудь кол-во символов на ввод в статусной строке? Так например Вконтакте делает.
Всё есть в тебе. Реализовывайся.
*

Zombeee

  • Захожу иногда
  • 328
  • 55 / 3
Хакеры блин :) да у меня просто ещё руки не дошли в инпуте поставить максимальное число символов :)
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Ограничение длины статуса.

в файле profile.header.php вашего шаблона ставим
Код
<script type="text/javascript">
function ismaxlength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}
</script>

строку пониже
Код
<textarea name="statustext" id="statustext" class="status" rows="" cols=""></textarea>
заменяем на
Код
<textarea name="statustext" id="statustext" class="status" rows="" cols="" maxlength="140" onkeyup="return ismaxlength(this);"></textarea>

Все!
Теперь статус не больше 140 символов!
Кол-во можно поставить любое.

На ввод с клавиатуры это работает. Но из буфера обмена все равно можно вставить километровый текст...

Как ограничить и для вставки из буфера?
« Последнее редактирование: 07.03.2010, 09:37:52 от vdr »
Всё есть в тебе. Реализовывайся.
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
И еще один вопрос про длину сообщений.
Как можно заставить принудительно переносить строки tttttttttttttttttttttttttttttttttttttttttttteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeesssssssssssssssssssssssssssssssssssssssssssssssssstttttttttttttttttttttttttttttttttttttttttttttt!
Сейчас это все просто идет в одну строку, выходя за края шаблона в никуда...

p.s. Пример был намного длиньше  ^-^ При вставки его форум обрезал  ^-^

Как обрезать?
Всё есть в тебе. Реализовывайся.
*

bigmus

  • Захожу иногда
  • 55
  • 4 / 1
Re: ограничение длины статуса
« Ответ #18 : 07.03.2010, 10:43:45 »
ищем фал profile.header.php
в начале файла вписываем js

<script type="text/javascript">
function limitText(limitField, limitCount, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } else {
        limitCount.value = limitNum - limitField.value.length;
    }
}
</script>

далее ищем примерно строчка 140 и заменяем код на

                 <div class="statustext">
                    <form id="formstatustext" name="status" onsubmit="return false;">
                       <label for="statustext" id="labelstatustext"><?php echo JText::_('CC MY STATUS'); ?></label>
                       <textarea name="statustext" onKeyDown="limitText(this,this.form.count,55);"
onKeyUp="limitText(this,this.form.count,55);"
id="statustext" class="status" onfocus="changeStatus();return false;" onblur="saveStatus();return false;" onkeyup="saveChanges(event);return false;"></textarea>
                       <a class="button" href="javascript:void(0);" id="save-status" style="padding-left:10px; display: none; height: 15px;" onclick="saveStatus();return false;"><?php echo JText::_('Save'); ?></a>
                  </form>
                 </div>


где цифры 55 указывают на кол-во вводимых символов :) вот и все
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Re: ограничение длины статуса
« Ответ #19 : 07.03.2010, 10:47:18 »
ищем фал profile.header.php
в начале файла вписываем js

<script type="text/javascript">
function limitText(limitField, limitCount, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } else {
        limitCount.value = limitNum - limitField.value.length;
    }
}
</script>

далее ищем примерно строчка 140 и заменяем код на

                 <div class="statustext">
                    <form id="formstatustext" name="status" onsubmit="return false;">
                       <label for="statustext" id="labelstatustext"><?php echo JText::_('CC MY STATUS'); ?></label>
                       <textarea name="statustext" onKeyDown="limitText(this,this.form.count,55);"
onKeyUp="limitText(this,this.form.count,55);"
id="statustext" class="status" onfocus="changeStatus();return false;" onblur="saveStatus();return false;" onkeyup="saveChanges(event);return false;"></textarea>
                       <a class="button" href="javascript:void(0);" id="save-status" style="padding-left:10px; display: none; height: 15px;" onclick="saveStatus();return false;"><?php echo JText::_('Save'); ?></a>
                  </form>
                 </div>


где цифры 55 указывают на кол-во вводимых символов :) вот и все

А это ограничивает длину сообщения при вставки из буфера обмена?
Всё есть в тебе. Реализовывайся.
*

bigmus

  • Захожу иногда
  • 55
  • 4 / 1
Re: ограничение длины статуса
« Ответ #20 : 07.03.2010, 11:58:40 »
да обрезает полностью до 55 символов
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Re: ограничение длины статуса
« Ответ #21 : 07.03.2010, 12:40:43 »
да обрезает полностью до 55 символов
Для стандартной темы 1.6.285 прикрутить не смог.
Все искревляется и кнопки сохранить нет...
Пока сделал так http://joomlaforum.ru/index.php/topic,101475.msg579094.html#msg579094
Всё есть в тебе. Реализовывайся.
*

bigmus

  • Захожу иногда
  • 55
  • 4 / 1
Re: ограничение длины статуса
« Ответ #22 : 07.03.2010, 12:48:50 »
в файл добавить js код описанный выше, а в textarea добавить onKeyDown="limitText(this,this.form.count,55);"
onKeyUp="limitText(this,this.form.count,55);" все должно работать у меня на 1.5 все работает
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Re: ограничение длины статуса
« Ответ #23 : 07.03.2010, 13:06:01 »
в файл добавить js код описанный выше, а в textarea добавить onKeyDown="limitText(this,this.form.count,55);"
onKeyUp="limitText(this,this.form.count,55);" все должно работать у меня на 1.5 все работает
Работает. Но из буфера все равно можно вставить мнооого текста.
Всё есть в тебе. Реализовывайся.
*

bigmus

  • Захожу иногда
  • 55
  • 4 / 1
Re: ограничение длины статуса
« Ответ #24 : 07.03.2010, 13:12:19 »
лишний же текс не печатается и обрезается!? у меня все прекрасно работает и даже из буфера все урезает :o проверял и в опера файрфокс и ие
*

ILexus

  • Осваиваюсь на форуме
  • 37
  • 5 / 0
Re: ограничение длины статуса
« Ответ #25 : 07.03.2010, 14:14:57 »
delete
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Я думаю, что самый жесткий способ - это в базе для поля status в таблице #__community_users выставить не text, а varchar с ограничением по символам  ::)

А можно попробовать залезть в libraries/core.php и найти там метод setStatus:
Код: php
/**
 * Sets the status for the current user
**/
function setStatus( $status = '' )
{
if( $this->id != 0 )
{
$this->set( '_status' , $status );
$this->save();
}
}

Ну соответственно колдуем над переменной $status:

Код: php
$limit = 100; // сколько символов оставляем
if (JString::strlen($status) > $limit) {
$limit = JString::strpos($status, " ", $limit);
$status = JString::substr($status, 0, $limit). '...'; //обрезаем до ближайшего пробела после указанного кол-ва символов и добавляем в конце многоточие
}

Ну и итог:

Код: php
function setStatus( $status = '' )
{
if( $this->id != 0 )
{
$limit = 100; // сколько символов оставляем
if (JString::strlen($status) > $limit) {
$limit = JString::strpos($status, " ", $limit);
$status = JString::substr($status, 0, $limit). '...'; //обрезаем до ближайшего пробела после указанного кол-ва символов и добавляем в конце многоточие
}

$this->set( '_status' , $status );
$this->save();
}
}

Вообщем я это не проверял, но по идее должно сработать.
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
c изменением libraries/core.php не работает...

с базой тоже...
« Последнее редактирование: 07.03.2010, 17:12:00 от vdr »
Всё есть в тебе. Реализовывайся.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
c изменением libraries/core.php не работает...

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

UPDATE:
С базой все прекрасно работает. Вот как я урезал до 20 символов:
Код
ALTER TABLE `jos_community_users` CHANGE `status` `status` VARCHAR( 20 ) NOT NULL 

Если прописываешь статус в более 20 символов, то в input он попадавет весь, но после перезагрузки страницы обрезается до 20.

UPDATE:
Нашел где в коде требуется внести изменения. Не знаю, зачем этот метод нужен в core.php, но реально он исполняется в controllers/status.php. Добавляем после $message = JString::trim($message):

Код: php
$limit = 100; // // сколько символов оставляем
if (JString::strlen($message) > $limit) {
$limit = JString::strpos($message, " ", $limit);
$message = JString::substr($message, 0, $limit). '...'; //обрезаем до ближайшего пробела после указанного кол-ва символов и добавляем в конце многоточие
}
*

ILexus

  • Осваиваюсь на форуме
  • 37
  • 5 / 0
bzzik, работает отлично, спасибо. Проверял в профиле и модуле mod_hellome
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Все события и все видео на ленте активности расползается на всю страницу, при этом меню и все остальн

Автор mehman

Ответов: 1
Просмотров: 4016
Последний ответ 15.05.2015, 18:29:00
от motokraft
Вопрос по ленте активности в профиле

Автор Deni

Ответов: 43
Просмотров: 23301
Последний ответ 28.08.2014, 11:36:51
от sv13
Как убрать вывод последней активности на фронтальной странице?

Автор Andrej-zhe

Ответов: 1
Просмотров: 3697
Последний ответ 07.05.2014, 17:08:52
от Andrej-zhe
502 ошибка при загрузке изображений - решено

Автор Vikitos

Ответов: 2
Просмотров: 4347
Последний ответ 24.12.2013, 00:05:58
от Vikitos
Добавление фото в статус с мобильного телефона

Автор grafdrakula

Ответов: 0
Просмотров: 3571
Последний ответ 19.12.2013, 11:51:58
от grafdrakula