Category-URL

Category-URL

Как известно, в DLE при построении ссылки на полную новость (ЧПУ 2) и в спидбаре отображается та категория, которая просто идет первой в списке. Этот хак позволяет индивидуально выбирать отдельную категорию для формирования ссылки на полную новость и для отображения в спидбаре. Данная тема особенно актуальна для киносайтов.


Работает он только на страницах админки, при добавлении и редактировании новости. Выглядит он следующим образом:


Вот так будут выглядеть ссылка на новость и выбранные категории:


Установка:

1. Выполнить запрос в БД:
ALTER TABLE  `dle_post` ADD  `category_url` MEDIUMINT( 8 ) NOT NULL DEFAULT  '0' AFTER  `category`;

2. Открыть engine/inc/addnews.php и найти:
							 <div class="form-group">
							  <label class="control-label col-md-2">{$lang['addnews_cat']}</label>
							  <div class="col-md-10">
								<select data-placeholder="{$lang['addnews_cat_sel']}" name="category[]" id="category" onchange="onCategoryChange(this)" $category_multiple style="width:100%;max-width:350px;">{$categories_list}</select>
							  </div>
							</div>

Добавить ниже:
							<div class="form-group">
							  <label class="control-label col-md-2">Основная категория</label>
							  <div class="col-md-10">
								<select data-placeholder="{$lang['addnews_cat_sel']}" name="category_url" class="categoryselect" onchange="onCategoryChange(this)" style="width:350px;">{$categories_list}</select>
							  </div>
							 </div>

Найти:
	$category = $_POST['category'];

Добавить ниже:
	$category_url = intval( $_POST['category_url'] );

Найти:
category,

Заменить на:
category, category_url,

В этой же строке найти:
'$category_list',

Заменить на:
'$category_list', '$category_url',

3. Открыть engine/inc/editnews.php и найти:
	$categories_list = CategoryNewsSelection( $cat_list, 0 );

Добавить ниже:
	$category_url = CategoryNewsSelection( $row['category_url'], 0 );

Найти:
							<div class="form-group">
							  <label class="control-label col-md-2">{$lang['edit_cat']}</label>
							  <div class="col-md-10">
								<select data-placeholder="{$lang['addnews_cat_sel']}" name="category[]" id="category" onchange="onCategoryChange(this)" {$category_multiple} style="width:350px;">{$categories_list}</select>
							  </div>
							 </div>

Добавить ниже:
							<div class="form-group">
							  <label class="control-label col-md-2">Основная категория</label>
							  <div class="col-md-10">
								<select data-placeholder="{$lang['addnews_cat_sel']}" name="category_url" class="categoryselect" onchange="onCategoryChange(this)" style="width:350px;">{$category_url}</select>
							  </div>
							 </div>

Найти:
	$category = $_POST['category'];

Добавить ниже:
	$category_url = intval( $_POST['category_url'] );

Найти (2 раза):
category='$category_list',

Заменить на:
category='$category_list', category_url='$category_url',

4. Открыть engine/modules/show.full.php и найти:
		$category_id = intval( $row['category'] );

Добавить ниже:
		if($row['category_url']) $category_id = $row['category_url'];

Найти:
		$category_id = $row['category'];

Добавить ниже:
		if($row['category_url']) $category_id = $row['category_url'];

5. Открыть engine/modules/show.short.php, engine/modules/show.custom.php и найти:
	$row['category'] = intval( $row['category'] );

Добавить ниже:
	if($row['category_url']) $row['category'] = $row['category_url'];

6. Открыть engine/engine.php, engine/modules/functions.php и найти все:
p.category,

Заменить на:
p.category, p.category_url,

7. Открыть engine/modules/lastcomments.php и найти:
" . PREFIX . "_post.category

Заменить на:
" . PREFIX . "_post.category, " . PREFIX . "_post.category_url

8. Открыть engine/classes/comments.class.php и найти:
$row['category'] = intval( $row['category'] );

Добавить ниже:
	if($row['category_url']) $row['category'] = $row['category_url'];

Готово!
 
Версия DLE: 10.2-11.0
Автор: Sander
Источник
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.