Перейти к содержанию

Павел

Команда сайта
  • Постов

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

  • Посещение

  • Победитель дней

    181

Весь контент Павел

  1. Здесь пошагово расписано как внедрить на своё сообщество Invision Community прогресс бар загрузки страницы, как это реализовано на youtube.com. Шаг #1 - загружаем Javascript файл Первое, что нам нужно сделать это загрузить Javascript файл, который и отвечает за анимационный прогресс баг загрузки страницы. Переходим в админцентр --> Кастомизация --> Внешний вид --> Темы. Здесь нужно открыть выпадающее меню и выбрать пункт Управление ресурсами. Теперь добавляем ресурс. Существующее расположение - global. Существующая директория - /. Приложение - Система. Скачайте файл nprogress.js и укажите его в поле Ресурс. После чего загрузите файл. Шаг #2 - указываем загруженный файл Теперь нужно указать ссылку на загруженный Javascript файл в шаблоне темы. Этим самым при переносе темы на другое сообщество, данный прогресс бар будет по-прежнему функционировать. Админцентр --> Кастомизация --> Внешний вид --> Темы --> справа от темы нажимаем кнопку Редактировать HTML и CSS код. Открываем шаблон core > global > global > includeJS и в самый низ добавляем следующее: <script src='{resource="nprogress.js" app="core" location="global"}'></script> Где параметр src, возможно, у вас будет другим. Шаг #3 - Инициализируем прогресс бар Открываем шаблон globalTemplate, находим тег body и после него вставляем: <script> $('body').show(); $('.version').text(NProgress.version); NProgress.start(); setTimeout(function() { NProgress.done(); $('.fade').removeClass('out'); }, 1000); </script> Вы можете указывать различные параметры в скрипте, подробнее об этом на странице проекта на гитхабе. Шаг #4 - Добавляем стили Последний шаг - стилизация прогресс бара. Для этого добавьте следующий код в CSS файл core > front > custom > custom.css: #nprogress { pointer-events: none; } #nprogress .bar { background: red; position: fixed; z-index: 1031; top: 0; left: 0; width: 100%; height: 2px; } /* Fancy blur effect */ #nprogress .peg { display: block; position: absolute; right: 0px; width: 100px; height: 100%; box-shadow: 0 0 10px blue, 0 0 5px yellow; opacity: 1.0; -webkit-transform: rotate(3deg) translate(0px, -4px); -ms-transform: rotate(3deg) translate(0px, -4px); transform: rotate(3deg) translate(0px, -4px); } /* Remove these to get rid of the spinner */ #nprogress .spinner { display: block; position: fixed; z-index: 1031; top: 15px; right: 15px; } #nprogress .spinner-icon { width: 18px; height: 18px; box-sizing: border-box; border: solid 2px transparent; border-top-color: #29d; border-left-color: #29d; border-radius: 50%; -webkit-animation: nprogress-spinner 400ms linear infinite; animation: nprogress-spinner 400ms linear infinite; } .nprogress-custom-parent { overflow: hidden; position: relative; } .nprogress-custom-parent #nprogress .spinner, .nprogress-custom-parent #nprogress .bar { position: absolute; } @-webkit-keyframes nprogress-spinner { 0% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(360deg); } } @keyframes nprogress-spinner { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } Где #nprogress .bar окрашивает цветом полоску бара.
  2. Вряд ли. Доступно только для наших клиентов
  3. Павел

    Контроллеры

    Controllers are special modules that handle specific functionality on specific pages. They are not necessarily reusable in different contexts, although some may be. A controller is initialized on an individual element, and that element becomes the controller's scope. A controller responds to user events (such as click) and events triggered by UI widgets or sub-controllers, and manipulates its scope element accordingly.
  4. Всем привет. Поскольку плагина для смены даты поста в IPS4 нет, здесь я опишу как это сделать с минимальными трудозатратами и максимально быстро. В примере мы будем рассматривать дату сообщения приложения Forums, однако способ подойдёт для смены даты абсолютно для любого контента, будь то событие в Календаре или новость в Страницы. Любая дата/время в Invision Community 4 хранится в формате linux timestamp. Это такой формат, отсчитывающий количество секунд с 1970 года, когда началась эра unix систем. Более подробно описано в вики. Так вот, дата хранится в виде набора цифр (количество пройденных секунд), например 1487584510. Для конвертирования необходимой даты в формат linux timestamp, можно воспользоваться одним из многочисленных сервисов из выдачи поисковой системы, например удобный - https://www.cy-pr.com/tools/time/ . После конвертирования переходим в админцентр --> Система --> Поддержка --> в блоке справа SQL инструмент. В поле выполнения запроса вставляем следующий запрос: UPDATE forums_posts SET post_date = 1487584510 WHERE pid = 1; Где: forums_posts - таблица сообщений, не забывайте указать префикс таблицы, если у вас он указан. pid - идентификатор сообщения. Как узнать ID сообщения Наведите курсор на ссылку Жалоба и увидите URL адрес, в котором значится ID текущего сообщения:
  5. Всему своё время, как говорится) Скоро начнём как разгружусь по работе. Всему своё время, как говорится) Скоро начнём как разгружусь по работе.
  6. Интересная тема отслеживать продвижение сообщества в реал-тайме.
  7. Идут последние тесты, сегодня перевод будет выложен
  8. Да, именно этим мы и займёмся. Делать такие условия можно, конструкция условия зависит от шаблона применения.
  9. Добрый день. Сегодня новый перевод будет доступен к загрузке
  10. Пока набираем материал. Может быть у вас есть вопросы, которые я могу разъяснить в ходе публикации постов здесь?
  11. Павел

    ips.ui.dialog

    Диалоговый виджет отображает всплывающее окно на странице, загружая его из удалённого источника. Использование Диалоговое окно определяется простым включением ключа виджета как атрибута в элемент триггер. Рекомендуется, чтобы элемент триггер был ссылкой или кнопкой, таким образом, если у пользователя в браузере отключён javascript, ему отобразится полнотекстовая версия диалогового окна. <a href='...' data-ipsDialog data-ipsDialog-url='...'>Вызвать диалоговое окно</a> Диалоговые окна предлагают специальный функционал для форм, находящихся в этом окне, что позволяем им быть автоматически проверенными и отправлять их с помощью AJAX, если используется помощник форм из IPS4 PHP фреймворка. Смотрите параметры remoteVerify и remoteSubmit ниже. Получение ссылки на диалоговое окно Если вам необходимо программно контролировать диалоговое окно, вы можете сделать это сперва получив ссылку на него. Чтобы сделать это, вызовите метод getObj, передав элемент, в котором было создано окно в качестве параметра: // HTML <div id='elementWithDialog' data-ipsDialog> ... </div> // Javascript var dialog = ips.ui.dialog.getObj( $('#elementWithDialog') ); Возвращённая ссылка на экземпляр окна может быть использована для вызова методов, описанных ниже. Программное создание диалогового окна Диалоговые окна могут быть созданы программно контроллерами, вместо создания для отдельных элементов. Для этого вызывается метод create: var dialog = ips.ui.dialog.create( object options ); Параметр options должен быть объектом, содержащим ключи для параметров, описанных ниже. Этот метод возвращает ссылку на экземпляр диалогового окна, на котором вы можете вызывать методы для контроля диалогового окна, например: dialog.show(); dialog.hide(); Методы экземпляра show( boolean initOnly ) Инициализирует и отображает диалоговое окно. Если initOnly имеет значение true, то диалоговое окно инициализируется, но не сразу. hide() Скрывает диалоговое окно. remove( boolean hideFirst ) Удаляет окно из DOM модели. Если hideFirst имеет значение true, то диалоговое окно вызывает hide() и удаляет себя после того, как завершится анимация. setLoading( boolean loading ) Если loading имеет значение true, показывается пользователю, что что-то загружается (то есть показывается иконка загрузки в окне). Если loading имеет значение false, удаляется статус загрузки. Обратите внимание: этот метод не очищает контент окна. Вызовите instance.updateContent('') вручную, если необходимо. updateContent( string newContent ) Обновляет контент диалогового окна на новый из newContent. Новые контроллеры/виджеты инициализируются автоматически после обновления. Параметры url (Строка; необязательно) Если указано, контент диалогового окна будет загружен путём вызова этого URL-адреса, когда диалоговое окно загружено. content (Селектор; необязательно) Если контент окна уже загружен в DOM модель, этот параметр должен указать селектор, который содержит контент. modal (Логическое; необязательно; по умолчанию true) Если значение true, бэкграунд страницы будет затемнённым, не позволяя пользователю взаимодействовать со страницей, пока не закрыто диалоговое окно. title (Строка; необязательно) Задаёт заголовок, который будет отображён в окне. Если не указан, окно будет отображено без заголовка. size (Строка; необязательно) Если указано, будет установлен специальный класс, изменяющий размер размер окна. В настоящее время может принять значения narrow, medium, wide и fullscreen. Если не указан, будет использована стандартная ширина окна, заданная в CSS. close (Логический; необязательно; по умолчанию true) Определяет, должно ли диалоговое окно быть с закрывающей кнопкой. fixed (Логический; необязательно; по умолчанию false) Определяет, будет ли окно фиксировано. Фиксированное диалоговое окно крепится к области просмотру, не к странице. Его высота также будет фиксированной, с прокручиваемым контентом внутри, если необходимо. Если значение параметра равно false, окно будет прокручиваться вместе со страницей, и будет расширяться для включения всего отображаемого контента, независимо от длины. remoteVerify (Логический; необязательно; по умолчанию true) Когда окно содержит какую-либо форму, построенную с использованием помощника форм IPS4 PHP фреймворка, этот параметр указывает окну на автоматическую проверку введённых данных и отображает любые ошибки пользователю. remoteSubmit (Логический; необязательно; по умолчанию false) Когда окно содержит какую-либо форму, построенную с использованием помощника форм IPS4 PHP фреймворка, этот параметр указывает окну на отправку введённых данных с помощью AJAX. Если параметр remoteVerify также имеет значение true, отправляются два отдельных AJAX запроса; первый проверяющий значения формы, и если успешно, форма отправляется вторым запросом. Если параметр remoteSubmit имеет значение true, после успешной отправки данных формы окно автоматически закрывается. Если существует параметр flashMessage, то будет отображено флэш-сообщение. По умолчанию remoteSubmit имеет значение false, что означает, что форма будет отправлена обычной перезагрузкой страницы. callback (Функция; необязательно) Задаёт callback-функцию, которая будет выполнена после загрузки в окно удалённого контента. Обратите внимание: этот параметр не может быть предоставлен через данные API, и доступен только при работе с ips.ui.dialog напрямую. forceReload (Логический; необязательно; по умолчанию false) По умолчанию, как только в диалоговое окно загружен контент, он не будет снова загружаться, даже если окно перезапущено. Если установить этому параметру значение true, то окно будет вызывать URL-адрес при каждом открытии. Этот параметр вступает работоспособен только при использовании URL-адреса контента окна. События, вызванные ips.ui.dialog openDialog Срабатывает, когда отображено диалоговое окно. Данные события: elemID - ID элемента, который вызвал окно. dialogID - ID элемента окна. dialog - Ссылка на элемент окна. contentLoaded - Булево значение, указывающее на то, загружен ли контент в окно (может быть false, если используется удалённый контент). hideDialog Срабатывает при скрытии окна. Event data: elemID - ID элемента, вызвавшего окно. dialogID - ID элемента окна. dialog - ссылка на элемент окна. dialogContentLoaded Срабатывает при загрузке удалённого контента и встраивании его в окно. Данные события: elemID - ID элемента, вызвавшего окно. dialogID - ID элемента окна. dialog - ссылка на элемент окна. contentLoaded - Булево значение, указывающее на то, загружен ли контент в окно (всегда будет true). События, на которые реагирует ips.ui.dialog closeDialog Закрывает окно. Данные события: dialogID (обязательный) - идентификатор диалогового окна, которое необходимо закрыть (событие игнорируется, если ID не соответствует ID текущего окна).
  12. ЮKassa (ранее Яндекс.Касса) это сервис для приёма онлайн платежей в вашем магазине. Для приёма платежей и продажи файлов с помощью ЮKassa, необходимо произвести следующие настройки: Установка приложения Скачайте файл YooKassa Payment Gateway и установите это приложение по инструкции. Регистрация магазина Для приёма платежей необходимо зарегистрироваться на сайте https://yookassa.ru/ и создать новый магазин. В настройках магазина (или при его создании) необходимо указать Способ подключения к ЮKassa - Протокол API, другие способы работать не будут. Далее перейдите в настройки Интеграция > HTTP-уведомления > URL для уведомлений: https://site.ru/?app=yookassa&module=system&controller=callback&notify=1 * Замените site.ru на адрес своего сайта. Настройка оплаты Перейдите в админцентр > Магазин > Платежи > Настройки > Способы оплаты > + Создать. Выберите YooKassa и нажмите Сохранить. На втором шаге укажите Shop ID и ключ API, которые можно найти на странице настроек вашего магазина в ЮKassa. Сохраните настройки, интеграция завершена!
  13. Для этого потребуется локальный сервер с установленной ips4. Делаем импорт базы на локальном сервере, экспортирует таблицу, и импортирует ее в продакшн. Важно делать бэкапы таблиц.
  14. Тут вижу два выхода: Сменить ОС сервера. Импортировать язык через базу данных.
  15. Локаль по всей видимости тут не причём. Русский язык может быть установлен и в ту же en_US.UTF-8
  16. Новые ответы в блоке слева. Сверху справа кнопка Непрочитанный контент
  17. Форум доступен из любой страницы по одному клику на пункт Сообщество. Кроме того, форум не является основным разделом сайта, есть ещё куча других страниц и сервисов, требующих внимания.
  18. Привет. 1) Для этого нужно писать плагин. Можно воспользоваться уже существующим подобным плагином редиректа и добавить на его страницу блок с рекламой. redirectexturl.1.0.4.rar 2) Нужно писать дополнительно условие в файле, который отдаёт файлы.
  19. Тут ничего не поделаешь. Откуда они взялись - известно только Вам К сожалению подтвердить это не можем - с вашего аккаунта тоже все изображения видны.
  20. Добрый вечер. Навигация по разделам форума или по верхнему меню неудобная?
  21. Например? Этих полей быть не должно вообще.
×
×
  • Создать...

Важная информация

Используя наш сайт вы соглашаетесь с нашей Политикой конфиденциальности