Warning: session_start(): open(/home/webmaster/www/livestreet.ru/tmp/sess_e2bnrgfkt38p7bpldjmurk8vm5, O_RDWR) failed: No space left on device (28) in /home/webmaster/www/livestreet.ru/www/engine/modules/session/Session.class.php on line 101 Защищаем тексты и ссылки от тех кто еще не в сообществе) / Дополнительные модули и доработки для LiveStreet / LiveStreet CMS
1. Открываем файл /config/config.php добавляем в блок «прочие настройки» строку
define('TOPIC_GUEST_TEXT',"Чтобы прочитать этот текст необходимо зарегистрироваться!");
2. Скачиваем с ЯбаДабы и заменяем файл Topic.entity.class.php
Дальше Открываете файл /classes/actions/ActionTopic.class.php
ищете блок
/**
* Проверяем есть ли содержание топика
*/
if (!func_check(getRequest('topic_text'),'text',2,15000)) {
$this->Message_AddError('Текст топика должен быть от 2 до 15000 символов','Ошибка');
$bOk=false;
}
и после него добавляете
$sText = getRequest('topic_text');
$sText=str_replace("\r\n","",$sText);
if (preg_match("/.*\[hide\].*\<cut.*\[\/hide\].*/i",$sText)){
$this->Message_AddError('Тег <cut> не может быть внутри тегов [hide][/hide]','Ошибка');
$bOk=false;
}
Дальше В файле \classes\actions\ActionRss.class.php
заменяете все
$oTopic->getText();
на
$oTopic->getTextHidden(false);
И напоследок в файле /templates/language/russian.php
добавляем подсказку о том что можно использовать теги [hide] [/hide]для скрытия текста/ссылок от не зарегистрированных в сообществе. Спасибо Кириллу за работу....
А можете помочь реализовать? только нужно в виде плагина и немного расширить функции
Атрбуты например такие:
Для просмотра скрытого текста необходимо иметь минимум один параметр:
рейтинг — 2 (у вас 0, осталось 2)
публикаций — 10 (у вас 0, осталось 10)
комментариев — 15 (у вас 0, осталось 15)
Пожалуйста! А тебе спасибо за то что поделился со всеми:)
Кстати, текст Topic.entity.class.php тоже можно выложить… там всего 2 функции добавилось: getTextHidden и getTextShortHidden
вот после метода getTextShort() в файле Topic.entity.class.php
эти 2-ва
public function getTextHidden($bShowContent = false){
$text = str_replace("\r\n","",$this->_aData['topic_text']);
if ($bShowContent)
return preg_replace ("/\[hide\]|\[\/hide\]/i","",$text);
else
return preg_replace ("/\[hide\].*\[\/hide\]/i",TOPIC_GUEST_TEXT,$text);
}
public function getTextShortHidden($bShowContent = false){
$text = str_replace("\r\n","",$this->_aData['topic_text_short']);
if ($bShowContent)
return preg_replace ("/\[hide\]|\[\/hide\]/i","",$text);
else
return preg_replace("/\[hide\].*\[\/hide\]/i",TOPIC_GUEST_TEXT,$text);
}
4. Открываем шаблон /templates/skin/habra/topic_list.tpl ищем строку
{$oTopic->getTextShort()}
и заменяем ее на
{if $oUserCurrent}
{$oTopic->getTextShortHidden(true)}
{else}
{$oTopic->getTextShortHidden(false)}
{/if}
{if $oTopic->getText()!=$oTopic->getTextShort()}
там с катом проблема была…
Привед:)
Ты не понял тут принцип не как у тега , а другой. Вот так [hide]<a href=«Предед медвед лови ссылку yabadaba.ru/files/25696[/hide]
Именно текст внутри хайда и будет скрыт:)
У меня ругается:
Parse error: syntax error, unexpected T_STRING in /home/shteam/public_html/config/config.php on line 111
На сайт естественно не пускает. Вставил в config.php следущую строчку в раздел Прочие настройки:
define('TOPIC_GUEST_TEXT',«Чтобы прочитать этот текст необходимо зарегистрироваться!»);
Эта проблема исчесла. теперь в области для «новостей» пишет:
Fatal error: Smarty error: [in topic_list.tpl line 133]: syntax error: mismatched tag {/foreach}. expected {/if} (opened line 56). (Smarty_Compiler.class.php, line 2298) in /home/shteam/public_html/classes/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
на самом деле очень многие возвращаются)
да и цель у меня была усложнить жизнь гостям. вернуться они или нет мне глубоко пох. почему расписывать не буду…
«Чтобы прочитать этот текст необходимо зарегистрироваться!»
выглядит скучновато, регистрация уже у всех в печонках! А вот: «Чтобы прочитать этот текст необходим рейтинг 3.00»
ну и код [hide rating=3]уже веселей :)[/hide]
Согласен. Вспоминается один, широко известный в узких кругах сайт, но там к этому прибавлена ЗВЕРСКАЯ МОДЕРАЦИЯ. Зато там приходится попыхтеть для ПРАВИЛЬНЫХ и ПОЛЕЗНЫХ ответов.
На 0.3.1 работает на ура.
Теперь давайте подумаем, как можно ограничить хайд рейтингом, как сказала Lora_GT.
Есть у кого-нибудь какие-нибудь мысли или наработки?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Warning: Unknown: open(/home/webmaster/www/livestreet.ru/tmp/sess_e2bnrgfkt38p7bpldjmurk8vm5, O_RDWR) failed: No space left on device (28) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/home/webmaster/www/livestreet.ru/tmp) in Unknown on line 0
46 комментариев
Атрбуты например такие:
Для просмотра скрытого текста необходимо иметь минимум один параметр:
рейтинг — 2 (у вас 0, осталось 2)
публикаций — 10 (у вас 0, осталось 10)
комментариев — 15 (у вас 0, осталось 15)
PS кат должен работать
Кстати, текст Topic.entity.class.php тоже можно выложить… там всего 2 функции добавилось: getTextHidden и getTextShortHidden
вот после метода getTextShort() в файле Topic.entity.class.php
эти 2-ва
public function getTextHidden($bShowContent = false){
$text = str_replace("\r\n","",$this->_aData['topic_text']);
if ($bShowContent)
return preg_replace ("/\[hide\]|\[\/hide\]/i","",$text);
else
return preg_replace ("/\[hide\].*\[\/hide\]/i",TOPIC_GUEST_TEXT,$text);
}
public function getTextShortHidden($bShowContent = false){
$text = str_replace("\r\n","",$this->_aData['topic_text_short']);
if ($bShowContent)
return preg_replace ("/\[hide\]|\[\/hide\]/i","",$text);
else
return preg_replace("/\[hide\].*\[\/hide\]/i",TOPIC_GUEST_TEXT,$text);
}
вот это обновлено
3. Открываем шаблон /templates/skin/habra/topic.tpl ищем строку
{$oTopic->getText()}
и заменяем ее на
{if $oUserCurrent}
{$oTopic->getTextHidden(true)}
{else}
{$oTopic->getTextHidden(false)}
{/if}
4. Открываем шаблон /templates/skin/habra/topic_list.tpl ищем строку
{$oTopic->getTextShort()}
и заменяем ее на
{if $oUserCurrent}
{$oTopic->getTextShortHidden(true)}
{else}
{$oTopic->getTextShortHidden(false)}
{/if}
{if $oTopic->getText()!=$oTopic->getTextShort()}
там с катом проблема была…
Проверьте, пожалуйста, кто установил расширение :)
Ты не понял тут принцип не как у тега
Именно текст внутри хайда и будет скрыт:)
т.е хайд работает так
[hide]текст который вы хотите скрыть[/hide]
[hide]текст который вы хотите скрыть[/hide]
текст между тоже скроется этот
[hide]текст который вы хотите скрыть[/hide]
У меня ругается:
Parse error: syntax error, unexpected T_STRING in /home/shteam/public_html/config/config.php on line 111
На сайт естественно не пускает. Вставил в config.php следущую строчку в раздел Прочие настройки:
define('TOPIC_GUEST_TEXT',«Чтобы прочитать этот текст необходимо зарегистрироваться!»);
define('TOPIC_GUEST_TEXT',"<strong>Чтобы прочитать этот текст необходимо зарегистрироваться!</strong>");
а на ковычки смотрел?:)
у меня 111 строка это вообще
define('LANG_PATH',DIR_SERVER_ROOT.'/templates/language'); // полный путь до языковых файлов
Эта проблема исчесла. теперь в области для «новостей» пишет:
Fatal error: Smarty error: [in topic_list.tpl line 133]: syntax error: mismatched tag {/foreach}. expected {/if} (opened line 56). (Smarty_Compiler.class.php, line 2298) in /home/shteam/public_html/classes/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
можна перезалить,
спасибо!
да и цель у меня была усложнить жизнь гостям. вернуться они или нет мне глубоко пох. почему расписывать не буду…
ты о чем вообще?
выглядит скучновато, регистрация уже у всех в печонках! А вот: «Чтобы прочитать этот текст необходим рейтинг 3.00»
ну и код [hide rating=3]уже веселей :)[/hide]
А готовые рабочие измененные файлы я уже давно пох##ил. сорри. Мне это просто больше не надо…
а это как-то можно исправить? :)
Тему «забили» совсем? Может кому-то интересно?
Теперь давайте подумаем, как можно ограничить хайд рейтингом, как сказала Lora_GT.
Есть у кого-нибудь какие-нибудь мысли или наработки?