Ищу шамана для БД DLE.

12
PO
На сайте с 25.09.2008
Offline
15
1658

Требуется человек, использующий сильное колдунство.

Задача - завернуть все ссылки в существующих новостях (55к) и будущих новостях в нофоллоу и ноиндекс. Размер БД 250мб. Двигло - ДЛЕ.

Знаю, что это делается просто, но патологически боюсь работать с БД какими бы то ни было.

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

Олег.

F
На сайте с 16.01.2010
Offline
267
#1

В базе данных ничего делать не надо. Нужен модуль или даже хак.

DLE ссылки переадресация

vandamme
На сайте с 30.11.2008
Offline
675
#2

futuristian, эт модуль для новых новостей, в которых ссылки сохранятся в новом формат, а ТС просит обработать старые новости.

Xак применяется для новостей, которые добавляются после установки этого хака, а старые новости надо заново открывать для редактирования и сохранять.

Я лично делал так - скачивал БД, открывал в notepad++ и заменял оконцовку и начало цитаты нужным текстом и вуаля, правда бд была поменьше, до 50 метров, а для вашей надо наверное много оперативки и мощный проц, что 250 метров обработать.

PO
На сайте с 25.09.2008
Offline
15
#3

futuristian, я полнейший гидроцефал в этом деле. Мне для САПЫ, чтобы количество ВС стало меньше. А как модуль ставить, или что такое хак я понятия не имею.

PythonOleg добавил 08.08.2010 в 00:31

vandamme,ну да, на моей машине ни на одной ни на другой, ни на ноуте провернуть это грязное дело было низзя. Вот и ищу человека либо с вундермашинен, либо умного и смекалистого как Иван Бровкин, который найдет другой способ воплотить задачу, угу.

[Удален]
#4

С помощью нотпада вы все ссылки в ноуиндекс загоните, а вам нужны только исходящие как я понял?

vandamme
На сайте с 30.11.2008
Offline
675
#5
Сашко:
С помощью нотпада

я сказал что надо загнать в ноиндекс то что в цитате, а на варезнике обычно в цитате ссылки

PO
На сайте с 25.09.2008
Offline
15
#6
я сказал что надо загнать в ноиндекс то что в цитате, а на варезнике обычно в цитате ссылки

Татата! В шмысле да!

[Удален]
#7

Качаешь отсюда Akelpad (прекрасно работает с большими файлами, в отличии от notepad-а), ставишь, открываешь файл бд ним же. Жмакаешь Ctrl+R, или через меню - Edit => Replace.., выбераешь заменить

http://
на
http://site.ru/go/?http://
, где site.ru - урл твоего сайта, потом в корене сайта site.ru создаешь папку go с файлом .htaccess с содержанием:

DirectoryIndex index.php

RewriteEngine Off

и туда же кидаешь файл index.php с содержанием

<?php

if (!empty($_SERVER['QUERY_STRING'])){
$re_addr=$_SERVER['QUERY_STRING'];
header('Location: '.$re_addr);
}
?>

