Блог

Elite-Board 2.3.180904, изменения в шаблонах
11 сентября 2018 11:09

Изменений а шаблонах много из-за системы ЛС. Переписка пользоваетелей организована в виде динамического чата, поэтому нужно добавить много JS и стилей.

 

Отчёт по изменениям здесь

Описание изменений

1. Добавляем функционал ЛС

1.1 Добавляем стили и js код для функционирования чата

.btn.pm-delete {
    margin-bottom: 1px;
}
.pm-deletemsg{
    text-decoration: none;
    border-bottom: 1px dashed silver;
}
.pm-deletemsg:hover{
    text-decoration: none;
    border-bottom: 1px dashed white;
    cursor:  pointer;
}
.pm-msgform {
    text-align: right;
    margin: 10px;
}
.pm-msgform textarea{
    width: 400px !important;
}
.pm-row {
    margin-bottom: -10px;
}
.pm-info {
    font-size: 10px;
    color: #8a8a8a;
    margin-bottom: -7px;
    margin-left: 10px;
    visibility: hidden;
}
.chat-title{
    width:300px;
}
.chat-table, .chat-table tr, .chat-table td, .chat-table th {
border: none !important;
}
.chat-table{
    max-height: 500px;
}
.pm-date{
    font-size: 12px;
    color: #9a9a9a;
}
.pm {
    margin: 10px 5px 5px 10px;
    border: 2px solid #16A085;
    padding: 10px;
    font-family: arial;
    position: relative;
    border-radius: 4px;
    font-style: italic;
}
.pm-1 .pm {
    background-color: #d7ffd7;
    color: #125112;
    width: calc(100% - 51px);
    margin-left: 30px;
}
.pm-2 .pm{
    background-color: white;
    width: calc(100% - 50px);
}

