Архив - только для чтения
Сообщество uCoz » Архивариус » Архив » условные операторы и системные коды (архив 27.02.2011)
условные операторы и системные коды
Imhoteb
Сообщений: 31
Репутация: 4

Сообщение # 136 | 17:04:07
У меня вот такой короткий вопрос: какой системный код используется под названием Файл-архив?
Я не смог найти в редакторе шаблонов или же я его пропустил
Сообщение отредактировал Imhoteb - Пятница, 19 Ноя 2010, 17:14:24
Вагнер-Р[eng]AV
Сообщений: 52
Репутация: 57

Сообщение # 137 | 22:32:28
fflesh, спасибо, буду экспериментировать.

Добавлено (19-Ноя-2010, 22:32:28)
---------------------------------------------

Quote (fflesh)
чтобы получить именно последнюю циферку

Причём тут последняя циферка? $NUM_SHOWN$ выводит - (цитирую) - количество материалов на текущей странице. То есть "1-5", а точнее "1-12", "13-24", "25-36" и т.д. это не количество, а порядковые номера материалов на текущей странице.
Quote (fflesh)
<?substr($NUM_SHOWN$,strrpos($NUM_SHOWN$,'-')+1,-7)?>

Это так, - свободный пример? Что будет на выходе?

Иначе говоря, этот вот код, именно с этими операторами, КАКОЕ условие задаёт? Типа: если к числу после знака "-" прибавить единицу, (причём здесь "-7"?), то браузер увидит в ней конкретное число - число рваное порядковому номеру последнего материала страницы, соответственно, плюс единица? Так что ли?

И ещё раз, причём здесь "-7"? Длина подстроки?


sch779
Сообщений: 703
Репутация: 348

Сообщение # 138 | 19:36:43
Если первое число отнять от второго и прибавить 1, то получим кол-во материалов, которые выведены на данной странице.
Что касается кода, то он позволяет выделить второе число - правда, вместо -7 надо поставить положительное число 7 (т.е. будет вырезана подстрока длиной 7 символов или до конца исходной строки). А еще лучше - вообще ничего не ставить - в этом случае будет возвращена подстрока, начиная со следующего после "-" символа и до конца строки.

Т.е., для получения кол-ва материалов на странице надо использовать код типа:

Code
<? substr($NUM_SHOWN$,0,strrpos($NUM_SHOWN$,'-')) - substr($NUM_SHOWN$,strrpos($NUM_SHOWN$,'-')+1) + 1 ?>
Сообщение отредактировал sch779 - Суббота, 20 Ноя 2010, 19:42:33
DIREN
Сообщений: 660
Репутация: 792

Сообщение # 139 | 00:55:15
Если возможно написать счетчик используя Условные операторы - то задача тут

чтоб не дублировать сообщение, просто указал путь на исходник:)



Сайт пранка 18+ :)
YuriT
Сообщений: 231
Репутация: 701
Уровень замечаний:

Сообщение # 140 | 15:37:33
Quote (sch779)
Т.е., для получения кол-ва материалов на странице надо использовать код типа:
Code
<? substr($NUM_SHOWN$,0,strrpos($NUM_SHOWN$,'-')) - substr($NUM_SHOWN$,strrpos($NUM_SHOWN$,'-')+1) + 1 ?>

Вообще-то все гораздо сложнее, поскольку, как уже было указано выше, код $NUM_SHOWN$ содержит не только сами "циферки", ни еще и стилевую обвязку. В итоге, чтобы сделать подобный арифметический подсчет, придется городить жутко длинную конструкцию из комбинаций substr и strpos , затраты на написание и обработку которой вряд ли окупятся wink

Потеряшка - поиск потерянных и помощь бездомным животным в Питере
Сообщение отредактировал YuriT - Понедельник, 22 Ноя 2010, 15:37:59
CоNtRolleR
Сообщений: 5
Репутация: 3

Сообщение # 141 | 04:19:46
делаю так:
Code
<?if($код$="1")?>$код$=="2"<?else?>$код$=="3"<?endif?>

но в результате на экране появляется что то типа:
Code
1==2

как правильно присваивать переменным значения и возможно ли это?

Потихоньку изучаю Perl и php.
Russian Hacker's Portal
Сообщение отредактировал CоNtRolleR - Вторник, 23 Ноя 2010, 04:20:44
Sultanka
Сообщений: 50
Репутация: 27

Сообщение # 142 | 04:47:04
Появился вопрос:
- как показать с помошью условных операторов определенный код на нужной странице (разделе, категории) - это понятно. А вот как сделать так, чтобы код, находящийся в глобальном блоке (расположенном на всех страницах сайта), выводился во всех разделах кроме одного конкретного. Иначе говоря, какой символ в условном операторе мог бы равнятся знаку "не равно".

Создаете сайт питомника? Вам нужен для него домен? - "имя".питомники.рф - в подарок!!!
CоNtRolleR
Сообщений: 5
Репутация: 3

Сообщение # 143 | 04:52:51
Quote (Sultanka)
Иначе говоря, какой символ в условном операторе мог бы равнятся знаку "не равно".

Символы !=

А теперь помогите мне пожалуйста. Как присваивать переменным значения?


Потихоньку изучаю Perl и php.
Russian Hacker's Portal
Сообщение отредактировал CоNtRolleR - Вторник, 23 Ноя 2010, 05:51:32
CоNtRolleR
Сообщений: 5
Репутация: 3

