Суть: при замене контента файла можно будет в админке (мод \"Поиск и замена\", 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
|