- Регистрация
- 14 Май 2017
- Сообщения
- 36
- Реакции
- 16
- Баллы
- 8
Доброго времени суток!
Предисловие:
Как-то недавно речь зашла о дополнительных полях uCoz и кто-то или что-то дернул(о) меня за язык написать что-то типа мануала по данной теме. Решил не задерживать, так что читаем дальше!
Warning: Мой первый пост с мануалом! Я плохо у меню объяснять, так что не судите строго!
Способы сделать больше дополнительных полей на uCoz:
1. Зайти в Панель сайта->[Модуль]->Настройка модуля. Далее включить все поля, что есть в модуле и постараться по максимум использовать их возможности.
2. В июне 2016 года uCoz помимо основных дополнительных полей добавил еще дополнительные поля. Для бесплатного тарифа их всего 3, однако если оплатить тариф, то получите больше дополнительных полей. Вот информация с официального блога uCoz:
Однако есть 4-й вариант:
Данный способ не самый лучший, зато бесплатный! Суть проста: в описании материала через «редактор 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-скрипт возьмет из него данные. Название поля должно быть из английских букв и цифр, без пробелов!
Если все сделано правильно, а я нигде не накосячил в коде — все должно работать.
Внимание: Это тестовая версия скрипта, который делался за пол часа. Возможно где-то это не сработает, так как модули отличаются друг от друга. Мне важно мнение, мысли, идеи и предложения. Если это будет актуально я сделаю полноценный скрипт, который будет работать везде, а с настройкой полей и их редактирование будет помогать визуальный интерфейс — никакого кода!
Тут типа живой пример: 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 Однако на мой взгляд он слишком замудрен и можно сделать лучше!
Предисловие:
Как-то недавно речь зашла о дополнительных полях uCoz и кто-то или что-то дернул(о) меня за язык написать что-то типа мануала по данной теме. Решил не задерживать, так что читаем дальше!
Warning: Мой первый пост с мануалом! Я плохо у меню объяснять, так что не судите строго!
Способы сделать больше дополнительных полей на uCoz:
1. Зайти в Панель сайта->[Модуль]->Настройка модуля. Далее включить все поля, что есть в модуле и постараться по максимум использовать их возможности.
2. В июне 2016 года uCoz помимо основных дополнительных полей добавил еще дополнительные поля. Для бесплатного тарифа их всего 3, однако если оплатить тариф, то получите больше дополнительных полей. Вот информация с официального блога uCoz:
3. Если вам все-же мало дополнительных полей, то следующий вариант — PHP скрипт. Надо оплатить поддержку PHP на сайта (входит в тарифы начиная с «Оптимального»). Насколько знаю, такой скрипт есть, либо его придется заказать.
- Для сайтов, которые не имеют оплаченных пакетов услуг — до 3-х дополнительных полей.
- Для сайтов, которые имеют оплаченные пакеты услуг — до 10-ти дополнительных полей.
- Для сайтов, работающих по тарифу VIP — до 30-ти дополнительных полей.
Однако есть 4-й вариант:
Данный способ не самый лучший, зато бесплатный! Суть проста: в описании материала через «редактор HTML кодов» вставляете комментированный текст, который на странице выводится не будет, зато JS запросто может его обработать, что мы и будет использовать в данном случае.
Минусы способа:
— Редактирование только через «редактор HTML кодов»
— Данные из таких доп.полей НЕ индексируются поисковиками.
Плюсы:
— Бесплатно, просто и быстро!
— Практически не ограниченное количество дополнительных полей!
— Не лишает возможности использовать полное/краткое в своих целях!
Приступим к установке:
1. Установим кусок JS кода на сайт.
HTML:
var text = $('#thefields').html(),
fields = /[<-]{2}FIELDS([\s\S]*)\/FIELDS[->]{2}/gm.exec(text)[1];
$.each(fields.split("||"), function() {
if(/\|/gm.exec(this)) {
var value = this.split("|");
$('#thefield_' + value[0].trim()).html(value[1].trim());
}
});
$('*[id^=thefield_]').each(function(e) {
if($(this).text().length < 1) {
$('.' + $(this).attr('id')).remove();
}
});
HTML:
<span id="thefields">$MESSAGE$</span>
HTML:
<ul>
<li class="thefield_name"><b>Название:</b> <span id="thefield_name"></span></li>
<li class="thefield_altname"><b>Оригинальное название:</b> <span id="thefield_altname"></span></li>
<li class="thefield_year"><b>Год:</b> <span id="thefield_year"></span></li>
<li class="thefield_country"><b>Страна:</b> <span id="thefield_country"></span></li>
</ul>
Короче: там где нужно вывести значение надо присвоить атрибут id = thefield_[названиеполя] . Если нужны скрыть определенный блок на странице, если поле не указано, то присваиваем ему class = thefield_[названиеполя]
Теперь будет использовать наши поля:
При добавлении материала нужно Полное описание материала перевести в режим Редактора HTML кодов, нижу снять галку Заменять переводы строк тегом <br>
Далее добавляем туда такой код:
HTML:
<!--FIELDS
названиеполя|значение||
названиеполя|значение||
названиеполя|значение
/FIELDS-->
Если все сделано правильно, а я нигде не накосячил в коде — все должно работать.
Внимание: Это тестовая версия скрипта, который делался за пол часа. Возможно где-то это не сработает, так как модули отличаются друг от друга. Мне важно мнение, мысли, идеи и предложения. Если это будет актуально я сделаю полноценный скрипт, который будет работать везде, а с настройкой полей и их редактирование будет помогать визуальный интерфейс — никакого кода!
Тут типа живой пример: 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 Однако на мой взгляд он слишком замудрен и можно сделать лучше!