1 (17.03.2013 04:30 отредактировано Xnokie)

Тема: Микроразметка рейтинга новостей

Здравствуйте ув.форумчане.
Использую новый рейтинг от Sander Ilike. Установка его происходила следующим образом:

+ открыть спойлер

Для DLE 9.6 и старше залить файл ilike.php в папку engine/modules/

Открыть файл стилей шаблона и прописать там:
.ilike{display:inline-block;height:22px;font:bold 12px/22px Arial;padding:1px;border:1px solid #ccc;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);cursor:pointer;background-color:#659a22;background-image: -moz-linear-gradient(top, #9ac92c, #659a22);background-image: -ms-linear-gradient(top, #9ac92c, #659a22);background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9ac92c), to(#659a22));background-image: -webkit-linear-gradient(top, #9ac92c, #659a22);background-image: -o-linear-gradient(top, #9ac92c, #659a22);background-image:linear-gradient(top, #9ac92c, #659a22);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9ac92c', endColorstr='#659a22', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(255, 255, 255, 0.15) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}
.ilike:hover{background-color:#659a22;}
    .ilike span{display:inline-block;height:100%;padding:0 7px;background:#fff;color:#6ba034;text-shadow:none;border-radius:3px;}
    .ilike i{display:inline-block;height:100%;padding:0 3px;color:#fff;}


Открыть подключенный к шаблону JavaScript файл, прописать там:
$(function(){
    $(".ilike[data-newsid]").click(function(){
        var $this = $(this);
        var news_id = parseInt($this.data('newsid'));
        if(news_id>0){
            $.get(dle_root+"engine/modules/ilike.php",{news_id:news_id},function(data){
                if(data==parseInt(data)) $this.find('span').html(data);
                else alert(data);
            });
        }
        return false;
    });
})


В шаблоне новости использовать код:
<a href="#" class="ilike" data-newsid="{news-id}" title="Нравится"><span>{include file="engine/modules/ilike.php"}</span><i>+</i></a>

Собственно как прикрутить к нему микроразметку рейтинга новостей?
Пробовал править functions и show-full по статье Алыча и делать так:

<div itemscope itemtype="http://data-vocabulary.org/Review-aggregate"><a href="#" class="ilike" data-newsid="{news-id}" title="Нравится"><span>{include file="engine/modules/ilike.php"}</span><i>+</i></a></div>

Естественно ничего не получилось...

Re: Микроразметка рейтинга новостей

Эммм...  Для этого нужны звезды...

3

Re: Микроразметка рейтинга новостей

Axel пишет:

Эммм...  Для этого нужны звезды...

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

Re: Микроразметка рейтинга новостей

Xnokie пишет:

Собственно как прикрутить к нему микроразметку рейтинга новостей?

А как ты себе это вообще видишь? Какая там может быть микроразметка?
Под микроразметку подойдут только 5 (или 10) звезд, иначе никак.

5 (18.03.2013 12:45 отредактировано Xnokie)

Re: Микроразметка рейтинга новостей

Наверное вы меня не так поняли, вот что я имею ввиду:

Звезд нет, стоит форма Нравится - Не нравится, а в поисковике выводятся звезды. Тоже самое я хочу сделать с формой, которую я представил в 1ом посте. Насколько я знаю - это возможно...)
Вот на всякий случай код файла ilike.php:

+ открыть спойлер

<?php
if(isset($_GET['news_id'])){
    @session_start();
    @error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
    @ini_set ( 'display_errors', true );
    @ini_set ( 'html_errors', false );
    @ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
    define( 'DATALIFEENGINE', true );
    define( 'ROOT_DIR', substr( dirname(  __FILE__ ), 0, -15 ) );
    define( 'ENGINE_DIR', ROOT_DIR . '/engine' );
    $news_id = intval( $_GET['news_id'] );
    if( $news_id < 1 ) die( "Hacking attempt!" );
    include ENGINE_DIR . '/data/config.php';
    require_once ENGINE_DIR . '/classes/mysql.php';
    require_once ENGINE_DIR . '/data/dbconfig.php';
    require_once ENGINE_DIR . '/modules/functions.php';
    $_REQUEST['skin'] = totranslit($_REQUEST['skin'], false, false);
    if( $_REQUEST['skin'] ) {
        if( @is_dir( ROOT_DIR . '/templates/' . $_REQUEST['skin'] ) ) $config['skin'] = $_REQUEST['skin'];
        else die( "Hacking attempt!" );
    }
    if( $config["lang_" . $config['skin']] ) {
        if ( file_exists( ROOT_DIR . '/language/' . $config["lang_" . $config['skin']] . '/website.lng' ) ) {   
            include_once ROOT_DIR . '/language/' . $config["lang_" . $config['skin']] . '/website.lng';
        } else die("Language file not found");
    } else include_once ROOT_DIR . '/language/' . $config['langs'] . '/website.lng';
    $config['charset'] = ($lang['charset'] != '') ? $lang['charset'] : $config['charset'];
    @header( "Content-type: text/html; charset=" . $config['charset'] );
    $user_group = get_vars( "usergroup" );
    if( ! $user_group ) {
        $user_group = array ();
        $db->query( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" );
        while ( $row = $db->get_row() ) {
            $user_group[$row['id']] = array ();
            foreach ( $row as $key => $value ) $user_group[$row['id']][$key] = stripslashes($value);
        }
        set_vars( "usergroup", $user_group );
        $db->free();
    }
    require_once ENGINE_DIR . '/modules/sitelogin.php';
    if( ! $is_logged ) $member_id['user_group'] = 5;
    if( ! $user_group[$member_id['user_group']]['allow_rating'] ) die( "Hacking attempt!" );
    $_IP = $db->safesql( $_SERVER['REMOTE_ADDR'] );
    if( $is_logged ){
        $member_id['name'] = $db->safesql($member_id['name']);
        $where = "member = '{$member_id['name']}'";
    }else{
        $member_id['name'] = "noname";
        $where = "ip ='{$_IP}'";
    }
    $row = $db->super_query( "SELECT news_id FROM " . PREFIX . "_logs where news_id ='$news_id' AND {$where}" );
    if( !$row['news_id'] AND count( explode( ".", $_IP ) ) == 4 ) {
        $db->query( "UPDATE " . PREFIX . "_post_extras SET rating=rating+1 WHERE news_id ='$news_id'" );
        $db->query( "INSERT INTO " . PREFIX . "_logs (news_id, ip, member) values ('$news_id', '$_IP', '{$member_id['name']}')" );
        if ( $config['allow_alt_url'] == "yes" AND !$config['seo_type'] ) $cprefix = "full_"; else $cprefix = "full_".$news_id;
        clear_cache( array( 'news_', 'rss', $cprefix ) );
    }else die("Вы уже голосовали");
    $row = $db->super_query( "SELECT rating FROM " . PREFIX . "_post_extras WHERE news_id ='$news_id'" );
    $db->close();
}else{
    if(!defined('DATALIFEENGINE'))die("Hacking attempt!");
    $row = $GLOBALS['row'];
}
echo $row['rating']>0?"+" .$row['rating']:0;
?>

Re: Микроразметка рейтинга новостей

Xnokie пишет:

вот что я имею ввиду

Ты уверен, что это как-то связано друг с дургом? smile Там даже никакие цифры не совпадают: +4, 77 - ничего общего!
И кстати, даже в моем посте про микроразметку рейтинга, я сообщал, что рейтинг у меня фейковый!

Цитата:

мой блог работает на WordPress, а разметка фейковая, я привожу его тут просто в качестве примера работы разметки.

7 (18.03.2013 21:03 отредактировано Xnokie)

Re: Микроразметка рейтинга новостей

admin пишет:

И кстати, даже в моем посте про микроразметку рейтинга, я сообщал, что рейтинг у меня фейковый!

Ну это понятно, а как сделать то на DLE?)))

Re: Микроразметка рейтинга новостей

Про фейковый рейтинг на DLE почитай в комментариях к посту про мироразметку на DLE на блоге https://alaev.info/blog/post/4344#comments

9 (22.03.2013 09:06 отредактировано Xnokie)

Re: Микроразметка рейтинга новостей

krock пишет:

Про фейковый рейтинг на DLE почитай в комментариях к посту про мироразметку на DLE на блоге https://alaev.info/blog/post/4344#comments

Я читал, ничего конкретно работающего не нашел там, под эту форму. У меня 9.6

Попробовал сделать:

+ открыть спойлер

<div style="position:absolute; left:-9999px" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <span itemprop="ratingValue">{random}</span>/5
    <span itemprop="ratingCount">{views}</span>
</div>
$rand = rand (38,50)/10;
$tpl->set ( '{random}', $rand );

Проверил инструментом - не выводит.

10

Re: Микроразметка рейтинга новостей

Что-то форум стал умирать..(
Или никто не знает как фейковую разметку сделать...?(

11

Re: Микроразметка рейтинга новостей

Xnokie пишет:

Или никто не знает как фейковую разметку сделать...?(

Надо внимательнее изучить пост и комментарии к нему. И иметь хотя бы чуточку желания, а не надеяться что все сделает кто-то за тебя.

12

Re: Микроразметка рейтинга новостей

admin пишет:

Надо внимательнее изучить пост и комментарии к нему. И иметь хотя бы чуточку желания, а не надеяться что все сделает кто-то за тебя.

Ясно)

Добавлено: 24.03.2013 08:37

Народ, кто поможет - отблагодарю.

13

Re: Микроразметка рейтинга новостей

Xnokie, Что ж ты такой недоходчивый-то? Читать не умеешь?
https://alaev.info/blog/post/4344#comment-13381
https://alaev.info/blog/post/4344#comment-13485

14 (25.03.2013 07:06 отредактировано Xnokie)

Re: Микроразметка рейтинга новостей

admin пишет:

Xnokie, Что ж ты такой недоходчивый-то? Читать не умеешь?

Xnokie пишет:

Я читал, ничего конкретно работающего не нашел там, под эту форму. У меня 9.6

Попробовал сделать:

<div style="position:absolute; left:-9999px" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <span itemprop="ratingValue">{random}</span>/5
    <span itemprop="ratingCount">{views}</span>
</div>
$rand = rand (38,50)/10;
$tpl->set ( '{random}', $rand );

Проверил инструментом - не выводит.

admin пишет:

Читать не умеешь?


big_smile