Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.

Форум Флудильня Обо всем Как реализовать тег HIDE


Рустам (pilot233) 19 октября 2015 г.

Есть такая возможность реализации HIDE в diafan, иногда просто нужно что-то скрыть даже те-же ссылки которые просто в виде текста???

Denis (Drachoon) 13919 октября 2015 г.

CSS > display: none;

Рустам (pilot233) 19 октября 2015 г.

А по конкретнее, надо-же что-бы тег был какой-то и желательно кнопочка hide в редакторе

Владимир (voha2006) 5919 октября 2015 г.

Руками в редакторе (html) пишете класс <div class="hide">, а в css (допустим style.css) пишите .hide {display: none;}
В последующем, где будете указывать этот класс, контент внутри него будет скрыт.
Только не понятно зачем? От кого скрывать? Может от незарегистрированных? Тогда по другому.

Михаил (ZzzBep) 10219 октября 2015 г.

ну или доработать редактор , сделав в нем кнопку.

Владимир (voha2006) 5919 октября 2015 г.

Ага понял "Шо" за hide ))) Как предлагал Александр Биг ЭПЛ

Цитата
if(! $this->diafan->_users->id)
{


Контент для незарегистрированного пользователя.
Допустим ссылка на регистрацию и сообщение, что и как.



} else {

Контент, который должен быть на странице и доступен зарегистрированному пользователю.

}


Не пробовал, через кнопку, хотя если описать в .... Гы... Щас попробую ))))

Владимир (voha2006) 5919 октября 2015 г.

Не, хз как через редактор.

Сергей (darkheart) 2519 октября 2015 г.

Для редактора TinyMCE есть плагин спойлер - по сути это вам и нужно? Или имеется ввиду чтобы физически прятать ссылки и к прмиеру показывать только авторизованным пользователям? Если так то нет такого функционала из коробки нет

Владимир (voha2006) 5919 октября 2015 г.

Есть и плагин "hide" у phpbb, ток вот для какого редактора, в админке или на форуме?

Сергей (darkheart) 2519 октября 2015 г.

для контента в админке, на форуме же не используется TinyMCE

Владимир (voha2006) 5919 октября 2015 г.

Так вопрос про TinyMCE и не стоял, это уже мы развили Был редактор, а какой?

Владимир (voha2006) 5919 октября 2015 г.

Если только руками.
Вот так можно, через жо..:
В functions создаем hiden.php
Код
if (! defined('DIAFAN'))
{
include dirname(dirname(dirname(__FILE__))).'/includes/404.php';
}

if(! $this->diafan->_users->id)
{


echo '<p>Зарегистрируйтесь!</p>';

Показать весь код
echo '<style>
.hiden {display: none;}
</style> ';


} else {



}


А потом где надо:

Код
<!-- шаблонный тег вывода основного контента сайта -->

<insert name="hide">
<div class="hiden">
<insert name="show_name">
</div>


Ну я это так, извращаюсь

Рустам (pilot233) 20 октября 2015 г.

Да по принципу как у ДЛЕ [hide]ЗДЕСЬ ТЕКСТ (любой) НЕ БУДЕТ ВИДЕН ПОКА НЕ ЗАРЕГИСТРИРУЮТСЯ[/hide] а средствами движка (только для зарегистрированных) так не получится как я понимаю у не додвижка ДЛЕ элементарная вещь (нужная), а есть!

Владимир (voha2006) 5920 октября 2015 г.

Это bbcode, от чего же не получиться? Ни кто ранее не просил подобного функционала в пожеланиях.
А то, что здесь обсудили, так это так, "между нами девочками"

Denis (Drachoon) 13920 октября 2015 г.

Скрывать от незарегистрированных путём: дисплей-ноне тупо. Нужно на стороне сервера физически вырезать кусок перед отправкой.

Рустам (pilot233) 20 октября 2015 г.

Так,что в пожелания надо отписать???

Владимир (voha2006) 5920 октября 2015 г.

Да. Но не факт, что реализуют. Хотя все может быть!

Сергей (darkheart) 2520 октября 2015 г.

В пожеланиях если и писать, то четко формулировать задачу, что где и как должно работать.

Александр Биг Эпл (ba5) 8321 октября 2015 г.

Скрыть ссылку можно вот таким способом.

Проверил, работает.

Код
$string = 'Возвращает количество <a href="http://ya.ru">найденных</a> вхождений шаблона';

if(!$this->diafan->_users->id)
{
$patterns = array ('/<a href="(.*)">(.*)\<\/a>/');
$replacements = array();
$replacements[1] = '<b><a href="#">ссылка доступна только зарегистрированным пользователям</a></b>';
echo preg_replace($patterns, $replacements, $string);
} else {
echo $string;

Показать весь код
}
Спасибо сказали: Denis (Drachoon), Владимир (voha2006)

Александр Биг Эпл (ba5) 8321 октября 2015 г.

Если кому-то удобней через [HIDE]****[/HIDE]

Код
$string2 = 'Возвращает [HIDE]количество <a href="http://ya.ru">айденных</a>[/HIDE] вхождений шаблона';


if(!$this->diafan->_users->id)
{
$patterns2 = array ('/\[HIDE\](.+)\[\/HIDE\]/');
$replacements2 = array();
$replacements2[1] = '<b>Данная часть текста только для зарегистрированных пользователей</b>';
echo preg_replace($patterns2, $replacements2, $string2);
} else {

Показать весь код
$string2 = str_replace('[HIDE]', '', $string2);
$string2 = str_replace('[/HIDE]', '', $string2);
echo $string2;
}

