В компоненте Фотобитвы доработанные Kreator есть небольшая ошибка. Попросил Kreator помочь — сказал некогда.
Ошибка в следующем:
На странице фотобитв под 2-м и 3-м местом фотографий есть ссылка на юзера который его разместил, ссылка определяет id юзера и должна вести на его страницу. Вместо id юзера, в ссылку вставляется id порядкового номера фотографии которое он загрузил. В результате при нажатии на ссылку открывается профиль совсем другого юзера.
Вот код страницы битв battle.tpl.php
<?php $this->addCSS('//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css'); if ($page>1) { $title_page = ' / '. $page . ' страница '; } else { $title_page = ''; } $this->setPageTitle($battle['title'].$title_page); $this->addBreadcrumb(LANG_PHOTOBATTLE_CONTROLLER, $this->href_to('')); $this->addBreadcrumb($battle['title']); $config = cmsConfig::getInstance(); $is_show_names = $this->controller->options['show_names']; $is_can_join = cmsUser::isAllowed('battles', 'join'); $user = cmsUser::getInstance(); $page_link = $config->host . $this->href_to('') . '/battle/' . $battle['id']; $page_title = $battle['title']; $is_can_edit = $battle['id'] > 2 && ($user->is_admin || cmsUser::isAllowed('battles', 'edit', 'all') || (cmsUser::isAllowed('battles', 'edit', 'own') && $battle['user_id']==$user->id)); if ($is_can_edit){ if ($battle['status'] != photobattle::STATUS_OPENED){ 'class' => 'accept', 'title' => LANG_PHOTOBATTLE_START, 'href' => $this->href_to('start', $battle['id']) )); } if ($battle['status'] == photobattle::STATUS_OPENED){ 'class' => 'cancel', 'title' => LANG_PHOTOBATTLE_STOP, 'href' => $this->href_to('stop', $battle['id']) )); } 'class' => 'edit', 'title' => LANG_PHOTOBATTLE_EDIT, 'href' => $this->href_to('edit', $battle['id']) )); 'class' => 'delete', 'title' => LANG_PHOTOBATTLE_DELETE, 'href' => $this->href_to('delete', $battle['id']), 'onclick' => 'return confirm()' )); } 0 => LANG_PHOTOBATTLE_STATUS_PENDING, 1 => LANG_PHOTOBATTLE_STATUS_MODERATION, 2 => '', //Идет 3 => LANG_PHOTOBATTLE_STATUS_CLOSED, ); if ($page>1) $back = '?back='.$page; ?> <script type="text/javascript" src="//yastatic.net/share/share.js" charset="utf-8"></script> <div style="float: right;" class="yashare-auto-init" data-yashareL10n="ru" data-yashareTitle="<?php echo $page_title; ?>" data-yashareLink="<?php echo $page_link; ?>" data-yashareType="small" data-yashareQuickServices="vkontakte,facebook,twitter,odnoklassniki,moimir,gplus" data-yashareTheme="counter"></div> <h1 style="margin-bottom: 5px;"><div class="pb_lined"></div><?php html($battle['title']); ?></h1> <div class="pb_desc" style="margin-bottom: 20px;"><?php html($battle['description']); ?></div> <div class="pb_header"> <div class="pb_status"> <?php echo $statuses_text[ $battle['status'] ]; ?> <?php if ($battle['status'] == photobattle::STATUS_OPENED && $battle['type'] && count($vote_photos)==2 && $user->id) { ?> <a href="/photobattle/battle/<?=$battle['id']?>"><i class="fa fa-thumbs-o-up"></i> Оценить фото</a> <?php } elseif ($battle['status'] == photobattle::STATUS_OPENED && $user->id) { ?> <i class="fa fa-thumbs-up"></i> <?php echo LANG_PHOTOBATTLE_YOU_VOTED; ?> <?php } elseif (!$user->id) { ?> Хочешь участвовать в рейтинге или оценить фотографии участников? (<a class="auth_popup_link" href="#">Вход</a> / <a href="/auth/register">Регистрация</a>) <?php } ?> </div> <div class="pb_link"> <?php if (($is_can_join && ($battle['status'] == photobattle::STATUS_PENDING || $battle['type'])) && $battle['status'] != photobattle::STATUS_CLOSED){ ?> <?php if ($battle['id'] > 2 && (!$is_user_in_battle || cmsUser::isAdmin())){ ?> <a class="pb_red" href="<?php echo $this->href_to('join', $battle['id']); ?>"><i class="fa fa-user-plus"></i> Участвовать</a> <?php } ?> <?php if ($battle['type']) { ?> <a href="<?php echo $this->href_to('battle/'.$battle['id'].'/resultat',false); ?>"><i class="fa fa-bar-chart"></i> Результаты</a> <?php } ?> <?php } ?> <a href="<?php echo $battle['inrules'] ? $battle['inrules'] : '/pages/12-obschie-pravila-fotokonkursov.html'; ?>"><i class="fa fa-link"></i> Правила</a> </div> </div> <?php if ($battle['status'] == photobattle::STATUS_CLOSED || ($battle['type'] && $battle['photos'])) { ?> <?php ?> <?php if($battle['id']!=2) { $size = 'big'; } else { $size = 'normal'; } ?> <?php if (!$page || $page==1) { ?> <div class="photobattle-winners"> <div class="place place-1"> <?php if ($battle['id']==1) { $photo['score'] = $photo['rating']; } ?> <?php if ($battle['id']==2) { $photo['user_nickname'] = $photo['nickname']; $photo['image'] = $photo['avatar']; $photo['score'] = $photo['rating']; $photo['user_id'] = $photo['id']; } ?> <?php echo html_image($photo['image'], $size); ?> <?php if ($is_show_names) { ?> <br /><a class="user" href="<?php echo href_to('users', $photo['user_id']); ?>"><i class="fa fa-user"></i> <?php echo $photo['user_nickname']; ?></a> <?php } ?> <?php if ($battle['id']>2 && ($is_can_edit || $photo['user_id']==$user->id)) { ?> <a class="delete" onclick="return confirm('Удалить фото?')" title="Удалить фото" href="<?php echo $this->href_to('delete_photo', $photo['id']).$back
#2
6 ноября 2017 в 09:02
На вскидку, без вникания в код, надо в строках 26, 47, 67, 98 заменить это
на это
$photo['user_id'] = $photo['id'];
$photo['user_id'] = $user->id
#3
6 ноября 2017 в 10:05
на это
Спасибо за ответ, проверил Ваш вариант работает!
но я заменил так, в строке 47 и 67 это:
" title="<?php if ($is_show_names) { echo $photo['user_nickname']; $photo['user_id'] = $photo['id']; } ?>">
" title="<?php if ($photo['title']) { echo $photo['title']. '. '; } ?><?php if ($is_show_names) { echo $photo['user_nickname']; } ?>">
Сегодня в 22:08
#4
6 ноября 2017 в 11:01
Тема решена, спасибо Loadырь!