Перейти до змісту
Домент ipb-board.ru продається.

Статусы пользователей (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;}

 

 

Для публікації повідомлень створіть обліковий запис або авторизуйтесь