Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2010-03-29 15:50:36

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

id в урл новости для попадания в гугл нюз?

Юзаю тему как попасть в гуглнюз и столкнулся с проблемой что не все новости попадаю туда (всего пару штук в день) потом начал техничесткие требования искать и наткнулся на таку проблему - гугл хочет чтобы в урл были более 3 цыфр и тогда будет все ок.

Технические требования: URL-адреса статей


Если вы хотите включить URL своих статей в Новости Google, они должны соответствовать следующим требованиям:

Быть уникальными. Каждая из страниц, отображающих полный текст статьи, должна иметь уникальный URL. Мы не можем включить в Новости Google сайты, отображающие несколько статей под одним URL или не имеющие ссылок на страницы, посвященные только одной статье каждая.

Быть постоянными. Например, мы не сможем сканировать страницу www.vash_sait.com/novosti1.html, если ее содержание ежедневно меняется. Чтобы гарантировать надлежащее функционирование наших ссылок на статьи, каждая статья на новостном сайте должна быть связана с одним уникальным URL, и этот URL должен быть постоянным (то есть, он не может использоваться повторно).

Отображать трехзначное число. URL каждой статьи должен содержать уникальный номер, состоящий по крайней мере из трех разрядов. Например, мы не можем сканировать статью с таким URL: http://www.google.com/news/article23.html. Зато можем сканировать статью с таким URL: http://www.google.com/news/article234.html

Примите во внимание, если единственным числом в статье является четырехзначный номер, похожий на год, например, http://www.google.com/news/article2006.html, мы не можем сканировать ее.