Рустам (pilot233) 23 октября 2015 г.

Вот это здорово а он где будет действовать? Т.е в статьях, новости, магазин, доска объявлений и.т.д???

Александр Биг Эпл (ba5) 8323 октября 2015 г., редакция 23 октября 2015 г.

Ну куда вставите. там и будет

Если надо в новости, то modules/news/views/new.view.id.php

Эту строчку

Код
$string2 = 'Возвращает [HIDE]количество <a href="http://ya.ru">айденных</a>[/HIDE] вхождений шаблона';


надо будет заменить

Код
$string2 = $result['text'] ;

Рустам (pilot233) 26 октября 2015 г.

Что-то не совсем понял например в файле modules/news/views/new.view.id.php

вот это код:

$string2 = $string2 = $result['text'] ;

if(!$this->diafan->_users->id)
{
$patterns2 = array ('/\[HIDE\](.+)\[\/HIDE\]/');
$replacements2 = array();
$replacements2[1] = '<b>Данная часть текста только для зарегистрированных пользователей</b>';
echo preg_replace($patterns2, $replacements2, $string2);
} else {
$string2 = str_replace('[HIDE]', '', $string2);
$string2 = str_replace('[/HIDE]', '', $string2);
echo $string2;
}

в какое место вставить?

Пожалуйста !!!

Рустам (pilot233) 27 октября 2015 г.

Александр Биг Эпл (ba5) ответь пожалуйста!!! Подробнее.

Александр Биг Эпл (ba5) 8327 октября 2015 г., редакция 27 октября 2015 г.

Зачем 2 раза $string2?

Код

$string2 = $this->htmleditor($result['text']);

if(!$this->diafan->_users->id)
{
$patterns2 = array ('/\[HIDE\](.+)\[\/HIDE\]/');
$replacements2 = array();
$replacements2[1] = '<b>Данная часть текста только для зарегистрированных пользователей</b>';
echo preg_replace($patterns2, $replacements2, $string2);
} else {

Показать весь код
$string2 = str_replace('[HIDE]', '', $string2);
$string2 = str_replace('[/HIDE]', '', $string2);
echo $string2;
}

Рустам (pilot233) 04 июня 2018 г.

Привет!

До последнего времени этот код работал, а после каких-то обновлений (не заметил когда) перестал работать тупо показывает теги [hide][/hide] вокруг текста который хотел скрыть.

Пожалуйста помогите а то почти весь сайт с этим тегом и теперь их тупо видно и ссылку на скачивание тоже видно.

Что сломалось подскажите???

Александр (capitan) 9304 июня 2018 г.

Может, потому что надо написать большими буквами?

[HIDE][/HIDE]

Александр (capitan) 9304 июня 2018 г.

А если у вас несколько HIDE на странице, то там чуть по другому надо делать. Это уже работа с массивами

Рустам (pilot233) 05 июня 2018 г.

Нет не в этом дело проверил

Александр (capitan) 9305 июня 2018 г.

Как тексте все это дело оформлено, скиньте сюда или в личные сообщения

Александр Биг Эпл (ba5) 8327 октября 2015 г.

А вставлять вместо или вместе с

Код
//вывод основного текста новости
echo '<div class="news_text">'.$this->htmleditor($result['text']).'</div>';

Александр Биг Эпл (ba5) 8327 октября 2015 г.

Можете вот тут по-тестить свой текст http://rubular.com/r/bTbIVrm7Hb

Рустам (pilot233) 28 октября 2015 г.

Все спасибо сработало только нужно вставлять вместо если вместе он новость дублирует!
- Еще HIDE обязательно писать с большой?
- здесь как я понимаю можно обычными html тегами прописать цвет текста $replacements2[1] = '<b>Данная часть текста только для зарегистрированных пользователей</b>'; а то она получается как текст статьи и не очень видно

Рустам (pilot233) 28 октября 2015 г.

Все круто прячет но ручками вписывать [HIDE]asadas[/HIDE] как можно добавить вв код кнопочку в редактор. Будет проще выделил кнопочку нажал и все. Просто у меня например в каждой статье как минимум надо одну ссылку закрывать (обычно 2-3 ссылки) это тяжко когда много статей.

Рустам (pilot233) 28 октября 2015 г.

Выше два пункта решается так как я и думал
- hide прописываем везде в коде маленькими и будет с маленьких букв
- html тегами меняем цвет в моем примера делал так: <b><span style="color: #ff0000;">Данная часть текста только для зарегистрированных пользователей</span></b>';

Последний коммент все еще актуально????

Михаил (ZzzBep) 10228 октября 2015 г.

а почитать в интернете "Добавление кнопок в визуальный редактор TinyMCE" Документация

Рустам (pilot233) 28 октября 2015 г.

Почитал и, что! Жду конкретную помощь???

Владимир (voha2006) 5929 октября 2015 г.

Цитата
Почитал и, что! Жду конкретного кода и куда его всунуть!

Михаил (ZzzBep) 10230 октября 2015 г., редакция 30 октября 2015 г.

)) думал сам догадается

Denis (Drachoon) 13930 октября 2015 г.

- Эй, двое из ларца. Хочу пироженого. хочу мароженого. А чё вы и пальцы за меня загибать будете.
Помоему это какраз этот случай. :)

Александр Биг Эпл (ba5) 8330 октября 2015 г.

Вот ссылки еще

ссылка 1
ссылка 2

как добавишь отпишись как сделал, чтоб другим было полезно