.
При добавлении новости он проверяет текст на уникальность с помощью сервиса Content-Watch, после чего отправляет его в сервис оригинальные тексты Яндекс, а затем устанавливает по умолчанию тег Гугл.авторства.
Данный модуль не переделка старой версии которая есть в сети, идея взята с него, а вот код написан полностью с нуля.
копируйте все файлы из папки upload в данном архиве на ваш сервер.
0. Выполнить запрос в БД
INSERT INTO `dle_admin_sections` (`name`, `title`, `descr`, `icon`, `allow_groups`) VALUES
('unique', 'Check Unique v 2.0', 'Проверка уникальности текста', 'uniq_check.png', '1');
1. В файле
engine\inc\addnews.phpНайти:
if(document.addnews.title.value == ''){
Growl.info({
title: '{$lang[p_info]}',
text: '{$lang['addnews_alert']}'
});
status = 'fail';
}
Заменить на:
//Mod Check Unique v 2.0 start
if($('#full_story').val().length<'{$unique_config['min_text_full']}'){ DLEalert('{$lang['addnews_too_short']} {$unique_config['min_text_full']} {$lang['addnews_too_symb']}
'+'{$lang['addnews_too_current']} '+ $('#full_story').val().length, '{$lang['p_info']}');status = 'fail';}
else if($('#full_story').val().length>'{$unique_config['max_text_full']}'){ DLEalert('{$lang['addnews_too_long']} {$unique_config['max_text_full']} {$lang['addnews_too_symb']}
'+'{$lang['addnews_too_current']} '+ $('#full_story').val().length, '{$lang['p_info']}');status = 'fail';}
//Mod Check Unique v 2.0 end
else if(document.addnews.title.value == ''){
Growl.info({
title: '{$lang[p_info]}',
text: '{$lang['addnews_alert']}'
});
status = 'fail';
}
Найти:
</div>
<div class="row">
<div class="col-lg-12">{$fix_br}</div>
</div>
</div>
</div>
После добавить:
HTML;
//Mod Check Unique v 2.0 start
include_once ENGINE_DIR . '/data/unique_config.php';
if (array_search($member_id["user_group"], $unique_config['unique_groups']) !== false) {
if($member_id["user_group"] == 1){
if ($unique_config['content_watch_on'] == 1) {
$morefields .= "<input class="icheck" type="checkbox" id="check_unique" value="1" checked="checked" /> <label for="check_unique">{$lang['content_watch']}</label>";
}
if ($unique_config['yandex_on'] == 1) {
$morefields .= "
<input class="icheck" type="checkbox" name="check_original" id="check_original" value="1" checked="checked" /> <label for="check_original">{$lang['yandex']}</label>";
}
if ($unique_config['google_tag_on'] == 1) {
$morefields .= "
<input class="icheck" type="checkbox" name="google_plus_author" id="google_plus_author" value="1" checked="checked" /> <label for="google_plus_author">{$lang['google_tag']}</label><input type="text" name="google_plus_tags" id="google_plus_tags" value="" /> <label for="google_plus_tags">";
}
}else{
if ($unique_config['content_watch_on'] == 1) {
$morefields .= "<input type="hidden" name="check_unique" id="check_unique" value="1" /><input class="icheck" type="checkbox" value="1" checked="checked" disabled="disabled" /> <label for="check_unique">{$lang['content_watch']}</label>";
}
if ($unique_config['yandex_on'] == 1) {
$morefields .= "
<input type="hidden" name="check_original" id="check_original" value="1" /><input class="icheck" type="checkbox" value="1" checked="checked" disabled="disabled" /> <label for="check_original">{$lang['yandex']}</label>";
}
if ($unique_config['google_tag_on'] == 1) {
$morefields .= "
<input class="icheck" type="checkbox" name="google_plus_author" id="google_plus_author" value="1" checked="checked" /> <label for="google_plus_author">{$lang['google_tag']}</label><input type="text" name="google_plus_tags" id="google_plus_tags" value="" /> <label for="google_plus_tags">";
}
}
echo <<<HTML
<div class="form-group">
<label class="control-label col-lg-2">{$lang['uniq_check']}</label>
<div class="col-lg-10">
<div class="row">
<div class="col-lg-12">{$morefields}</div>
</div>
</div>
</div>
HTML;
}
//Mod Check Unique v 2.0 end
echo << $unique_config['content_watch_key'], // ваш ключ доступа (параметр key) со страницы http://www.content-watch.ru/api/request/
'text' => $parse->process($data_check_post),
'test' => $unique_config['content_watch_test'] // при значении 1 вы получите валидный фиктивный ответ (проверки не будет, деньги не будут списаны)
);
$returned = $contentwatch_check->curlPost('http://www.content-watch.ru/public/api/', $post);
}
if ($_POST['check_original'] == 1 and $returned["percent"] >= $unique_config['uniq_text']) {
$requestyandex = new yandex();
$text = str_replace("–", "", strip_tags(html_entity_decode($parse->process($data_check_post))));
$text = preg_replace("#\[.*?]#si", '', $text);
$text = preg_replace("#http\:\/\/.*?\.(png|gif|jpeg|jpg)#si", '', $text);
$response = $requestyandex->sendYandex($text);
$xml = new SimpleXMLElement($response['result']);
$result_code = (string)$xml->attributes()->code;
$result_message = (string)$xml->message;
}
}
if ($unique_config['content_watch_on'] == 1 and $unique_config['yandex_on'] == 0) {
if ($unique_config['xf_check'] == 1) {
$load_post_xf = xfieldsdataload($filecontents);
$data_check_post = $load_post_xf[$unique_config['xf_name']];
} elseif ($unique_config['xf_check'] == 0) {
$data_check_post = $full_story;
}
if ($_POST['check_unique'] == 1) {
$contentwatch_check = new ContentWatch();
$post = array(
'key' => $unique_config['content_watch_key'], // ваш ключ доступа (параметр key) со страницы http://www.content-watch.ru/api/request/
'text' => $parse->process($data_check_post),
'test' => $unique_config['content_watch_test'] // при значении 1 вы получите валидный фиктивный ответ (проверки не будет, деньги не будут списаны)
);
$returned = $contentwatch_check->curlPost('http://www.content-watch.ru/public/api/', $post);
}
}
if ($unique_config['content_watch_on'] == 0 and $unique_config['yandex_on'] == 1) {
if ($unique_config['xf_check'] == 1) {
$load_post_xf = xfieldsdataload($filecontents);
$data_check_post = $load_post_xf[$unique_config['xf_name']];
} elseif ($unique_config['xf_check'] == 0) {
$data_check_post = $full_story;
}
if ($_POST['check_original'] == 1) {
$requestyandex = new yandex();
$text = str_replace("–", "", strip_tags(html_entity_decode($parse->process($data_check_post))));
$text = preg_replace("#\[.*?]#si", '', $text);
$text = preg_replace("#http\:\/\/.*?\.(png|gif|jpeg|jpg)#si", '', $text);
$response = $requestyandex->sendYandex($text);
$xml = new SimpleXMLElement($response['result']);
$result_code = (string)$xml->attributes()->code;
$result_message = (string)$xml->message;
}
}
switch ($result_code) {
case "ILLEGAL_PARAM_VALUE":
$result_code = "недействительный URL-адрес";
break;
case "INVALID_URL":
$result_code = "неверное значение порта";
break;
case "ILLEGAL_PORT_NUMBER":
$result_code = "неверное значение передаваемого параметра";
break;
case "HOST_NOT_AVAILABLE":
$result_code = "сайт недоступен";
break;
case "BAD_FORMAT":
$result_code = "неверный формат документа";
break;
case "EXPIRED_TOKEN":
$result_code = "срок действия токена истёк";
break;
case "WRONG_USER_ID":
$result_code = "неверная учётная запись";
break;
case "HOST_NOT_OWNED_BY_USER":
$result_code = "сайт не добавлен в учётную запись пользователя";
break;
case "HOST_NOT_VERIFIED_BY_USER":
$result_code = "права пользователя на сайт не подтверждены";
break;
case "INVALID_TOKEN":
$result_code = "неверное значение токена";
break;
case "NOT_ENOUGH_TIC":
$result_code = "значение тИЦ недостаточно для совершения операций с сайтом";
break;
case "ORIGINALS_LIMIT_EXCEEDED":
$result_code = "превышен суточный лимит на добавление оригинальных текстов";
break;
case "ORIGINALS_TEXT_TOO_SHORT":
$result_code = "оригинальный текст слишком короткий";
break;
case "ORIGINALS_TEXT_TOO_LONG":
$result_code = "оригинальный текст слишком длинный";
break;
case "REQUIRED_PARAM_MISSED":
$result_code = "отсутствует обязательный параметр";
break;
case "ILLEGAL_VALUE_TYPE":
$result_code = "неверный тип переменной";
break;
case "SITEMAP_NOT_FOUND":
$result_code = "файл sitemap не найден";
break;
case "HOST_IS_MIRROR":
$result_code = "сайт является неглавным зеркалом";
break;
case "USERS_HOSTS_COUNT_LIMIT_EXCEEDED":
$result_code = "превышен лимит сайтов для одной учётной записи";
break;
case "HOST_ALREADY_ADDED":
$result_code = "сайт уже добавлен в учётную запись";
break;
case "HOST_IS_MIRROR_ALREADY_ADDED":
$result_code = "сайт является зеркалом, и уже добавлен в учётную запись";
break;
case "ORIGINALS_TEXT_ALREADY_ADDED":
$result_code = "оригинальный текст уже добавлен";
break;
case "MIRROR_IS_NOT_ALLOWED":
$result_code = "действие запрещено, поскольку сайт является зеркалом";
break;
}
if ($returned['error'] != NULL and $_POST['check_unique'] == 1) {
msg("error", $lang['all_info'], $lang['low_balance'] . $returned['error'], "javascript:history.go(-1)");
} elseif ($returned["percent"] < $unique_config['uniq_text'] and $_POST['check_unique'] == 1) {
msg("error", $lang['all_info'], $lang['addnews_low_percent'] . $returned['percent'] . ")
<img src="" />", "javascript:history.go(-1)");
} elseif ($unique_config['yandex_on'] == 1 and $_POST['check_original'] == 1 and $result_code != NULL) {
msg("error", $lang['all_info'], $result_code, "javascript:history.go(-1)");
}
//Mod Check Unique v 2.0 end
2. В файле
engine\modules\addnews.phpНайти:
if ( $max_detected ) die( "Hacking attempt!" );
$added_time = time();
$thistime = date( "Y-m-d H:i:s", $added_time );
После добавить:
//Mod Check Unique v 2.0 start
include_once ENGINE_DIR . '/data/unique_config.php';
define('CLIENT_ID', $unique_config['yandex_client_id']);
define('CLIENT_SECRET', $unique_config['yandex_client_secret']);
define('YANDEX_TOKEN', $unique_config['yandex_oauth_token']);
define('WEBSITE_ID', $unique_config['yandex_site_id']);
define('YANDEX_WEBMASTER_HOST', 'webmaster.yandex.ru');
define('YANDEX_API_REQUEST_TIMEOUT', 30);
include_once(ENGINE_DIR . '/modules/checkunique/contentwatch.class.php');
//include(ENGINE_DIR . '/modules/checkunique/textru.class.php');
include_once(ENGINE_DIR . '/modules/checkunique/yandex.class.php');
if ($unique_config['content_watch_on'] == 1 and $unique_config['yandex_on'] == 1) {
if ($unique_config['xf_check'] == 1) {
$load_post_xf = xfieldsdataload($filecontents);
$data_check_post = $load_post_xf[$unique_config['xf_name']];
} elseif ($unique_config['xf_check'] == 0) {
$data_check_post = $full_story;
}
if ($_POST['check_unique'] == 1) {
$contentwatch_check = new ContentWatch();
$post = array(
'key' => $unique_config['content_watch_key'], // ваш ключ доступа (параметр key) со страницы http://www.content-watch.ru/api/request/
'text' => $parse->process($data_check_post),
'test' => $unique_config['content_watch_test'] // при значении 1 вы получите валидный фиктивный ответ (проверки не будет, деньги не будут списаны)
);
$returned = $contentwatch_check->curlPost('http://www.content-watch.ru/public/api/', $post);
}
if ($_POST['check_original'] == 1 and $returned["percent"] >= $unique_config['uniq_text']) {
$requestyandex = new yandex();
$text = str_replace("–", "", strip_tags(html_entity_decode($parse->process($data_check_post))));
$text = preg_replace("#\[.*?]#si", '', $text);
$text = preg_replace("#http\:\/\/.*?\.(png|gif|jpeg|jpg)#si", '', $text);
$response = $requestyandex->sendYandex($text);
$xml = new SimpleXMLElement($response['result']);
$result_code = (string)$xml->attributes()->code;
$result_message = (string)$xml->message;
}
}
if ($unique_config['content_watch_on'] == 1 and $unique_config['yandex_on'] == 0) {
if ($unique_config['xf_check'] == 1) {
$load_post_xf = xfieldsdataload($filecontents);
$data_check_post = $load_post_xf[$unique_config['xf_name']];
} elseif ($unique_config['xf_check'] == 0) {
$data_check_post = $full_story;
}
if ($_POST['check_unique'] == 1) {
$contentwatch_check = new ContentWatch();
$post = array(
'key' => $unique_config['content_watch_key'], // ваш ключ доступа (параметр key) со страницы http://www.content-watch.ru/api/request/
'text' => $parse->process($data_check_post),
'test' => $unique_config['content_watch_test'] // при значении 1 вы получите валидный фиктивный ответ (проверки не будет, деньги не будут списаны)
);
$returned = $contentwatch_check->curlPost('http://www.content-watch.ru/public/api/', $post);
}
var_dump($data_check_post);
}
if ($unique_config['content_watch_on'] == 0 and $unique_config['yandex_on'] == 1) {
if ($unique_config['xf_check'] == 1) {
$load_post_xf = xfieldsdataload($filecontents);
$data_check_post = $load_post_xf[$unique_config['xf_name']];
} elseif ($unique_config['xf_check'] == 0) {
$data_check_post = $full_story;
}
if ($_POST['check_original'] == 1) {
$requestyandex = new yandex();
$text = str_replace("–", "", strip_tags(html_entity_decode($parse->process($data_check_post))));
$text = preg_replace("#\[.*?]#si", '', $text);
$text = preg_replace("#http\:\/\/.*?\.(png|gif|jpeg|jpg)#si", '', $text);
$response = $requestyandex->sendYandex($text);
$xml = new SimpleXMLElement($response['result']);
$result_code = (string)$xml->attributes()->code;
$result_message = (string)$xml->message;
}
}
switch ($result_code) {
case "ILLEGAL_PARAM_VALUE":
$result_code = "недействительный URL-адрес";
break;
case "INVALID_URL":
$result_code = "неверное значение порта";
break;
case "ILLEGAL_PORT_NUMBER":
$result_code = "неверное значение передаваемого параметра";
break;
case "HOST_NOT_AVAILABLE":
$result_code = "сайт недоступен";
break;
case "BAD_FORMAT":
$result_code = "неверный формат документа";
break;
case "EXPIRED_TOKEN":
$result_code = "срок действия токена истёк";
break;
case "WRONG_USER_ID":
$result_code = "неверная учётная запись";
break;
case "HOST_NOT_OWNED_BY_USER":
$result_code = "сайт не добавлен в учётную запись пользователя";
break;
case "HOST_NOT_VERIFIED_BY_USER":
$result_code = "права пользователя на сайт не подтверждены";
break;
case "INVALID_TOKEN":
$result_code = "неверное значение токена";
break;
case "NOT_ENOUGH_TIC":
$result_code = "значение тИЦ недостаточно для совершения операций с сайтом";
break;
case "ORIGINALS_LIMIT_EXCEEDED":
$result_code = "превышен суточный лимит на добавление оригинальных текстов";
break;
case "ORIGINALS_TEXT_TOO_SHORT":
$result_code = "оригинальный текст слишком короткий";
break;
case "ORIGINALS_TEXT_TOO_LONG":
$result_code = "оригинальный текст слишком длинный";
break;
case "REQUIRED_PARAM_MISSED":
$result_code = "отсутствует обязательный параметр";
break;
case "ILLEGAL_VALUE_TYPE":
$result_code = "неверный тип переменной";
break;
case "SITEMAP_NOT_FOUND":
$result_code = "файл sitemap не найден";
break;
case "HOST_IS_MIRROR":
$result_code = "сайт является неглавным зеркалом";
break;
case "USERS_HOSTS_COUNT_LIMIT_EXCEEDED":
$result_code = "превышен лимит сайтов для одной учётной записи";
break;
case "HOST_ALREADY_ADDED":
$result_code = "сайт уже добавлен в учётную запись";
break;
case "HOST_IS_MIRROR_ALREADY_ADDED":
$result_code = "сайт является зеркалом, и уже добавлен в учётную запись";
break;
case "ORIGINALS_TEXT_ALREADY_ADDED":
$result_code = "оригинальный текст уже добавлен";
break;
case "MIRROR_IS_NOT_ALLOWED":
$result_code = "действие запрещено, поскольку сайт является зеркалом";
break;
}
if ($returned['error'] != NULL and $_POST['check_unique'] == 1) {
msgbox("error", $lang['all_info'], $lang['low_balance'] . $returned['error'], "javascript:history.go(-1)");
} elseif ($returned["percent"] < $unique_config['uniq_text'] and $_POST['check_unique'] == 1) {
msgbox("error", $lang['all_info'], $lang['addnews_low_percent'] . $returned['percent'] . ")
<img src="" />", "javascript:history.go(-1)");
} elseif ($unique_config['yandex_on'] == 1 and $_POST['check_original'] == 1 and $result_code != NULL) {
msgbox("error", $lang['all_info'], $result_code, "javascript:history.go(-1)");
}
//Mod Check Unique v 2.0 end
Найти:
$tpl->set( '{admintag}', '' );
После вставить:
//Mod Check Unique v 2.0 start
include_once ENGINE_DIR . '/data/unique_config.php';
if ($unique_config['unique_site'] == 1) {
if (array_search($member_id["user_group"], $unique_config['unique_groups']) !== false) {
if ($member_id["user_group"] == 1) {
if ($unique_config['content_watch_on'] == 1) {
$morefields .= "<input class="icheck" type="checkbox" id="check_unique" value="1" checked="checked" /> <label for="check_unique">{$lang['content_watch']}</label>";
}
if ($unique_config['yandex_on'] == 1) {
$morefields .= "
<input class="icheck" type="checkbox" name="check_original" id="check_original" value="1" checked="checked" /> <label for="check_original">{$lang['yandex']}</label>";
}
if ($unique_config['google_tag_on'] == 1) {
$morefields .= "
<input class="icheck" type="checkbox" name="google_plus_author" id="google_plus_author" value="1" checked="checked" /> <label for="google_plus_author">{$lang['google_tag']}</label><input type="text" name="google_plus_tags" id="google_plus_tags" value="" /> <label for="google_plus_tags">";
}
} else {
if ($unique_config['content_watch_on'] == 1) {
$morefields .= "<input type="hidden" name="check_unique" id="check_unique" value="1" /><input class="icheck" type="checkbox" value="1" checked="checked" disabled="disabled" /> <label for="check_unique">{$lang['content_watch']}</label>";
}
if ($unique_config['yandex_on'] == 1) {
$morefields .= "
<input type="hidden" name="check_original" id="check_original" value="1" /><input class="icheck" type="checkbox" value="1" checked="checked" disabled="disabled" /> <label for="check_original">{$lang['yandex']}</label>";
}
if ($unique_config['google_tag_on'] == 1) {
$morefields .= "
<input class="icheck" type="checkbox" name="google_plus_author" id="google_plus_author" value="1" checked="checked" /> <label for="google_plus_author">{$lang['google_tag']}</label><input type="text" name="google_plus_tags" id="google_plus_tags" value="" /> <label for="google_plus_tags" />";
}
}
}
$tpl->set('[morefields]', "");
$tpl->set('[/morefields]', "");
$tpl->set('{morefields}', $morefields);
} else {
$tpl->set('{morefields}', '');
$tpl->set_block("'\\[morefields\\].*?\\[/morefields\\]'si", "");
}
//Mod Check Unique v 2.0 end
Найти: if(document.entryform.title.value == ''){
DLEalert('{$lang['add_err_7']}', dle_info);
status = 'fail';
}
ВЫШЕ вставить:
//Mod Check Unique v 2.0 start
if($('#full_story').val().length<'{$unique_config['min_text_full']}'){ DLEalert('{$lang['addnews_too_short']} {$unique_config['min_text_full']} {$lang['addnews_too_symb']}
'+'{$lang['addnews_too_current']} '+ $('#full_story').val().length, '{$lang['p_info']}');status = 'fail';}
else if($('#full_story').val().length>'{$unique_config['max_text_full']}'){ DLEalert('{$lang['addnews_too_long']} {$unique_config['max_text_full']} {$lang['addnews_too_symb']}
'+'{$lang['addnews_too_current']} '+ $('#full_story').val().length, '{$lang['p_info']}');status = 'fail';}
//Mod Check Unique v 2.0 end
3. В файле
language\Russian\adminpanel.lngНайти:
'admin_logo' => "engine/skins/images/nav.jpg",
'wysiwyg_language' => "ru",
После добавить://Mod Check Unique v 2.0 start
//main
'uniq_check' => "Uniq Check",
'uniq_check_des' => "Check Unique v 2.0",
'opt_checkDescr' => "Проверка текста на уникальность.",
'opt_checkDescr2' => "Основные настройки.",
'opt_checkDescr3' => "Включение отключение сервисов.",
'text_ru_main' => "TEXT.RU",
'text_ru_main_desc' => "Настройки сервиса TEXT.RU",
'content_watch_main' => "Content-Watch",
'content_watch_main_desc' => "Настройки сервиса Content-Watch",
'yandex_main' => "Оригинальные тексты Яндекс",
'yandex_main_desc' => "Настройки сервиса Оригинальные тексты Яндекс.",
//settings
'unique_site' => "Проверка при добавлении с сайта",
'unique_site_descr' => "Если включено, то будет включена проверка при добавлении новостей с сайта.",
'yandex_settings' => "Оригинальные тексты Яндекс",
'yandex_settings_descr' => "Если включено, текст будет отправляться в Оригинальные тексты Яндекс.",
'content_watch_settings' => "Content-Watch - проверка текста на уникальность.",
'content_watch_settings_descr' => "Если включено, будет происходить проверка текста на уникальность через сервис Content-Watch.",
'text_ru_settings' => "TEXT.RU - проверка текста на уникальность.",
'text_ru_settings_descr' => "Если включено, будет происходить проверка текста на уникальность через сервис TEXT.RU.",
'min_text_full' => "Минимальное количество символов для полной новости",
'min_text_full_descr' => "Укажите количество символов для полной новости, при котором новость будет проходить проверку.",
'max_text_full' => "Максимальное количество символов для полной новости",
'max_text_full_descr' => "Укажите количество символов для полной новости.",
'xf_check' => "Проверять по дополнительному полю",
'xf_check_settings' => "Если включено, будет происходить проверка текста из дополнительного поля.",
'xf_name_settings' => "Имя дополнительного поля",
'xf_name_settings_descr' => "Укажите имя дополнительного поля которое будет проверяться.",
'unique_groups' => "Группы пользователей",
'unique_groups_descr' => "Выберете группы пользователей, для которых будут отображатся возможности проверки уникальности текстов.",
//yandex
'yandex' => "Оригинальные тексты Яндекс",
'yandex_site_id' => "ID вашего сайта в Yandex API",
'yandex_site_id_descr' => "Идентификатор вашего сайта на Яндекс.Вебмастере",
'yandex_oauth_token' => "Яндекс.OAuth Токен",
'yandex_oauth_token_descr' => "Токен для авторизации в Yandex API",
'yandex_client_secret' => "Пароль приложения Яндекс.OAuth",
'yandex_client_secret_descr' => "Пароль приложения в формате URL encoded. Доступен в свойствах приложения (нажмите название приложения, чтобы открыть его свойства).",
'yandex_client_id' => "ID приложения Яндекс.OAuth",
'yandex_client_id_descr' => "Идентификатор приложения. Доступен в свойствах приложения (нажмите название приложения, чтобы открыть его свойства).",
//text ru
//content watch
'content_watch' => "Content-Watch",
'content_watch_key' => "Ключ доступа content-watch.ru",
'content_watch_key_descr' => "Ваш ключ доступа, служащий для идентификации вас как пользователя.",
'content_watch_uniq_text' => "Уникальность текста для статьи.",
'content_watch_uniq_text_descr' => "Укажите минимальное значение в прцентах.",
'content_watch_test' => "Тестовая Эксплуатация content-watch.ru",
'content_watch_test_descr' => "При значении '1' вы получите ответ с фабрикованными данными. Текст проверен не будет, запрос не будет учитываться в статистике. Полезно для тестирования алгоритма разбора ответа",
//admin
'addnews_too_current' => "У вас сейчас:",
'addnews_too_short' => "На материал распространяются ограничения: от ",
'addnews_too_long' => "На проверяемый текст распространяются ограничения: до",
'addnews_too_symb' => "символов (рекомендуемая длина текста для максимизации качества проверки — 5 000 символов)",
'addnews_low_percent' => "Контент не уникальный, публикация запрещена (процент совпадения:",
'addnews_err' => "Ошибка проверки текста на уникальность: ",
'addnews_yandex_submit_err' => "Ошибка добавления текста в Yandex API сервис Оригинальные тексты: Проверка текста на уникальность является обязательной для этой операции.",
'addnews_yandex_err' => "Ошибка добавления текста в Yandex API Оригинальные тексты: ",
'addnews_gplus_err' => "Ошибка добавления текста: Не указан тег авторства Google+",
'low_balance' => "Ошибка проверки:",
//Mod Check Unique v 2.0 end
4. В файле
language\Russian\website.lngНайти:
'wysiwyg_language' => "ru",
Поле добавить:
//Mod Check Unique v 2.0 start
'add_unique' => "Проверить текст на уникальность",
'add_original' => "Отправить в сервис Яндекс.\"Оригинальные тексты\"",
'add_plus' => "Вставить отметку автора Google +",
'add_plus_field' => "Поле для ввода мета-ссылки",
'content_watch' => "Content-Watch",
'yandex' => "Оригинальные тексты Яндекс",
'addnews_too_current' => "У вас сейчас:",
'addnews_too_short' => "На материал распространяются ограничения: от ",
'addnews_too_long' => "На проверяемый текст распространяются ограничения: до",
'addnews_too_symb' => "символов (рекомендуемая длина текста для максимизации качества проверки — 5 000 символов)",
'addnews_low_percent' => "Контент не уникальный, публикация запрещена (процент совпадения:",
'addnews_err' => "Ошибка проверки текста на уникальность: ",
'addnews_yandex_submit_err' => "Ошибка добавления текста в Yandex API сервис Оригинальные тексты: Проверка текста на уникальность является обязательной для этой операции.",
'addnews_yandex_err' => "Ошибка добавления текста в Yandex API Оригинальные тексты: ",
'addnews_gplus_err' => "Ошибка добавления текста: Не указан тег авторства Google+",
'low_balance' => "Ошибка проверки:",
'addnews_too_current' => "У вас сейчас:",
'addnews_too_short' => "На материал распространяются ограничения: от ",
'addnews_too_long' => "На проверяемый текст распространяются ограничения: до",
'addnews_too_symb' => "символов (рекомендуемая длина текста для максимизации качества проверки — 5 000 символов)",
//Mod Check Unique v 2.0 end
5. В файле
templates\Default\addnews.tplНайти:
<td colspan="2">{admintag}</td>
ВЫШЕ добавить:
[morefields]
<tr>
<td colspan="2">{morefields}</td>
</tr>
[/morefields]
Задание параметров в админпанели:2.1. Перейдите в настройку системы по ссылке ВАШ САЙТ/admin.php?mod=options&action=syscon.
2.2. Кликните по появившейся иконке "Проверка уникальности".
2.3. Введите начальные данные для работы скрипта:
2.3.0. Ключ доступа content-watch.ru: (получить на сайте, пример - 43dfnldf2df0bF)
2.3.1 Тестовая эксплуатация content-watch.ru: Нет для полноценной работы, Да - для проверки - тогда деньги со счета не снимаются, но и все данные генерируются случайным образом.
2.3.2 Создание приложения: https://oauth.yandex.ru/client/new
2.3.3. ID вашего сайта в Yandex API: Получить его можно по ссылке: http://webmaster.yandex.ua/site/?wizard=add.site
2.3.4. Токен для авторизации в Yandex API: Как получить Токен описано в документации по ссылке: http://api.yandex.ru/oauth/doc/dg/concepts/ya-oauth-intro.xml#token. (
пример: https://oauth.yandex.ru/authorize?response_type=token&client_id=f0b4a3f3673843969488a88788275f2f где f0b4a3f3673843969488a88788275f2f это ID созданого приложения)
ответ будет примерно таким: https://ВАШ САЙТ/index.php?do=auth-social&provider=yandex#access_token=cf875b9a650d4f1b81b4132f413627e8&token_type=bearer&expires_in=31536000
Где access_token=cf875b9a650d4f1b81b4132f413627e8 и есть токен
3. Добавление новости и проверка текста на уникальность:
3.1. По ссылке ВАШ САЙТ/addnews.html, либо ВАШ САЙТ/admin.php?mod=addnews&action=addnews - появились 3 галочки. При не удовлетворении какого-либо из условий, требуемых для проверки на уникальность - появляется ошибка с описанием проблемы; в таком случае текст не публикуется, пока текст не начнет соответствовать требуемым условиям.