Перейти к контенту
  • 0

Помогите создть запрос


dengol

Вопрос

Здравствуйте.

Стоял 2.3.6 потом успешно обновился до 3.0.2 вроде бы всё нормально, но вот сейчас начал просматривать форум в браузере Opera и увидел что в постах отображается старый код от мода который стоял на 2.3.6 и закрывал ссылки в noindex и пускал через редирект.

 

Помогите создать запрос к mySQL для удаления определённого кода.

Тоесть нужно чтобы во всей базе нашлись строки такого вида и удалились.

<span class='inv'><![CDATA[<noindex>]]></span>

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Ritsuka? спасибо!

Это ведь для конкретной вроде бы таблицы.... а нужно выполнить поиск по всей базе :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0
dengol, запроса "по всей базе" не существует, да вам и не нужно такое, поверьте :D В форуме всего две-три таблицы с пользовательскими данными.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Ritsuka. ок. А вот такой момент,

Получается такой запрос:

UPDATE table_name SET column_name = REPLACE(column_name,"original_string","replace_string")

 

Если мне ничем заменять не нужно, а просто удалить найденные, то что указывать в "replace_string" ?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Я сделала так.

 

UPDATE ibf_posts SET post = REPLACE(post,"http://ссылка/go.php?","") но почему то открывает страницу 404, работает только после того как нажмешь на редактировать, при нажатии на ред. остается вот так

 

[url="http://forum.searchengines.ru/showthread.php?p=4891662"]http://forum.searchengines.ru/showthread.php?p=4891662[/url]

 

т.е. нормально уже, ненужная ссылка удалилась.

Но вот вопрос, почему оно сразу не работает? кеш обновляла.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

В АЦ:

Настройки и инструменты > Пересчет и обновление > Инструменты пересчета и обновления > Перестроение контента [сообщений, календарей, личных сообщений, подписей и т.п]

Выбрать сообщений и нажать на кнопочку "перестроение контента"

У меня на 2.3.6 тоже ссылки шли редиректом через go.php, после перехода на 3.0.2 я просто его оставил в корне и все старые ссылки работают и идут через него :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Так у меня адрес сайта сменился, ну вроде замену сделала и вспомнила что файл go.php удалила то))) пришлось и ссылки подчистить и вылезла проблемка.

 

Данный инструмент нужно запустить только единожды - после обновления до IP.Board 3.0

 

Я уже запускала.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Вот это сделайте

UPDATE ibf_content_cache_posts SET cache_content = REPLACE(cache_content,"http://ссылка/go.php?","")

Только ссылку свою не забудьте вставить!

Изменено пользователем dengol
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Вы же писали, что делали такой запрос:

UPDATE ibf_posts SET post = REPLACE(post,"http://ссылка/go.php?","")

но при просмотре сообщений в темах ничего не изменилось и ссылка остаётся, а удаляется только после правки сообщения... верно?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Тройка хранит отпарсенные посты в отдельном кэше. То, что вы изменили оригиналы, не касается отображаемого, пока не сбросите кэш:

 

Система -> Настройки и инструменты > Управление кешем > Кеш содержимого: "Очистить полностью" для "Сообщений в кеше" и "Кешированных подписей".

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Лучше не удалять обрамление ссылок, иначе они станут индексируемыми, а этого вы не хотели, когда ставили данный мод.

Самый оптимальный вариант - в css добавить определение

 

.inv { display: none; }

Вы перестанете видеть <![CDATA[<noindex>]]>, но при этом ссылки останутся закрытыми для SE.

Единственный минус - при редактировании старых постов/подписей со ссылками эта конструкция не распарситься и придется её удалять вручную.

 

В любом случае, делайте, так как вам удобнее - все взвесьте и принимайте решение:D

 

UPD: Я немного заблуждался, этот код действительно стоит удалить из БД за ненадобностью. При включенном закрытии внешних ссылок работает встроенный механизм, который обрамляет noindex + nofollow. При желании можно наложить любые правила на обработку этих урлов. Можно через редирект или вообще закодировать в base64 и раскодировать во внешнем go.php.

Открываем файл /admin/sources/classes/bbcode/custom/defaults.php и ищем:

 

if( $this->settings['posts_add_nofollow'] )
{
return "<noindex><a href='{$option}' class='bbc_url' title='{$this->lang->words['bbc_external_link']}'{$rel}>{$content}</a></noindex>";				   
}

 

Пример реализации с предварительным кодированием урл и отдачей на расшифровку в go.php

return "<span style='display: none;'><![CDATA[<noindex>]]></span><a href='/go.php?".base64_encode($option)."' target='_blank' class='bbc_url' title='{$this->lang->words['bbc_external_link']}'{$rel}>{$content}</a><span style='display: none;'><![CDATA[</noindex>]]></span>";

 

Код go.php

 

<?php
header('Location: '.base64_decode($_SERVER['QUERY_STRING']), true, 302);
?>

P.S. Не забываем, при любом изменении сбрасывать кэш сообщений и подписей, т.к. кэшируется именно в кэше, а не в БД.

Изменено пользователем proit
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Не могу выполнить это:

 

UPDATE ibf_posts SET post = REPLACE(post,"<span>>>OFF-topic<<<div class="offtopic" style="display: none">","")

 

пишет:

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Кавычки закрылись, а строка не закончилась. Либо экранируйте кавычки обратным слэшем, либо делайте так:

UPDATE ibf_posts SET post = REPLACE(post,'<span>>>OFF-topic<<<div class="offtopic" style="display: none">',"")

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Не получается этот запрос сделать((

 

<div style="margin:20px; margin-top:5px"><div class="smallfont" style="margin-bottom:2px">[b]Закрытая информация[/b]:  <input type="button" value="Открыть" style="width:60px;font-size:10px;margin:0px;padding:0px;" onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = '';		this.innerText = ''; this.value = 'Скрыть'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = 'Показать'; }"></div><div class="alt2" style="margin: 0px; padding: 6px; border: 1px inset;"><div style="display: none;">

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Зачем запрос?

 

В АЦ идете в Управление пользователями там выбираете Расширенный поиск

 

Указываете число сообщений меньше чем 1 и жмете Обновить

 

В полученном списке будет кнопка Удалить всех найденных

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Спасибо) а то я перекопала там все а по одному лень) Постоянно забываю все настройки. Изменено пользователем Evrika
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.