А

Александр

+731
Репутация
15744
Рейтинг
#1 файл 1 июля 2010 в 01:29
Это наше с ним переписка. Просто человек не смог зайти в файлы пользователя, поэтому создал тему и выложил файл. Ничего тут исправлять не стоит. Не обращайте внимания!
#2 Последние сообщения с форума 23 июня 2010 в 21:52
Смотри у меня в блоге решение этой головоломки laugh
#3 22 июня 2010 в 21:45

Вопрос примерно то-же: Как сделать фильтр по двум критериям одновременно: по ФАКУЛЬТЕТУ и по ГОДУ ПОСТУПЛЕНИЯ В ИНСТИТУТ (или окончания)?!




Задача: Искать людей с Факультетом и датой поступления. Необходимо совпадение обоих полей.

РЕШЕНИЕ:

Добавим поиск по дате поступления.
Заходим в конструктор форм-анкета пользователя-поля-создаем выпадающий список "дата поступления" с полями
2000/2001/2002/2003/2004/2005/2006/2007/2008/2009/2010
(! тут уже создано поле факультет, кстати!)

В components\users\router.php добавим новое правило:

после
  1.  
  2. //RewriteRule ^users/hobby/(.*)$ /index.php?view=users&do=hobby&hobby=$1
  3. $routes[] = array(
  4. '_uri' => '/^users\/hobby\/(.+)$/i',
  5. 'do' => 'hobby',
  6. 1 => 'hobby'
  7. );
  8.  
напишем

  1.  
  2. //Новое правило для поиска пользователей
  3. $routes[] = array(
  4. '_uri' => '/^users\/facultet.html$/i',
  5. 'do' => 'facultet',
  6. 1 => 'facultet'
  7. );
  8.  


components\users\frontend.php после
  1.  
  2. ////////////////////////////// SEARCH BY HOBBY (description part) ////////////////
  3. if ($do=='hobby'){
  4.  
  5.  
  6. $hobby = $inCore->request('hobby', 'str', '');
  7.  
  8. $hobby = str_replace('\"', '"', $hobby);
  9.  
  10. $hobby = strtolower($hobby);
  11.  
  12. $querysql = "SELECT u.*, p.*, u.id as id, u.regdate as fregdate, u.logdate as flogdate
  13. FROM cms_users u, cms_user_profiles p
  14. WHERE u.is_locked = 0 AND p.user_id = u.id AND (LOWER(p.description) LIKE '%$hobby%' OR LOWER(p.formsdata) LIKE '%$hobby%') AND u.is_deleted = 0
  15. ORDER BY city DESC";
  16.  
  17. if ($hobby == 'facultet1') {$hobby = 'Математика';}
  18. if ($hobby == 'facultet2') {$hobby = 'Биология';}
  19. if ($hobby == 'facultet3') {$hobby = 'Физика';}
  20. if ($hobby == 'facultet4') {$hobby = 'Геология';}
  21. if ($hobby == 'facultet5') {$hobby = 'Экономика';}
  22.  
  23. $querymsg = '<div class="con_description"><strong>'.$_LANG['SEARCH_BY_HOBBY'].':</strong> '.$hobby.' (<a href="/users/all.html">'.$_LANG['CANCEL_SEARCH_SHOWALL'].'</a>)</div>';
  24.  
  25. $do = 'view';
  26.  
  27. }
  28.  
  29.  
