Узнать об обновлении материала

Главные вкладки

Аватар пользователя morgusha morgusha 15 мая 2022 в 10:03

Подскажите пожалуйста как сравнивать через куки обновился ли материал или нет ?
Время обновления материала я достал так вот:
<?php$timestamp = ($node_html['body']['#object']->changed); ?>
и запихнул в куки так:
<?phpsetcookie("changed_node", $timestamp);?>
но встал вопрос с чем сравнивать ?
если изменить материал, то и дата обновления тоже изменится ведь !

Комментарии

Аватар пользователя morgusha morgusha 15 мая 2022 в 10:14

есть всплывающее окно и информацией при первом посещении сайта ! это реализовано через куки. Если куки нет то человеку показывается данное окно ! Если он уже нажимал согласен, то окно больше не вылазит. Надо доделать чтобы и при изменении материала соглашения окно опять бы вылазило

Аватар пользователя morgusha morgusha 15 мая 2022 в 10:24

может можно как-то отловить событие изменение материала и при его возникновении просто создавать куку определённую ?

Аватар пользователя morgusha morgusha 15 мая 2022 в 10:56

через rules пробую подцепить действие на материал с id 345 но не могу понять как там такое настроить именно на материал с определённым id ?

Аватар пользователя voviko voviko 15 мая 2022 в 11:30

те у вас Встал вопрос ) о том как сравнить время изменения ноды из куки с временем изменения ноды?
И задача у вас стоит, сравнить две метки времени.
Что мешает показывать ноду если метки времени не совпадают?

Аватар пользователя morgusha morgusha 15 мая 2022 в 18:21

Сделал так вот:

jQuery( document ).ready(function() {
        var date_node_update = <?php echo $timestamp ?>;
        console.log(jQuery.cookie());
    if (( jQuery.cookie('oleg') != 'test' ) || (jQuery.cookie('last_node_update') != date_node_update)) {
                        jQuery('#parent_popup').css({"display":"block"});
        }
});

function setCock(){
                        var date_node_update = <?php echo $timestamp ?>;
                        //jQuery.cookie('oleg', 'test' , { expires: 1 / 1440 });
                        jQuery.cookie('oleg', 'test', { expires: 365 });
                        jQuery.cookie('last_node_update', date_node_update, { expires: 365 });
                        console.log(jQuery.cookie());
                        jQuery('#parent_popup').css({"display":"none"});
                        //alert(date_node_update);     
}
</script>

А в php так вот:

<?php
<div id="popup">
    <?
php
    
// для соглашения, которое появляется при первом заходе на сайт
    
$nid 345// nid нужной ноды
    
$node node_load($nid);
    
$node_html node_view($node);
    
print_r ($node_html['body']['#object']->body['und'][0]['value']); // вывод текста самой node
    
$timestamp = ($node_html['body']['#object']->changed);
    echo (
$timestamp) . '<br/>'// вывод даты обновления ноды
    
?>

<div class="for_b_cock">
<button class="forcock" onclick="setCock();">Согласен</button>
<!--<button class="forcock" onclick="setCock();"><a href="/">Другое</a></button>-->
<!--<button class="forcock" onclick="setCock();"><a href="/user/register">Зарегистрироваться</a></button>-->
</div>
</div>?>

Не судите строго ! Вроде работает )