• Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Yuri_G  
Сообщество uCoz » Мастерская uCoz » Дизайн: управление шаблонами » Запрос по слову (Если в тексте есть слово то выводится текст)
Запрос по слову
cps
Сообщений: 36
Репутация: 1

Сообщение # 1 | 21:54:16
Подскажите плиз если в $ENTRY_TITLE$ есть определенное слово, но в $ENTRY_TITLE$ содержится текст. И если слово допустим "коша" есть в этом тексте, то нужно вывести рыжая
<?if ($ENTRY_TITLE$ = 'кошка' ) ?>рыжая<?endif?>
так вот не работает

Гугл это конечно хорошая операционная система, но и яндекс ни чего :)
Selena
Сообщений: 15657
Репутация: 1100

Сообщение # 2 | 21:57:08
cps, и не должно работать.

Отправляя сообщение о помощи, приводите ссылку на свой сайт. Это не считается рекламой, зато снимает массу вопросов.
cps
Сообщений: 36
Репутация: 1

Сообщение # 3 | 22:05:01
Так а как сделать, что бы работало? Или же это просто не возможно?

Гугл это конечно хорошая операционная система, но и яндекс ни чего :)
Selena
Сообщений: 15657
Репутация: 1100

Сообщение # 4 | 22:12:28
cps, условия правильно задайте. Используйте функцию strpos.

Отправляя сообщение о помощи, приводите ссылку на свой сайт. Это не считается рекламой, зато снимает массу вопросов.
Rad_van_Cor
Сообщений: 1179
Репутация: 437

Сообщение # 5 | 22:27:04
Цитата (cps)
рыжаятак вот не работает

Конечно так работать не будет

Вы задаёте не верное условие, вы пишите

Код
<?if ($ENTRY_TITLE$ = 'кошка' ) ?>рыжая<?endif?>


Это значить что:

Если $ENTRY_TITLE$ (название материала) равно (один в один совпадает) со словом кошка, тогда выводим рыжая.
А у вас $ENTRY_TITLE$ не может один в один совпадать со словом кошка. Так как в $ENTRY_TITLE$ есть ещё другие слова.
Это равносильно тому, что мы будем пытаться задать такое условие

<?if (2=3 ) ?>истина<?endif?>

Два ни как не может равняться трём. Два есть два. И по этому условие не работает.

Что бы оно заработало, нам нужно из названия обрезать все лишние слова до слова Кошка и после слова кошка.

К примеру, если у вас такое название

"Жила-была на свете кошка, ну короче такие дела"

Значить нам в начале нужно обрезать "Жила-была на свете " а в конце ", ну короче такие дела" и тогда у нас останется только слова кошка. И тогда мы сможем задать условие

А выглядеть оно будет так

Код
<?if (substr($ENTRY_TITLE$,19,5)='кошка') ?>рыжая<?endif?>


Тоесть мы сейчас задали такое условие:

Если обрезное название материала (в начале обрезаем 19 символов и оставляем 5 символов, так как в слове кошка 5 символов) равняется кошка, то выводим рыжая.

В общем смотри

<?if (substr($ENTRY_TITLE$,19,5)='кошка') ?>

19 - это сколько символов нужно обрезать до нужного слова (пробелы тоже учитываем)
5 - это длинна нужного слова

Сообщение отредактировал Rad_van_Cor - Понедельник, 13 Май 2013, 22:28:37
cps
Сообщений: 36
Репутация: 1

Сообщение # 6 | 22:31:26
Так то я знаю как сделать, а если $ENTRY_TITLE$ постоянно меняется и слово кошка может стоять в разных местах, как тогда быть?

Гугл это конечно хорошая операционная система, но и яндекс ни чего :)
Сообщение отредактировал cps - Понедельник, 13 Май 2013, 22:33:47
Rad_van_Cor
Сообщений: 1179
Репутация: 437

Сообщение # 7 | 22:32:19
cps, я уже подсказал.

cps
Сообщений: 36
Репутация: 1

Сообщение # 8 | 22:41:50
Цитата Rad_van_Corcps, я уже подсказал. я просто наверное вопрос не корректно задал, поправил предыдущее сообщение