Вот и все (:

rbbumfirst
На сайте с 03.04.2009
Offline
87
#8
PythonOleg:
Татата! В шмысле да!

index.php

БЫЛО:

$tpl->set ( '{content}', "<div id='dle-content'>".$tpl->result['content'] . "</div>" );

СТАЛО:

$out =str_ireplace("<a","<noindex><a rel=\"nofollow\"",$tpl->result['content']);

$out =str_ireplace("</a>","</a></noindex>",$out);

$tpl->set ( '{content}', "<div id='dle-content'>" . $out . "</div>" );

все ссылки в постах будут как надо. если про это речь.

Web developer (http://rudov.com). разработка на Go, ReactJS, React Native
A
На сайте с 22.11.2009
Offline
6
#9

Что то вы завернули ребят =) в дле в базе ссылки хранять в виде
$source = preg_replace( "#\[url\](\S.+?)\[/url\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\1'))", $source );
$source = preg_replace( "#\[url\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/url\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2'))", $source );
$source = preg_replace( "#\[url\s*=\s*(\S.+?)\s*\](.*?)\[\/url\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2'))", $source );


asword добавил 08.08.2010 в 03:34
Меняяте все эти три строки на то что идет ниже


$source = preg_replace( "#\[leech\](\S.+?)\[/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\1', 'leech' => '1'))", $source );
$source = preg_replace( "#\[leech\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2', 'leech' => '1'))", $source );
$source = preg_replace( "#\[leech\s*=\s*(\S.+?)\s*\](.*?)\[\/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2', 'leech' => '1'))", $source );

" title=" а не <a href>

Вот простое решение (я у себя так сделал а то спамеры задрали) открываете engine/classes/parse.class.php

Ищите 276 строку, так примерно будет

$source = preg_replace( "#\[url\](\S.+?)\[/url\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\1'))", $source );
$source = preg_replace( "#\[url\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/url\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2'))", $source );
$source = preg_replace( "#\[url\s*=\s*(\S.+?)\s*\](.*?)\[\/url\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2'))", $source );


asword добавил 08.08.2010 в 03:34
Меняяте все эти три строки на то что идет ниже


$source = preg_replace( "#\[leech\](\S.+?)\[/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\1', 'leech' => '1'))", $source );
$source = preg_replace( "#\[leech\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2', 'leech' => '1'))", $source );
$source = preg_replace( "#\[leech\s*=\s*(\S.+?)\s*\](.*?)\[\/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2', 'leech' => '1'))", $source );

" target="_blank"> а не <a href>

Вот простое решение (я у себя так сделал а то спамеры задрали) открываете engine/classes/parse.class.php

Ищите 276 строку, так примерно будет

$source = preg_replace( "#\[url\](\S.+?)\[/url\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\1'))", $source );
$source = preg_replace( "#\[url\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/url\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2'))", $source );
$source = preg_replace( "#\[url\s*=\s*(\S.+?)\s*\](.*?)\[\/url\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2'))", $source );


asword добавил 08.08.2010 в 03:34
Меняяте все эти три строки на то что идет ниже


$source = preg_replace( "#\[leech\](\S.+?)\[/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\1', 'leech' => '1'))", $source );
$source = preg_replace( "#\[leech\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2', 'leech' => '1'))", $source );
$source = preg_replace( "#\[leech\s*=\s*(\S.+?)\s*\](.*?)\[\/leech\]#ie", "\$this->build_url(array('html' => '\\1', 'show' => '\\2', 'leech' => '1'))", $source );

[Удален]
#10

asword

Жжош?

Во первых, разкажи, это тоже бб код в базе в ссылках?

INSERT INTO `dle_post` VALUES (7,'admin','2008-11-19 13:22:23','<div align=\"center\"><!--TBegin--><a href=\"http://porik.com/uploads/posts/2008-11/1227093701_0593-1134-th-ja.jpg\" onClick=\"return hs.expand(this)\" ><img src=\"http://porik.com/uploads/posts/2008-11/thumbs/1227093701_0593-1134-th-ja.jpg\" style=\"border: none;\" alt=\'Thalia &amp; James\' title=\'Thalia &amp; James\' /></a><!--TEnd--></div><br />','<div align=\"center\"><!--TBegin--><a href=\"http://porik.com/uploads/posts/2008-11/1227093701_0593-1134-th-ja.jpg\" onClick=\"return hs.expand(this)\" ><img src=\"http://porik.com/uploads/posts/2008-11/thumbs/1227093701_0593-1134-th-ja.jpg\" style=\"border: none;\" alt=\'Thalia &amp; James\' title=\'Thalia &amp; James\' /></a><!--TEnd--></div><br /><br />[hide]http://rapidshare.com/files/165278956/1134-Th-Ja.rar<br /><br /><a href=\"http://depositfiles.com/files/2yv67vko1\" target=\"_blank\">http://depositfiles.com/files/2yv67vko1</a><br /><br /><a href=\"http://www.files.to/get/468843/v1ahpc53ya\" target=\"_blank\">http://www.files.to/get/468843/v1ahpc53ya</a>[/hide]','','Thalia & James','','','6,7,8','thalia-james',5,1,1,1,1,0,81,1,21,1010,0,'','0000-00-00','',1,'','','',0,''),

Во вторых, изминения в engine/classes/parse.class.php идут только на новые новости, либо же на пересохраненные, а ТС говорит именно про базу. Короче иди готовься к 1 сентябрю и не позорься..

12

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