Допишем такие незамысловатые строки:

  1.  
  2. ////////////////////////////// Поиск по факультету / Год поступления //////////////
  3. if ($do=='facultet'){
  4.  
  5. $year = $inCore->request('year', 'str', '');
  6. $facultet = $inCore->request('fac', 'str', '');
  7. $str='';
  8. $value='';
  9. $fac='';
  10. if($inCore->request('year')) { $year = $inCore->request('year', 'str', ''); $value = 'Год поступления '.$year;};
  11. if($inCore->request('fac')) { $facultet = $inCore->request('fac', 'str', ''); };
  12. if(($inCore->request('year'))&&($inCore->request('fac'))) {$str=' / '; }
  13. $querysql = "SELECT u.*, p.*, u.id as id, u.regdate as fregdate, u.logdate as flogdate
  14. FROM cms_users u, cms_user_profiles p
  15. WHERE u.is_locked = 0 AND p.user_id = u.id AND (LOWER(p.formsdata) LIKE '%$year%' AND LOWER(p.formsdata) LIKE '%$facultet%') AND u.is_deleted = 0
  16. ORDER BY city DESC";
  17.  
  18.  
  19. if ($facultet == 'facultet1') {$fac = ' Факультет Математика';}
  20. if ($facultet == 'facultet2') {$fac = ' Факультет Биология';}
  21. if ($facultet == 'facultet3') {$fac = ' Факультет Физика';}
  22. if ($facultet == 'facultet4') {$fac = ' Факультет Геология';}
  23. if ($facultet == 'facultet5') {$fac = ' Факультет Экономика';}
  24.  
  25. $querymsg = '<div class="con_description"><strong>'.$_LANG['SEARCH_BY_HOBBY'].':</strong> '.$value.''.$str.''.$fac.' (<a href="/users/all.html">'.$_LANG['CANCEL_SEARCH_SHOWALL'].'</a>)</div>';
  26.  
  27. $do = 'view';
  28.  
  29. }
  30.  
Ну и в шаблон допишем
  1. <form id="facultet" name="facultet" method="post" action="/users/facultet.html">
  2. <input type="hidden" name="fac"/>
  3. <div class="stat_block">
  4. <div class="title">Факультет</div>
  5. <div class="body">
  6.  
  7. <select name="fac" id="fac" style="width:300px">
  8. <option value="0" selected>{$LANG.NOT_SPECIFIED}</option>
  9. <option value="facultet1">Математика</option>
  10. <option value="facultet2">Биология</option>
  11. <option value="facultet3">Физика</option>
  12. <option value="facultet4">Геология</option>
  13. <option value="facultet5">Экономика</option>
  14. </select>
  15. </div>
  16. </div>
  17.  
  18. <div class="stat_block">
  19. <div class="title">Дата поступления</div>
  20. <div class="body">
  21. <input type="hidden" name="year"/>
  22. <select name="year" id="year" style="width:300px">
  23. <option value="0" selected>{$LANG.NOT_SPECIFIED}</option>
  24. <option value="2000">2000</option>
  25. <option value="2001">2001</option>
  26. <option value="2002">2002</option>
  27. <option value="2003">2003</option>
  28. <option value="2004">2004</option>
  29. <option value="2005">2005</option>
  30. <option value="2006">2006</option>
  31. <option value="2007">2007</option>
  32. <option value="2008">2008</option>
  33. <option value="2009">2009</option>
  34. <option value="2010">2010</option>
  35. </select>
  36. <input style="font-size:16px" name="search" type="submit" id="search" value="Найти" />
  37.  
  38. </div>
  39. </div>
  40. </form>
  41.  


То что было в первом совете оставим как было!!!

ВСЕ. Должно появиться два выпадающих списка и кнопка поиск!

У меня работает. С дизайном уже сам разберешся.
#4 22 июня 2010 в 19:21
В запросе
INSERT INTO `cms_modules` (`id`, `position`, `name`, `title`, `is_external`, `content`, `ordering`, `showtitle`, `published`, `user`, `config`, `original`, `css_prefix`, `allow_group`, `cache`, `cachetime`, `cacheint`, `template`) VALUES
(null, ’bottom’, ’wrapper’, ’wrapper’, 1, ’mod_wrapper’, 6, 1, 1, 0, ’’, 1, ’’, -1, 0, 1, ’HOUR’, ’module.tpl’)

Кавычки расставлены не верно.
Синтаксис не понятен.
Например id присваивается значение null !!!!?????????

Смотри такой запрос. В phpmyadmin сработал как надо!