Добавлено (13 Май 2013, 22:41:50)
---------------------------------------------
Вот допустим в один текст:
Кошка приятная на внешность
Другой текст:
Фотографии с кошкой (склоняемость слова "кошка" я так понимаю можно будет задать ||)
Третий:
Хорошее провождение времени с кошками и т.д.
Слово "кошка" в разных $ENTRY_TITLE$ стоит в разных местах!


Гугл это конечно хорошая операционная система, но и яндекс ни чего :)
Rad_van_Cor
Сообщений: 1179
Репутация: 437

Сообщение # 9 | 22:58:03
Цитата (cps)
Так то я знаю как сделать, а если $ENTRY_TITLE$ постоянно меняется и слово кошка может стоять в разных местах, как тогда быть?

Если бы знали как так сделать, то не писали бы глупых условий типа этого
Код
<?if ($ENTRY_TITLE$ = 'кошка' ) ?>рыжая<?endif?>


Цитата (cps)
Вот допустим в один текст:Кошка приятная на внешность
Другой текст:
Фотографии с кошкой (склоняемость слова "кошка" я так понимаю можно будет задать ||)
Третий:
Хорошее провождение времени с кошками и т.д.
Слово "кошка" в разных $ENTRY_TITLE$ стоит в разных местах!


Вот

Код
<?if(substr($ENTRY_NAME$, strrpos($ENTRY_NAME$,'Ко')+0, strpos($ENTRY_NAME$,'ка') - (strrpos($ENTRY_NAME$,'Ко')-2))='Кошка')?>рыжая<?endif?>
<?if(substr($ENTRY_NAME$, strrpos($ENTRY_NAME$,'ко')+0, strpos($ENTRY_NAME$,'ка') - (strrpos($ENTRY_NAME$,'ко')-2))='кошка')?>рыжая<?endif?>


Тут сразу два условия, на случай если слово кошка с большой буквы будет в названии и если с маленькой.

cps
Сообщений: 36
Репутация: 1

Сообщение # 10 | 23:49:21
Спасибо за детальный ответ все работает

Гугл это конечно хорошая операционная система, но и яндекс ни чего :)
Rad_van_Cor
Сообщений: 1179
Репутация: 437

Сообщение # 11 | 23:50:15
cps, happy

Drinko
Сообщений: 909
Репутация: 773

Сообщение # 12 | 09:58:42
Rad_van_Cor, а не проще:

Код
<?if(strpos($ENTRY_TITLE$,"кошка")!= -1 || strpos($ENTRY_TITLE$,"Кошка")!= -1)?>рыжая<?endif?>

wink

Rad_van_Cor
Сообщений: 1179
Репутация: 437

Сообщение # 13 | 14:01:35
Drinko, ещё и как легче)) В который раз убеждаюсь, что люблю всё усложнять. Хотя это как то не произвольно получается)

cps
Сообщений: 36
Репутация: 1

Сообщение # 14 | 22:42:06
Вот опять призадумался!!! У меня в тексте встречается кошка, а есть русская кошка и нужно, что бы выводило где кошка "кошка", а где русская кошка "русская кошка".
Мой мозг не догоняет как это реализовать, помогите решить задачу. Использую вот этот скрипт.
Код
<?if(strpos($ENTRY_TITLE$,"кошка")!= -1 || strpos($ENTRY_TITLE$,"Кошка")!= -1)?>рыжая<?endif?>

Добавлено (14 Май 2013, 22:42:06)
---------------------------------------------
Гуру мастера ucoz дайте подсказку плиз. Очень нужно


Гугл это конечно хорошая операционная система, но и яндекс ни чего :)
Вансан
Сообщений: 77
Репутация: 33

Сообщение # 15 | 23:17:56
Цитата (cps)
У меня в тексте встречается кошка, а есть русская кошка и нужно, что бы выводило где кошка "кошка", а где русская кошка "русская кошка".
Код
<?if(strpos($ENTRY_TITLE$,"русская кошка")!=-1 || strpos($ENTRY_TITLE$,"Русская кошка")!=-1)?>русская кошка<?else?>
     <?if(strpos($ENTRY_TITLE$,"кошка")!=-1 || strpos($ENTRY_TITLE$,"Кошка")!=-1)?>кошка<?endif?>
<?endif?>

Absit invidia verbo
Сообщение отредактировал Вансан - Вторник, 14 Май 2013, 23:19:56
Сообщество uCoz » Мастерская uCoz » Дизайн: управление шаблонами » Запрос по слову (Если в тексте есть слово то выводится текст)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: