Модификация модуля

#1 9 февраля 2011 в 00:05
Прифет всем! Не получилось модифицировать модуль прошу Вашей помощи и подсказки. В общем нужно было подстроить под себя модуль последние зареганные пользователи.

В этом модуле выводятся аватарки пользователя (она кликабельна) и ник пользователя тож кликабельный.

за первое отвечает:
  1. <a href="{profile_url login=$usr.login}" class="new_user_link" title="{$usr.nickname}">{$usr.avatar}</a>
за второе:
  1. <div class="mod_new_user_link"><a href="{profile_url login=$usr.login}">{$usr.nickname}</a></div>

требуется сделать ещё два слоя с возрастом пользователя и с его городом желательно Страна потом город

имеем конструкции:
  1. {$usr.birthdate}
  1. {$usr.city}
  1. {$usr.conrty}

Первый в слое позволяет выводить дату рождения, но мне дата рождения не нужна, поэтому я переделал как это было сказано в одном хаке под возраст в профиле пользователя ( к стати в профиле работает замечательно)

  1. <div class="value">{$usr.age}</div>
но если эту строчку вставить модуль последние регистрации то не работает. Идём дальше...

для города делаем дополнительный слой в диве
  1.  
  2. <div class="value">{$usr.city}</div>
но опять не отображается ничего, про страну пока не знаю как сделать. Помогите пожалуйста, может чтобы он начал там работать, что-то прописать дополнительно (в пхп не очень силён)
#2 9 февраля 2011 в 01:49
modules\mod_lastreg\module.php

тебе нужно доработать запрос, чтоб он дополнительно и город city тянул:

  1. $sql = "SELECT u.*, p.imageurl, p.city
  2. FROM cms_users u
  3. LEFT JOIN cms_user_profiles p ON p.user_id = u.id
  4. WHERE u.is_deleted = 0 AND u.is_locked=0
  5. ORDER BY u.regdate DESC
  6. LIMIT ".$cfg['newscount']."
  7. ";
теперь эта конструкция по идее должна сработать
  1. <div class="value">{$usr.city}</div>
ДАЛЬШЕ....

  1. <div class="value">{$usr.age}</div>
кроме того что ты пропишешь $usr.age в шаблоне — нужно опеределить этот элемент в файле
modules\mod_lastreg\module.php

я переделал как это было сказано в одном хаке под возраст в профиле пользователя ( к стати в профиле работает замечательно)

ну так разберись лучше в этом хаке.там наверное еще кроме шаблона components\users\frontend.php редактировался???

Ну а про страну {$usr.conrty} это уж как нибудь сам… где такое поле в базе есть? в стандартной сборке вроде нет. если добавлял свои — то опять же, пляши от modules\mod_lastreg\module.php и правь запрос.
#3 9 февраля 2011 в 22:58

там наверное еще кроме шаблона components\users\frontend.php редактировался???


он там редактировался

сначала вставлялся код корректно пересчитывающий лет, год, года

  1. function AgeToStr($Age)
  2. {if(($Age>=5) && ($Age<=14)) $str = "лет"; else { $num = $Age - (floor($Age/10)*10); if($num == 1) { $str = "год"; } elseif($num == 0) { $str = "лет"; } elseif(($num>=2) && ($num<=4)) { $str = "года"; } elseif(($num>=5) && ($num<=9)) { $str = "лет"; } } return $Age . " " . $str ; }
  3.  

а потом сам запрос

  1. $sql = "SELECT birthdate,(YEAR(CURRENT_DATE)-YEAR(birthdate))-(RIGHT(CURRENT_DATE,5)<RIGHT(birthdate,5))AS age FROM cms_users WHERE id=$id";
  2. $result = $inDB->query($sql);
  3. $r = mysql_fetch_array($result) ;
  4. $usr['age']=AgeToStr($r[age]) ;

после чего в \templates\_default_\components\com_users_profile.tpl

вставлялся
  1. <div class="value">{$usr.age}</div>

кстати спасибо огромное. Город после того как я добавил p.city стал отображаться. Вот если б ещё и возраст, был бы просто счастлив!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.