INSERT INTO cms_modules (position, name, title, is_external, content, ordering, showtitle, published, user, config, original, css_prefix, allow_group, cache, cachetime, cacheint, template) VALUES
("bottom", "wrapper", "wrapper", 1, "mod_wrapper", 6, 1, 1, 0, "", 1, "", -1, 0, 1, "HOUR", "module.tpl")
#5 22 июня 2010 в 18:50
А еще, кому интересно, если добавить одну строчку кода,
можно сохранять изображение на сервер в формате "progressive JPEG" (сейчас просто JPEG).
Тогда фото будет сразу с "плохим качеством", а по мере загрузки — качество будет улучшаться.
Для этого перед вызовом функции imagejpeg нужно включить чересстрочное формирование изображения (функция imageinterlace)

  1.  
  2. //Создавать фото в формате progressive JPEG.
  3. //Изображение в формате progressive JPEG начинает отображаться в браузере
  4. //до окончания полной загрузки с постепенным увеличением качества.
  5. imageinterlace($idest,1);
  6. // вывод картинки и очистка памяти
  7. imagejpeg($idest,$dest,$quality);
  8.  
  9.  
#6 Как подправить просмотр изображений? 22 июня 2010 в 18:17

Очень нравится организация работы с фото как вконтакте.

У них шапка сайта узкая и ко всему этому размер фото подобран 500*500 чтоб в один экран все влазило.
#7 22 июня 2010 в 16:14
Забыл. Вот:
Прикрепленный файл
www_b2a4d.zip 36 Кб
#8 22 июня 2010 в 16:01
Значит переписал не грамотно!
Специально для тебя — устанавливаю с нуля Instant, пишу то что сказано...
У меня работает.
Вот мои файлы. Лови. Сравнишь на досуге.
#9 21 июня 2010 в 22:19

Где зарыта процедура ресайза фотки до размеров medium? Очень надо )


Да она зарыта в функции img_resize. В файле includes/graphic.inc.php
Правильно тебе говорили!
Только вот не сказали что ошибка в ней мааааленькая. Недочет. Описка. Как хотите называйте. Показываю:
  1.  
  2. function img_resize($src, $dest, $maxwidth, $maxheight=160, $is_square=false, $watermark=false, $rgb=0xFFFFFF, $quality=75)
  3. {
  4. if (!file_exists($src)) return false;
  5.  
  6. $upload_dir = dirname($dest);
  7. if (!is_writable($upload_dir)){ @chmod($dest, 0755); }
  8.  
  9. $size = getimagesize($src);
  10.  
  11. if ($size === false) return false;
  12.  
  13. // Определяем исходный формат по MIME-информации, предоставленной
  14. // функцией getimagesize, и выбираем соответствующую формату
  15. // imagecreatefrom-функцию.
  16. $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
  17. $icfunc = "imagecreatefrom" . $format;
  18. if (!function_exists($icfunc)) return false;
  19.  
  20. $isrc = $icfunc($src);
  21.  
  22. $new_width = $size[0];
  23. $new_height = $size[1];
  24.  
  25. if($is_square){
  26. $idest = imagecreatetruecolor($maxwidth,$maxwidth);
  27. imagefill($idest, 0, 0, $rgb);
  28. // вырезаем квадратную серединку по x, если фото горизонтальное
  29. if ($new_width>$new_height)
  30. imagecopyresampled($idest, $isrc, 0, 0, round((max($new_width,$new_height)-min($new_width,$new_height))/2), 0, $maxwidth, $maxwidth, min($new_width,$new_height), min($new_width,$new_height));
  31. // вырезаем квадратную верхушку по y,
  32. if ($new_width<$new_height)
  33. imagecopyresampled($idest, $isrc, 0, 0, 0, 0, $maxwidth, $maxwidth, min($new_width,$new_height), min($new_width,$new_height));
  34. // квадратная картинка масштабируется без вырезок
  35. if ($new_width==$new_height)
  36. imagecopyresampled($idest, $isrc, 0, 0, 0, 0, $maxwidth, $maxwidth, $new_width, $new_width);
  37. } else {
  38. while ($new_width>$maxwidth) { $new_width *= 0.99; $new_height *= 0.99; }
  39. while ($new_height>$maxheight) { $new_width *= 0.99; $new_height *= 0.99; }
  40. $idest = imagecreatetruecolor($new_width, $new_height);
  41. imagefill($idest, 0, 0, $rgb);
  42. imagecopyresampled($idest, $isrc, 0, 0, 0, 0, $new_width, $new_height, $size[0], $size[1]);
  43.  
  44. }
  45.  
  46. if ($watermark) { img_watermark($idest, $new_width, $new_height); }
  47.  
  48. // вывод картинки и очистка памяти
  49. imagejpeg($idest,$dest,$quality); //ТУТ И ПРИСХОДИТ САМОЕ ИНТЕРЕСНОЕ!!!!!!!!!!!!!!!!!!!!!!!
  50.  
  51. imagedestroy($isrc);
  52. imagedestroy($idest);
  53. return true;
  54. }
  55.  
