Суть: при замене контента файла можно будет в админке (мод \"Поиск и замена\", DataLife Engine) заменять текст не для всех новостей, не только для конкретных категорий.
По сути изменения не слишком то и глобальные, но в администрировани поволшебникают
Отмечу, что работает с поддержкой мультикатегорий.
Инструкция:
в файле ./engine/inc/search.php найти:
if (in_array(\"news\", $_POST[\'table\'])) {
$db->query(\"UPDATE `\" . PREFIX . \"_post` SET `short_story`=REPLACE(`short_story`,\'$find\',\'$replace\')
\");
$db->query(\"UPDATE `\" . PREFIX . \"_post` SET `full_story`=REPLACE(`full_story`,\'$find\',\'$replace\')
\");
$db->query(\"UPDATE `\" . PREFIX . \"_post` SET `xfields`=REPLACE(`xfields`,\'$find\',\'$replace\')\"
);
}
if (in_array(\"comments\", $_POST[\'table\'])) {
$db->query(\"UPDATE `\" . PREFIX . \"_comments` SET `text`=REPLACE(`text`,\'$find\',\'$replace\')\")
;
}
if (in_array(\"pm\", $_POST[\'table\'])) {
$db->query(\"UPDATE `\" . USERPREFIX . \"_pm` SET `text`=REPLACE(`text`,\'$find\',\'$replace\')\")
;
}
if (in_array(\"static\", $_POST[\'table\'])) {
$db->query(\"UPDATE `\" . PREFIX . \"_static` SET `template`=REPLACE(`template`,\'$find\',\'$replace\')\"
);
}
if (in_array(\"tags\", $_POST[\'table\'])) {
$db->query(\"UPDATE `\" . PREFIX . \"_tags` SET `tag`=REPLACE(`tag`,\'$find\',\'$replace\')\");
$db->query(\"UPDATE `\" . PREFIX . \"_post` SET `tags`=REPLACE(`tags`,\'$find\',\'$replace\')\")
;
}
clear_cache ();
msg(\"info\", $lang[\'find_done_h\'], $lang[\'find_done\'], \"?mod=search\");
}
и заменить на:
foreach ( $_POST[\'table\'] as $value ) {
if ($value == \"comments\") {
$db->query(\"UPDATE `\" . PREFIX . \"_comments` SET `text`=REPLACE(`text`,\'$find\',\'$replace\')\")
;
}
elseif ($value == \"pm\") {
$db->query(\"UPDATE `\" . USERPREFIX . \"_pm` SET `text`=REPLACE(`text`,\'$find\',\'$replace\')\")
;
}
elseif ($value == \"static\") {
$db->query(\"UPDATE `\" . PREFIX . \"_static` SET `template`=REPLACE(`template`,\'$find\',\'$replace\')\"
);
}
elseif ($value == \"tags\") {
$db->query(\"UPDATE `\" . PREFIX . \"_tags` SET `tag`=REPLACE(`tag`,\'$find\',\'$replace\')\");
$db->query(\"UPDATE `\" . PREFIX . \"_post` SET `tags`=REPLACE(`tags`,\'$find\',\'$replace\')\")
;
}
else {
if ($config[\'allow_multi_category\'])
$where_category = \"category regexp \'[[:<:]](\" . $value . \")[[:>:]]\'\";
else
$where_category = \"category = \'{$value}\'\";
$db->query(\"UPDATE `\" . PREFIX . \"_post` SET `short_story`=REPLACE(`short_story`,\'$find\',\'$replace\')
WHERE {$where_category};\");
$db->query(\"UPDATE `\" . PREFIX . \"_post` SET `full_story`=REPLACE(`full_story`,\'$find\',\'$replace\')
WHERE {$where_category};\");
$db->query(\"UPDATE `\" . PREFIX . \"_post` SET `xfields`=REPLACE(`xfields`,\'$find\',\'$replace\') WHERE {$where_category};\");
}
}
clear_cache ();
msg(\"info\", $lang[\'find_done_h\'], $lang[\'find_done\'], \"?mod=search\");
}
$categoryes = array ();
$db->query ( \"SELECT id, name FROM \" . PREFIX . \"_category ORDER BY posi ASC\" );
while ( $row = $db->get_row () ) {
$categoryes_option .= \'<option value=\"\'.$row[\'id\'].\'\" selected>-- \'.$row[\'name\'].\'</option>\';
}
$db->free ();
найти:
<option value=\"news\" selected>{$lang[\'find_rnews\']}</option>
заменить на:
<optgroup label=\"{$lang[\'find_rnews\']}\">{$categoryes_option}</optgroup>
КСТАТИ, для удобства: в этом же файле найти:
<select name=\"table[]\" style=\"height:72px;\" multiple>
заменить на:
<select name=\"table[]\" style=\"height:272px;\" multiple>
Вот и все.
Актуально для DLE 6.5 - DLE 8.3