Сообщение # 144 | 17:17:18
Quote
Если код $код$
равен 1 ( $код$="1" )
вообще то правильно применять одинарные кавычки : ( $код$='1' )
отобразить это ( $код$=="2" )
если код не равен 1 отобразить это ( $код$=='3' )

Мне не нужны азы программирования. То что вы обьяснили мне и так известно.
Quote
вообще то правильно применять одинарные кавычки : ( $код$='1' )

Какие кавычки разницы особой нет. Если значение - цисло, то можно их вообще не использовать..
Quote
ни о каком присвоении каких либо значений речи не идёт

Очень жаль. Придётся использовать жабаскрипт или ещё что-то...

Потихоньку изучаю Perl и php.
Russian Hacker's Portal
rekrutua
Сообщений: 25
Репутация: 1

Сообщение # 145 | 20:05:52
Как в модуле доска объявлений на странице со списком материалов категории выводить разную информацию в зависимости от фильтра?
например при
http://сайт/board/1-1-2-0-0-1-Х-Х вывести одну информацию
а при
http://сайт/board/1-1-2-0-0-2-Х-Х другую

ну и второй вопрос, возможно дурацкий, но как повлияет большое количество <?if( около 100-150 при загрузке страницы на скорость работы сайта?

YuriT
Сообщений: 231
Репутация: 701
Уровень замечаний:

Сообщение # 146 | 20:57:16
Quote (rekrutua)
Как в модуле доска объявлений на странице со списком материалов категории выводить разную информацию в зависимости от фильтра?

Смотря для чего это нужно. Если для поисковиков (скажем, ставить на эти страницы разные тайтлы и дескрипшны) - то это действительно можно сделать только при помощи юкозовских операторов, и на данный момент делается это только крайне неприятными длиннющими выражениями (комбинации кучи substr и strpos либо для $FILTERx_MENU$, либо для кода формы "посоветовать другу", которая содержит URL текущей страницы).

А если для показа людям - то тогда все гораздо проще. Тут уж можно анализировать и либо текущий URL, либо текущее значение контрола фильтра при помощи джаваскрипта, и соответственно скриптом же выводить (или подправлять) все, что требуется.

Quote (rekrutua)
ну и второй вопрос, возможно дурацкий, но как повлияет большое количество <?if( около 100-150 при загрузке страницы на скорость работы сайта?

Понятно, что повлияет отрицательно. А уж насколько отрицательно, можно будет увидеть только по результатам "практического эксперимента".
Но в принципе - на странице с выборкой из 15-20 материалов и сложными шаблонами вида материалов (содержащими условные операторы) это должно сказаться не особо ошутимо, поскольку там серверу и без того работы хватает.

PS: к слову, время генерации страницы сервером, насколько я понимаю, можно увидеть, если посмотреть в самый конец ее HTML-кода. Там стоит что-нибудь типа

<!-- 0.20386 (s4) -->

так вот первое число здесь, скорее всего, и есть время генерации страницы.


Потеряшка - поиск потерянных и помощь бездомным животным в Питере
Сообщение отредактировал YuriT - Среда, 24 Ноя 2010, 17:57:57
rekrutua
Сообщений: 25
Репутация: 1

Сообщение # 147 | 20:15:12
YuriT, C пол годика назад думал над тем чтобы выводить разную информацию в титлах и дискрипшин, но поняв что это сильно сложно бросил, сейчас возник вопрос выдавать разную информацию для людей, и опять уперся в туже проблему... sad
YuriT
Сообщений: 231
Репутация: 701
Уровень замечаний:

Сообщение # 148 | 20:39:36
rekrutua, если для людей - то джаваскриптом это можно сделать примерно так (считаем, что контрол соответствующего фильтра, а значит и название выбранной позиции фильтра, на странице доступно):
Code
$FILTER1_MENU$
.....
<div id="text1"></div>
<script>
var divText=$('#text1')
var filter=$('select[name="filter1"]').get(0)
var filterValue=filter.options[filter.selectedIndex].text

if(filterValue=="значение 1") divText.val('текст для значения 1')
if(filterValue=="значение 2") divText.val('текст для значения 2')
......
</script>

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

Но только поисковики видеть всего этого, конечно, уже не будут.


Потеряшка - поиск потерянных и помощь бездомным животным в Питере
Сообщение отредактировал YuriT - Среда, 24 Ноя 2010, 20:44:07
joker7am
Сообщений: 17
Репутация: 12

Сообщение # 149 | 22:06:29
Есть такой замечательный условный оператор: $ONLINE_USERS_LIST$

Как сделать так чтобы, если определенный пользователь авторизован на сайте (например admin), то тогда ВСЕ пользователи видят скрытую информацию?

Пример:

<?if($ONLINE_USERS_LIST$and $USER$="admin")?>видно<?else?>НЕ видно<?endif?>


Не бойся когда один, бойся когда ноль...
YuriT
Сообщений: 231
Репутация: 701
Уровень замечаний:

Сообщение # 150 | 22:30:37
joker7am, теоретически можно написать так:

<?if(strpos($ONLINE_USERS_LIST$,'>admin<')!=-1)?>видно<?endif?>

Но только оно может не всегда правильно работать, поскольку функция strpos проверяет только первые 1000 символов, в код $ONLINE_USERS_LIST$ содержит кучу всякой всячины и может оказаться длиннее.


Потеряшка - поиск потерянных и помощь бездомным животным в Питере
Сообщение отредактировал YuriT - Среда, 24 Ноя 2010, 22:31:22
Сообщество uCoz » Архивариус » Архив » условные операторы и системные коды (архив 27.02.2011)
Поиск: