да уж, тут пол хака. а массовые действия в админке? rss, print ..... видимо схарило.
полный список правок:
1.Открываем /engine/engine.php и ищем код
PHP:
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}symbol = '$catalog' AND approve=1" . $where_date;
НИЖЕ вставляем
PHP:
} elseif ($engcatalog != "") {
// ################ Вывод по английскому буквенному идентификатору #################
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
$url_page = $config['http_home_url'] . "engcatalog/" . urlencode ( $engcatalog );
$user_query = "engcatalog=" . urlencode ( $engcatalog );
$news_sort_by = ($config['catalog_sort']) ? $config['catalog_sort'] : "date";
$news_direction_by = ($config['catalog_msort']) ? $config['catalog_msort'] : "DESC";
if (isset ( $_SESSION['dle_sort_catalog'] )) $news_sort_by = $_SESSION['dle_sort_catalog'];
if (isset ( $_SESSION['dle_direction_catalog'] )) $news_direction_by = $_SESSION['dle_direction_catalog'];
$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}engsymbol = '$engcatalog' AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list}engsymbol = '$engcatalog' AND approve=1" . $where_date;
ищем код
PHP:
$cache_prefix .= "_catalog_" . $catalog;
НИЖЕ вставляем
PHP:
} elseif ($engcatalog != "") {
$cache_prefix .= "_engcatalog_" . $engcatalog;
ищем код
PHP:
if ($catalog) $active = dle_cache ( "rss", $catalog, false );
НИЖЕ вставляем
PHP:
elseif ($engcatalog) $active = dle_cache ( "rss", $engcatalog, false );
ищем код
PHP:
if ($catalog) create_cache ( "rss", $tpl->result['content'], $catalog, false );
НИЖЕ вставляем
PHP:
elseif ($engcatalog) create_cache ( "rss", $tpl->result['content'], $engcatalog, false );
ищем код
PHP:
$rss_url = $config['http_home_url'] . "engine/rss.php?catalog=" . urlencode ( $catalog );
}
}
НИЖЕ всталяем
PHP:
elseif ($engcatalog != "") {
$nam_e = $lang['title_engcatalog'] . ' » ' . $engcatalog;
if ($config['allow_alt_url']) {
$rss_url = $config['http_home_url'] . "engcatalog/" . urlencode ( $engcatalog ) . "/" . "rss.xml";
} else {
$rss_url = $config['http_home_url'] . "engine/rss.php?engcatalog=" . urlencode ( $engcatalog );
}
}
2. Открываем /engine/init.php
ищем код
НИЖЕ вставляем
PHP:
if( isset( $_GET['engcatalog'] ) ) {
$engcatalog = @strip_tags( str_replace( '/', '', urldecode( (string)$_GET['engcatalog'] ) ) );
if( $config['charset'] == "windows-1251" AND $config['charset'] != detect_encoding($engcatalog) ) {
if( function_exists( 'mb_convert_encoding' ) ) {
$engcatalog = mb_convert_encoding( $engcatalog, "windows-1251", "UTF-8" );
} elseif( function_exists( 'iconv' ) ) {
$engcatalog = iconv( "UTF-8", "windows-1251//IGNORE", $engcatalog );
}
}
$engcatalog = $db->safesql( dle_substr( $engcatalog, 0, 3, $config['charset'] ) );
} else $engcatalog = '';
ищем код
PHP:
elseif ($do == "" and $catalog) $dle_module = "catalog";
НИЖЕ вставляем
PHP:
elseif ($do == "" and $engcatalog) $dle_module = "engcatalog";
3. Открываем .htaccess в корне сайта
ищем код
PHP:
RewriteRule ^catalog/([^/]*)/page/([0-9]+)(/?)+$ index.php?catalog=$1&cstart=$2 [L]
НИЖЕ вставляем
PHP:
RewriteRule ^engcatalog/([^/]*)/rss.xml$ engine/rss.php?engcatalog=$1 [L]
RewriteRule ^engcatalog/([^/]*)(/?)+$ index.php?engcatalog=$1 [L]
RewriteRule ^engcatalog/([^/]*)/page/([0-9]+)(/?)+$ index.php?engcatalog=$1&cstart=$2 [L]
4. Открываем /engine/inc/categories.php
ищем ДВАЖДЫ код
РЯДОМ (сразу после второй ') вставляем ДВАЖДЫ без пробелов
5. Открываем /engine/inc/addnews.php
ищем код
PHP:
<div class="form-group">
<label class="control-label col-md-2">{$lang['addnews_title']}</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="title" id="title"> <button onclick="find_relates(); return false;" class="btn btn-sm btn-black">{$lang['b_find_related']}</button> <span class="help-button" data-rel="popover" data-trigger="hover" data-placement="right" data-content="{$lang['hint_title']}" >?</span><span id="related_news"></span>
</div>
</div>
НИЖЕ вставляем
PHP:
<div class="form-group">
<label class="control-label col-md-2">{$lang['engcatalog_url']}</label>
<div class="col-md-10">
<input type="text" name="engcatalog_url" size="5"> <span class="help-button" data-rel="popover" data-trigger="hover" data-placement="right" data-content="{$lang['engcatalog_hint_url']}" >?</span>
</div>
</div>
ищем код
PHP:
if ($config['create_catalog'] AND !$catalog_url) $catalog_url = $db->safesql( dle_substr( htmlspecialchars( strip_tags( stripslashes( trim( $title ) ) ), ENT_QUOTES, $config['charset'] ), 0, 1, $config['charset'] ) );
НИЖЕ вставляем
PHP:
$engcatalog_url = $db->safesql( dle_substr( htmlspecialchars( strip_tags( stripslashes( trim( $_POST['engcatalog_url'] ) ) ), ENT_QUOTES, $config['charset'] ), 0, 3, $config['charset'] ) );
if ($config['create_engcatalog'] AND !$engcatalog_url) $engcatalog_url = $db->safesql( dle_substr( htmlspecialchars( strip_tags( stripslashes( trim( $title ) ) ), ENT_QUOTES, $config['charset'] ), 0, 1, $config['charset'] ) );
ищем код
РЯДОМ (сразу после второй ') вставляем без пробелов
ищем код
РЯДОМ (сразу после symbol) вставляем без пробелов
6. Открываем /engine/inc/editnews.php
ищем код
PHP:
<div class="form-group">
<label class="control-label col-md-2">{$lang['edit_et']}</label>
<div class="col-md-10">
<input type="text" style="width:99%;max-width:437px;" name="title" id="title" value="{$row['title']}"> <button onclick="find_relates(); return false;" class="btn btn-sm btn-black">{$lang['b_find_related']}</button> <span class="help-button" data-rel="popover" data-trigger="hover" data-placement="right" data-content="{$lang['hint_title']}" >?</span><span id="related_news"></span>
</div>
</div>
НИЖЕ вставляем
PHP:
<div class="form-group">
<label class="control-label col-md-2">{$lang['engcatalog_url']}</label>
<div class="col-md-10">
<input type="text" name="engcatalog_url" size="5" value="{$row['engsymbol']}"> <span class="help-button" data-rel="popover" data-trigger="hover" data-placement="right" data-content="{$lang['engcatalog_hint_url']}" >?</span>
</div>
</div>
ищем код
PHP:
if ($config['create_catalog'] AND !$catalog_url) $catalog_url = $db->safesql( dle_substr( htmlspecialchars( strip_tags( stripslashes( trim( $title ) ) ), ENT_QUOTES, $config['charset'] ), 0, 1, $config['charset'] ) );
$engcatalog_url = $db->safesql( dle_substr( htmlspecialchars( strip_tags( stripslashes( trim( $_POST['engcatalog_url'] ) ) ), ENT_QUOTES, $config['charset'] ), 0, 3, $config['charset'] ) );
if ($config['create_engcatalog'] AND !$engcatalog_url) $engcatalog_url = $db->safesql( dle_substr( htmlspecialchars( strip_tags( stripslashes( trim( $title ) ) ), ENT_QUOTES, $config['charset'] ), 0, 1, $config['charset'] ) );
ищем ДВАЖДЫ код
РЯДОМ (сразу после второй ') вставляем ДВАЖДЫ без пробелов
PHP:
, engsymbol='$engcatalog_url'
ищем код
PHP:
<option value="mass_edit_symbol">{$lang['edit_selsymbol']}</option>
НИЖЕ вставляем
PHP:
<option value="mass_edit_engsymbol">{$lang['edit_selengsymbol']}</option>
7. Открываем /engine/inc/options.php
ищем код
PHP:
"{$config['catalog_sort']}"
РЯДОМ (сразу после второй ") вставляем без пробелов
PHP:
, "save_con[engcatalog_sort]", "{$config['engcatalog_sort']}"
ищем код
PHP:
"{$config['catalog_msort']}"
РЯДОМ (сразу после второй ") вставляем без пробелов
PHP:
, "save_con[engcatalog_msort]", "{$config['engcatalog_msort']}"
ищем код
PHP:
showRow( $lang['opt_sys_acat'], $lang['opt_sys_acatd'], makeCheckBox( "save_con[create_catalog]", "{$config['create_catalog']}" ) );
НИЖЕ вставляем
PHP:
showRow( $lang['opt_sys_acateng'], $lang['opt_sys_acatdeng'], makeCheckBox( "save_con[create_engcatalog]", "{$config['create_engcatalog']}" ) );
ищем код
PHP:
$save_con['create_catalog'] = intval($save_con['create_catalog']);
НИЖЕ вставляем
PHP:
$save_con['create_engcatalog'] = intval($save_con['create_engcatalog']);
8. Открываем /engine/inc/massactions.php
ищем код
PHP:
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Назначение слов для облака тегов
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
ВЫШЕ вставляем
PHP:
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Выбор английского символьного кода
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
elseif( $action == "mass_edit_engsymbol" ) {
echoheader( "<i class=\"icon-comment-alt\"></i>".$lang['header_box_title'], $lang['engcatalog_url'] );
$count = count( $selected_news );
echo <<<HTML
<form method="post">
<div class="box">
<div class="box-header">
<div class="title">{$lang['engcatalog_url']}</div>
</div>
<div class="box-content">
<div class="row box-section">
<table width="100%">
<tr>
<td height="100" class="text-center settingstd">{$lang['engcatalog_url']} <input type="text" name="engcatalog_url" size="15" class="edit" value="{$row['engsymbol']}">
HTML;
foreach ( $selected_news as $newsid ) {
$newsid = intval($newsid);
echo "<input type=hidden name=selected_news[] value=\"$newsid\">";
}
echo <<<HTML
<input type=hidden name=user_hash value="{$dle_login_hash}"><input type="hidden" name="action" value="do_mass_edit_engsymbol"><input type="hidden" name="mod" value="massactions"> <input type="submit" value="{$lang['b_start']}" class="btn btn-blue"></td>
</td>
</tr>
</table>
</div>
</div>
</div></form>
HTML;
echofooter();
exit();
}
ищем код
PHP:
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
смена ключевых слов для облака тегов
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
ВЫШЕ вставляем
PHP:
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
смена английского символьного кода
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
elseif( $action == "do_mass_edit_engsymbol" ) {
$edit_articles = 0;
$engcatalog_url = $db->safesql( dle_substr( htmlspecialchars( strip_tags( stripslashes( trim( $_POST['engcatalog_url'] ) ) ), ENT_QUOTES, $config['charset'] ), 0, 3, $config['charset'] ) );
foreach ( $selected_news as $id ) {
$edit_articles ++;
$id = intval( $id );
$db->query( "UPDATE " . PREFIX . "_post SET engsymbol='$engcatalog_url' WHERE id='$id'" );
}
$db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$db->safesql($member_id['name'])."', '{$_TIME}', '{$_IP}', '46', '')" );
clear_cache();
msg( "info", $lang['mass_symbol_ok'], $lang['mass_symbol_ok'] . " ($edit_articles)", $_SESSION['admin_referrer'] );
}
9. Открываем /engine/modules/addnews.php
ищем код
PHP:
if ($config['create_catalog']) $catalog_url = $db->safesql( dle_substr( htmlspecialchars( strip_tags( stripslashes( trim( $title ) ) ), ENT_QUOTES, $config['charset'] ), 0, 1, $config['charset'] ) ); else $catalog_url = "";
НИЖЕ вставляем
PHP:
if ($config['create_engcatalog']) $engcatalog_url = $db->safesql( dle_substr( htmlspecialchars( strip_tags( stripslashes( trim( $title ) ) ), ENT_QUOTES, $config['charset'] ), 0, 1, $config['charset'] ) ); else $engcatalog_url = "";
ищем код
РЯДОМ (сразу после второй ') вставляем без пробелов
ищем код
РЯДОМ (сразу после symbol) вставляем без пробелов
10. Открываем /engine/modules/functions.php
ищем код
PHP:
} else $catalogexclude = "";
НИЖЕ вставляем
PHP:
if( preg_match( "#engcatalog=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$engcatalog = $match[1];
$match[1] = explode (',', $match[1]);
$temp_array = array();
foreach ($match[1] as $value) {
$value = $db->safesql(trim($value));
$temp_array[] = "p.engsymbol = '{$value}'";
}
$where[] = implode(' OR ', $temp_array);
} else $engcatalog = "";
if( preg_match( "#engcatalogexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$engcatalogexclude = $match[1];
$match[1] = explode (',', $match[1]);
$temp_array = array();
foreach ($match[1] as $value) {
$value = $db->safesql(trim($value));
$temp_array[] = "p.engsymbol != '{$value}'";
}
$where[] = implode(' AND ', $temp_array);
} else $engcatalogexclude = "";
ищем код
РЯДОМ без пробелов вставляем
PHP:
.$engcatalog.$engcatalogexclude
11. Открываем /engine/print.php
ищем код
PHP:
elseif ($do == "" and $catalog) $dle_module = "catalog";
НИЖЕ вставляем
PHP:
elseif ($do == "" and $engcatalog) $dle_module = "engcatalog";
12. Открываем /engine/rss.php
ищем код
PHP:
elseif ($do == "" and $catalog) $dle_module = "catalog";
НИЖЕ вставляем
PHP:
elseif ($do == "" and $engcatalog) $dle_module = "engcatalog";
ищем код
НИЖЕ вставляем
PHP:
if (isset ( $_GET['engcatalog'] )) {
$engcatalog = @strip_tags ( str_replace ( '/', '', urldecode ( $_GET['engcatalog'] ) ) );
if ( $config['charset'] == "windows-1251" AND $config['charset'] != detect_encoding($engcatalog) ) {
if( function_exists( 'mb_convert_encoding' ) ) {
$engcatalog = mb_convert_encoding( $engcatalog, "windows-1251", "UTF-8" );
} elseif( function_exists( 'iconv' ) ) {
$engcatalog = iconv( "UTF-8", "windows-1251//IGNORE", $engcatalog );
}
}
$engcatalog = $db->safesql ( dle_substr ( $engcatalog, 0, 3, $config['charset'] ) );
} else $engcatalog = '';
13. Открываем /language/Russian/website.lng
ищем код
PHP:
'title_catalog' => "Каталог",
НИЖЕ вставляем
PHP:
'title_engcatalog' => "Список фильмов на букву",
14. Открываем /language/Russian/adminpanel.lng
ищем код
PHP:
'catalog_url' => "Символьный код:",
'catalog_hint_url' => "Символьный код предназначен для объединения группы новостей в каталоги, например, если задать группе новостей один символьный код 'a', то эта группа новостей будет доступна по адресу: http:/site.ru/catalog/a/. Допускается максимально использовать только три символа",
МЕНЯЕМ данный код на написанный ниже
PHP:
'catalog_url' => "Первая буква из русского названия:",
'catalog_hint_url' => "Сюда вставляем первую букву из русской версии названия новости. В дальнейшем данная новость будет состоять в каталоге, и ее можно будет найти по адресу http:/site.ru/catalog/я/",
'engcatalog_url' => "Первая буква из зарубежного названия:",
'engcatalog_hint_url' => "Сюда вставляем первую букву из зарубежной версии названия новости. В дальнейшем данная новость будет состоять в каталоге, и ее можно будет найти по адресу http:/site.ru/engcatalog/z/",
ищем код
PHP:
'edit_selsymbol' => "Изменить символьный код",
НИЖЕ вставляем
PHP:
'edit_selengsymbol' => "Изменить английский символьный код",
ищем код
PHP:
'opt_sys_acat' => "Автоматическое формирование буквенного каталога публикаций",
'opt_sys_acatd' => "Вы можете включить автоматическое заполнение буквенного идентификатора, для каталога публикаций. Если при добавлении публикаций на сайт он не был установлен вручную в соответствующем поле, то скрипт автоматически добавит первую букву заголовка вашей новости.",
МЕНЯЕМ его на код
PHP:
'opt_sys_acat' => "Автоматическое формирование русского буквенного каталога публикаций",
'opt_sys_acatd' => "Вы можете включить автоматическое заполнение русского буквенного идентификатора, для каталога публикаций. Если при добавлении публикаций на сайт он не был установлен вручную в соответствующем поле, то скрипт автоматически добавит первую букву заголовка вашей новости.",
'opt_sys_acateng' => "Автоматическое формирование зарубежного буквенного каталога публикаций",
'opt_sys_acatdeng' => "Вы можете включить автоматическое заполнение зарубежного буквенного идентификатора, для каталога публикаций. Если при добавлении публикаций на сайт он не был установлен вручную в соответствующем поле, то скрипт автоматически добавит первую букву заголовка вашей новости.",
15. Осталось сделать запрос в БД для добавления новой колонки. Подключаемся в phpmyadmin и делаем следующий запрос
PHP:
ALTER TABLE `dle_post` ADD `engsymbol` VARCHAR(3) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `symbol`;
Если у вас префикс таблицы не dle_ а другой, смените в запросе dle_post на префикс_post
Установка окончена, если вы сделали все правильно, то все будет работать также, как работает лично у меня.