Функция imagejpeg() не передает параметр $quality, а по умолчанию она равна 75 (могу ошибаться)
Поправь как в примере. И попробуй поиграть с параметром $quality (1..100)
#10 21 июня 2010 в 21:46
Если формы создавались через конструктор, тут немного по другому.
Так. Задача стоит добавить именно поиск по факультетам...

Хорошо. Создаем в конструкторе форм дополнительное поле:
тип поля — выпадающий список;
заголовок — Факультет;

ну и поля (!!! Пишем латинскими буквами, чтоб потом небыло геммороя при задании ссылок!!!!!)

facultet1/facultet2/facultet3/facultet4/facultet5

Не боись, потом их поменяем на русские :)


В файле шаблона templates\_default_\components\com_users_view.tpl пишем:



  1. <div class="stat_block">
  2. <div class="title">Факультет</div>
  3. <div class="body">
  4. <ul>
  5. <li><a href="/users/hobby/facultet1" rel=”nofollow”>Математика</a></li>
  6. <li><a href="/users/hobby/facultet2" rel=”nofollow”>Биология</a></li>
  7. <li><a href="/users/hobby/facultet3" rel=”nofollow”>Физика</a></li>
  8. <li><a href="/users/hobby/facultet4" rel=”nofollow”>Геология</a></li>
  9. <li><a href="/users/hobby/facultet5" rel=”nofollow”>Экономика</a></li>
  10. </ul>
  11. </div>
  12. </div>
  13.  
В components\users\frontend.php сотрем старые строчки и напишем свои.........

  1. /////////////////////////////// SEARCH BY HOBBY (description part) ///////////////////////////////////////////////////////////////////
  2. if ($do=='hobby'){
  3.  
  4. $hobby = $inCore->request('hobby', 'str', '');
  5.  
  6. $hobby = str_replace('\"', '"', $hobby);
  7.  
  8. $hobby = strtolower($hobby);
  9.  
  10. $querysql = "SELECT u.*, p.*, u.id as id, u.regdate as fregdate, u.logdate as flogdate
  11. FROM cms_users u, cms_user_profiles p
  12. WHERE u.is_locked = 0 AND p.user_id = u.id AND (LOWER(p.description) LIKE '%$hobby%' OR LOWER(p.formsdata) LIKE '%$hobby%') AND u.is_deleted = 0
  13. ORDER BY city DESC";
  14.  
  15.  
  16.  
  17. if ($hobby == 'facultet1') {$hobby = 'Математика';}
  18. if ($hobby == 'facultet2') {$hobby = 'Биология';}
  19. if ($hobby == 'facultet3') {$hobby = 'Физика';}
  20. if ($hobby == 'facultet4') {$hobby = 'Геология';}
  21. if ($hobby == 'facultet5') {$hobby = 'Экономика';}
  22.  
  23. $querymsg = '<div class="con_description"><strong>'.$_LANG['SEARCH_BY_HOBBY'].':</strong> '.$hobby.' (<a href="/users/all.html">'.$_LANG['CANCEL_SEARCH_SHOWALL'].'</a>)</div>';
  24.  
  25. $do = 'view';
  26.  
  27. }
  28. /////////////////////////////////////////////////////////


