Ответить
Как раз это очень по людски. Можно ставить и два равно. В таком случае не будут кчитываться типы переменных. 3 равно - сравнение еще и по типу. А одно равно - это присваивание а не сравнение.
Вложенность добавлю. Я так и собирался сделать.
арефметика работать и так должна. Так как условия обрабатываются eval-ом. Нельзя юзать только функции, в целях безопасности.
А защита от рекурсии предусмотрена?
Обсуждения разработчиков
Отправлено: 24 Июн 2011#1
и так я начал делать пакетное удаление/перемещение/поднятие и т.д. В чем сама идея? Мы выделяем чекбоксами(на примере ПМ) сообщения и клацаем "удалить". Удаляются все отмеченные сообщения. Но по скольку я не силен в JavaScript решил вынести на обсуждение работу этих самых чекбоксов и всей этой конструкции в целом. Надеюсь вы поможете усовершенствовать код. Добавить так сказать защиту от дурака и все такое.
И так вид чекбокса
скрипты
Добавлено2011.06.24 13-47
ну и само собой есть кнопка вызывающая sendPack()
И так вид чекбокса
Code:
<input type="checkbox" onClick="if(this.checked){addToPackage(this.value);}else{delFromPackage(this.value);}" value="{ENTITY_ID}">
скрипты
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function addToPackage(id) {
packIds.push(id);
}
function delFromPackage(id) {
for(key in packIds) {
if(packIds[key] == id) {
packIds.splice(key, 1);
}
}
}
function sendPack(action) {
var pack = document.getElementById('actionPack');
pack.action = action;
for(key in packIds) {
pack.innerHTML += '<input type="hidden" name="ids[]" value="' + packIds[key] + '">';
}
pack.submit();
}
Добавлено2011.06.24 13-47
ну и само собой есть кнопка вызывающая sendPack()
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
Отправлено: 24 Июн 2011#2
Drunya, альтернативный вариант:
1) генерируем чекбоксы с id/name вида "del_01", "del_02" и т.д. до "del_NN";
2) в php-скрипте запускаем цикл по полученным значениям до NN и установлен чекбокс или нет;
3) производим удаление.
1) генерируем чекбоксы с id/name вида "del_01", "del_02" и т.д. до "del_NN";
2) в php-скрипте запускаем цикл по полученным значениям до NN и установлен чекбокс или нет;
3) производим удаление.
Отправлено: 24 Июн 2011#3
Wasja, сорри, а можешь немного разжевать. Я как бы суть понял, но хочу разобрать в чем ты тут видишь преимущество и вообще почему именно так?
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
Отправлено: 3 Июл 2011#5
В принцыпе твоя правда. Но возьмем пример с постами форума. На каждом чекбокс для выделения. Выходит что бы отправить эти чекбоксы, надо брать всю страницу в форму
Добавлено2011.06.24 15-48
не то что бы это не возможно, но это как то не по человечески.
Добавлено2011.07.03 22-50
И так, следующая цель это сделать условные операторы в шаблонах. Вот код функции что я придумал
А вот как метки выглядят в шаблоне
Есть мысли на этот счет?
Добавлено2011.06.24 15-48
не то что бы это не возможно, но это как то не по человечески.
Добавлено2011.07.03 22-50
И так, следующая цель это сделать условные операторы в шаблонах. Вот код функции что я придумал
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php function parseAddOperations($data) {
$params = array(
'IS_USER_REGISTERED' => true,
'IS_USER_ACTIVE' => 'test',
);
extract($params);
if (preg_match_all('#\{if\(([\w\s_\-="\']+)\)\}(.*)(\{else\}(.*))?\{endif\}#isU', $data, $matches)) {
if (count($matches[1]) > 0) {
foreach ($matches[1] as $key => $row) {
$comstr = preg_replace('#[\(=\s]*([A-Z_]+?)[\)=\s]*#uU', '$\\1', $row);
$comstr = '$b = (boolean)(' . $comstr . ');';
eval($comstr);
if ($b === true) {
$data = str_replace($matches[0][$key], $matches[2][$key], $data);
} else {
$data = str_replace($matches[0][$key], $matches[4][$key], $data);
}
//pr($matches);
}
}
}
return $data;
}?>
А вот как метки выглядят в шаблоне
Code:
<html>
<head>
</head>
<body>
{if(IS_USER_REGISTERED)} YES {else} NO {endif}
{if(IS_USER_ACTIVE === 'test')} YES {else} NO {endif}
</body>
</html>
<head>
</head>
<body>
{if(IS_USER_REGISTERED)} YES {else} NO {endif}
{if(IS_USER_ACTIVE === 'test')} YES {else} NO {endif}
</body>
</html>
Есть мысли на этот счет?
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
Отправлено: 4 Июл 2011#6
Drunya, это
не по-людски (я про три знака равно).
Кроме того, в этом варианте не сработают вложенные условия.
А вообще нужно определиться с тем, что ты хочешь добиться условными кодами. Если по аналогии с укозом - необходимо поддерживать 2 варианта логических условий - проверка на существование переменной (без условий) и проверка на результат логической операции (с возможностью выполнения арифметических действий). Так же неплохо добавить проверку ifnot.
Code:
{if(IS_USER_ACTIVE === 'test')} YES {else} NO {endif}
Кроме того, в этом варианте не сработают вложенные условия.
А вообще нужно определиться с тем, что ты хочешь добиться условными кодами. Если по аналогии с укозом - необходимо поддерживать 2 варианта логических условий - проверка на существование переменной (без условий) и проверка на результат логической операции (с возможностью выполнения арифметических действий). Так же неплохо добавить проверку ifnot.
Отправлено: 4 Июл 2011#7
Wasja пишет:
не по-людски (я про три знака равно).
Вложенность добавлю. Я так и собирался сделать.
арефметика работать и так должна. Так как условия обрабатываются eval-ом. Нельзя юзать только функции, в целях безопасности.
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
Отправлено: 4 Июл 2011#8
Пацики, надо решить какие переменные мы хотим видеть в условных операторах для шаблонизатора Фапос, например
IS_USER_REFISTERED
USER_NAME
и т.д.
Это надо Дрюне, что бы закончить условные операторы
IS_USER_REFISTERED
USER_NAME
и т.д.
Это надо Дрюне, что бы закончить условные операторы
Бывает настолько сложно, что проще некуда
Отправлено: 5 Июл 2011#9
Я думаю так
USER_LOGGED_IN - авторизован ли пользователь
И большинство переменных доступных по {ПЕРЕМЕННАЯ}
Добавлено2011.07.05 12-28
Так же думаю стоит начать напоминать всем что в новой версии не будет чанков. Вместо них будут использоваться сниппеты, так как в них можно юзать как статику, так и динамику.
USER_LOGGED_IN - авторизован ли пользователь
И большинство переменных доступных по {ПЕРЕМЕННАЯ}
Добавлено2011.07.05 12-28
Так же думаю стоит начать напоминать всем что в новой версии не будет чанков. Вместо них будут использоваться сниппеты, так как в них можно юзать как статику, так и динамику.
Я горжусь тем, что создал бесплатную CMS - AtomX . И люблю нашу команду)
Отправлено: 7 Июл 2011#10
Drunya пишет:
Вместо них будут использоваться сниппеты, так как в них можно юзать как статику, так и динамику.
Зарегистрируйтесь или авторизуйтесь что бы писать
Сейчас online: 198. Зарегистрированных: 0. Гостей: 198.