21.08.13, 11:24
0 комментарий
  DLE Хаки

Статусы пользователей (AJAX)

Статусы пользователей в профиле, комментариях и модальном окне пользователя (AJAX)

1. Выполнить запрос в базу данных:

ALTER TABLE `dle_users` ADD `u_status` text not null



2. Скопировать файл status.php в engine/ajax.

3. Открыть файл /engine/modules/profile.php

Найти:

$xfieldsaction = "list";


Выше вставить:

$status_text = "$row[u_status]";
    if($status_text == "") $status_text ="Статус";
    
    if($member_id['user_id'] == "1" or $member_id['user_id'] == "$row[user_id]"){
        $user_status .= <<<HTML
            <script>
                <!--
                $.fx.speeds._default = 1000;
                $(function() {
                    $("#status_edit").dialog({
                        autoOpen: false,
                        show: 'fade',
                        width: '500',
                        buttons: {
                            "Отмена" : function() {
                                $(this).dialog("close");
                            },
                            "Обновить" : function() {
                                var    message = $("#status_form").val();
                                var userid = "$row[user_id]";
                                ShowLoading('');
                                $.post(dle_root + "engine/ajax/status.php", { text:message, user:userid }, function(data){
                                        $("#place").html(data);
                                        $("#status_form").val('');
                                    HideLoading('');
                                });    
                                $(this).dialog("close");
                            },
                        },
                    });
                    $( "#st_e_b" ).click(function() {
                        $( "#status_edit" ).dialog( "open" );
                        return false;
                    });
                });
                -->
            </script>
        HTML;
    }
    if($member_id['user_id'] == "1" or $member_id['user_id'] == "$row[user_id]" or $row['u_status'] != ""){
        $user_status .= "<a href="#" id="st_e_b"><span id="place">$status_text</span></a>";
    }

    if($member_id['user_id'] == "1" or $member_id['user_id'] == "$row[user_id]"){
        $user_status .= <<<HTML
            <div id="status_edit" title="Изменение статуса">О чем ты сейчас думаешь?<br /><br /><input type="text" name="status_e" id="status_form" /></div>
        HTML;
    }
    
    $tpl->set( '{user_status}', $user_status);



4. Открыть файл /engine/ajax/profile.php

Найти:

$tpl->compile( 'content' ); 


Выше вставить:

$tpl->set( '{user_status}', $row['u_status'] );



5. Откройте файлы:
engine/ajax/addcomments.php
engine/ajax/comments.php
engine/modules/show.full.php
engine/modules/lastcomments.php


Найти:

foto, fullname,


Заменить:

foto, fullname, u_status,



6. Открыть файл engine/classes/comments.class.php

Найти:

$tpl->set( '{group-name}', $user_group[$row['user_group']]['group_prefix'].$user_group[$row['user_group']]['group_name'].$user_group[$row['user_group']]['group_suffix'] );


После вставить:

$tpl->set( '{user_status}', $row['u_status'] );


7. В шаблонах userinfo.tpl, profile_popup.tpl, comments.tpl вставить

{user_status}


8. В самый конец вашего css файла вставить:

#status_form{border:solid 1px #2c76ad;height:23px;width:365px;padding:0 5px;border-radius:3px;box-shadow:inset 0 0 3px grey;-webkit-transition: all 0.5s;-moz-transition: all 0.5s;-ms-transition: all 0.5s;-o-transition: all 0.5s;transition: all 0.5s;}
    #status_form:focus{box-shadow:inset 0 0 6px grey;}



Установка готова!

Автор: s@d@n

Напишите своё мнение