

Lexxs
-
Публикации
138 -
Зарегистрирован
-
Посещение
-
Дней в лидерах
4
Сообщения, опубликованные пользователем Lexxs
-
-
Спасибо! Буду думать.
А если попадётся готовый пример, то думать будет легче ))
Спасибо за ответы).
-
То есть практически в каждом шаблоне прописывать доступ?
А если бы попроще ? Например естьфункция Оключить сайт, когда есть доступ только администрации, и сделать второй вариант,
Доступ только авторизованным пользователям, с указанием шаблона первой страницы, например shortstory2.tpl, или статической страницы.
Функция, при которой все страницы, кроме указанной главной доступны Пользователям, но закрыты от гостей и ботов.
Такой вариант был бы удобнее.
-
Что то не припомню, а может быть и нет такого, но есть ли в DLE возможность закрыть доступ гостям и прочим не авторизованным, но чтобы доступ к сайту и его страницам был открыт только зарегестрированным пользователям.
Если есть, подскажите как это сделать, а если нет, будет ли такое сделано в DLE когда-нибудь ?
-
Отлично!
Плагин работает. Спасибо большое!
Если бы в дле уже был такой встроенный инструмент, было бы ещё лучше )
-
13 часов назад, TeraMoune сказал:
Вот вам временное решение пока таких тегов не появилось.
<?xml version="1.0" encoding="utf-8"?> <dleplugin> <name>Tagsblock active plugins</name> <description>Добавляет теги [active-plugins=X] и [not-active-plugins=X] которые управляют отображением содержимого в шаблонах в зависимости от состояния плагина.</description> <icon></icon> <version></version> <dleversion>13.2</dleversion> <versioncompare>greater</versioncompare> <upgradeurl></upgradeurl> <filedelete>0</filedelete> <needplugin></needplugin> <mnotice>1</mnotice> <mysqlinstall><![CDATA[]]></mysqlinstall> <mysqlupgrade><![CDATA[]]></mysqlupgrade> <mysqlenable><![CDATA[]]></mysqlenable> <mysqldisable><![CDATA[]]></mysqldisable> <mysqldelete><![CDATA[]]></mysqldelete> <phpinstall><![CDATA[]]></phpinstall> <phpupgrade><![CDATA[]]></phpupgrade> <phpenable><![CDATA[]]></phpenable> <phpdisable><![CDATA[]]></phpdisable> <phpdelete><![CDATA[]]></phpdelete> <notice><![CDATA[<p>@<a href="https://t.me/TeraMoune" target="_blank">TeraMoune</a></p> <details><summary style="color:#ff720e;font-weight:500" role="button">Click here!</summary>Там где [b]X[/b] id плагина. Найти ID можно под иконкой плагина. Например: [code][not-active-plugins=X] Плагин отключен [/not-active-plugins] [active-plugins=X] Плагин включен [/active-plugins][/code] </details>]]></notice> <file name="engine/init.php"> <operation action="before"> <searchcode><![CDATA[//################# Definition of user groups]]></searchcode> <replacecode><![CDATA[//################# Definition of plugins $plugins_active = get_vars ( "plugins_active" ); if (!is_array( $plugins_active )) { $plugins_active = array (); $db->query ( "SELECT id, active FROM " . USERPREFIX . "_plugins ORDER BY id ASC" ); while ( $row = $db->get_row () ) { $plugins_active[$row['id']] = $row['active']; } set_vars ( "plugins_active", $plugins_active ); $db->free (); }]]></replacecode> <enabled>1</enabled> </operation> </file> <file name="engine/modules/main.php"> <operation action="before"> <searchcode><![CDATA[if ( ($allow_active_news AND $news_found AND $config['allow_change_sort'] AND $dle_module != "userinfo") OR defined('CUSTOMSORT')) {]]></searchcode> <replacecode><\\[/active-plugins\\]#is", "check_plugins", $tpl->copy_template ); } if (stripos ( $tpl->copy_template, "[not-active-plugins=" ) !== false) { $tpl->copy_template = preg_replace_callback ( "#\\[(not-active-plugins)=(\d+?)\\](.*?)\\[/not-active-plugins\\]#is", "check_plugins", $tpl->copy_template ); }]]></replacecode> <enabled>1</enabled> </operation> </file> <file name="engine/modules/functions.php"> <operation action="before"> <searchcode><![CDATA[function check_category( $matches=array() ) {]]></searchcode> <replacecode><![CDATA[function check_plugins( $matches=array() ) { global $plugins_active; $block = $matches[3]; $id_plugins = intval($matches[2]); if( !isset($plugins_active[$id_plugins]) ) return ""; if ($matches[1] == "active-plugins") $action = true; else $action = false; $found = false; if( $action ) { if( $plugins_active[$id_plugins] ) return $block; } else { if( $plugins_active[$id_plugins] ) $found = true; } if ( !$action AND !$found ) { return $block; } return ""; }]]></replacecode> <enabled>1</enabled> </operation> </file> <file name="engine/inc/plugins.php"> <operation action="replace"> <searchcode><![CDATA[class=\"img-lg section_icon\"></div>]]></searchcode> <replacecode><![CDATA[class=\"img-lg section_icon\"><span style=\"color: #979696;text-align: center;display: inline-block;width: 100%;font-weight: 500;\">{$row['id']}</span></div>]]></replacecode> <enabled>1</enabled> </operation> </file> </dleplugin>
Спасибо ! Попробую ! По результату отпишусь.
-
11 часов назад, Gameer сказал:
А можно просто зайти в шаблон и обернуть в {* {include ...} *} и не нужны никакие дополнительные теги.
И таки нужно опять править в шаблоне каждый раз.
6 часов назад, aleksandrhristich сказал:А мне одному кажется что можно в модуле сделать условие для его вывода: если он включен,то выводится то что надо а если выключен то ничего не выводится?
Если знаете, как это сделать, поделитесь )
2 минуты назад, dds сказал:Мне тоже кажется так проще. В engine/inc/options.php чуток подшаманить и в сам модуль добавить условие проверки. И будет полноценный чекбокс (вкл/выкл) данного модуля.
Или уже из коробки в дле сделать, чтоб не приходилось лишний раз шаманить )
-
Доброго времени!
В DLE хорошо реализована возможность добавления и создания плагинов, всё продумано, работает отлично, однако есть одно пожелание.
Дело в том, что некоторые модули используют в шаблонах ссылки на страницы своего модуля, в теге include, и если отключать модуль на время, или по какой другой причине, то в шаблоне выводится ошибка, типа File engine/mods/modul.php not found.
Пожелание же такое: Реализовать в DLE возможность работы глобального тега, который допускает вывод текста заключённого в этот тег, при включенном модуле, или отключать вывод текста, при выключенном модуле. Что то типа этого [xfgiven_modul]{include file='engine/mods/modul-page.php}[/xfgiven_modul], где modul - название, или id модуля, или иной, задаваемый идентефикатор.
Думаю было бы не плохо иметь такую возможность.
Просто иногда бывает необходимость отключить на какое то время модуль, и приходится лезть ещё и шаблон, чтобы заккоментировать вывод, а потом в обратном порядке, при включении модуля.
-
5 часов назад, pipetkkaaa сказал:
точно на ура?
Некропостер?
Топик 2010 года поднял )).
-
04.11.2022 в 20:08, Pupsator сказал:
Существует ли в новых версиях ДЛЕ? Или модуль?
Модуль да, существует.
-
Индексация, это долгое дело, а в вашем случае переиндексация, так как адреса страниц сменились, это тоже может занять от нескольких недель, до нескольких месяцев.
Тут зависит от настроения поисковика и его взгляда на ваш сайт, насколько он в приоритете из показателей, к которым чувствителен поисковик.
-
3 минуты назад, celsoft сказал:
все
Ок. Понял, спасибо!
-
2 минуты назад, celsoft сказал:
Ну вот. Теперь полная информация. У вас файлы на сервере не соответствуют друг другу и от разных версий. Поэтому и ошибка. Часть файлов у вас от 15.2 часть от более старых версий.
Спасибо, понял. Вроде копировал с заменой, видимо что то не заменилось.
Теперь все файлы по новому заменять, или есть какие то конкретные файлы, влияющие на эту проблему? Чтоб всё не заменять.
Остальное вроде работает как надо.
-
23 часа назад, celsoft сказал:
Значит в лог не все идет. Потому как "thrown in /var/www/сайт/data/www/сайт/engine/inc/googlemap.php on line 139" в переводе звучит как произошла в такой то строке, а что произошло не указано, до этого должен быть текст ошибки.
Сегодня вот так выдало!
2022/09/15 11:33:38 [error] 1053#1053: *1593 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Call to undefined method googlemap::generate() in /var/www/сайт.ру/data/www/сайт.ру/engine/inc/googlemap.php:139
Stack trace:
#0 /var/www/сайт.ру/data/www/сайт.ру/engine/inc/include/init.php(598): include_once()
#1 /var/www/сайт.ру/data/www/сайт.ру/admin.php(29): require_once('/var/www/сайт.ру....')
#2 {main}
thrown in /var/www/сайт.ру/data/www/сайт.ру/engine/inc/googlemap.php on line 139" while reading response header from upstream, client: 212.76.21.176, server: сайт.ру, request: "POST /admin.php?mod=googlemap HTTP/1.1", upstream: "fastcgi://unix:/var/run/сайт.ру.sock:", host: "сайт.ру", referrer: "https://сайт.ру/admin.php?mod=googlemap"
2022/09/15 11:33:40 [error] 1050#1050: *1589 openat() "/var/www/сайт.ру/data/www/сайт.ру//ad/banner/_adsense_/_adserver/_adview_.ad.json" failed (2: No such file or directory), client: 46.211.99.239, server: сайт.ру, request: "GET /ad/banner/_adsense_/_adserver/_adview_.ad.json?adzone=top&adsize=300x250&advid=34189726 HTTP/1.1", host: "сайт.ру", referrer: "https://сайт.ру/50234-enotki.html"
2022/09/15 11:34:04 [error] 1050#1050: *1636 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Call to undefined method googlemap::generate() in /var/www/сайт.ру/data/www/zombi.fun/engine/inc/googlemap.php:139
Stack trace:
#0 /var/www/сайт.ру/data/www/сайт.ру/engine/inc/include/init.php(598): include_once()
#1 /var/www/сайт.ру/data/www/сайт.ру/admin.php(29): require_once('/var/www/сайт.ру....')
#2 {main}
thrown in /var/www/сайт.ру/data/www/сайт.ру/engine/inc/googlemap.php on line 139" while reading response header from upstream, client: 212.76.21.16, server: сайт.ру, request: "POST /admin.php?mod=googlemap HTTP/1.1", upstream: "fastcgi://unix:/var/run/сайт.ру.fun.sock:", host: "сайт.ру", referrer: "https://сайт.ру/admin.php?mod=googlemap"
2022/09/15 11:34:07 [error] 1053#1053: *1638 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Call to undefined method googlemap::generate() in /var/www/сайт.руzombi.fun/data/www/сайт.ру/engine/inc/googlemap.php:139
Stack trace:
#0 /var/www/сайт.ру/data/www/сайт.ру/engine/inc/include/init.php(598): include_once()
#1 /var/www/сайт.ру/data/www/сайт.ру/admin.php(29): require_once('/var/www/сайт.ру....')
#2 {main} -
16 минут назад, celsoft сказал:
вы не всю ошибку написали, а только часть, поэтому что либо точнее по ней я вам к сожалению сказать не могу.
Это вся ошибка, что была в логах. Повторно инициировал, опять вышла в логах та же самая строка.
А в консоли браузера тоже ничего существенного:
crbug/1173575, non-JS module files deprecated.
(anonymous) @ VM60:1907 -
15 часов назад, celsoft сказал:
Это полное сообщение? Потому как оно мало о чем говорит. Прервано соединение во время генерации карты. На сайте много публикаций?
На сайте более 50000 публикаций. В настройках выставлял по 1000 публикаций на страницу. Не в этом дело.
В прошлый раз вы указали на облако тегов, я ещё удивился, причём тут облако тегов и сайтмап сайта. Но вы сказали, что именно в облаке тегов была проблема.
-
15 минут назад, celsoft сказал:
Ошибка 500 серверная ошибка, гадать о причинах можно долго, смотрите логи ошибок сервера, чтобы понимать в чем причина может быть.
thrown in /var/www/сайт/data/www/сайт/engine/inc/googlemap.php on line 139" while reading response header from upstream, client: 37.9.29.93, server: сайт, request: "POST /admin.php?mod=googlemap HTTP/1.1", upstream: "fastcgi://unix:/var/run/сайт.fun.sock:", host: "сайт", referrer: "https://сайт/admin.php?mod=googlemap"
-
Доброго времени!
Уже как то сталкивался с такой ошибкой, на DLE 15.2, при попытке создать карту сайта в админке, выкидывает на ошибку 500, с пояснением, что сайт такой то, не может обработать этот запрос.С одним из сайтов уже обращался в СП, проблему решили, указав на то, что как бы слишком много тегов для облака тегов в настройках и выпустили патч. С тем сайтом сейчас всё в порядке.
Но вот на другом эта проблема после обновления есть, не смотря на то, что использована последняя версия DLE и в настройках отключено облако тегов вообще и теги которые были, все удалены.
Разница у этих двух сайтов в одном, первый работает на апач, с хтаччес, второй работает на нгикс, соответственно используются правила ngix с официального источника.
Может ли из-за отсутствия какой либо строки в правилах нгикс возникнуть такая проблема?
И можно ли как то это решить? Может что то выставить в настройках? -
Хотя всё, решил проблему. Оказывается нужно обязательно подключать создание уменьшенных копий.
-
Что тут не так? обычный вариант, работающий в других полях работает, а в галерее нет.
<a href='[xfvalue_screenshots]' onclick="return hs.expand(this)">[xfvalue_screenshots]</a>
-
C выводом галереи нет проблем, но вот сделать увеличение при клике на изображение галереи никак не получается.
Непонятно что указывать в href, так как если указать ДП галлереи, то там выводит со всеми тегами ul и li.
Пробовал типа <a href='[xfvalue_screenshots image="2"]' - тоже ничего не выходит.
Есть варианты решения этой проблемы?
Для вывода самих изображений css
/* Gallery IMG */ .xfieldimagegallery li img{ float: left; margin-right: 5px; border: 0px solid; width: 320px; /* Тут ширина */ height: 240px;/* Тут высота*/ transition: box-shadow 0.5s ease; }
-
Если закрыть доступ к статье для гостей, оставив только администраторам и журналистам, то комментарии к этой статье всёравно видны всем посетителям, в частности выводимые через lastcomments.
Значит тема обсуждения закрытой статьи получается доступной для всех. Желательно бы закрыть вывод комментов в статье, если она закрыта для определённой категории.
Да, DLE 15.2.
-
3 часа назад, master27 сказал:
Не смог заставить работать Ваш код, в консоле (настольный браузер) вижу: Service Worker Registered
Написано же, для мобильных браузеров.
3 часа назад, master27 сказал:Вы пишете "3 файла js", по факту два.
Написано: создать 3 файла, js и manifest ... Запятую не поставил )
3 часа назад, master27 сказал:И ещё.. ".register('/sw.js')" - пока полный путь не прописал "'/templates/название шаблона/js/sw.js'" выдавало ошибку.
Так же написано, что пути нужно прописывать свои. Возможно менять местоположение файлов. Обычно если в корне сайта, то должно вообще без проблем быть.
3 часа назад, master27 сказал:Что не так?
на андроиде яндекс и дефолтный браузеры.1. Возможно правильно подключить скрипты, написано внизу поста.
2. Правильно заполнить в скрипте пункты
"name": "", "short_name": "", "start_url": ""
Возможно тапа такого
"name": "Мой сайт", "short_name": "_site_.ru", "start_url": "/"
Иконки, обязательно, полный путь к ним
"src": "/icon/cats-48-48.png",
-
1
-
-
Простейшее приложение на Андроид для вашего сайта.
создать 3 файла js и manifest ( a2hs.js, sw.js, manifest.webmanifest ) Их заливаем например в корень шаблона в папку JS
a2hs.js
if('serviceWorker' in navigator) { navigator.serviceWorker .register('/sw.js') .then(function() { console.log('Service Worker Registered'); }); } let deferredPrompt; const addBtn = document.querySelector('.add-button'); addBtn.style.display = 'none'; window.addEventListener('beforeinstallprompt', (e) => { // Prevent Chrome 67 and earlier from automatically showing the prompt e.preventDefault(); // Stash the event so it can be triggered later. deferredPrompt = e; // Update UI to notify the user they can add to home screen addBtn.style.display = 'block'; addBtn.addEventListener('click', (e) => { // hide our user interface that shows our A2HS button addBtn.style.display = 'none'; // Show the prompt deferredPrompt.prompt(); // Wait for the user to respond to the prompt deferredPrompt.userChoice.then((choiceResult) => { if (choiceResult.outcome === 'accepted') { console.log('User accepted the A2HS prompt'); } else { console.log('User dismissed the A2HS prompt'); } deferredPrompt = null; }); }); });
sw.js
self.addEventListener('install', function(e) { e.waitUntil( caches.open('pwa-store').then(function(cache) { return cache.addAll([ '/icon/cats-48-48.png' ]); }) ); }); self.addEventListener('fetch', function(e) { //console.log(e.request.url); e.respondWith( caches.match(e.request).then(function(response) { return response || fetch(e.request); }) ); });
manifest.webmanifest
{ "display": "fullscreen", "background_color": "#fff", "description": "", "icons": [ { "src": "/icon/cats-48-48.png", "sizes": "48x48", "type": "image/png" }, { "src": "/icon/cats-72-72.png", "sizes": "72x72", "type": "image/png" }, { "src": "/icon/cats-96-96.png", "sizes": "96x96", "type": "image/png" }, { "src": "/icon/cats-144-144.png", "sizes": "144x144", "type": "image/png" }, { "src": "/icon/cats-192-192.png", "sizes": "192x192", "type": "image/png" } ], "name": "", "short_name": "", "start_url": "" }
Естественно указать адрес сайта, название кратное и большое, сделать иконки и прописать в коде путь к ним.
и уже в самом шаблоне страницы выводим следующим образом
<script src="{THEME}/js/a2hs.js"></script> <script src="{THEME}/js/sw.js"></script>
manifest.webmanifest подключаем так
<link rel="manifest" href="{THEME}/js/manifest.webmanifest">
И ставим кнопку в нужном месте шаблона:
<button class="add-button" style="margin-left:25px; background-color: white; color:red; padding: 0px;"><i class="fa fa-mobile fa-2x""></i></button>
С мобильного браузера смартфона, будет кнопка установить приложение и появится значок в телефоне.
Похоже на приложение, хотя обычный просмотрщик. А для разработки полноценного приложения, нужны знания и много времени )
-
1
-
-
Спасибо. Буду искать. Если сам найду причину, постараюсь отписаться здесь, может кому поможет с похожей проблемой.
DLE 16.0 + nginx
в DataLife Engine (Общие вопросы)
Опубликовано:
Дорого дня!
Для работы на nginx + dle 16.0 правила nginx нужно обновлять и где их взять?
Или от версии 15.2 подойдут?