-
Публикаций
1097 -
Зарегистрирован
-
Посещение
-
Победитель дней
51 -
Отзывы
100%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент L2Banners
-
Анонс в лучших традициях жанра. Удобный, информативный и самое главное с живым трафиком.
-
Это единственный аргумент в пользу ВП и то сомнительный. Тут еще хуже, большинство качественных модулей все же платные, хотя о каком качестве можно говорить при обсуждении вп Когда продажи не идут можно попиариться в чужих темах? Ах да, это же бесплатно! Был бы на вп я бы его удалил через alt+shift+del, чтобы никто и не узнал.
-
Обновлен движек DLE до версии 13.2
-
Если взглянуть на текущую разметку, то можно увидеть что это абсолютно 2 разных шаблона. О том что я планирую написать анонс по БЭМ я писал еще год назад и наконец-то собрался и сделал, в la2on такого еще нет, но скоро будет. Большинство скриптов со старых веток выпелены и реализованы новые более гибкие, которые контролируются через отдельный конфиг. Кроме того кардинальные изменения притерла внутренняя структура шаблона, теперь реализация новых разделов, категорий и прочих страниц, делается значительно проще. Я даже заморочился с переименованием некоторых дополнительных полей, чтобы они выглядели более логичными, это может казаться мелочью, но на основе этих полей все и держится. Полностью переписаны шаблоны запросов, что в дальнейшем упростит любые модификации. Добавление сервера вообще на vue.js реализована с которым я раньше и не работал, это я сделал для практики и как оказалось не зря. Над поддержкой la2on я работаю до сих пор и реализую в нем те идеи которые закладывал и закладываю в основную ветку. Все лучшие реализации во всех шаблонах что я делал, я применяю в основной ветке. С la2on я работаю уже больше полугода и считаю его одним из лучших анонсов и естественно я много для себя почерпнул во время работы с ним, но технически la2on сильно завязан на предыдущей ветке и уже сейчас я готовлю его к полному обновлению, что не так то и просто в связи с описанными ранее причинами. Но вот после того как я его обновлю, будет значительно легче и поддерживать, дорабатывать и обновлять в том числе. Я хочу работать с людьми, которые хотят открыть качественный конкурирующий проект и на который у меня будет достаточно времени на поддержку. Даже если я продам одну копию за год мне больше удовольствия доставит, то что она кому-то нужна, а не так поигрался и слил в шару. Если бы я гнался за прибылью, я бы оставил старую цену и у меня бы уже раскупили его как горячие пирожки, но у меня другие цели. И даже если его рипнут или солью, в следующем году будет версия еще лучше, если сами не способны что-то сделать, то воруй не воруй, все равно останешься позади.
-
В поломанной верстке не так то просто сразу понять в каком месте проблема, если не видеть оригинала. Каждый тег по своему может поломать верстку. Плюс ко всему это не обязательно должен быть не закрытый тег. Это может быть и не закрытый класс и еще много чего. Я просто показал что увидел, а @RedDeviLL зная свою верстку и шаблонизацию прекрасно сам разберется
-
Ну учитывая цену, гневаться не на что. Только в добавлении сервера верстка поехала, похоже где-то тег не закрыт:
-
Дизайн в целом классический, может быть и похож. Могли и оболочку рипнуть, но в целом толку от этого особо не будет, скрипты там закодированы и все самое вкусное придется писать самим... Я особо ничего не скрываю, кому надо тот купит и получит качественный скрипт с поддержкой и возможностью доработки на долгосрочный период, а кто хочет сэкономить, ну пусть себе шишки сами набивают.
-
Спасибо. Данную версию еще никто не покупал.
-
Да, конечно это 2 разные базы. На хостинге ты создавал базу для работы сайта, а теперь тебе нужно подключить к сайту базу сервера, чтобы с сайта можно было регистрироваться, получать статистик и т.д... @darktimes все правильно написал, тебе нужно правильно настроить доступ к базе сервера. это нормально, значит необходимые изменения уже применялись.
-
Не то. Тут проблема именно со связью с бд, точнее с её отсутствием. Что за ошибка?
-
Это далеко не так. Включи в админке вывод ошибку mysql. Если там ошибка 0 будет, тогда проблемы как раз со связью. Если другая ошибка, то там должно быть понятно чего именно не хватает.
-
Необходимо установить/включить ion cube на хостинге или локальном сервере
-
В адресной строке поменяй step 7 на step 8 и нажми enter. В админку если не будет пускать попробуй с пустыми полями зайти, если не поможет, тогда добавь пользователя по инструкции
-
[main] {item} [/main] [item] <div class='server l2banners_serv_animation_1'>{name} <span></span> <div class='bar_bg'> <div class='bar' style='width: {online}%'></div> </div> <br>Хроники : <b>{chronicle}</b> </div> [/item]
-
Сейчас со старсов гонцы прилетят начнут нести всякий бред со своей фальшивой аналитикой, не советую с ними связываться.
-
Я себе запилил и другим советую. А тебе желаю удачи в написании своего анонса, ты не первый и не ты последний кто будет рассказывать эти басни про самописы. Восхитительно, осталось всего немного)
-
Ну как минимум ровные руки, а такие руки стоят не дешево. Но вопрос на самом деле некорректен. По вашему описанию можно подумать, что mmoweb не отличается от SW или GHTWeb...
-
Если вы хотите чего-то уникального, напишите тз и закажите. Это все равно что говорить на колесо, что он такое же круглое как и остальные колеса.. Данный анонс как и предыдущий, без проблем можно натянуть на любую оболочку.
-
Если вам хочется халявы, вы можете использовать null на свой страх и риск. Мой опыт показывает, что качественный софт и работа с адекватными разработчиками окупаются с излишком. Самопис вам в итоге выйдет значительно дороже, особенно когда нужно что-то изменить или доработать. Еще дороже это обойдется, если разработчик самописа, будет не доступен и придется искать другого исполнителя.
-
Спасибо. Не мало работы было проделано как во фронтенде, так и в кастомизации самой cms и впереди еще много идей для реализации
-
Best-Anons.ru - универсальный скрипт анонса серверов Lineage 2 на движке DLE в котором реализованы все лучшие идеи понравившиеся как игрокам, так и администраторам. Вдохновившись такими анонсами как l2oops, l2hop, la2on, l2op, а также другими малоизвестными, но достойными внимания сайтами, был создан данный скрипт. Мощный функционал DLE и грамотно сформированный шаблон позволяют с лёгкостью управлять анонсом, поддерживать и дорабатывать его, реализуя практически любые идеи. В отличии от предыдущей версии шаблона, который имел минимум стилей и служил как заготовка к созданию собственного дизайна, Best-Anons 2019 имеет свой фирменный стиль и готов к работе без каких-либо доработок. Но его все так же легко кастомизировать, либо вовсе адаптировать под новый дизайн. Все потому, что шаблон практически полностью переверстан по методологии БЭМ, это позволяет быстро и эффективно управлять всеми блоками и элементами сайта, заменять и модифицировать. При этом важно отметить, что такая верстка позволяет поддерживать проекты очень длительное время, не нарушая целостность и не плодя "костылей". Сайт адаптируется под любые размеры экранов компьютеров, планшетов и конечно же телефонов. Видео демонстрация: Главная страница: Список серверов разделен на 2 логических блока: Скоро откроются: Vip серверы Сегодня Завтра Ближайшие 10 дней Через 10 дней и более Уже открылись: Vip серверы Вчера За последние 10 дней 10 дней назад и более Так же, после блока "Сегодня" находится блок "Стримы". Выводятся только те стримы, которые находятся в онлайне. Под стримами расположена кнопка "Добавить стрим", при клике на неё откроется окно с формой заявки на добавление стрима. После заполнения всех полей на указанную вами почту придет письмо о новой заявке. Оформление сервера - это одна из самых важных задач, которую я перед собой поставил, ведь это то, на что посетитель будет обращать большую часть своего внимания, а значит все должно выглядеть просто для понимания и информативно. Я постарался найти золотую середину. Не отходя от классического оформления я реализовал универсальную систему меток, которая предоставляет огромный объем информации для каждого сервера без лишних движений и кликов: При наведении на метку появляется подсказка либо заданное вами описание: В отличии от других анонсов, сервера с дополнениями это не отдельная категория, а дополнительная метка, которая находится рядом с хрониками. Таким образом любой сервер с любыми хрониками можно отметить, как сервер с дополнениями. Это позволило с легкостью вывести все сервера на отдельную страницу под названием "Сервера с дополнениями" и конечно же отдельно популярный раздел "Interlude с дополнениями" Приятный бонус для администраторов. При наведении на сервер появляется иконка редактирования и вы можете прямо на главной странице быстро отредактировать или удалить сервер, либо перейти в админку к полному редактированию: Так же для каждого сервера можно задать отдельно свой цвет вип, что позволяет сделать его уникальным прямо из админки: Внизу страницы во всех важных категориях располагается блок с описанием страницы, в котором добавляются уникальные тексты для СЕО продвижения вашего сайта: Описание так же можно редактировать прямо на странице не переходя в админку Давайте обсудим боковую панель. С какой стороны она должна находиться? Лично я привык видеть её справа и когда она находиться слева, мне становится некомфортно.. Как думаете, сколько пользователей зайдя на сайт, отказываются от его повторного посещения только потому, что панель находиться не с той стороны где им удобно? В шаблоне Best-Anons 2019 имеется кнопка с подсказкой, которая позволяет пользователю самому выбрать с какой стороны будет находиться боковая панель. Эта возможность полностью решает проблему и позволяет увеличить охват пользователей на свой сайт,а так же уровень лояльности. Выбор хроник достаточно типичен, но обратите внимание на кнопку "Мне повезет": При нажатии на кнопку в новой вкладке откроется случайный сервер, при этом вероятность открытия premium vip в 2 раза выше, а elite vip в 3 Вместо одного баннера в боковой панели теперь можно добавить слайдер баннеров, которые будут заменяться через указанное в конфиге время: При загрузки сайта первый баннер который будет показан открывается случайно, после чего баннеры начинают меняться, тем самым привлекая еще больше внимания. Баннеры не блокируются блокировщиками рекламы. Так же в боковой панели находится достаточно много ссылок на фильтр серверов: Все сервера ТОП сервера С дополнениями Interlude+ Сегодня Вчера Завтра Лоу рейт Крафт PVP GVE PTS RVR Зарубежные Легендарные Новые Мультипрофа Мультикрафт Этот список так же расширяем, если у вас есть какие-либо идеи, я с удовольствием их выслушаю. В этом списке появились 2 страницы, которых ранее я нигде не видел: Легендарные - сервера, которые существуют не первый год и заслужили право называться таковыми Новые - сервера, которые открываются впервые Информация о рекламе автоматически определяет какие типы серверов заняты и в каком количестве, а так же кол-во занятых мест рекламных баннеров: На сайте так же имеется блог со вложенными категориями и отдельное меню блога: Простая и понятная страница контактов с формой обратной связи: Отправка сообщения без перезагрузки страницы: Отдельного внимания заслуживает страница добавления сервера, над ней я поработал основательно: Копирование кнопки никогда не было таким простым и понятным: Информация о сервере компактно разделена на логические блоки. В самом верху находится блок с основной информацией, обязательной для заполнения: Под основной информацией располагается демонстрационный блок, в котором показано как будет выглядеть сервер. Все данные обновляются в реальном времени: Последний блок содержит все необязательные поля и чекбоксы с более детальной информацией: Демонстрация добавления сервера, реактивная примерочная сервера на vue.js : Мультиязычность Одно из важных нововведений, это возможность перевода сайта на любое количество языков. По умолчанию реализованы 2 языка: Русский и Английский: Переведенный сайт отображается на поддомене соответствующего языка, что позволяет беспрепятственно осуществлять сео продвижение отдельно для каждого языка. Кроме того, на разных языках можно использовать абсолютно разные ссылки для отображения страниц сайта, при этом, если переключить язык, вас отправит по адресу для конкретного языка, а не просто выбросит на главную. Информация о покупке: Цена: 200$ В цену включены: Скрипт анонса + модуль мультиязыка + установка на ваш хостинг В цену не включена стоимость лицензии DLE. Вы сами выбираете тип лицензии и покупаете её на свой аккаунт. После приобретения скрипта и установки на ваш хостинг, я в скайпе проведу инструктаж. >> Контакты << Владельцы предыдущих версий могут получить скрипт доплатив разницу между стоимостью текущей версии и приобретенной ранее. Акция!!! После приобретения скрипта вы получите пожизненную 25% скидку на рекламу в группе https://vk.com/prikolin2 При условии, что вы не будете удалять копирайт Best-Anons из подвала сайта. Условия могу быть изменены. Более подробная и актуальная информация находится тут
-
И так, что мы имеем. Сам ты рекламу не покупал. Люди что-то рассказывали... Наныл 2 страницы безосновательных домыслов и предъяв. Тем не менее если с поста как ты говоришь 30 переходов, то 400/30 = 13р за переход. Добавим к этому еще скидку в 10% получается 12р за переход в тематической группе, где каждый кликнувший потенциальный игрок. И это только по твоим словам о том что ты слышал... Интересно сколько стоит переход с упса, опа и т.д..? сколько стоит переход на л2топе? Может пора пойти в другой теме поныть? Более того если проект выстрелит он может собрать под сотню переходов, как минимум нужно постараться понравиться потенциальным игрокам своим постом, а не писать шаблоны для очередной легенды Вот пара прошлогодних скринов: У тебя явно проблемы какие-то. В итоге окажется что либо у тебя своя группа и ты думаешь что это поможет ей раскрутиться, либо какой-то анонс типа старса, они любят такую дичь задвигать. И напоследок, что происходит когда людям действительно интересно что под ссылкой:
-
Залил demo
-
View this tutorial Кастомный виджет googleTranslate для сайта Меня часто просят сделать на сайте гугл переводчик и в качестве примера ставят выбор языка "Как у Rampage". Выглядит он вот так: Я сразу же заметил ряд недостатков в скрипте рампейджа и вообще в методе который был взят за его основу, поэтому при первой же возможности занялся написанием своего решения. Прочитав документацию и покопавшись в сети, я увидел, что многие вопросы связанные с кастомизацией остаются без ответов, в лучшем случае предлагаются решения похожие на скрипт рампейджа, но более упрощенные. Так уж сложилось, что я как раз искал тему для моей первой статьи на habr.com и судя по всему с темой я не прогадал. Статью практически сразу опубликовали и я получил полноправный аккаунт. Эта тема будет полезна всем верстальщикам и фронтенд разработчикам форума поэтому я размещаю её здесь. Перед тем как преступить к написанию данной статьи, я решил посетить страницу где генерируется Google Translate Widget, чтобы узнать о возможных изменениях и увидел данное сообщение: Не сложно догадаться какой браузер имеет ввиду Google, но речь не об этом. Самое главное, что плагин все также остается рабочим и мы можем им пользоваться. Кроме того, за неимением возможности генерировать виджет, данная тема становиться еще более актуальной, ведь потребность в машинном переводе никуда не исчезла, а Google Translate, на мой взгляд, один из самых мощных инструментов для этого. Как будет выглядеть наш пример: Для корректной работы нашего кастомного виджета необходимо подключить файлы: <link rel="stylesheet" href="css/style.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> <script src="js/google-translate.js"></script> <script src="//translate.google.com/translate_a/element.js?cb=TranslateInit"></script> Содержимое style.css: body { margin: 0; padding: 0; } .page { display: flex; min-height: 100vh; } /* Фиксируем позицию body, которую меняет панель гугла*/ .page_fix { top: 0 !important; position: static !important; } /* Прячем панель гугла */ .skiptranslate { display: none !important; } /* language */ .language { position: fixed; left: 10px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; } .language__img { margin: 2px; cursor: pointer; opacity: .5; } .language__img:hover, .language__img_active { opacity: 1; } /* content */ .content { text-align: center; margin: auto; } Используемые флаги: Разметка кастомного виджета: <div class="language"> <img src="images/lang/lang__ru.png" alt="ru" data-google-lang="ru" class="language__img"> <img src="images/lang/lang__en.png" alt="en" data-google-lang="en" class="language__img"> <img src="images/lang/lang__de.png" alt="de" data-google-lang="de" class="language__img"> <img src="images/lang/lang__fr.png" alt="fr" data-google-lang="fr" class="language__img"> <img src="images/lang/lang__pt.png" alt="pt" data-google-lang="pt" class="language__img"> </div> Содержимое google-translate.js: const googleTranslateConfig = { lang: "ru", }; function TranslateInit() { let code = TranslateGetCode(); // Находим флаг с выбранным языком для перевода и добавляем к нему активный класс $('[data-google-lang="' + code + '"]').addClass('language__img_active'); if (code == googleTranslateConfig.lang) { // Если язык по умолчанию, совпадает с языком на который переводим // То очищаем куки TranslateClearCookie(); } // Инициализируем виджет с языком по умолчанию new google.translate.TranslateElement({ pageLanguage: googleTranslateConfig.lang, }); // Вешаем событие клик на флаги $('[data-google-lang]').click(function () { TranslateSetCookie($(this).attr("data-google-lang")) // Перезагружаем страницу window.location.reload(); }); } function TranslateGetCode() { // Если куки нет, то передаем дефолтный язык let lang = ($.cookie('googtrans') != undefined && $.cookie('googtrans') != "null") ? $.cookie('googtrans') : googleTranslateConfig.lang; return lang.substr(-2); } function TranslateClearCookie() { $.cookie('googtrans', null); $.cookie("googtrans", null, { domain: "." + document.domain, }); } function TranslateSetCookie(code) { // Записываем куки /язык_который_переводим/язык_на_который_переводим $.cookie('googtrans', "/auto/" + code); $.cookie("googtrans", "/auto/" + code, { domain: "." + document.domain, }); } При смене языка добавляется куки с ключом googtrans и значением вида /ru/en /ru — это язык который переводим /en — это язык на который переводим Это стандартное поведение, поэтому я им и воспользовался для кастомизации виджета. Кликая по флажкам необходимых языков, из атрибута data-google-lang в куки записываются соответствующие значение вида /auto/выбранный_язык. Затем происходит перезагрузка и auto заменяется на язык записанный отдельно в конфиг: const googleTranslateConfig = { lang: "ru", }; Это сделано для того, чтобы мы не привязывались к одному языку. Если к примеру сайт переведен на 2 языка, русский и английски, то мы можем передать текущий язык в конфиг и правильно обработать его. Все доступные языки и их код стандарта ISO-639-1 можно найти тут. Функции добавления и очисти куки я вынес отдельно, чтобы была возможность провести дополнительные проверки и вызвать в других местах. Важный момент, куки необходимо менять для основного домена и всех поддоменов. Теперь, имея контроль над нашим виджетом, мы можем без проблем реализовывать более сложные дизайны: Репозиторий с проектом на GitHub Cсылка на оригинал статьи Author L2Banners Category Инструкции Отправлено 02/04/19 02:29
-
Меня часто просят сделать на сайте гугл переводчик и в качестве примера ставят выбор языка "Как у Rampage". Выглядит он вот так: Я сразу же заметил ряд недостатков в скрипте рампейджа и вообще в методе который был взят за его основу, поэтому при первой же возможности занялся написанием своего решения. Прочитав документацию и покопавшись в сети, я увидел, что многие вопросы связанные с кастомизацией остаются без ответов, в лучшем случае предлагаются решения похожие на скрипт рампейджа, но более упрощенные. Так уж сложилось, что я как раз искал тему для моей первой статьи на habr.com и судя по всему с темой я не прогадал. Статью практически сразу опубликовали и я получил полноправный аккаунт. Эта тема будет полезна всем верстальщикам и фронтенд разработчикам форума поэтому я размещаю её здесь. Перед тем как преступить к написанию данной статьи, я решил посетить страницу где генерируется Google Translate Widget, чтобы узнать о возможных изменениях и увидел данное сообщение: Получить доступ к переводчику сайтов больше нельзя. Это никак не отразится на тех, кто уже установил соответствующий плагин. Советуем пользователям переводить веб-страницы с помощью браузеров, имеющих встроенную функцию перевода. Не сложно догадаться какой браузер имеет ввиду Google, но речь не об этом. Самое главное, что плагин все также остается рабочим и мы можем им пользоваться. Кроме того, за неимением возможности генерировать виджет, данная тема становиться еще более актуальной, ведь потребность в машинном переводе никуда не исчезла, а Google Translate, на мой взгляд, один из самых мощных инструментов для этого. Как будет выглядеть наш пример: Для корректной работы нашего кастомного виджета необходимо подключить файлы: <link rel="stylesheet" href="css/style.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> <script src="js/google-translate.js"></script> <script src="//translate.google.com/translate_a/element.js?cb=TranslateInit"></script> Содержимое style.css: body { margin: 0; padding: 0; } .page { display: flex; min-height: 100vh; } /* Фиксируем позицию body, которую меняет панель гугла*/ .page_fix { top: 0 !important; position: static !important; } /* Прячем панель гугла */ .skiptranslate { display: none !important; } /* language */ .language { position: fixed; left: 10px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; } .language__img { margin: 2px; cursor: pointer; opacity: .5; } .language__img:hover, .language__img_active { opacity: 1; } /* content */ .content { text-align: center; margin: auto; } Используемые флаги: Разметка кастомного виджета: <div class="language"> <img src="images/lang/lang__ru.png" alt="ru" data-google-lang="ru" class="language__img"> <img src="images/lang/lang__en.png" alt="en" data-google-lang="en" class="language__img"> <img src="images/lang/lang__de.png" alt="de" data-google-lang="de" class="language__img"> <img src="images/lang/lang__fr.png" alt="fr" data-google-lang="fr" class="language__img"> <img src="images/lang/lang__pt.png" alt="pt" data-google-lang="pt" class="language__img"> </div> Содержимое google-translate.js: const googleTranslateConfig = { lang: "ru", }; function TranslateInit() { let code = TranslateGetCode(); // Находим флаг с выбранным языком для перевода и добавляем к нему активный класс $('[data-google-lang="' + code + '"]').addClass('language__img_active'); if (code == googleTranslateConfig.lang) { // Если язык по умолчанию, совпадает с языком на который переводим // То очищаем куки TranslateClearCookie(); } // Инициализируем виджет с языком по умолчанию new google.translate.TranslateElement({ pageLanguage: googleTranslateConfig.lang, }); // Вешаем событие клик на флаги $('[data-google-lang]').click(function () { TranslateSetCookie($(this).attr("data-google-lang")) // Перезагружаем страницу window.location.reload(); }); } function TranslateGetCode() { // Если куки нет, то передаем дефолтный язык let lang = ($.cookie('googtrans') != undefined && $.cookie('googtrans') != "null") ? $.cookie('googtrans') : googleTranslateConfig.lang; return lang.substr(-2); } function TranslateClearCookie() { $.cookie('googtrans', null); $.cookie("googtrans", null, { domain: "." + document.domain, }); } function TranslateSetCookie(code) { // Записываем куки /язык_который_переводим/язык_на_который_переводим $.cookie('googtrans', "/auto/" + code); $.cookie("googtrans", "/auto/" + code, { domain: "." + document.domain, }); } При смене языка добавляется куки с ключом googtrans и значением вида /ru/en /ru — это язык который переводим /en — это язык на который переводим Это стандартное поведение, поэтому я им и воспользовался для кастомизации виджета. Кликая по флажкам необходимых языков, из атрибута data-google-lang в куки записываются соответствующие значение вида /auto/выбранный_язык. Затем происходит перезагрузка и auto заменяется на язык записанный отдельно в конфиг: const googleTranslateConfig = { lang: "ru", }; Это сделано для того, чтобы мы не привязывались к одному языку. Если к примеру сайт переведен на 2 языка, русский и английски, то мы можем передать текущий язык в конфиг и правильно обработать его. Все доступные языки и их код стандарта ISO-639-1 можно найти тут. Функции добавления и очисти куки я вынес отдельно, чтобы была возможность провести дополнительные проверки и вызвать в других местах. Важный момент, куки необходимо менять для основного домена и всех поддоменов. Теперь, имея контроль над нашим виджетом, мы можем без проблем реализовывать более сложные дизайны: Репозиторий с проектом на GitHub Cсылка на оригинал статьи