Русский English Deutsch Українська Қазақша

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

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

Вы не вошли.

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

legenda
Участник
Откуда: ua
Здесь с 2009-12-22
Сообщений: 2,151
Рейтинг :   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 14:51:26)

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Вне форума

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

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

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

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

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

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

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

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Вне форума

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

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

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

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

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

Отредактировано legenda (2010-03-29 17:08:36)

Вне форума

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

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

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

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

Вне форума

#9 2010-03-30 08: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 в конце.


Linkum
В ТОП без фильтров и банов - Оптимизм.

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Вне форума

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

Knopik
Участник
Откуда: ufa
Здесь с 2009-10-14
Сообщений: 342
Рейтинг :   59 
Сайт

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

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

Вне форума

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

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

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 новости.

Так пойдёт? :)

Вне форума

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

legenda
Участник
Откуда: ua
Здесь с 2009-12-22
Сообщений: 2,151
Рейтинг :   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 новости.

Так пойдёт? :)

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

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

Отредактировано legenda (2012-04-01 07:41:55)

Вне форума

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

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

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

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

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

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

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

legenda пишет:

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

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

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

или даже:

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

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

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB 1.5.11
Модифицировал Visman

[ Сгенерировано за 0.050 сек, 7 запросов выполнено - Использовано памяти: 604.55 Кбайт (Пик: 641.55 Кбайт) ]