Перейти к контенту
  • 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
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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