Скрытие поля сверху после входа в систему

0

У меня есть следующая строка кодов:

<div align="center" style="margin-bottom: 5px; margin-top: 35px;">
<!-- AD CODE HERE -->
</div>

Пожалуйста, следуйте моему сайту: http://www.electronicsforum.in/

Когда он является гостевым пользователем, он показывает всплывающее сообщение " Пожалуйста, войдите/зарегистрируйтесь ". У меня нет проблем с этим.
Но после входа в систему я хочу скрыть margin-top div.

  • 0
    если вы не можете изменить php для удаления верхнего поля, просто добавьте следующий код в header.php
Теги:
smf-forum
smf

4 ответа

1
Лучший ответ

Этот код ниже устраняет проблему на www.electronicsforum.in

global $context;
if ($context['user']['is_logged']) {
echo'<div align="center" style="margin-bottom:5px; margin-top: 5px;"> ---Ad Code Here 1-- </div>';
}
else
{
echo'<div align="center" style="margin-bottom: 5px; margin-top: 35px;"> ---Ad Code Here else-- </div>';
}
1

это не wordpress, его форумное программное обеспечение под названием Simple Machines Forum (SMF).. и этот код ниже, просто для примера условий, используемых для входа в систему в SMF.

// If the user is logged in, display stuff like their name, new messages, etc.
   if ($context['user']['is_logged'])
   {
      if (!empty($context['user']['avatar']))
         echo '
            <p class="avatar">', $context['user']['avatar']['image'], '</p>';
      echo '
            <ul class="reset">
               <li class="greeting">', $txt['hello_member_ndt'], ' <span>', $context['user']['name'], '</span></li>
               <li><a href="', $scripturl, '?action=unread">', $txt['unread_since_visit'], '</a></li>
               <li><a href="', $scripturl, '?action=unreadreplies">', $txt['show_unread_replies'], '</a></li>';

      // Is the forum in maintenance mode?
      if ($context['in_maintenance'] && $context['user']['is_admin'])
         echo '
               <li class="notice">', $txt['maintain_mode_on'], '</li>';

также, для гостей, тот же код начнется с

 if ($context['user']['is_guest'])
       {
         echo '

Это может помочь вам, ребята, найти решение.

1

Что происходит

В настоящее время HTML-шаблон, который вы используете, помещает div содержащий объявления, перед div содержащим сообщение, сообщающее людям регистрироваться/входить в систему. Так как регистр/Войти div должен быть на вершине, вы absolute ют position ИНГ его. Это заставляет вас использовать margin-top в рекламном div.

У вас есть два варианта. Вы можете использовать любой встроенный язык, на котором он построен, чтобы запустить проверку того, входит ли пользователь в систему, и добавить класс, называемый loggedin в div объявлений, который установит margin-top loggedin 0.

Второй вариант - просто перевернуть вывод HTML, а затем удалить position:absolute из регистра/логина div. Поскольку вы ничего не говорите о том, как создается ваш сервер, я покажу вам, как сделать второй вариант.

Код

Текущий HTML

<div align="center" style="margin-bottom: 5px; margin-top: 35px;"></div>

<div id="topbar" onclick="document.getElementById('topbar').style.visibility='hidden'; window.location=smf_scripturl + '?action=register';"></div>

<div id="wrapper" style="width: 90%"></div>

Текущий CSS:

#topbar {
    background: #ffffe0;
    border-bottom: solid 1px #F0C36D;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    cursor: pointer;
    display: block;
    clear: both;
    float: left;
    left: 0px;
    padding: .45em .3em .45em 2em;
    position: absolute;
    top: 0px;
    width: 100%;
}

Новый HTML (мы переворачиваем верхние два div и удаляем margin-top:35px;)

<div id="topbar" onclick="document.getElementById('topbar').style.visibility='hidden'; window.location=smf_scripturl + '?action=register';"></div>

<div align="center" style="margin-bottom: 5px;"></div>

<div id="wrapper" style="width: 90%"></div>

Новый CSS (Удалить position:absolute;)

#topbar {
    background: #ffffe0;
    border-bottom: solid 1px #F0C36D;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    cursor: pointer;
    display: block;
    clear: both;
    padding: .45em .3em .45em 2em;
    width: 100%;
}

редактировать

Чтобы ответить на комментарий: вам потребуется условная проверка. Например, в WordPress я бы написал:

<div align="center" style="margin-bottom: 5px; <?php if (is_user_logged_in()) {echo 'margin-top:35px;'} ?>"></div>
  • 0
    Я использую PHP в качестве бэкэнда, поэтому я могу установить margin-top:0px; в функции входа ()? это будет работать ??
  • 0
    Отредактировано на примере.
0

Добавьте в свой заголовок:

    <?php if ( is_user_logged_in() ) { ?>
    <style type="text/css">
        #topbar{
            display:none;
        }
        body div:first-child {
            margin-top:0!important;
        }
    </style>
   <?php }?>

Изображение 174551

Ещё вопросы

Сообщество Overcoder
Наверх
Меню