sapr2017 Опубликовано 21 декабря, 2016 Поделиться Опубликовано 21 декабря, 2016 Привет! На меня "напали" толпы пользователей, которые захотели уплотнить шрифт в ленте сообщений. Понятно, что, прежде всего, в настройках редактора клац по Enter был определен как "новая строка" (а не абзац). Далее умные люди посоветовали решение через добавление в custom.css конструкции .ipsComment_content .ipsType_richText{ line-height: 1.1; } Эффект был достигнут. Текст заметно уплотнился по вертикали. Вместо 2-3 сообщений на одном экране, теперь без промотки можно читать 4-5. К сожалению, выявился дефект : при использовании цитат последующий набираемый текст становится вплотную к прямоугольнику цитаты. Делать клац по Enter каждый раз после и перед цитатой неудобно. Вопрос , как имитировать новый абзац? Или как можно цитату обрамить своеобразным padding-ом снизу и сверху? Как это реализовать в коде? Заранее благодарю. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SoNWarrioR Опубликовано 21 декабря, 2016 Поделиться Опубликовано 21 декабря, 2016 Думаю что нужно просто в модуль цитат добавить тег <br /> Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Redneck Опубликовано 21 декабря, 2016 Поделиться Опубликовано 21 декабря, 2016 33 минуты назад, sapr2017 сказал: Или как можно цитату обрамить своеобразным padding-ом снизу и сверху? Как это реализовать в коде? в custom.css добавить код: .ipsQuote { margin-bottom: 10px; margin-top: 10px; } sapr2017 и deeverbs 1 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
sapr2017 Опубликовано 21 декабря, 2016 Автор Поделиться Опубликовано 21 декабря, 2016 1 час назад, Redneck сказал: .ipsQuote { margin-bottom: 10px; margin-top: 10px; } Работает. Спасибо большое. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
deeverbs Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 Тоже мучился с этим, некоторые пользователи злоупотребляли энтером)) спасибо за подсказку про custom 🙂 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
by_ix Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 1 час назад, deeverbs сказал: злоупотребляли энтером по стандарту на энтер включён абзац, если включить просто перенос строки, то вполне достаточно этого и больше ничего делать не приходится. да и на скринах, судя по всему, какой-то газетный форум из нулевых. такое тоже читать не особо приятно, когда весь текст слипается. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
deeverbs Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 8 часов назад, by_ix сказал: да и на скринах, судя по всему, какой-то газетный форум из нулевых. такое тоже читать не особо приятно, когда весь текст слипается. Я сделал перенос строки и текст слипся в местах где цитаты, картинки и видео.. Я добавил в custom.css и добился нужно результата, но с видео так не прокатило.. .ipsQuote { margin-bottom: 10px; margin-top: 10px; } .ipsImage { margin-bottom: 10px; margin-top: 10px; } Подскажите, пожалуйста, как сделать подобные отступы, на видео... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 3 часа назад, deeverbs сказал: Подскажите, пожалуйста, как сделать подобные отступы, на видео... .ipsEmbeddedVideo { margin: 10px 0 10px 0; } deeverbs 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
deeverbs Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 (изменено) @ZIKURIK работает! Спасибо огромное! 🙂 Пользуясь случаем, хочу ещё спросить, когда в редактор вставляется ссылка на видео, например с YouTube, автоматом добавляется  , из-за этого пост выглядит немного не эстетично. Можно как-то побороть это? Изменено 17 октября, 2021 пользователем deeverbs Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 1 час назад, deeverbs сказал: автоматом добавляется   его удалить можно при добавлении Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 или можно так, вставь это в includeJS <script type='text/javascript'> $('#ipsLayout_contentArea').find('.ipsEmbeddedVideo').each( function () { if( $(this).next("p:contains('')").next().length == 0 ){ $(this).next("p:contains('')").remove(); } }); </script> удаляет nbsp если дальше нет тегов by_ix и deeverbs 2 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
deeverbs Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 15 минут назад, ZIKURIK сказал: его удалить можно при добавлении Я знаю, но пользователи этого не будут делать) им все равно, что там вставляется) 1 минуту назад, ZIKURIK сказал: или можно так, вставь это в includeJS Это в какой папке этот скрипт? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 2 минуты назад, deeverbs сказал: Это в какой папке этот скрипт? в шаблонах вбей просто, он найдет deeverbs 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
deeverbs Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 (изменено) 56 минут назад, ZIKURIK сказал: в шаблонах вбей просто, он найдет блин, там куча условий 🙂 (в самом файле в смысле) где он должен быть?)) {{if !\IPS\Request::i()->isAjax()}} {{$maxImageDims = \IPS\Settings::i()->attachment_image_size ? explode( 'x', \IPS\Settings::i()->attachment_image_size ) : array( 1000, 750 );}} <script type='text/javascript'> var ipsDebug = {{if ( \IPS\IN_DEV and \IPS\DEV_DEBUG_JS ) or \IPS\DEBUG_JS}}true{{else}}false{{endif}}; {{if \IPS\IN_DEV}} var CKEDITOR_BASEPATH = '{url="applications/core/dev/ckeditor" base="none" protocol="\IPS\Http\Url::PROTOCOL_RELATIVE"}/'; {{else}} var CKEDITOR_BASEPATH = '{url="applications/core/interface/ckeditor/ckeditor" base="none" protocol="\IPS\Http\Url::PROTOCOL_RELATIVE"}/'; {{endif}} var ipsSettings = { {{if \IPS\Dispatcher::hasInstance() and \IPS\Dispatcher::i()->controllerLocation == 'admin'}} isAcp: true, {{endif}} {{if \IPS\COOKIE_DOMAIN !== NULL}} cookie_domain: "{expression="\IPS\COOKIE_DOMAIN"}", {{endif}} cookie_path: "{expression="\IPS\Request::getCookiePath()"}", {{if \IPS\COOKIE_PREFIX !== NULL}} cookie_prefix: "{expression="\IPS\COOKIE_PREFIX"}", {{endif}} {{if mb_substr( \IPS\Settings::i()->base_url, 0, 5 ) == 'https' AND \IPS\COOKIE_BYPASS_SSLONLY !== TRUE}} cookie_ssl: true, {{else}} cookie_ssl: false, {{endif}} upload_imgURL: "{resource="notifyIcons/upload.png" location="front"}", message_imgURL: "{resource="notifyIcons/message.png" location="front"}", notification_imgURL: "{resource="notifyIcons/notification.png" location="front"}", baseURL: "{expression="\IPS\Http\Url::baseUrl( \IPS\Http\Url::PROTOCOL_RELATIVE )"}", jsURL: "{expression="rtrim( \IPS\Http\Url::baseUrl( \IPS\Http\Url::PROTOCOL_RELATIVE ), '/' )"}/applications/core/interface/js/js.php", csrfKey: "{expression="\IPS\Session::i()->csrfKey"}", antiCache: "{expression="\IPS\Theme::i()->cssCacheBustKey()"}", jsAntiCache: "{expression="\IPS\Output\Javascript::javascriptCacheBustKey()"}", disableNotificationSounds: true, useCompiledFiles: {{if \IPS\IN_DEV}}false{{else}}true{{endif}}, links_external: {{if \IPS\Settings::i()->links_external }}true{{else}}false{{endif}}, memberID: {expression="( \IPS\Member::loggedIn()->member_id ) ? \IPS\Member::loggedIn()->member_id : 0"}, lazyLoadEnabled: {{if \IPS\Settings::i()->lazy_load_enabled}}true{{else}}false{{endif}}, blankImg: "{expression="\IPS\Text\Parser::blankImage()"}", analyticsProvider: "{expression="\IPS\Settings::i()->ipbseo_ga_provider"}", viewProfiles: {{if \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) )}}true{{else}}false{{endif}}, mapProvider: {{if \IPS\Settings::i()->googlemaps and \IPS\Settings::i()->google_maps_api_key}}'google'{{elseif \IPS\Settings::i()->mapbox and \IPS\Settings::i()->mapbox_api_key}}'mapbox'{{else}}'none'{{endif}}, mapApiKey: {{if \IPS\Settings::i()->googlemaps and \IPS\Settings::i()->google_maps_api_key}}"{expression="\IPS\Settings::i()->google_maps_api_key"}"{{elseif \IPS\Settings::i()->mapbox and \IPS\Settings::i()->mapbox_api_key}}"{expression="\IPS\Settings::i()->mapbox_api_key"}"{{else}}''{{endif}}, pushPublicKey: {{if \IPS\Notification::webPushEnabled()}}"{expression="\IPS\Settings::i()->vapid_public_key"}"{{else}}null{{endif}}, relativeDates: {{if \IPS\Settings::i()->relative_dates_enable}}true{{else}}false{{endif}} }; {{if \IPS\Settings::i()->ipbseo_ga_provider == 'custom' && \IPS\Settings::i()->ipbseo_ga_paginatecode && \IPS\Dispatcher::hasInstance() && \IPS\Dispatcher::i()->controllerLocation == 'front'}} ipsSettings['paginateCode'] = {setting="ipbseo_ga_paginatecode"}; {{endif}} {{if !empty( $maxImageDims[0] ) AND !empty( $maxImageDims[1] ) AND ( \intval( $maxImageDims[0] ) !== 0 || \intval( $maxImageDims[1] ) !== 0 ) }} ipsSettings['maxImageDimensions'] = { width: {$maxImageDims[0]}, height: {$maxImageDims[1]} }; {{endif}} </script> {{endif}} {{if !\IPS\Request::i()->isAjax() and \IPS\Dispatcher::hasInstance() and \IPS\Dispatcher::i()->controllerLocation == 'front' and \IPS\Settings::i()->fb_pixel_enabled and \IPS\Settings::i()->fb_pixel_id}} {{$pixelId = \IPS\Settings::i()->fb_pixel_id;}} <!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); setTimeout( function() { fbq('init', '{$pixelId}'); {{if $pixels = \IPS\core\Facebook\Pixel::i()->output()}} {$pixels|raw} {{endif}} }, {expression="\intval( \IPS\Settings::i()->fb_pixel_delay * 1000 )"} ); </script> <!-- End Facebook Pixel Code --> {{endif}} {{foreach array_unique( array_filter( \IPS\Output::i()->jsFiles ), SORT_STRING ) as $js}} {{$js = \IPS\Http\Url::external( $js );}} <script type='text/javascript' src='{{if $js->data['host'] == parse_url( \IPS\Settings::i()->base_url, PHP_URL_HOST )}}{expression="$js->setQueryString( 'v', \IPS\Output\Javascript::javascriptCacheBustKey() )"}{{else}}{expression="$js"}{{endif}}' data-ips></script> {{endforeach}} {{foreach array_unique( \IPS\Output::i()->jsFilesAsync, SORT_STRING ) as $js}} <script type="text/javascript" src="{expression="\IPS\Http\Url::external( $js )->setQueryString( 'v', \IPS\Output\Javascript::javascriptCacheBustKey() )"}" async></script> {{endforeach}} {{if !\IPS\Request::i()->isAjax() and ( \count( \IPS\Output::i()->jsVars ) || \IPS\Output::i()->headJs)}} <script type='text/javascript'> {{foreach \IPS\Output::i()->jsVars as $k => $v}} ips.setSetting( '{$k}', {{if ! \is_array( $v )}}jQuery.parseJSON('{expression="json_encode( $v, JSON_HEX_APOS )" raw="true"}'){{else}}{expression="json_encode( $v, JSON_HEX_APOS )" raw="true"}{{endif}} ); {{endforeach}} {expression="\IPS\Output::i()->headJs" raw="true"} </script> {{endif}} {{if \count( \IPS\Output::i()->jsonLd )}} {{foreach \IPS\Output::i()->jsonLd as $object}} <script type='application/ld+json'> {expression="json_encode( $object, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS )" raw="true"} </script> {{endforeach}} {{endif}} Изменено 17 октября, 2021 пользователем deeverbs Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 4 минуты назад, deeverbs сказал: блин, там куча условий 🙂 (в самом файле в смысле) где он должен быть?)) в самый конец вставь после {{endif}} deeverbs 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
deeverbs Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 20 минут назад, ZIKURIK сказал: в самый конец вставь после {{endif}} не работает.. 😔 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 5 минут назад, deeverbs сказал: не работает.. 😔 он удалять должен в постах которые уже отправлены deeverbs 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
deeverbs Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 3 минуты назад, ZIKURIK сказал: он удалять должен в постах которые уже отправлены блин, сорри.. 🙂 перезагрузил страницу, и всё ок стало) Интересно скрипт работает, По факту его нет в публикации, но если начать редактировать он почему-то там висит?) Как это работает?)) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 3 минуты назад, deeverbs сказал: Интересно скрипт работает, По факту его нет в публикации, но если начать редактировать он почему-то там висит?) Как это работает?)) Я посчитал что в редакторе он все же нужен, мало ли захочется ввести текст или еще что под видео. Скрипт циклом проверяет все сообщения на странице и удаляет этот nbsp если дальше нету других тегов. by_ix и deeverbs 2 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
deeverbs Опубликовано 17 октября, 2021 Поделиться Опубликовано 17 октября, 2021 1 минуту назад, ZIKURIK сказал: Я посчитал что в редакторе он все же нужен, мало ли захочется ввести текст или еще что под видео. Скрипт циклом проверяет все сообщения на странице и удаляет этот nbsp если дальше нету других тегов. Круто! Спасибо огромное!!! 🙂 Mano 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AlphaStar Опубликовано 18 октября, 2021 Поделиться Опубликовано 18 октября, 2021 (изменено) А эта тема только для ютуба? Меня больше всего бесит пустые абзацы в конце поста, даже появилась дебильная ОКР-на привычка редактировать сообщения за пользователями) Изменено 18 октября, 2021 пользователем betastarz Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
deeverbs Опубликовано 18 октября, 2021 Поделиться Опубликовано 18 октября, 2021 (изменено) 1 час назад, betastarz сказал: А эта тема только для ютуба? Меня больше всего бесит пустые абзацы в конце поста, даже появилась дебильная ОКР-на привычка редактировать сообщения за пользователями) Да, в скрипте есть функция find('.ipsEmbeddedVideo') Наверно было бы хорошо сделать универсальную?) Изменено 18 октября, 2021 пользователем deeverbs Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Exception Опубликовано 18 октября, 2021 Поделиться Опубликовано 18 октября, 2021 3 часа назад, betastarz сказал: А эта тема только для ютуба? Меня больше всего бесит пустые абзацы в конце поста, даже появилась дебильная ОКР-на привычка редактировать сообщения за пользователями) <script type='text/javascript'> $('#ipsLayout_contentArea').find('div[data-role="commentContent"]').find('p:last').each( function () { if( $(this).next().length == 0 ){ $(this).html(function (i, html) { return html.replace(/ /g, ''); }); } }); </script> by_ix, AlphaStar и deeverbs 3 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
deeverbs Опубликовано 18 октября, 2021 Поделиться Опубликовано 18 октября, 2021 38 минут назад, ZIKURIK сказал: <script type='text/javascript'> $('#ipsLayout_contentArea').find('div[data-role="commentContent"]').find('p:last').each( function () { if( $(this).next().length == 0 ){ $(this).html(function (i, html) { return html.replace(/ /g, ''); }); } }); </script> Огонь! всё работает! Спасибо! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AlphaStar Опубликовано 19 октября, 2021 Поделиться Опубликовано 19 октября, 2021 ZIKURIK У меня почему-то не работает, я же туда вставил куда надо? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.