{Решено} php В зависимости от возраста, подставлять окончания ( год, лет)

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

Аватар пользователя artemrrr artemrrr 11 ноября 2013 в 17:42

Хочу в шаблоне PHP поля Views (поле возраст) подставить окончание Год или Лет в зависимости от числа (21 год, 30 лет и т.д) За гуглил а везде только про окончание слов, если кто то реализовывал поделитесь кодом если есть, ну или хотя бы маленький кусочек кода... а я продолжу.

p.s. Просто я не в теме может там какую функцию Drupal надо вызывать ну и т.д.

Комментарии

Аватар пользователя artemrrr artemrrr 11 ноября 2013 в 18:29

"penexe" wrote:
function to_normal_alt ($alt) { $alt = intval($alt);
if(strlen($alt) == '1') $vt = $alt; else $vt = substr($alt, -1);
if($vt == '0') $p = 'лет';
elseif($vt == '1') $p = 'год';
elseif($vt <= '4') $p = 'года';
else $p = 'лет';
return $p;
}

я правильно понимаю код надо в template.php прописать?

Аватар пользователя artemrrr artemrrr 11 ноября 2013 в 19:50

"ХулиGUN" wrote:
<?php function street_magic_of_devid_blaine($val, $one, $four, $five){
if (($val - $val % 10) % 100 != 10){
if ($val % 10 == 1){
$output = $val.$one;
}else if ($val % 10 >= 2 && $val % 10 <= 4){
$output = $val.$four;
}else{
$output = $val.$five;
}
}else{
$output = $val.$five;
}
return $output;
}?>

Ну вот все хорошо, но немогу я его подключить, хоть ты тресни..

Аватар пользователя artemrrr artemrrr 11 ноября 2013 в 20:49

"CSoft" wrote:
Гм, а чем средства Drupal не устраивают?

Да по фигу главное что бы работало, а как средство Друпал помогут в моем вопросе?

Аватар пользователя CSoft CSoft 11 ноября 2013 в 21:32

"artemrrr" wrote:
а как средство Друпал помогут в моем вопросе?

Код же привёл. Как помогут? Очень даже просто помогут.

"artemrrr" wrote:
Хочу в шаблоне PHP поля Views (поле возраст) подставить окончание Год или Лет в зависимости от числа (21 год, 30 лет и т.д)

Типа так, наверное:

<?php
  
print format_plural($fields['ПОЛЕ']->content'1 year''@count years');
?>
Аватар пользователя artemrrr artemrrr 11 ноября 2013 в 21:49

"CSoft" wrote:
<?php
print format_plural($fields['ПОЛЕ']->content, '1 year', '@count years');
?>

Работает.. только вот возле всех чисел пишет лет а надо, если 21 - то год, если 32 то года.

Аватар пользователя drupby drupby 11 ноября 2013 в 21:54

"artemrrr" wrote:
Работает.. только вот возле всех чисел пишет лет а надо, если 21 - то год, если 32 то года.

"<a href="mailto:andypost@drupal.org">andypost@drupal.org</a>" wrote:
Для русского языка единственным правильным вариантом перевода является:

1) единственная форма - заменить [1 или One] на (@|%)count
2) вторая форма - использовать (@|%)count
3) третья форма - использовать (@|%)count[2]


найди в переводе через интерфейс переводов @count years и @count[2] years

Аватар пользователя CSoft CSoft 11 ноября 2013 в 21:55

"artemrrr" wrote:
только вот возле всех чисел пишет лет а надо, если 21 - то год

Зависит от корректности переводов в системе. У меня всё правильно выводит.

Аватар пользователя artemrrr artemrrr 11 ноября 2013 в 22:24

"CSoft" wrote:

"CSoft" wrote:
1 year
@count год

@count years
@count года

@count[2] years
@count[2] лет


Все перевел как тут но, все числа воспринимают только @count[2] years в чем может быть косяк....блин...

Аватар пользователя artemrrr artemrrr 11 ноября 2013 в 22:53

Да да все так в смысле перевода, вот это у меня в шаблоне поля, может тут что не так.

<?php print $output;?> 
<?php
  
print format_plural($fields['field-age-value']->content'1 year''@count years');
?>

p.s.Кеш чистил.Продолжает реагировать только на перевод строки @count[2] years

Аватар пользователя CSoft CSoft 11 ноября 2013 в 22:51

"artemrrr" wrote:
Да да все так

В смысле? Пример кода на скриншоте выше даёт правильный результат или нет?

Аватар пользователя CSoft CSoft 11 ноября 2013 в 22:55

Я правильно понял, что Вы пробовали писать вместо

"artemrrr" wrote:
print format_plural($fields['field-age-value']->content, '1 year', '@count years');

например:

"artemrrr" wrote:
print format_plural(1, '1 year', '@count years');

и это ничего не дало?

Если да - сайт на хостинге? Доступ дать сможете? Безумно интересно, почему у всех работает кроме Вас.

Аватар пользователя artemrrr artemrrr 11 ноября 2013 в 23:09

"CSoft" wrote:
сайт на хостинге?
Пока нет, откладываю уже 6 месяцев(боюсь наверно)
пробывал вот так:<?php print format_plural(21,'1 year''@count years');?> распознает верно вместо лет пишит год (после моего числа пишит 21 год) по всей видимости это в коде PHP он как то поле не понимает что ли в смысле ($fields['field-age-value']->content, а как еще можно написать?

Аватар пользователя CSoft CSoft 11 ноября 2013 в 23:13

"CSoft" wrote:
В смысле? Пример кода на скриншоте выше даёт правильный результат или нет?

"artemrrr" wrote:
нет неправельный

"artemrrr" wrote:
пробывал вот так:<?php print format_plural(21,'1 year', '@count years');?> распознает верно

Издеваетесь? На один и тот же вопрос отвечаете по-разному. Вообще наудачу переспросил...

Попробуйте так для интереса поле ввести:

(int) $fields['field-age-value']->content

Поле вообще числовое? Ничего лишнего не выводит кроме цифр?

Аватар пользователя artemrrr artemrrr 11 ноября 2013 в 23:19

Ребята всё! нащупал!

<?php
  
print format_plural($output'1 year''@count years');
?>

Вот так работает!!! Вы извините за головоломку!!! Спасибо Вам большое за то что уделили время.

p.s. Может я туповат, а может просто из за того что с утра перед компом туплю под вечер.

Аватар пользователя CSoft CSoft 11 ноября 2013 в 23:28

Вы ничего не путаете? В views-view-field>>>s<<<.tpl.php поля выводятся через метод, что я писал в теме, а в views-view-field.tpl.php - в переменной $output.

Аватар пользователя CSoft CSoft 11 ноября 2013 в 23:30

Больше вопросов не имею Smile В следующий раз старайтесь писать побольше деталей подобного рода, чтобы мы меньше гадали и Вас меньше мучали Smile