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

Всем привет!
Сейчас модно делать на сайтах блокировку контента и ее разблокировку после подписки\шаринга\лайка\оплаты и т.д.
Вот интересно, а как такое можно организовать? Погуглив ничего не нашел, кроме плагина для вордпресс.
Поделитесь мыслями, как бы вы реализовали такое? Может есть ссылки на англоязычные ресурсы, в рунете не удалось найти ровным счетом ничего.
  • Вопрос задан
  • 880 просмотров
Решения вопроса 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
developer / me@alexmaslakov.me
делите тело статьи на 2 части.

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

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

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

Войти через TM ID
Похожие вопросы
17 авг. 2018, в 10:48
2500 руб./за проект
17 авг. 2018, в 10:46
50000 руб./в месяц
17 авг. 2018, в 06:14
40 руб./за 1000 зн.