.pm-1 .pm-info{
    text-align: right;
    margin-right: 25px;
}
.pm-2 .pm-info{
    text-align: left;
}
.pm-1 .pm::before {
    content: "";
    width: 0px;
    height: 0px;
    position: absolute;
    border-left: 10px solid #16A085;
    border-right: 10px solid transparent;
    border-top: 10px solid #16A085;
    border-bottom: 10px solid transparent;
    right: -21px;
    top: 6px;
}
.pm-1 .pm::after {
    content: "";
    width: 0px;
    height: 0px;
    position: absolute;
    border-left: 10px solid #d7ffd7;
    border-right: 10px solid transparent;
    border-top: 10px solid #d7ffd7;
    border-bottom: 10px solid transparent;
    right: -16px;
    top: 8px;
}
.pm-2 .pm::before {
    content: "";
    width: 0px;
    height: 0px;
    position: absolute;
    border-left: 10px solid transparent;
    border-right: 10px solid #16A085;
    border-top: 10px solid #16A085;
    border-bottom: 10px solid transparent;
    left: -21px;
    top: 6px;
}
.pm-2 .pm::after {
    content: "";
    width: 0px;
    height: 0px;
    position: absolute;
    border-left: 10px solid transparent;
    border-right: 10px solid #fff;
    border-top: 10px solid #fff;
    border-bottom: 10px solid transparent;
    left: -16px;
    top: 8px;
}
.pm-table div.pm-row {
    cursor: pointer;
    margin-top: -15px;
    margin-left: 3px;
    margin-right: -7px;
}
.pm-table div.pm-row{
    cursor:pointer;
}
.pm-3 .pm{
    border-color: #135C4D;
}
.pm-3.pm-1 .pm::before{
    border-left-color: #135C4D;
    border-top-color: #135C4D;
}
.pm-3.pm-2 .pm::before{
    border-right-color: #135C4D;
    border-top-color: #135C4D;
}
    function chat_insert(row, before=false){
        var html = '
'; html += '
'+TPL_L_SENT+': '+row.date_sent+', '; html += ''+((row.received_tm == 0) ? TPL_L_UNREAD : TPL_L_READ + ' '+ row.date_received)+''; if(row.type != 'pm') html += ', '+TPL_L_SOURCE+' — '+row.source; html += ', '+TPL_L_DELETE+''; html += '
'; html += '
'+row.text+'
'; html += '
'; if(before){ $('#pm-chat tbody').prepend(html); }else{ $('#pm-chat tbody').append(html); } $('.pm-row').mouseover(function() { $(this).children('.pm-info').css('visibility', 'visible'); }); $('.pm-row').mouseout(function() { $(this).children('.pm-info').css('visibility', 'hidden'); }); } if(window.chat_data !== undefined){ for(var i = 0, len = chat_data.length; i < len; i++) { chat_insert(chat_data[i]); } pm_scroll(); setTimeout(function() {pm_chat_update();}, 2000); } function pm_chat_update(){ pm_get_new(); setTimeout(function() { pm_chat_update(); }, 5000); } $('#pm-msgbtn').click(function(event) { var el = $('#pm-msgbox'); var txt = el.val(); if($.trim(txt) != ""){ var recipient = el.attr('data-recipient'); $.post( TPL_PATH+'users/pm/post/', { msg: txt, recipient:recipient}).done(function( data ) { data = data.split('|split|'); if(data[1]){ el.val(''); pm_get_new(); } }); } event.preventDefault(); }); $("#pm-msgbox").keypress(function(e){ if(e.which == 13 && e.ctrlKey == true){ $('#pm-msgbtn').trigger('click'); } }); function pm_get_new(){ var id = 0; $('#pm-chat tbody tr').each(function(){ id = $(this).attr('data-time'); }); $.get(TPL_PATH+'users/pm/get/from/'+$('#pm-chat').attr('data-user')+'/'+id).done(function( data ) { data = data.split('|split|'); if(data[1]){ var chat_data = jQuery.parseJSON(data[1]); var pm_allow_scroll = false; for(var i = 0, len = chat_data.chat.length; i < len; i++) { chat_insert(chat_data.chat[i]); pm_allow_scroll = true; } for(var i = 0, len = chat_data.readed.length; i < len; i++) { $('#pm_row_'+chat_data.readed[i].id+' span.pm-date-read').html(TPL_L_READ+': '+chat_data.readed[i].date_received); } if(pm_allow_scroll) pm_scroll(); } }); } function pm_scroll(){ var height = $('#panel_ads').height()+200; $('#pm-chat').scrollTop(height); } $('#pm-chat').scroll(function(el){ if($('#pm-chat').scrollTop() == 0){ var old_height = $('#panel_ads').height(); $("#pm_loader").show(); var id = $('#pm-chat tbody tr').first().attr('data-time'); $.get( TPL_PATH+'users/pm/get/to/'+$('#pm-chat').attr('data-user')+'/'+id).done(function( data ) { data = data.split('|split|') if(data[1]){ var chat_data = jQuery.parseJSON(data[1]); for(var i = 0, len = chat_data.length; i < len; i++) { chat_insert(chat_data[i], true); } var new_height = $('#panel_ads').height(); $('#pm-chat').scrollTop(new_height - old_height); $("#pm_loader").hide(); } }); } }); if($('#pm_counter').length > 0){ update_pm_counter(); } function update_pm_counter(){ $.get({url: TPL_PATH+'ajax_data/pm/', cache: false} ).done(function( data ) { if(data.cnt > 0){ $('#pm_counter').html(data.cnt); $('#pm_counter').show(); } }); setTimeout(function() { update_pm_counter(); }, 10000); } $('.pm-table div.pm-row').mouseout(function(e){ $(this).removeClass('pm-3'); }); $('.pm-table div.pm-row').mouseover(function(e){ $(this).addClass('pm-3'); }); $('.pm-table div.pm-row').click(function(e){ document.location.href=$(this).attr('data-url'); }); $('.pm-delete').click(function(e){ var el = $(this); if(confirm(TPL_L_03)){ $.get(el.attr('href')).done(function( data ) { el.parents('tr').hide(500); }); } e.preventDefault(); }); $('#pm-chat').on('click', '.pm-deletemsg', function () { var tr = $(this).parents('tr'); var id = tr.attr('id').substr(7); if(confirm(TPL_L_03)){ $.get( TPL_PATH+'users/pm/delete/msg/'+id).done(function( data ) { tr.hide(500); }); } return false; });

1.2. Убираем поля ввода email и имени для зарегистрированных пользователей в форме обратной связи popup_sendmail.html, добавляем условие {%if !$settings.user%}


                    {%if !$settings.user%}
                        
{%/if%}

1.3. В block_user.html добавляем новый пункт в меню "Личные сообщения"

                    
  • {%$locale.1345%}
  • 1.4. В body1.html можно добавить новый тайтл "Личные сообщения"

    {%elseif $c == 'pm'%}{%$locale.1345%}

    2. Исправляем кнопку "Добавить в блокнот" для промо-объявлений
    меняем

    
         Save 
    

    на это

    
         {%$locale.244%} 
    

    3. В header.html добавляем og теги

        
        
        
        
        {%if $smarty.get.cat.0 == 'messages' && $message.fields.i.0%}
        
        {%else%}
        
        {%/if%}
    

    4. В users_subscribe.html показываем регион подписки

                            {%foreach  from=$s.region item='linenav' name='i'%}
                              {%$linenav.name%}
                              {%if $smarty.foreach.i.last eq false %} / {%/if%}
                            {%/foreach%}
    

    А также добавляем поле выбора региона для подписки

                
                

    {%$allregions[$second_region.id].name%} {%$locale.837%}

    Ваша оценка:

    Комментировать

    Ваше имя:
    Ваш email:
    (не публикуется)
    Комментарий:
     
    Введите код:
     

    Комментарии

    Николаевич А.
    11 мая 7069 05:37
     
    Благодарю за комфорт! Работа с движком в удовольствие.