Помогите создать кнопку "Отправить сообщение автору"

InstantCMS 2.X
#1 21 марта 2019 в 11:43
Я создал определенные типы контента на которых необходимо вывести кнопку "Отправить сообщение автору" (в итемах, а не в листе). Как сделать? Где копать?
#2 21 марта 2019 в 12:15
  1.  
  2. <?php if ($user->is_logged){ ?>
  3. <a class="messages ajax-modal" href="<?php echo href_to('messages','write', $item['user_id']); ?>"> Написать сообщение автору</a>
  4. <?php } ?>
  5.  
#3 21 марта 2019 в 13:59


  1.  
  2.  
  3.  
  4.  

Killer's dream

Спасибо! Поставил. Работает после танцев с бубном. Вопрос: Корректно ли то что кнопка отображается автору контента?
#4 21 марта 2019 в 14:11

Работает после танцев с бубном

@nickverhov88
А в чем причина танцев была? Вы напишите что я не правильно указал, чтоб другие(кто захочет также) тоже знали где ошибка в коде.
#5 21 марта 2019 в 14:14

Корректно ли то что кнопка отображается автору контента?

@nickverhov88
изменить
  1. <?php if ($user->is_logged){ ?>
на
  1. <?php if ($user->is_logged && $user->id != $item['user_id']) { ?>
не будет показываться автору контента
#6 2 июля 2019 в 20:40


Я создал определенные типы контента на которых необходимо вывести кнопку "Отправить сообщение автору" (в итемах, а не в листе). Как сделать? Где копать?

@nickverhov88

Напиши плиз подробнее как реализовал? Тоже нужна такая Кнопочка)
#7 3 июля 2019 в 02:42
Tirpits, так выше уже дали ответ как сделать…
#8 3 июля 2019 в 12:37


Tirpits, так выше уже дали ответ как сделать...

Анна

А если поподробней совсем для чайников? В какой строке в каком файле этот код размещать?
#9 3 июля 2019 в 13:01
ignat, вставляется, если нужно, чтобы эта ссылка показывалась в записях, в файл template/content/default_item.tpl.php. Если вставить в самый его низ, то ссылка "Написать сообщение автору" будет показана после записи, выше блока "комментарии". У меня этот код такой:
  1. <?php if ($user->is_logged && $user->id != $item['user_id']) { ?>
  2. <div class="ajax-modal"><a title="Написать личное сообщение автору" class="ajaxlink" href="/messages/write/<?php echo $item['user_id']; ?>">Личное сообщение автору</a></div>
  3. <?php } ?>
тут в классе дива оставлил только ajax-modal (если еще и messages, то ссылка не срабатывает). И добавил класс для самой ссылки, чтобы она была аналогичной ссылке "написать комментарий" — с подчеркиванием точками.

У меня в свою очередь возник такой вопрос: в типах контента приведенный выше код работает, а вот если его вставить на страницах с фотографиями, то проверки на автора нет. Пробовал вместо $item['user_id'] вставлять $photo['user_id'], но без результата.
Подскажите, как выполнить проверку на автора для фотографий. Чтобы для автора фотографии ссылка "Личное сообщение автору" не показывалась?
#10 3 июля 2019 в 13:10
@Honko, наверно потому что там находятся все фотографии от разных пользователей
#11 3 июля 2019 в 13:11

Пробовал вместо $item['user_id'] вставлять $photo['user_id'], но без результата.

@Honko
  1. $photo['user']['id']
#12 3 июля 2019 в 13:11
А вот при просмотре самой фотографии должно работать по идее
#13 3 июля 2019 в 13:31
Killer's dream, вставляю в view.tpl.php
  1. <?php if ($user->is_logged && $user_id != $photo['user']['id']){ ?>
  2. <div class="ajax-modal"><a title="Написать сообщение автору" class="ajaxlink" href="/messages/write/<?php echo $photo['user_id']; ?>">Личное сообщение автору</a></div>
  3. <?php } ?>
ссылка формируется правильно (с id юзера — автора фото), но проверки на авторство нет — ссылка показывается и автору этой фоты. Куда копать?
#14 3 июля 2019 в 13:36
@Honko, 1 не равно 3 конечно покажет сообщение
#15 3 июля 2019 в 13:38

<?php if ($user->is_logged && $user_id != $photo['user']['id']){ ?>

@Honko
у вас здесь ошибка, надо не $user_id а $user->id
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.