Привет, Гость!
Главная
Вход

Последняя активность

Форум / Вап-мастеру / PHP
Поиск
  ВВкод, скрытие ссылок
1 2 3 >>
LeXxS LeXxS [Off] [#] (20.03.2012 / 22:30)
Последний Дино3@вр
Весь мозг сломал, вроде должно быть просто, но ничего не могу придумать.
В общем надо чтоб при добавлении ссылки, нужно её скрыть от незарегестрированных.
В общем имеем такой код:
  1. <?
  2. function hidden_text($str) {
  3.  
  4. if (is_user()) {
  5. $text = '<div class="hide"><i><b>Скрытый текст:</b></i> '.$str.'</div>';
  6. } else {
  7. $text = '<div class="hide"><i><b>Скрытый текст.</b> доступен только зарегестрированным</i></div>';
  8. }
  9.  
  10. return $text;
  11. }

Это для текста и при условии, что ставим ВВкод [hide], сам ВВ:
  1. <?
  2. $msg = preg_replace('#\[hide\](.*?)\[/hide\]#ie', 'hidden_text("\1")', $msg);
  3. $msg = preg_replace_callback('~\[url=((https?|ftp)://.+?)\](.+?)\[/url\]|((https?|ftp)://[0-9a-zа-яё/.;?=\(\)\_\-&%#]+)~ui', 'url_replace', $msg);

Вот надо добиться чтоб добавляемая ссылка была скрытой...
ramzes ramzes [Off] [#] (20.03.2012 / 22:40)
Крайне позитивный раздолбай
if(is_user()){
Обычная обработка ссылки
}else{
Заменяем ссылку на текст "хрена тебе лысогт, шпиён"
}
ramzes ramzes [Off] [#] (20.03.2012 / 22:41)
Крайне позитивный раздолбай
З.ы. корявая обработка линков, будет резать многие
LeXxS LeXxS [Off] [#] (20.03.2012 / 22:50)
Последний Дино3@вр
ramzes (20.03.2012/22:40)
if(is_user()){
Обычная обработка ссылки
}else{
Заменяем ссылку на текст "хрена тебе лысогт, шпиён"
}
Не, я уже так и хотел сделать, так это будет резать все ссылки на сайте.
Нужно чтоб при добавлении мессаги скрывалась.
Вот с этой корявой фигнёй что то не разберусь:
  1. $msg = preg_replace('#\[hide\](.*?)\[/hide\]#ie', 'hidden_text("\1")', $msg);
  2. $msg = preg_replace_callback('~\[url=((https?|ftp)://.+?)\](.+?)\[/url\]|((https?|ftp)://[0-9a-zа-яё/.;?=\(\)\_\-&%#]+)~ui', 'url_replace', $msg);

Здесь должна быть обработка...
LeXxS LeXxS [Off] [#] (20.03.2012 / 22:54)
Последний Дино3@вр
Вот есть такая обработка ссылок, чтоб внешние через таргет обрабатывались:
  1. // ------------------ Вспомогательная функция для bb-кода --------------------//
  2. function url_replace($m) {
  3. global $config;
  4.  
  5. if (!isset($m[4])) {
  6. $target = (strpos($m[1], $config['home']) === false) ? ' target="_blank"' : '';
  7. return '<a href="'.$m[1].'"'.$target.'>'.check(rawurldecode(html_entity_decode($m[3], ENT_QUOTES, 'utf-8'))).'</a>';
  8. } else {
  9. $target = (strpos($m[4], $config['home']) === false) ? ' target="_blank"' : '';
  10. return '<a href="'.$m[4].'"'.$target.'>'.check(rawurldecode(html_entity_decode($m[4], ENT_QUOTES, 'utf-8'))).'</a>';
  11. }
  12. }

Хотел сначала типа такой на скрытие сделать,
но это будет резать все ссылки на сайте.
Если бы бло просто <hide></hide> проблем небыло бы...
LeXxS LeXxS [Off] [#] (20.03.2012 / 23:28)
Последний Дино3@вр
Такс, а вообщето по моему да,
новую функцию придётся писать, и будет резать только добавляемые.
Завтра попробую.
Вот с этим 'hidden_text("\1")' и этим 'url_replace' бесполезно помоему...
ramzes ramzes [Off] [#] (21.03.2012 / 05:43)
Крайне позитивный раздолбай
Фигово когда не знаешь, да еще и забудешь.
Я тебе сказал как делать
LeXxS LeXxS [Off] [#] (21.03.2012 / 13:02)
Последний Дино3@вр
Хреново, когда код несколько лет даже не заглядываешь.
  1. else{
  2. Заменяем ссылку на текст "хрена тебе лысогт, шпиён"
  3. }

не всё так просто, нужно чтоб было совместимо с существующими обработками.
Чтоб оставалось скрытое и таргет...
При этом таргет для всех...
надо будет с этим поработать
  1. function url_replace($m)

Вечерком может быть подумаю...
ramzes ramzes [Off] [#] (21.03.2012 / 13:08)
Крайне позитивный раздолбай
LeXxS, Да как раз все именно так просто
А ты че то непонятное пишешь
LeXxS LeXxS [Off] [#] (21.03.2012 / 13:11)
Последний Дино3@вр
Да может быть, я вчера уже перед сном писал,
моск уставши, а днём сосредоточится не могу, отвлекают,
вечерком попозже попробую вариантик, просто доработаю тот что есть,или заменю...
LeXxS LeXxS [Off] [#] (21.03.2012 / 13:13)
Последний Дино3@вр
пля, куда вдсцентр то делся.
у меня там резерв не успел скачать.
Сланенак Сланенак [Off] [#] (21.03.2012 / 13:22)
Unbaum Alamora
LeXxS, ты о http://vdscenter.com/ ? у меня все работает
LeXxS LeXxS [Off] [#] (21.03.2012 / 15:36)
Последний Дино3@вр
Сланенак (21.03.2012/13:22)
LeXxS, ты о http://vdscenter.com/ ? у меня все работает
Да разобрался уже, там оказ айпишники сменили,
а у нас как обычно, провайдер тупит, дней пять на обновление днс.
Через прокси заходит...
LeXxS LeXxS [Off] [#] (21.03.2012 / 15:55)
Последний Дино3@вр
Думаю должно быть что то типа
  1. if(is_user()){
  2. 'url_replace'
  3. }else{
  4. 'hidden_text'
  5. }

Вот только с синтаксисом здесь засыплюсь.
И вообще, можно ли эти параметры обрабатывать ???
Либо писать функцию типа хидден урл, нужно чтоб было скрытие и таргет...
Изм. LeXxS (21.03.2012 / 16:03) [1]
LeXxS LeXxS [Off] [#] (21.03.2012 / 16:05)
Последний Дино3@вр
Atmas (21.03.2012/16:03)
читал, плакал
как говорится опыт не пропьешь
того же мнения и о PHP. посему 3 года без кода особенно взбугогнули гг
ты уже имел опыт три года не касаясь кода ???
Я уже вообще ничего не помню, всё заново придётся.
Кое что помню, но очень мало...
ramzes ramzes [Off] [#] (21.03.2012 / 18:40)
Крайне позитивный раздолбай
блеать, куда я попал
ramzes ramzes [Off] [#] (21.03.2012 / 18:44)
Крайне позитивный раздолбай
  1. <?php
  2.  
  3. //--- функция обработки Url ---//
  4. function url_replace($m){
  5. if(is_user()){
  6. if(!isset($m[3])){
  7.  
  8. if(preg_match('|^http:\/\/'.$_SERVER['HTTP_HOST'].'|si',$m[1])){
  9. return '<a class="url" href="'.$m[1].'">'.urldecode($m[2]).'</a>';
  10. }else{
  11. return '<a class="url" href="'.$m[1].'"target="_blank">'.urldecode($m[2]).'</a>';
  12.  
  13. }
  14.  
  15. }else{
  16. $m[4] = (mb_strlen($m[3], 'utf-8')>70) ? mb_substr(urldecode($m[3]), 0, 35, 'utf-8').'...'.mb_substr(urldecode($m[3]), -15, 15, 'utf-8') : urldecode($m[3]);
  17.  
  18. if(preg_match('|^http:\/\/'.$_SERVER['HTTP_HOST'].'|si',$m[3])){
  19. return '<a href="'.$m[3].'">'.$m[4].'</a>';
  20. }else{
  21. return '<a class="url" href="'.$m[3].'" target="_blank">'.$m[4].'</a>';
  22. }
  23.  
  24. }
  25.  
  26. }else{
  27. return 'This link hidden.';
  28. }
  29.  
  30. }
LeXxS LeXxS [Off] [#] (21.03.2012 / 19:09)
Последний Дино3@вр
Ромыч наваял..))) Сейчас другие варианты попробую, потом твой )))
Добился более простым способом, но только того, что для незареганного ссылка становится просто неактивной... Но не скрывается...
Что то мне кажется должно быть проще. Сейчас поизвращаюсь,
потом твой вариант )))
LeXxS LeXxS [Off] [#] (21.03.2012 / 19:29)
Последний Дино3@вр
Всё оказалось действительно проще паренной репы.
Использовал уже готовые функции.
Сейчас дооформлю и код выложу...
LeXxS LeXxS [Off] [#] (21.03.2012 / 19:37)
Последний Дино3@вр
Atmas (21.03.2012/19:32)
и вот нахуя тебе нужна была помощь, если в итоге ты собрал свой велосипед?
Очень была нужна. Многое забыл, предложенные варианты заставили работать мозг в нужном направлении, за что благодарен Рамзесу и Скримеру.
Сейчас допилю до ума и выложу вариант.
Изначально нужно было использовать готовые функции,чтоб не навешивать лишнего.
Но например вариант Рамзеса может кому то пригодится...
  Всего: 42
1 2 3 >>

Фильтр по автору
Скачать тему

Форум

Новые вверху
0 / 35

Gazenwagen Gegenkulturelle Gemeinschaft