Дополнительные поля uCoz: небольшой хак!

Тема в разделе "Юкоз дополнения", создана пользователем theCooLER, 5 ноя 2018.

  1. theCooLER

    theCooLER New Member

    Регистрация:
    16 сен 2018
    Сообщения:
    3
    Доброго времени суток!

    Предисловие:

    Как-то недавно речь зашла о дополнительных полях uCoz и кто-то или что-то дернул(о) меня за язык написать что-то типа мануала по данной теме. Решил не задерживать, так что читаем дальше!

    Warning: Мой первый пост с мануалом! Я плохо у меню объяснять, так что не судите строго!

    Способы сделать больше дополнительных полей на uCoz:
    1.
    Зайти в Панель сайта-][Модуль]-]Настройка модуля. Далее включить все поля, что есть в модуле и постараться по максимум использовать их возможности.
    2. В июне 2016 года uCoz помимо основных дополнительных полей добавил еще дополнительные поля. Для бесплатного тарифа их всего 3, однако если оплатить тариф, то получите больше дополнительных полей. Вот информация с официального блога uCoz:




    3. Если вам все-же мало дополнительных полей, то следующий вариант — PHP скрипт. Надо оплатить поддержку PHP на сайта (входит в тарифы начиная с «Оптимального»). Насколько знаю, такой скрипт есть, либо его придется заказать.

    Однако есть 4-й вариант:
    Данный способ не самый лучший, зато бесплатный! [​IMG] Суть проста: в описании материала через «редактор HTML кодов» вставляете комментированный текст, который на странице выводится не будет, зато JS запросто может его обработать, что мы и будет использовать в данном случае.

    Минусы способа:
    — Редактирование только через «редактор HTML кодов»
    — Данные из таких доп.полей НЕ индексируются поисковиками.

    Плюсы:
    — Бесплатно, просто и быстро!
    — Практически не ограниченное количество дополнительных полей!
    — Не лишает возможности использовать полное/краткое в своих целях!

    Приступим к установке:
    1. Установим кусок JS кода на сайт.


    2. Заходим в Панель управления-][Модуль]-]Управление дизайном-]Полная страница материала, находим $MESSAGE$ и заменяем на:


    3. Выведем наши поля:


    Тут все просто: к примеру вы указали 2 поля: name и year. От кусок JS-скрипта вставит информацию поля name в элемент с id=thefield_name, а year аналогично в элемент с id=thefield_year. Однако, так как поля altname и country вы не указали, то скрипт уберет элемент с классом thefield_altname и thefield_country со страницы.

    Короче: там где нужно вывести значение надо присвоить атрибут id = thefield_[названиеполя] . Если нужны скрыть определенный блок на странице, если поле не указано, то присваиваем ему class = thefield_[названиеполя]

    Теперь будет использовать наши поля:

    При добавлении материала нужно Полное описание материала перевести в режим Редактора HTML кодов, нижу снять галку Заменять переводы строк тегом [br]

    Далее добавляем туда такой код:


    Это за комментированный код, который не отображается на странице, но наш JS-скрипт возьмет из него данные. Название поля должно быть из английских букв и цифр, без пробелов!

    Если все сделано правильно, а я нигде не накосячил в коде [​IMG] — все должно работать.

    Внимание: Это тестовая версия скрипта, который делался за пол часа. Возможно где-то это не сработает, так как модули отличаются друг от друга. Мне важно мнение, мысли, идеи и предложения. Если это будет актуально я сделаю полноценный скрипт, который будет работать везде, а с настройкой полей и их редактирование будет помогать визуальный интерфейс — никакого кода!

    Тут типа живой пример:
    http://9interi.3dn.ru/load/dota_2/teksturki/dark_viper_fioletovyj_vajper/177-1-0-596
    Тем, кому интересно — песочница на CodePen: https://codepen.io/theCooLER/pen/gWjwmW

    P.S:
    Есть вот такой скрипт: http://webo4ka.ru/load/skripty_i_mo...telnye_polja_dlja_ljubykh_modulej/46-1-0-3629 Однако на мой взгляд он слишком замудрен и можно сделать лучше!