Проведем корректировку функции usrForm в components\users\includes\userforms.php для подмены ссылок на правильные:


  1. function usrForm($user_id, $form_id, $formsdata){
  2. global $_LANG;
  3. $inCore = cmsCore::getInstance();
  4. $inDB = cmsDatabase::getInstance();
  5. $html = '';
  6.  
  7. //GET FORM DATA
  8. $sql = "SELECT *
  9. FROM cms_forms
  10. WHERE id = $form_id";
  11. $result = $inDB->query($sql) ;
  12.  
  13. if (!$inDB->num_rows($result)) { return false; }
  14. else {
  15. $form = $inDB->fetch_assoc($result);
  16. //BUILD FORM
  17. $html .= '<div id="usr_prof_form">';
  18. //GET FIELDS DATA
  19. $sql = "SELECT * FROM cms_form_fields WHERE form_id = $form_id ORDER BY ordering ASC";
  20. $result = $inDB->query($sql) ;
  21. if ($inDB->num_rows($result)){
  22. //BUILD FORM FIELDS
  23. $html .= '<table cellpadding="0" cellspacing="0">';
  24. while($field = $inDB->fetch_assoc($result)){
  25. $html .= '<tr><td valign="top" id="title">';
  26. $html .= '<strong>'.$field['title'].'</strong>';
  27.  
  28. $default = '<em>'.$_LANG['NOT_SET'].'</em>';
  29. if(is_array($formsdata)){
  30. if (array_key_exists($field['id'], $formsdata)){
  31. if ($formsdata[$field['id']]){
  32. $default = $formsdata[$field['id']];
  33. $default = nl2br($default);
  34. }
  35. }
  36. }
  37. $link = cmsPage::getMetaSearchLink('/users/hobby/', $default);
  38.  
  39. if ($default == 'facultet1') {$link = '<a href="/users/hobby/facultet1">Математика</a>';}
  40. if ($default == 'facultet2') {$link = '<a href="/users/hobby/facultet2">Биология</a>';}
  41. if ($default == 'facultet3') {$link = '<a href="/users/hobby/facultet3">Физика</a>';}
  42. if ($default == 'facultet4') {$link = '<a href="/users/hobby/facultet4">Геология</a>';}
  43. if ($default == 'facultet5') {$link = '<a href="/users/hobby/facultet5">Экономика</a>';}
  44. $html .= '<td valign="top" id="field">'.$link.'</td></tr>';
  45. }
  46. $html .= '</table>';
  47. } else { $html .= '<p>'.$_LANG['IN_FORM'].' "'.$form['title'].'" '.$_LANG['NOT_FIELDS'].'.</p>'; }
  48.  
  49. $html .= '</div>';
  50. }
  51. return $html;
  52. }