Посмотрел свои новости в гугл нюз и действительно в новостях где есть хоть какието цыфри, то они попадают а с простым урл нет(((
Вот я и подумал, что вручную ето конешно сложно будет всегда дописывать а вот если б туда id новости вписать то было б супер

кто что посоветует?

Изменено legenda (2010-03-29 15:51:26)

Не в сети

#2 2010-03-29 15:55:00

Nushaba
Участник
Зарегистрирован: 2009-11-09
Сообщений: 276
Рейтинг :   

Re: id в урл новости для попадания в гугл нюз?

Не сильно красиво, но изменить вид ссылки, добавив скажем 000 перед ЧПУ.html

Не в сети

#3 2010-03-29 16:14:24

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: id в урл новости для попадания в гугл нюз?

legenda, в ЧПУ добавь айди к новости и все.

Не в сети

#4 2010-03-29 16:25:58

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: id в урл новости для попадания в гугл нюз?

Trashcka, ето в управление форматом ссилок?

тут сделал так    
news -    news -        /{category}/{altname}_100{id}[/page{page}].html

тепер все ссилки имеют минимум 3 цыфри.

- Вопрос такой несломал ли я етим чтото?
- Вожможен ли какойто другой вариант чтобы действовало только для новых новостей, а то пролучается все старые урл недействительные (((

Не в сети

#5 2010-03-29 16:43:21

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: id в урл новости для попадания в гугл нюз?

Хорошо бы както добавить id, чтобы он в алт новости дописывался так бы все старые альт останысь а все новый были б с цыфрами

Не в сети

#6 2010-03-29 17:20:14

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: id в урл новости для попадания в гугл нюз?

legenda, это подействует только для новых, все старые надо ручками переписать.

Не в сети

#7 2010-03-29 18:07:27

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: id в урл новости для попадания в гугл нюз?

Trashcka, мне какраз для новых и надо, а вот так неполучается, изменение для все ссилок делается(

или то что я сделал это не то что ты писала? тогда поподробнее напиши...

Изменено legenda (2010-03-29 18:08:36)

Не в сети

#8 2010-03-29 21:01:40

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

Re: id в урл новости для попадания в гугл нюз?

Не, это то, что я и говорила.
С запросом для старых новостей не помогу т.к. не шарю, может кто из знающих подскажет.

Не в сети

#9 2010-03-30 09:59:46

KhadeR
Участник
Зарегистрирован: 2009-09-16
Сообщений: 207
Рейтинг :   17 

Re: id в урл новости для попадания в гугл нюз?

~55 строчка /engine/actions/addnews.php:
вместо:

	// Check for dup if alt_name is specified
	if ($alt_name) {
		if ( is_array($mysql->record("select id from ".prefix."_news where alt_name = ".db_squote($alt_name)." limit 1")) ) {
			msg(array("type" => "error", "text" => $lang['msge_alt_name'], "info" => $lang['msgi_alt_name']));
			return;
		}
		$SQL['alt_name'] = $alt_name;
	} else {
		// Generate uniq alt_name if no alt_name specified
		$alt_name = strtolower($parse->translit(trim($title), 1));
		// Make a conversion:
		// * '.'  to '_'
		// * '__' to '_' (several to one)
		// * Delete leading/finishing '_'
		$alt_name = preg_replace(array('/\./', '/(_{2,20})/', '/^(_+)/', '/(_+)$/'), array('_', '_'), $alt_name);

		// Make alt_name equal to '_' if it appear to be blank after conversion
		if ($alt_name == '') $alt_name = '_';

		$i = '';
		while ( is_array($mysql->record("select id from ".prefix."_news where alt_name = ".db_squote($alt_name.$i)." limit 1")) ) {
			$i++;
		}
		$SQL['alt_name'] = $alt_name.$i;
	}

вставить:

		// Check for dup if alt_name is specified
		if ($alt_name) {
			if ( is_array($mysql->record("select id from ".prefix."_news where alt_name = ".db_squote($alt_name)." limit 1")) ) {
				msg(array("type" => "error", "text" => $lang['msge_alt_name'], "info" => $lang['msgi_alt_name']));
				return;
			}
			$SQL['alt_name'] = $alt_name.rand(100, 999);
		} else {
			// Generate uniq alt_name if no alt_name specified
			$alt_name = strtolower($parse->translit(trim($title), 1));
			// Make a conversion:
			// * '.'  to '_'
			// * '__' to '_' (several to one)
			// * Delete leading/finishing '_'
			$alt_name = preg_replace(array('/\./', '/(_{2,20})/', '/^(_+)/', '/(_+)$/'), array('_', '_'), $alt_name);
	
			// Make alt_name equal to '_' if it appear to be blank after conversion
			if ($alt_name == '') $alt_name = '_';
	
			$i = '';
			while ( is_array($mysql->record("select id from ".prefix."_news where alt_name = ".db_squote($alt_name.$i)." limit 1")) ) {
				$i++;
			}
			$SQL['alt_name'] = $alt_name.$i.rand(100, 999);
		}

Тогда для старых новостей адрес остается тот же, что и был, а у новых прибавляется произвольное число от 100 до 999 в конце.

Не в сети

#10 2010-03-30 12:22:28

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: id в урл новости для попадания в гугл нюз?

KhadeR, попробую и отпишусь....

Не в сети

#11 2010-04-10 18:15:56

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: id в урл новости для попадания в гугл нюз?

KhadeR, работает, все как надо, спасибо!

Не в сети

#12 2012-03-04 07:46:09

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: id в урл новости для попадания в гугл нюз?

Поскажите как эту фишку решить в последних СВН версиях, в релизе 0.9.3 понятно, там вместо файла addnews.php надо news.php и блок такой был, а вот смотрю версия 956 уже даже нету такого блока, где ковирять?

Не в сети

#13 2012-03-12 06:45:36

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: id в урл новости для попадания в гугл нюз?

дас, весело в последнее время.... sad

Не в сети

#14 2012-03-21 03:02:43

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: id в урл новости для попадания в гугл нюз?

legenda, а настройками ЧПУ пользоваться не пробовал? smile
b07481134f491963bb9f2e7a6908d99a.png
Ведущие нули можешь не добавлять если у тебя ID новости > 100 (чтобы гарантированно было 3 цифры).

Не в сети

#15 2012-03-21 18:48:37

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: id в урл новости для попадания в гугл нюз?

vitaly, а читать тему с начала не пробовал? smile
понятноже что этот вариант не подходит

Не в сети

#16 2012-03-31 21:29:39

Knopik
Разработчик
Откуда ufa
Зарегистрирован: 2009-10-14
Сообщений: 353
Рейтинг :   62 
Сайт

Re: id в урл новости для попадания в гугл нюз?

legenda, часть кода /engine/actions/addnews.php ушло в /engine/includes/inc/lib_admin.php
~333 строка, свн не помню у меня какой, по моему 965

Не в сети

#17 2012-04-01 04:35:09

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: id в урл новости для попадания в гугл нюз?

legenda, пробовал. Но не могу понять почему тебе не подходит вариант через ЧПУ.

А вообще можно в engine/includes/inc/lib_admin.php после ~434 (SVN версия):

	$mysql->query("insert into ".prefix."_news (".implode(",",$vnames).") values (".implode(",",$vparams).")");
	$id = $mysql->result("SELECT LAST_INSERT_ID() as id");

добавить:

	$SQL['alt_name'] = sprintf("%03u", $id).$SQL['alt_name'];
	$mysql->query("update ".prefix."_news set alt_name = ".db_squote($SQL['alt_name'])." where id = ".intval($id));

И тогда во всех новых новостях в начало альт. имени будет добавляться ID новости.

Так пойдёт? smile

Не в сети

#18 2012-04-01 08:39:31

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: id в урл новости для попадания в гугл нюз?

Knopik пишет:

legenda, часть кода /engine/actions/addnews.php ушло в /engine/includes/inc/lib_admin.php
~333 строка, свн не помню у меня какой, по моему 965

спасибо, нашел нужет код там

vitaly пишет:

legenda, пробовал. Но не могу понять почему тебе не подходит вариант через ЧПУ.

через ЧПУ не подходит так как у всех новых старых новостях у меня поменяется урл и все старые новости выпадут из индекса

vitaly пишет:

А вообще можно в engine/includes/inc/lib_admin.php после ~434 (SVN версия):

	$mysql->query("insert into ".prefix."_news (".implode(",",$vnames).") values (".implode(",",$vparams).")");
	$id = $mysql->result("SELECT LAST_INSERT_ID() as id");

добавить:

	$SQL['alt_name'] = sprintf("%03u", $id).$SQL['alt_name'];
	$mysql->query("update ".prefix."_news set alt_name = ".db_squote($SQL['alt_name'])." where id = ".intval($id));

И тогда во всех новых новостях в начало альт. имени будет добавляться ID новости.

Так пойдёт? smile

А так уже не плохо, только цыфри идут сначала а потом альтнейм.

Вопшем все ок подходят оба варианта, теперь даже можно выбирать)))!

Изменено legenda (2012-04-01 08:41:55)

Не в сети

#19 2012-04-01 10:15:36

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: id в урл новости для попадания в гугл нюз?

legenda пишет:
vitaly пишет:

legenda, пробовал. Но не могу понять почему тебе не подходит вариант через ЧПУ.

через ЧПУ не подходит так как у всех новых старых новостях у меня поменяется урл и все старые новости выпадут из индекса

Вообще можно было бы сделать так, чтобы новость была доступна с и без цифр одновременно, при этом двиг бы генерил ссылки только с цифрами.
Тогда бы старые из индекса не выпали..

legenda пишет:

А так уже не плохо, только цыфри идут сначала а потом альтнейм.

Тогда делаешь:

	$SQL['alt_name'] = $SQL['alt_name'].sprintf("%03u", $id);

или даже:

	$SQL['alt_name'] = $SQL['alt_name']."-".sprintf("%03u", $id);

и цифры будут в конце (и даже отделённые символом "-" от альт.имени).

Не в сети

Подвал раздела

Работает на FluxBB