Перейти к публикации

redissx

местные
  • Публикации

    361
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    66

Сообщения, опубликованные пользователем redissx

  1. 7 минут назад, MSK сказал:

    Спойлеры...

    Хотелось бы иметь возможность указать фиксированный ID спойлеру, чтобы, например, можно было указать его в ссылках из других материалов и автоматически его открыть/подсветить.

    Сейчас при редактировании новости этот ID всегда меняется.

    Добавлю к пожеланию. И класс не открыт, открыт спойлер и к заголовку, и к тексту. Вы привязали определенную картинку в заголовке, класс позволит и свою картинку поставить из шаблона и менять ее и плюс оформление делать, например, при открытом цвет заголовок один, при закрытом другой.

    • Поддерживаю 1
  2. 1 час назад, igorek-art сказал:

    Всем привет. Не совсем понимаю, что происходит и как бороться? В момент заполнения различных форм на сайте происходит увеличение масштаба странички (пример на скриншотах). Знакомый посоветовал подключить файл normalize.css что я и сделал, только ровным счетом ни на что не повлияло. Не подскажите ли как бороться с этим, чтоб не было увеличения? Происходит это на мобильном телефоне лишь.

    IMG-4241.pngIMG-4243.png

     Масштаб увеличивается если размер шрифта меньше 16 пикселей. Решение простое: ставить размер шрифта не меньше 16 пикселей) для плейсхолдер можно любой. 

  3. Я тоже не понимаю зачем, ведь пуши фактически то же самое теперь. Оформление делается в шаблоне. Вот оформление от меня, немного получше На мой взгляд

    .DLEPush {z-index: 1000; position: fixed; right: 20px; top: 20px;}
    
    @keyframes DLEPush-show {
    
     0% {transform: translateY(100%); opacity: 0;}
    
     100% {transform: translateY(0); opacity: 1;}
    
    }
    
    .DLEPush-notification.wrapper {animation-name: DLEPush-show; animation-duration: 0.3s; position: relative;
    
     display: grid; gap: 10px; margin-bottom: 10px; width: 400px; max-width: calc(100vw - 40px); 
    
     color: #333; background-color: hsl(var(--hue,174), 41%, 91%); box-shadow: 0 10px 15px rgb(0 0 0 / 15%); 
    
     border-radius: 6px; padding: 15px 30px 15px 60px; overflow: hidden;}
    
    .DLEPush-notification .DLEPush-icon {display: grid; place-items: center; position: absolute; left: 0; top: 0; 
    
     color: #fff; background-color: hsl(var(--hue,174), 100%, 27%); width: 45px; height: 100%;}
    
    .DLEPush-notification .DLEPush-icon svg {scale: 0.8;}
    
    .DLEPush-notification .DLEPush-header {font-weight: bold; font-size: 1.1em;}
    
    .DLEPush-notification .DLEPush-header:empty {display: none;}
    
    .DLEPush-notification .DLEPush-close {position: absolute; top: 50%; right: 10px; background: none;
    
     border: 0; padding: 0; color: inherit; font-size: 1.4em; transform: translateY(-50%);}
    
    .DLEPush-notification.wrapper.push-success {--hue: 174;}
    
    .DLEPush-notification.wrapper.push-warning {--hue: 36;}
    
    .DLEPush-notification.wrapper.push-error {--hue: 14;}

     

  4. Да, можно. Если не затрагивать файлы движка, то можно к этому окошку добавить длинную тень без размытия box-shadow: 0 0 0 1000vmax rgba(0,0,0,0.5). Минус в том что область затемнения не блокируется.

    Второй вариант - это к этому окошку добавить псевдоэлемент с фиксированной позицией и z-index - 1 относительно окна. Но код не напишу, С телефона неудобно писать.

    • Спасибо 1
  5. 17 минут назад, aleksandrhristich сказал:

    Нет. Я никогда ,никому не делаю даже за деньги и даже знакомым.

    Если не собирались ничего делать, зачем тогда написали здесь своё "очень важное и экспертное" мнение, тем самым обесценив работу человека, который реально бы взялся за работу? В общем, засчитываю вам слив. Дамы и господа, в очередной раз мы видим подтверждение древней мудрости: языком чесать - не мешки ворочать 😀

  6. 2 минуты назад, aleksandrhristich сказал:

    Это вы вообще про что?

    Я и от джумлы без проблем переделывал ,и от вордпресс,и от движка галлереи 4images. Нигде никаких конфликтов и подводных камней не было ни разу.

    На данный момент от форума ips (как этот) напялил на DLE  за 1 час (практически один в один,за исключением доп-го сайдбара) .

    Здесь я дал наводку что и как.

    Вообще красавчик. Тогда может возьмётесь за работу по цене двух часов?

  7. 38 минут назад, aleksandrhristich сказал:

    Делов на пару часов да и то с перекурами и питьем чая/кофе/пива.

    single.php - fullstory.tpl

    archive.php,autor.php - shortstory.tpl

    И т.д.

    P.S Главное условие - необходимо подключить знания и голову...

    Оптимистично. А служебные страницы? А дополнительные там есть страницы? А конфликты, которые могут возникнуть в CSS с вашими заготовками служебных? А ещё всякие подводные камни? А исправление потом всяких багов которых сразу вы не увидите? 

  8. 11 минут назад, aleksandrhristich сказал:

    @redissx , мне кажется что с появлением различных фреймворков для этих целей вообще не проблема делать шаблоны. Фреймворки это же ведь не только bootstrap,есть и другие. В плане создания своего дизайна проблема в основном с наличием ума и т.п.

    Фреймворк - это не волшебная кнопка, нажал и готово. Так что, это проблема и ещё какая. Придумать дизайн - это вообще самое сложное и не каждому дано, и никакой фреймворк тут не поможет. Я уж не говорю и просто про техническую часть. Если вы освоили, то рад за вас, но вы в абсолютном меньшинстве, и большинству простых пользователей нужен готовый недорогой шаблон. 

    • Нравится 1
  9. 5 часов назад, omcbs сказал:

    Товарищи, на заказ шабы это здорово конечно, но если мне нужен не в одни руки (не за дорого для простого новостного проекта), а просто красивый шаблон, который верстался для продажи. Есть авторы с магазинами наподобие webrambo?

    А прикол в том, что для продажи можно сказать никто уже и не делает. Вы наверное и сами гуглили и ничего толком не нашли. Потому что ничего и нет. Советовать из тех, что можно найти в выдаче, даже рука не поднимется. Один бесконечно переделывает одну и ту же работу, второй адаптирует зарубежные работы, третий тоже что-то там переделывает, четвёртый вообще рипы продает чужих работ на заказ, даже не стесняясь. Пятый и шестой вообще кидалы. Грустно всё это, товарищи. Нужно что-то предпринимать, но что? 

  10. 11 часов назад, skapunker сказал:

    предлагаю сделать ответвлений ДЛЕ –  для киносайтов. В общем чтобы функционал был всякий для киносайтов, нормальные похожие новости, добавлений сезонов, серий, чтобы все из коробки работало. Чтобы киносайты не на костылях строить, а на нормальном решении из коробки.

     

    С такой формулировкой обречено на отказ. Нужно было выразиться по-другому: возможность создавать подстраницы у страницы полной новости.

  11. 25 минут назад, celsoft сказал:

    Вам нужно соблюдать стандарты верстки HTML. И не редактор его соблюдает. Текст должен быть в семантическом блоке, не зависимо от того просите вы это или нет, это вас обязывают стандарты верстки, независимо от вашего желания. В редакторе можно выбрать какой блок использовать и такую возможность он вам дает. И баг как раз, это ваше нежелелание соблюдать стандарты верстки HTML

    В упор не вижу кнопку которая даёт выбрать какой блок вставлять. Прямо сейчас протестировал на локалке. Залил в редактор через кнопку файл, добавил его, включил исходный код, вижу что всё обёрнуто в абзац. Удалил принудительно, сохранил, захожу заново, включаю исходный код, опять вижу эту обёртку абзацем. А вот специальную кнопку для выборов блок в редактора не наблюдаю, по всем кнопкам прошёлся. 

    • Поддерживаю 1
  12. 1 минуту назад, Captain сказал:

    В настройках доп. поля можно разрешить вставку тега вывода данного поля в текст новостей.

    Можно или нельзя, в любом случае это баг, когда редактор оборачивает всё в p хотя его не просят об этом. И даже если принудительно удалить эту обёртку включив код в редакторе, при сохранении он всё равно сделает то же самое. А в p можно размещать только строчные элементы. Кстати об этом баге уже писали в этой теме и вроде бы разработчик говорил что поправили на версии 17, не знаю не проверял.

    • Поддерживаю 1
  13. Так конечно, добавлен <div id='dle-content'>. Он и становится 100 в ширину и все, больше ничего.

    Конкретно для кода выше должно быть так

    
    #dle-content {display: grid; grid-template-columns: repeat(100,1fr); grid-column: 1 / -1;}
    #dle-content > *:not(.cell) {grid-column: 1 / -1;}
    .cell {aspect-ratio: 1 / 1;}
    .cell a, .cell img {display: block; width: 100%; aspect-ratio: 1 / 1; height: auto;}

     

  14. 
    					<div class="grid">
    						<div class="cell"></div>
    						<div class="cell"></div>
    						<div class="cell"></div>
    						<div class="cell"></div>
    						<div class="cell"></div>
                          ...................
    					</div>

    ширина не нужна, создаем 50 равных частей с пропорцией 1 к 1 (квадрат).

    
    .grid {display: grid; grid-template-columns: repeat(50,1fr);}
    .cell {aspect-ratio: 1 / 1;}

     

    и для вашего сайта по соседству

    
    .cell a, .cell img {display: block; width: 100%; aspect-ratio: 1 / 1;}

     

  15. Предлагаю

    1. для рейтинга нравится и не нравится ввести {ratingscorelikes} (оценка 0-10) и {ratingpercentlikes} (процент 0-100). Если общий рейтинг в минусе, то оценка будет 0. Как-то уже предлагал, но разработчик сказал что  {ratingscore} только для звезд и не нужно. Однако многие сайты это используют, все довольны. Только тут нужнго продумать, чтобы была возможность вывести только цифру, без html, чтобы была возможность применять style="width: {ratingpercentlikes}%;"

    2. Для рейтинга звезды неплохо было бы иметь возможность включить 10 звезд.

    • Нравится 1
    • Поддерживаю 1
  16. 7 часов назад, AlexeyFX сказал:

    Здравствуйте.
    Добавьте возможность закрепить комментарий, чтобы он выделялся особым цветом, был выше всех комментариев. Таким образом можно показывать пользователям ценный комментарий.
    В паблике есть такой модуль, но я не знаю, можно ли его использовать? Ссылка на модуль

    Можно так сделать, если комментариев больше 10 выведет самый популярный. 

    [if comm_num > "10"] {customcomments newsid="{news-id}" order="rating" limit="1"} [/if]

    Или через дополнительное поле указать id="поле" 

    Вот и всё, фактически и зафиксируете комментарий с нужным ID. 

  17. Цитата

    И чем это привлечёт пользователя?


    Меня осенило!)

    В маин.тпл в конец и неавторизованным пользователям будет показывать сообщение с стилем "информация" и таймером 6 секунд.

    
    	[group=5]
    	<script>
    	window.addEventListener('load', ()=> {
    		const uw = sessionStorage.getItem('userwelcome');
    		if (!uw) DLEalert('Войдите на сайт и вы сможете комментировать, оценивать новости и скачивать файлы',  'Вы не авторизованы', 'info', 6000);
    		sessionStorage.setItem('userwelcome',1);
    	});
    	</script>
    	[/group]

     

    • Нравится 1
  18. 19 минут назад, aleksandrhristich сказал:

    Ну так-то я не говорил что плохие шаблоны или страшные и надо срочно менять на другие...

     

    13 минут назад, kamensk сказал:

    Хорошо. Напишу. 

    Однако вы не пожалели денег - изменили "фантик" своего сайта. А зачем, если не было никакого  смысла в этом...

    Хватит нервировать разработчика и засорять тему 😄 создайте тему рядом и там будем флудить.

  19. 12 минут назад, Nexux91 сказал:

    Понял один момент, не работает только на главной странице, видимо из-за вывода через content, в самой категории выводиться нормально. Возможно ли сделать что бы правило шаблона действовало на всех страницах?

    А может наоборот, на главной выводится через custom? У которого указан свой шаблон в тпл. С вероятностью 99%, так и есть. Потому что content используй тот шаблон который указан в админке.

  20. 55 минут назад, kamensk сказал:

    Как говорится - это надо было сделать еще вчера.

    А также  уже давно требуется морально обновить верстку, функционал пллеров - добавить функций...

    Если открыть dlejs.js то мы увидим кучу этих уведомлений. И что главное различного характера. Есть уведомления, что действие выполнено (успех), есть уведомления что действие уже было совершено и отмена повторного действия (предупреждение) и так далее. На мой взгляд, было бы классно помечать различный характер уведомлений различным оформлением и конечно делать это ненавязчиво, не закрывая обзор экрана и не заставляя нажимать кнопку. А вы знали, что человек намного быстрее воспринимает цветовую информацию, чем текстовую?)

    Кстати говоря, в пожеланиях к новой версии периодически всплывает пожелание сделать различные оформления в зависимости от характера сообщения для {info} в шаблоне. 

  21. 51 минуту назад, Captain сказал:

    И чем это привлечёт пользователя?

    1. А разве где-то написано что ставилась задача привлечь пользователя?

    2. Если окошко просто информационное, которое о чём-то уведомляет, совсем не обязательно пользователя заставлять нажимать кнопку OK. Посмотрите сайты, так уже давно не делают. Тенденция к тому чтобы пользователя не утруждать лишними кликами. Сравните окошко посередине экрана, который не уберётся пока не нажмёшь кнопку, и сообщение в углу экрана, которое автоматически исчезнет с красивой анимацией.

    В админке мы можем редактировать шаблон. При сохранении там не появляется окошко посередине экрана с кнопкой OK, там появляется небольшое сообщение справа вверху. И это хорошо, это удобно. Представьте что пришлось бы каждый раз нажимать кнопку OK при сохранении. Совсем забыл, а ведь когда то так и было. А теперь идём на сайт, при добавлении в закладки появляется окошко где нужно нажать OK чтобы она ушло. Хотя в какой в этом смысл? Пользователю нужно уведомить, а не заставлять нажимать лишние кнопки. Это банально вопрос удобства.

    3. Это не только для того чтобы заменить окошки в движке. Это для разработчика, например когда модуль о чём-то уведомляет можно делать разные сообщения. Собственно я для себя это написал и решил поделиться. Недавно сделал плеер, плеер уведомляет о различных действиях, добавить в плейлист, убрать из плейлиста, зациклить трек, перемешать плейлист, трек уже есть в плейлисте - обо всём этом плеер ненавязчиво сообщает пользователю этими тостами с различным оформлением. Вот вам живой пример использования.

    Я абсолютно уверен, в какой-нибудь новой версии ДЛЕ что-то типа этого появится. А пока можете пользоваться этим)

  22. Данный хак заменяет стандартное информационное окошко DLE на красивый и современный Toast, далее тост. Такие окошки появляются, например, при добавлении в закладки, повторном голосовании. Эти окошки можно вызвать и самому для своих модулей. В DLE используется окно с кнопкой "ок" и требует от юзера клика по кнопке. Тост - это окошко, похожее на пуш уведомление, появляется справа вверху, исчезает само и не требует от юзера дополнительных действий.

    Плюсы тоста:

    - Делаем только шаблоном, файлы движка не трогаем.
    - Есть прогресс бар, когда тост исчезнет. Тост исчезнет сам, но мы можем и принудительно убрать его, кликнув на крестик.
    - Можно вызвать сколько угодно тостов одновременно.
    - Можно указать  оформление тоста (информация, успех, ошибка, предупреждение), время исчезновения, текст и заголовок.


    DLE окна, вшитые в файлы движка, по умолчанию умеют стиль "информация" и таймер 5 секунд. Можно изменить поведение по умолчанию, но не можем изменить каждое окно, так как они в файлах движка, а мы их трогать не будем.

    Зато окна, которые мы вызываем сами, мы можем настраивать как угодно! Давайте посмотрим на результат.


    1701418759_firefox_screenshot_2023-12-01

     

    Установка:
    1. Скачайте файл. В этом файле весь код тоста, можете изменить html, например иконки. Я использую для иконок набор Font Awesome.
    https://webrambo.ru/index.php?do=download&id=23

    Содержимое этого файла, можете не скачивать, а создать сами

    Скрытый текст
    
    
    
    
    const toastDetails = {
    	info: {
    		icon: 'fa-info-circle',
    		classmod: 'toast--info'
    	},
    	success: {
    		icon: 'fa-check-circle',
    		classmod: 'toast--success'
    	},
    	warning: {
    		icon: 'fa-exclamation-triangle',
    		classmod: 'toast--warning'
    	},
    	error: {
    		icon: 'fa-times-circle',
    		classmod: 'toast--error'
    	},
    };
    
    const removeToast = (toast)=> {
    	toast.classList.add('toast--is-hiding');
    	if (toast.timeoutId) clearTimeout(toast.timeoutId);
    	setTimeout( ()=> toast.remove(),600);
    };
    
    const createToast = (message, title, style, timer)=> {
    	let toasts = document.querySelector('.toasts'); 
    	if (!toasts) {
    		toasts = document.createElement('div');
    		toasts.classList.add('toasts');
    		document.querySelector('body').appendChild(toasts);
    	};
    	const { icon,classmod } = toastDetails[style];
    	const toast = document.createElement('div');
    	toast.className = `toast ${classmod}`;
    	toast.style.setProperty('--toast-timer',timer+'ms');
    	toast.innerHTML = ` <div class="toast__icon fas ${icon}"></div>
    						<div class="toast__descr flex-grow-1">
    							<div class="toast__title">${title}</div>
    							<div class="toast__text">${message}</div>
    						</div>
    						<div class="toast__close fal fa-times" onclick="removeToast(this.parentElement)"></div>`;
    	toasts.appendChild(toast);	
    	toast.timeoutId = setTimeout( ()=> removeToast(toast),timer);		
    };
    
    function DLEalert(message, title, style = 'info', timer = 5000){
    	createToast(message, title, style, timer);
    };

     


    2. Подключаем этот файл, впишите свой верный путь к файлу, у меня он в папке js шаблона

    <script src="{THEME}/js/toast.js?v={cache-id}" defer></script>


    Подключаем перед

    </body>


    3. В ваш css файл добавить
     

    .flex-grow-1 {flex: 1 1 0; max-width: 100%; min-width: 50px;}
    .toasts {position: fixed; right: 10px; top: 20px; z-index: 990; display: grid; gap: 20px;}
    .toast {background-color: #fff; color: #000; border-radius: 6px; overflow: hidden;
        position: relative; width: 400px; display: flex; align-items: center; gap: 20px;
        padding: 16px 20px; box-shadow: 0 5px 20px rgba(0,0,0,0.2); --accent: #00a2ff;
        animation: showToast 0.5s ease forwards; max-width: calc(100vw - 40px);}
    .toast__icon {font-size: 28px; color: var(--accent);}
    .toast__title {font-weight: 700;}
    .toast__text {font-size: 14px;}
    .toast__close {font-size: 18px; margin: 0 -10px; display: grid; place-items: center;
        cursor: pointer; opacity: 0.6; width: 40px; height: 40px;}
    .toast::after {content: ''; width: 100%; height: 3px; background-color: var(--accent);
        position: absolute; left: 0; bottom: 0; animation: progressToast var(--toast-timer) linear forwards}
    .toast--success {--accent: #41b92f;}
    .toast--warning {--accent: #f4bd00;}
    .toast--error {--accent: #dd3954;}
    .toast--is-hiding {animation: hideToast 0.5s ease forwards;}
    @keyframes progressToast {
        100% {width: 0}
    }
    @keyframes showToast {
        0% {transform: translateX(calc(100% + 20px));}
        40% {transform: translateX(-5%);}
        80% {transform: translateX(0%);}
        100% {transform: translateX(-10px);}
    }
    @keyframes hideToast {
        0% {transform: translateX(-10px);}
        40% {transform: translateX(0%);}
        80% {transform: translateX(-5%);}
        100% {transform: translateX(calc(100% + 20px));}
    }

    Как пользоваться тостами:
    Все DLE alert окна уже заменились. Попробуйте проголосовать повторно в любой новости и увидите.

    Для своих нужд окно вызывается js кодом

    DLEalert('Все круто',  'Тестим успех', 'success', 5000);


    У нас 4 параметра, первые 2 обязательны. Параметры:
    - Текст.
    - Заголовок.
    - Стиль. Доступны: info, success, error, warning.
    - Таймер в милисекундах.

    Например, вызвать тост можно по клику на кнопку
     

    <a href="#" onclick="DLEalert('Все круто', 'Тестим успех','success');return false;">вызовем с стилем успех</a> 

     

    Спасибо за внимание. Источник https://webrambo.ru/220-zamena-okoshka-dlealert-na-tost-toast.html

    • Нравится 2
    • Поддерживаю 2
    • Спасибо 3
×
×
  • Создать...