И еще поправим в core\classes\page.class.php


  1. //////////////////////////////////////////////////////////////////////////////////
  2. //////////////////////////////////////////////////////////////////////////////////
  3. /**
  4.  * Генерирует и возращает html-код поля формы
  5.  * @param array $field
  6.  * @param string $default
  7.  * @return html
  8.  */
  9. public function buildFormField($form_id, $field, $default=''){
  10.  
  11. $html = '';
  12. $cfg = unserialize($field['config']);
  13.  
  14. $style = 'background-color:white';
  15.  
  16. if(isset($_SESSION['form_last'.$form_id])){
  17. if (isset($_SESSION['form_last'.$form_id][$field['id']])){
  18. $cfg['default'] = $_SESSION['form_last'.$form_id][$field['id']];
  19. }
  20. }
  21.  
  22. if ($default){
  23. $cfg['default'] = $default;
  24. }
  25.  
  26. switch($field['kind']){
  27. case 'text': $html .= '<input type="text"
  28. name="field['.$field['id'].']"
  29. maxlength="'.$cfg['max'].'"
  30. size="'.$cfg['size'].'"
  31. value="'.$cfg['default'].'"
  32. style="'.$style.'"
  33. />';
  34. break;
  35. case 'textarea': $html .= '<textarea name="field['.$field['id'].']"
  36. maxlength="'.$cfg['max'].'"
  37. cols="'.$cfg['size'].'"
  38. rows="'.$cfg['rows'].'" style="'.$style.'">'.$cfg['default'].'</textarea>';
  39. break;
  40. case 'checkbox': $html .= '<label><input type="radio" name="field['.$field['id'].']" value="Да" ';
  41. if($cfg['checked']) { $html .= 'checked'; }
  42. $html .= '/>Да</label> ';
  43. $html .= '<label><input type="radio" name="field['.$field['id'].']" value="Нет" ';
  44. if(!$cfg['checked']) { $html .= 'checked'; }
  45. $html .= '/>Нет</label> ';
  46. break;
  47. case 'radiogroup': $items = explode('/', $cfg['items']);
  48. foreach($items as $i){
#11 Странный глюк пользовательской меню 19 июня 2010 в 18:30
Если мы говорим о меню пользователя, которое находится под аватором, то опять шаблон косячит.
Открываешь templates\Шаблон\components\com_users_profile.tpl и находишь такие вот строчки:
  1. {if $is_auth}
  2. <div id="usermenu" style="text-align:center;">{$usr.menu}</div>
  3. {/if}
И полностью меняешь их на

  1. {if $is_auth}
  2. {* ===============================меню в профиле================================================= *}
  3. <div id="usermenu" style="text-align:center;">
  4. <div class="usr_profile_menu">
  5. <table cellpadding="0" cellspacing="1" align="center" style="margin-left:auto;margin-right:auto"><tr>
  6. {if !$myprofile}
  7. <td><a href="/users/{$usr.id}/sendmessage.html" title="{$LANG.WRITE_MESS}"><img src="/components/users/images/profilemenu/message.gif" border="0"/></a></td>
  8. {/if}
  9. {if !$myprofile && $cfg.sw_friends}
  10. {if !$usr.isfriend}
  11. {if !$usr.isfriend_not_add}
  12. <td><a href="/users/{$usr.id}/friendship.html" title="{$LANG.ADD_TO_FRIEND}"><img src="/components/users/images/profilemenu/friends.gif" border="0"/></a></td>
  13. {else}
  14. <td><a href="/users/{$usr.id}/nofriends.html" title="{$LANG.STOP_FRIENDLY}"><img src="/components/users/images/profilemenu/nofriends.gif" border="0"/></a></td>
  15. {/if}
  16. {else}
  17. <td><a href="/users/{$usr.id}/nofriends.html" title="{$LANG.STOP_FRIENDLY}"><img src="/components/users/images/profilemenu/nofriends.gif" border="0"/></a>
  18. {/if}
  19. {/if}
  20. {if !$myprofile}
  21. {if $is_admin}
  22. {if !$usr.banned}
  23. <td><a href="/users/{$usr.id}/giveaward.html" title="{$LANG.TO_AWARD}"><img src="/components/users/images/profilemenu/award.gif" border="0"/></a></td>
  24. <td><a href="/admin/index.php?view=userbanlist&do=add&to={$usr.id}" title="{$LANG.TO_BANN}"><img src="/components/users/images/profilemenu/ban.gif" border="0"/></a></td>
  25. {/if}
  26. <td><a href="/users/{$usr.id}/delprofile.html" title="{$LANG.DEL_PROFILE}"><img src="/components/users/images/profilemenu/delprofile.gif" border="0"/></a></td>
  27. {/if}
  28. {/if}
  29. {if $myprofile}
  30. {if $cfg.sw_msg}
  31. <td><a href="/users/{$usr.id}/messages.html" title="{$LANG.MY_MESS}"><img src="/components/users/images/profilemenu/message.gif" border="0"/></a></td>
  32. {/if}
  33. <td><a href="/users/{$usr.id}/editprofile.html" title="{$LANG.CONFIG_PROFILE}"><img src="/components/users/images/profilemenu/edit.gif" border="0"/></a></td>
  34. <td><a href="/users/{$usr.id}/avatar.html" title="{$LANG.SET_AVATAR}"><img src="/components/users/images/profilemenu/avatar.gif" border="0"/></a></td>
  35. {if $usr.can_add_foto}
  36. <td><a href="/users/{$usr.id}/addphoto.html" title="{$LANG.ADD_PHOTO}"><img src="/components/users/images/profilemenu/addphoto.gif" border="0"/></a></td>
  37. {/if}
  38. {/if}
  39. {if $is_admin && !$myprofile}
  40. <td><a href="/users/{$usr.id}/editprofile.html" title="{$LANG.CONFIG_PROFILE}"><img src="/components/users/images/profilemenu/edit.gif" border="0"/></a></td>
  41. {/if}
  42. <td><a href="/users/{$usr.id}/karma.html" title="{$LANG.KARMA_HISTORY}"><img src="/components/users/images/profilemenu/karma.gif" border="0"/></a></td>
  43. </tr></table></div>
  44. </div>
  45. {* ================================================================================ *}
  46. {/if}
  47.  
Если это не поможет, выложи свой com_users_profile.tpl, я посмотрю.
А так тяжело говорить в слепую, пологаясь только на интуицию…
#12 Странный глюк пользовательской меню 19 июня 2010 в 18:20
По конкретней можно? Какие иконки???
#13 Странный глюк пользовательской меню 19 июня 2010 в 16:51
Спасибо это много.
zst
#14 Странный глюк пользовательской меню 19 июня 2010 в 16:47
А то что во вкладке "контент" слеш дублируется посмотри ссылки в templates\ШАБЛОН\components\com_users_profile.tpl
в строках
  1. {if $cfg.sw_comm}
  2. <div id="usr_comments">
  3. <a href="/users/{$usr.id}/comments.html">{$LANG.USR_COMMENTS}</a> ({$usr.comments_count})
  4. </div>
  5. {/if}
  6. {if $cfg.sw_photo}
  7. <div id="usr_photoalbum">
  8. <a href="/users/{$usr.id}/photoalbum.html">{$LANG.PHOTOALBUM}</a> ({$usr.photos_count})
  9. </div>
  10. {/if}
  11. {if $cfg.sw_files}
  12. <div id="usr_files">
  13. <a href="/users/{$usr.id}/files.html">{$LANG.FILES}</a> ({$usr.files_count})
  14. </div>
  15. {/if}
  16. {if $cfg.sw_board}
  17. <div id="usr_board">
  18. <a href="/users/{$usr.id}/board.html">{$LANG.ADVS}</a> ({$usr.board_count})
  19. </div>
  20. {/if}
Должно быть как написано!
А именно:
  1.  
  2. <a href="/users/{$usr.id}/comments.html">{$LANG.USR_COMMENTS}</a>
  3. <a href="/users/{$usr.id}/photoalbum.html">{$LANG.PHOTOALBUM}</a>
  4. <a href="/users/{$usr.id}/files.html">{$LANG.FILES}</a>
  5. <a href="/users/{$usr.id}/board.html">{$LANG.ADVS}</a>
  6.  
#15 Странный глюк пользовательской меню 19 июня 2010 в 16:38
Ну вот и твоя ошибочка, смотри ссылки a href="":
  1. <td width="27"><img src="/components/users/images/menu/my-photos.gif" border="0"/></td>
  2. <td><a href="/users/0/{$id}/photoalbum.html">Фотоальбом</a></td>
  3. </tr>
  4. {/if}
  5. {if $users_cfg.sw_board}
  6. <tr>
  7. <td width="27"><img src="/components/users/images/menu/my-board.gif" border="0"/></td>
  8. <td><a href="/users/0/{$id}/board.html">Объявления</a></td>
Надо поменять ссылки:
  1. <a href="/users/{$id}/photoalbum.html">Фотоальбом</a>
  2. <a href="/users/{$id}/board.html">Объявления</a>
И все!
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.