Перейти к публикации

Оптимизировать модуль Seotype под DLE 10.4


Рекомендованные сообщения

Есть сайт на DLE 10.1 выкса.рф, на котором установлен сторонний модуль.

Предыстория: когда в 2006 году запускался сайт, у DLE не было возможности выбирать тип ЧПУ и по умолчанию использовался тип ЧПУ-3 (http://site.ru/2008/...мя-новости.html ), когда ввели ЧПУ-1 (http://site.ru/id-имя-новости.html ), я заказал модуль, который бы позволял публиковать новости с ЧПУ-1, а старые оставил бы на ЧПУ-3 (чтобы адрес не изменился, тк там висят ссылки с Sape).

Модуль мне сделали (файл в приложении), и он хорошо работал до версии DLE 10.1. Сейчас я обновился с 10.1 на 10.4 (пока на виртуалке) - модуль работать перестал. Надо его оптимизировать под новую версию, немного доработать и если это возможно - улучшить.

Что доработать - убрать галочку при добавлении/редактировании новости и по умолчанию на всех добавляемых новостях (кроме старых, тех что с ЧПУ-3, даже если их отредактировать) ставить ЧПУ-1.

Все вопросы в личку, https://vk.com/ivanmalyshev или Skype blagoy_vip



0) выполнить в phpmyadmin

ALTER TABLE  `dle_post` ADD  `seo_type` TINYINT NOT NULL



1) /inc/addnews.php ищем

В Яндекс.Новости

после него, перед </td> добавляем

<!-- dymm seotype -->

<br/><input type="checkbox" value="1" name="seo_type">Тип ЧПУ = 1ищем

$allow_yandex = isset( $_POST['allow_yandex'] ) ? intval( $_POST['allow_yandex'] ) : 0;

ПОСЛЕ вставляем

//dymm seotype

$seo_type = isset( $_POST['seo_type'] ) ? intval( $_POST['seo_type'] ) : 0;

ищем

$row = $db->insert_id();

ПОСЛЕ вставляем

//dymm seotype

$db->query( "UPDATE " . PREFIX . "_post set seo_type='{$seo_type}' where id = '{$row}'" );


2) inc/editnews.php

ищем

if( $row['allow_yandex'] ) $ifya = "checked"; else $ifya = "";

ПОСЛЕ вставляем

//dymm seotype

if( $row['seo_type'] ) $ifseo = "checked"; else $ifseo = "";ищем

<input type="checkbox" name="allow_yandex" value="1" {$ifya}>В Яндекс.Новости

ПОСЛЕ него, перед </td> добавляем

<!-- dymm seotype -->

<br/><input type="checkbox" value="1" name="seo_type" {$ifseo}>Тип ЧПУ = 1

ищем

$allow_yandex = isset( $_POST['allow_yandex'] ) ? intval( $_POST['allow_yandex'] ) : 0;

После вставляем

//dymm seotype

$seo_type = isset( $_POST['seo_type'] ) ? intval( $_POST['seo_type'] ) : 0;ищем

if ($item_db[6]) $db->query(...............

ПЕРЕД НИМ вставляем

//dymm seotype

$db->query( "UPDATE " . PREFIX . "_post set seo_type='{$seo_type}' where id='$item_db[0]'" );



3) /modules/show_short.php

ищем

$sql_result = $db->query( $sql_select );

ПЕРЕД НИМ вставляем

//dymm seotype

$sql_select = str_replace('id,','id,seo_type,',$sql_select);находим

if( ($row['full_story'] < 13) AND $config['hide_full_link'] == "yes" ) $tpl->set_block( "'\\[full-link\\](.*?)\\[/full-link\\]'si", "" );

ПЕРЕД ним вставляем

//dymm seotype------------------>

if($config['allow_alt_url'] == "yes"  && $row['seo_type'] == 1){

$full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";

}

//dymm <------------------



4)/engine/modules/show.full.php

находлим первыйif( $config['allow_alt_url'] == "yes" ) {

ПЕРЕД ним вставляем//dymm seotype start ------------------------------>

  if ($row['seo_type'] == 1) {


	$full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";

	if ($config['seo_control'] AND ( isset($_GET['seourl']) OR strpos ( $_SERVER['REQUEST_URI'], $row['id'] ) === false ) ) {	 if ($_GET['seourl'] != $row['alt_name'] OR $_GET['seocat'] OR $_GET['news_name'] OR strpos ( $_SERVER['REQUEST_URI'], "?" ) !== false OR ($_GET['news_page'] == 1 AND $cstart < 2 AND $view_template != "print") OR ($view_template == "print" AND $news_page > 1) ) {

	  if ($view_template == "print") {	   $re_url = explode ( "engine/print.php", strtolower ( $_SERVER['PHP_SELF'] ) );

	   $re_url = reset ( $re_url );

	  } else {	   $re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );

	   $re_url = reset ( $re_url );

	  }	  header("HTTP/1.0 301 Moved Permanently");

	  header("Location: {$re_url}{$row['id']}-{$row['alt_name']}.html");

	  die("Redirect");

	 }	}

	$config['seo_control'] = false;

   }

//dymm <--------------------------------------------находим

$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE id IN({$row['related_ids']}) ORDER BY id DESC");

ЗАМЕНЯЕМ НА

$db->query( "SELECT id,seo_type, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE id IN({$row['related_ids']}) ORDER BY id DESC");


находим

$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$where_category}{$allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );ЗАМЕНЯЕМ НА

$db->query( "SELECT id,seo_type, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$where_category}{$allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );

находим

$tpl2->set( '{title}', strip_tags( stripslashes( $related['title'] ) ) );

ПЕРЕД НИМ вставляем

//dymm seotype------------------>

if($config['allow_alt_url'] == "yes"  && $related['seo_type'] == 1){

  $rel_full_link = $config['http_home_url'] . $related['id'] . "-" . $related['alt_name'] . ".html";

}

//dymm <------------------




5) /modules/show.custom.php (вставить строчку $sql_result = $db->query( $sql_select )ищем

$sql_result = $db->query( $sql_select );

ПЕРЕД НИМ вставляем

//dymm seotype

$sql_select = str_replace('id,','id,seo_type,',$sql_select);

находим

if( $row['full_story'] < 13 AND $config['hide_full_link'] == "yes" ) $tpl->set_block( "'\\[full-link\\](.*?)\\[/full-link\\]'si", "" );ПЕРЕД ним вставляем

//dymm seotype------------------>

if($config['allow_alt_url'] == "yes"  && $row['seo_type'] == 1){

$full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";

}

//dymm <------------------



6) /engine/classes/google.class.phpнаходим

$result = $db->query( "SELECT p.id, p.date, p.alt_name, p.category, e.editdate, e.disable_index FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE approve=1" . $where_date . " ORDER BY date DESC" . $this->limit );

ЗАМЕНЯЕМ НА$result = $db->query( "SELECT p.id,p.seo_type, p.date, p.alt_name, p.category, e.editdate, e.disable_index FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE approve=1" . $where_date . " ORDER BY date DESC" . $this->limit );


находим

if ( $row['editdate'] ){ПЕРЕД НИМ вставляем

//dymm seotype------------------>

if($this->allow_url == "yes"  && $row['seo_type'] == 1){

$loc = $this->home  . $row['id'] . "-" . $row['alt_name'] . ".html";

}

//dymm <------------------

[/code]

Изменено пользователем blagoy_vip
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...