Как организовать частичную блокировку контента статьи?

Всем привет!
Сейчас модно делать на сайтах блокировку контента и ее разблокировку после подписки\шаринга\лайка\оплаты и т.д.
Вот интересно, а как такое можно организовать? Погуглив ничего не нашел, кроме плагина для вордпресс.
Поделитесь мыслями, как бы вы реализовали такое? Может есть ссылки на англоязычные ресурсы, в рунете не удалось найти ровным счетом ничего.
  • Вопрос задан
  • 883 просмотра
Решения вопроса 1
@aleksejjjj
Не вдаваясь в подробности как все это сделать красиво - не понимаю о чем вопрос. Вот псевдокод на Laravel, думаю смысл поймете и легко переложите на любой другой движок:

<!-- Если залогинен - видит всю статью, иначе первые 256 символов -->
@if (Auth::user->check())
    {{ $article->text }}
@else
    {{ mb_substr ( $article->text, 0, 256) }}

    <!-- UPD: бонус -->
    <script>alert('Войдите или зарегистрируйтесь чтобы прочитать статью полностью!');</script>
@endif


P.S. искренне не понимаю какого чуда тут ожидают 7 подписавшихся. Вроде вопрос то элементарный.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Eridani
@Eridani
Мимо проходил
Ну как. Записывать в таблицу к юзеру значение, например, после успешной оплаты - оно позволяет ему просматривать этот контент, и в статье проверять, есть ли у текущего юзера это значение или нет.
Ответ написан
VoidVolker
@VoidVolker
Никак. Это не несет какого-либо практического смысла и только мешает пользователям сайта, а так же снижает репутацию сайта в глазах пользователя. А кому надо скопировать — скопирует в любом случае. Два дополнительных клика для открытия текста в девтулз или принтскрин.
Ответ написан
@Siberian_Bear
Вообще да, я тоже не понимаю сложности вопроса. Программист я так себе, но это же вопрос логики.
Я рекомендую в пользовательском редакторе сделать новый элемент "ограничитель" - т.е. пользователь указывает, где в теле текста вставить специфический тег. визуально тоже его отображаете.
При каждом запросе на отображение текста:
а) проверяете, есть ли у пользователя права на полный просмотр. если нет:
б) текст берете из поля БД, рубите всё, что после тега "ограничителя" и формируете ответ.

Вариант с двумя полями еще проще технически. Но авторам не так красиво, имхо. Конечно, они бы могли разные тексты сделать (сжатый анонс для бесплатного и полноценный платный, без этого самого анонса). Но это менее вероятно для такой задачи.

И главное правило - никогда не отдавайте текст на клиент без проверок пользователя. Иначе, кому надо, вскроют.
Ответ написан
teke_teke
@teke_teke
programador
делите тело статьи на 2 части.

если какое-то условие истинно, например, пользователь незалогиненный, то показываете 1ую часть.
если залогинен, то 2 части.

делать mb_substr не нужно потому что вы можете порезать её на полуслове или тэг обрезать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
ВиртуалПос Санкт-Петербург
от 80 000 до 100 000 руб.
Finch Москва
от 120 000 до 150 000 руб.
DDelivery Москва
от 70 000 до 100 000 руб.
21 окт. 2018, в 12:15
100000 руб./за проект
21 окт. 2018, в 09:51
12000 руб./за проект
21 окт. 2018, в 02:06
500 руб./в час