[Решено] Друпал не видит символ ,,<,,. Как исправить??

Главные вкладки

Аватар пользователя Qest Qest 7 декабря 2010 в 2:24

Пользуюсь друпал не больше месяца, и постоянно сталкиваюсь с проблемой того что он живет по своим правилам! Сначала появлялась серая стока в верху таблиц, на этот раз он не видит символ ,,<,, (меньше). Как это исправить? не могу написать ни один цикл...

Для примера простенький скрипт, у меня не работает (вообще ничего не происходит если вставить его в блок).

<script type="text/javascript">
var a = prompt("Введите чтонибудь")
a = parseInt(a)
if (a < 3 && a < 5 && a < 7)
document.write("Все работает")
alert("aa")
</script>

Как это исправить?? и какие проблемы еще могут возникнуть? Пожалуйста подскажите, меня это убивает...

Комментарии

Аватар пользователя varvashenia varvashenia 7 декабря 2010 в 2:44

1. Уберите из блока визуальный редактор (если есть) и включите там full html (если не включено)
2. Поменяйте логику работу с меньше на больше (если используется ajax) - пару раз сталкивался с таким поведением не помню в каком браузере - в данном случае будет что-то типа if (!a > 2 && !a > 4 && !a > 6).
3. Для отлавливания серой строки используйте плагин типа web developer для firefox

Аватар пользователя Qest Qest 7 декабря 2010 в 2:45

annya, друпал формирует саму страницу и правила того как все там отображается. Я просто создаю блок, и вставляю туда скрипт.

Браузер здесь ни при чем, просто в браузере этот скипт у меня работает.

Аватар пользователя Qest Qest 7 декабря 2010 в 2:48

varvashenia, спасибо за советы, со стракой я уже справился (правил system.css у друпала).

Да я это скрипт написал в качестве примера просто, на самом деле там все сложнее, конечно можно заморачиваться и писать такое условие подругому через другой цикл вообще, но хотелось бы работать нормально.

Аватар пользователя varvashenia varvashenia 7 декабря 2010 в 2:57

Для начала добейтесь вывода просто alert("aa") - возможно извращения с больше и меньше не понадобятся.
и system.css в частности и системный файлы drupal и модулей вообще править некошерно - все исправления пойдут лесом после первого обновления

Аватар пользователя Qest Qest 7 декабря 2010 в 3:10

В том то и дело, что не выводится даже prompt("Введите чтонибудь"), не говоря уже о alert("aa"). Тоесть вообще ничего не работает. А если не пользоваться символом < то все работает замечательно.

Я полагаю что гдето прописаны какие то ограничения на символы, или правила их преобразования какие-то...

Аватар пользователя varvashenia varvashenia 7 декабря 2010 в 3:43

Меня тут мысль посетила - а зачем вообще javascript в блоки пихать? - делайте внешним файлом - его друпал хоть кешировать будет при необходимости.

Аватар пользователя Qest Qest 7 декабря 2010 в 4:10

varvashenia, работает Smile Огромное спасибо!

Я почему-то думал что если скрипт подключать отдельно то в итоге всеравно он попадает на страницу как обычный скрипт.

Тем не менее вопрос остается открытым, как исправить этот баг в друпале...

Аватар пользователя Qest Qest 7 декабря 2010 в 8:51

"RxB" wrote:
Баг в голове или докажите мне что виноват друпал

Я же специально привел скрипт для примера. Скопируйте его и вставьте в блок у друпала, и он не сработает.

Во всяком случае у меня не работает...

Аватар пользователя Qest Qest 7 декабря 2010 в 10:14

"penexe" wrote:
формат ввода php code

Такого формата у меня нет

"natbampo" wrote:
Full HTML будет достаточно

Нет, не достаточно, здесь дело не в отображении кода, а отображении конкретного символа <

Аватар пользователя natbampo natbampo 7 декабря 2010 в 10:31

да, действительно full HTML преобразует <.

"Qest" wrote:
Такого формата у меня нет

включи модуль php filter. он уже стоит в системе.

Аватар пользователя Qest Qest 7 декабря 2010 в 12:18

"Softovick" wrote:
Т.е. все таки баг не в Drupal? :)

Баг в друпал.

1. По вашему нормально что символ < не отображается в html, а к примеру > отображается?
2. При чем здесь php code, если я писал javascript?

Да и вообще я первый раз сталкиваюсь с тем чтобы написать обычный символ на друпал видители еще нужно установить модуль и выбрать какую-то непонятную форму ввода.

Аватар пользователя Softovick Softovick 7 декабря 2010 в 12:34

Qest wrote:
"Softovick" wrote:
Т.е. все таки баг не в Drupal? :)

Баг в друпал.

1. По вашему нормально что символ < не отображается в html, а к примеру > отображается?
2. При чем здесь php code, если я писал javascript?

Да и вообще я первый раз сталкиваюсь с тем чтобы написать обычный символ на друпал видители еще нужно установить модуль и выбрать какую-то непонятную форму ввода.


С которых пор движок должен за пользователя придумать, что же ему надо?
Такие вырезки кода связанны с безопасностью, чтобы лишний код не вставляли кто ни попадя.
По умолчанию действуют жесткие ограничения на ввод любого кода, отличного от разрешенного. И при необходимости включается более расширенный режим, соответственно на свой страх и риск (потенциальная уязвимость).
И это правильно. Любая система должна работать по принципу "Все что не нужно - запрещено, когда понадобится - разрешаем"...

Аватар пользователя Qest Qest 7 декабря 2010 в 18:26

Я конечно понимаю что безопасность и все такое, но почему символ > работает, а < не работает, где логика?

И как я должен был понять что именно в этом проблема, ведь об этом нигде не сказано, и если бы Вы мне не подсказали бы я бы потратил кучу времени на то чтобы найти решение, потому что привык что все косяки случаются изза неверноего кода, а тут еще надо оказывается правила друпала в расчет брать.