Dismiss Notice
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Есть у кого готовое решение?

Discussion in 'Свободное общение' started by Voldigoad, Mar 16, 2020.

16.03.20 в 19:34
24.03.20 в 15:31
19
1,385
0
  1. TopicStarter Overlay
    Voldigoad

    Voldigoad PRO Users

    Messages:
    157
    Likes Received:
    14
    Best Answers:
    1
    В общем тут всё описывать нету смысла так как это сделал уже другой человек, вот здесь клик
    Очень нужная данная фишка, а то бывает жалобы приходят от не зареганных людей а спросить у них о конкретных вещах никак(но я лично не настолько вкаченный хакерман чтобы по ip найти челика:D)
     
  2. ProfitGet

    ProfitGet PRO Users

    Messages:
    1,511
    Likes Received:
    126
    Best Answers:
    1
    ZERROY, рекомендую реализовать функционал на подобие этого :D, только текст свой есствно... ;) :

    [​IMG]
     
    • Смешно Смешно x 3
  3. Uralbox

    Uralbox Staff Member VIP Кинотрафик v2

    Messages:
    1,566
    Likes Received:
    174
    Best Answers:
    0
    Осталось ещё кнопку - "да" вырезать :D
     
  4. TopicStarter Overlay
    Voldigoad

    Voldigoad PRO Users

    Messages:
    157
    Likes Received:
    14
    Best Answers:
    1
    Какое это имеет отношение к данной теме?
     
  5. ProfitGet

    ProfitGet PRO Users

    Messages:
    1,511
    Likes Received:
    126
    Best Answers:
    1
    ZERROY, это шаблон обратной связи (готовое решение), только текст на свой смени... ;)
     
  6. PlusLike

    PlusLike Бывалый

    Messages:
    176
    Likes Received:
    14
    Best Answers:
    0
    ProfitGet Прекрасный чёрный юмор, добро тебе соратник :D
     
  7. Sam_Morrou

    Sam_Morrou PRO Users

    Messages:
    645
    Likes Received:
    48
    Best Answers:
    0
    Тоже интересует данный функционал, давно хотел такое реализовать.
     
    • Нравится Нравится x 1
  8. TopicStarter Overlay
    Voldigoad

    Voldigoad PRO Users

    Messages:
    157
    Likes Received:
    14
    Best Answers:
    1
    UP, ребята очень нужно!
     
  9. PunPun

    PunPun VIP Кинотрафик v2

    Messages:
    7,437
    Likes Received:
    3,688
    Best Answers:
    32
    500 рублей, или 700 на двоих.
     
  10. Roman.U

    Roman.U PRO Users

    Messages:
    6,911
    Likes Received:
    756
    Best Answers:
    5
    Когда-то на юкоз была такая фитча, себе на сайт ставил. Там при жалобе были типо Не работает фильм, плохой звук, фильм прерывается, ниже юзер мог писать текст если не один пункт не подходит... В общем че хочешь то пиши.
    Нужно искать скрипт для юкоз, и пределывать под дле. Кстати фитча действительно путевая, но жалоб будет больше, оно тебе нужно).
     
  11. Ботяра

    Ботяра Забанен

    Messages:
    0
    Likes Received:
    0
    Best Answers:
    54
    ZERROY за очень выразительный и понятный заголовок, тема во флудильне, в будущем все подобные невнятные и непонятные заголовки будут или во флудильне или в мусорке!

    !!!УЧИТЕСЬ ПРАВИЛЬНО ПИСАТЬ ЗАГОЛОВОК ТЕМЫ!!!
     
    • Нравится Нравится x 1
  12. ProfitGet

    ProfitGet PRO Users

    Messages:
    1,511
    Likes Received:
    126
    Best Answers:
    1
    Roman.U, в юкозе не скрипт, а форма обратной связи, которую можно вывести в полную новость чезез специальные $коды$ , которые работают только в юкозе... ;)
     
  13. Roman.U

    Roman.U PRO Users

    Messages:
    6,911
    Likes Received:
    756
    Best Answers:
    5
    Ну я точно не помню, вроде ты прав, именно форма. Но когда был на козе лет 5 назад может больше не помню там таких форм и фитчь в нэте полно было. Я к тому, что можно переделать под дле. Я кстати в свое время ее убрал спецом чтобы не ебали мозг из-за всякой херни. Было 100к трафа так там юзеры хуярили те жалобы тоннами, плохое качество, звук (он почти всегда плохой на пиратках). В общем гемор еще тот. Вот и подумал, что если хотят пиздеть, пусть пишут. Помогло).
     
  14. Sam_Morrou

    Sam_Morrou PRO Users

    Messages:
    645
    Likes Received:
    48
    Best Answers:
    0
    Я не против, если ZERROY согласится, можно и скинутся.
     
  15. sunx

    sunx PRO Users

    Messages:
    275
    Likes Received:
    108
    Best Answers:
    1
    PunPun, к выпадающему списку кнопку "сделать скриншот экрана" можно сделать? сколько будет стоить?
    К примеру как в гугле
    TeOoQ6HEQJmVl5VbodMfaQ.png
     
  16. TopicStarter Overlay
    Voldigoad

    Voldigoad PRO Users

    Messages:
    157
    Likes Received:
    14
    Best Answers:
    1
    я согласен
     
    • Нравится Нравится x 1
  17. TopicStarter Overlay
    Voldigoad

    Voldigoad PRO Users

    Messages:
    157
    Likes Received:
    14
    Best Answers:
    1
    Мы согласны, шо, какой ритуал надо провести чтобы ты взялся за работу?)
     
  18. Sam_Morrou

    Sam_Morrou PRO Users

    Messages:
    645
    Likes Received:
    48
    Best Answers:
    0
    Может передумал, или ему на сайте Техническая поддержка написать?
     
  19. PunPun

    PunPun VIP Кинотрафик v2

    Messages:
    7,437
    Likes Received:
    3,688
    Best Answers:
    32
    Нет, я занят модулем. Скоро дам знать.
     
    • Нравится Нравится x 1
  20. TeraMoune

    TeraMoune Бывалый

    Messages:
    310
    Likes Received:
    77
    Best Answers:
    3
    Гости сайта будут видеть дополнительное поле email которое будет отображено в разделе администратора в списке жалоб, тип редактируется самостоятельно, так же стилизация. В функции js AddComplaint есть select_type в переменной находится select с вариантами типа, в админке в том же разделе будет меню для выборки. Меню формируется при наличии типов жалоб. А типы жалоб попадают те какие опишите сами. Email адрес если был указан будет под IP адресом.
    Найти функцию function AddComplaint и заменить всю на
    PHP:
    function AddComplaintidactionguest ){
        var 
    = {};

        
    b[dle_act_lang[3]] = function() {
            $(
    this).dialog('close');                   
        };

        
    b[dle_p_send] = function() {
            if ( $(
    '#dle-promt-text').val().length 1) {
                $(
    '#dle-promt-text').addClass('ui-state-error');
            } else {
                var 
    response = $('#dle-promt-text').val(),
                    
    email = $('#complaint_email').val() ? $('#complaint_email').val() : '',
                    
    type = $('#complaint_type').val() ? $('#complaint_type').val() : '';
                $(
    this).dialog('close');
                $(
    '#dlepopup').remove();
                $.
    post(dle_root 'engine/ajax/controller.php?mod=complaint', { idid,  textresponseactionactionuser_hashdle_login_hashemailemailtypetype },
                    function(
    data){
                        if (
    data == 'ok') { DLEalert(dle_p_send_okdle_info); } else { DLEalert(datadle_info); }
                    });

            }           
        };
     
        if( 
    guest ) var input_mail "<input id=\"complaint_email\" type=\"email\" name=\"email\" placeholder=\"Почтовый адрес для обратной связи\">";
        else var 
    input_mail "";
     
        var 
    select_type "<select name=\"complaint_type\" id=\"complaint_type\"><option selected=\"\">Выберите тип</option><option value=\"Видео недоступно\">Видео недоступно</option><option value=\"Опечатка\">Опечатка</option></select>";

        $(
    '#dlepopup').remove();
                    
        $(
    'body').append("<div id='dlepopup' title='"+dle_complaint+"' style='display:none'><div>"+select_type+" "+input_mail+"</div><br /><textarea name='dle-promt-text' id='dle-promt-text' class='ui-widget-content ui-corner-all' style='width:97%;height:100px;'>Привет</textarea></div>");
                    
        $(
    '#dlepopup').dialog({
            
    autoOpentrue,
            
    width500,
            
    resizablefalse,
            
    dialogClass"modalfixed dle-popup-complaint",
            
    buttonsb
        
    });

        $(
    '.modalfixed.ui-dialog').css({position:"fixed"});
        $(
    '#dlepopup').dialog"option""position", { my"center"at"center"ofwindow } );

    };
    PHP:
    <?xml version="1.0" encoding="utf-8"?>
    <dleplugin>
        <name>Extended complaint</name>
        <description>Расширение формы жалобы. Добавлены поля email и select c типом жалобы (Редактируется отдельно в dle_js.js)</description>
        <icon></icon>
        <version></version>
        <dleversion>13</dleversion>
        <versioncompare>greater</versioncompare>
        <upgradeurl></upgradeurl>
        <filedelete>0</filedelete>
        <needplugin></needplugin>
        <mysqlinstall><![CDATA[ALTER TABLE `{prefix}_complaint` ADD `email` varchar(100) NOT NULL default '', ADD `type` varchar(100) NOT NULL default '';]]></mysqlinstall>
        <mysqlupgrade><![CDATA[]]></mysqlupgrade>
        <mysqlenable><![CDATA[]]></mysqlenable>
        <mysqldisable><![CDATA[]]></mysqldisable>
        <mysqldelete><![CDATA[ALTER TABLE `{prefix}_complaint` DROP `email`, DROP `type`;]]></mysqldelete>
        <phpinstall><![CDATA[]]></phpinstall>
        <phpupgrade><![CDATA[]]></phpupgrade>
        <phpenable><![CDATA[]]></phpenable>
        <phpdisable><![CDATA[]]></phpdisable>
        <phpdelete><![CDATA[]]></phpdelete>
        <file name="engine/ajax/complaint.php">
            <operation action="after">
                <searchcode><![CDATA[$text = strip_tags($_POST['text']);]]></searchcode>
                <replacecode><![CDATA[
    $email = isset($_POST['email']) ? strip_tags($_POST['email']) : '';
    $email = $parse->process( trim( $email ) );
    $type = (isset($_POST['type']) && $_POST['type'] != 'Выберите тип') ? strip_tags($_POST['type']) : '';
    $type = $parse->process( trim( $type ) );]]></replacecode>
            </operation>
            <operation action="replace">
                <searchcode><![CDATA[`to`, `date`]]></searchcode>
                <replacecode><![CDATA[`to`, `date`, `email`, `type`]]></replacecode>
            </operation>
            <operation action="replace">
                <searchcode><![CDATA['', '{$_TIME}']]></searchcode>
                <replacecode><![CDATA['', '{$_TIME}', '{$email}', '{$type}']]></replacecode>
            </operation>
            <operation action="replace">
                <searchcode><![CDATA['{$url}', '{$_TIME}']]></searchcode>
                <replacecode><![CDATA['{$url}', '{$_TIME}', '{$email}', '{$type}']]></replacecode>
            </operation>
        </file>
        <file name="engine/modules/show.full.php">
            <operation action="replace">
                <searchcode><![CDATA[$tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news')\">" );]]></searchcode>
                <replacecode><![CDATA[if(!$is_logged) $tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news', true)\" title=\"Пожаловаться\">" );
    else $tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news')\" title=\"Пожаловаться\">" );]]></replacecode>
            </operation>
        </file>
        <file name="engine/modules/show.short.php">
            <operation action="replace">
                <searchcode><![CDATA[$tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news')\">" );]]></searchcode>
                <replacecode><![CDATA[if(!$is_logged) $tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news', true)\">" );
    else $tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news')\">" );]]></replacecode>
            </operation>
        </file>
        <file name="engine/modules/show.custom.php">
            <operation action="replace">
                <searchcode><![CDATA[$tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news')\">" );]]></searchcode>
                <replacecode><![CDATA[if(!$is_logged) $tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news', true)\">" );
    else $tpl->set( '[complaint]', "<a href=\"javascript:AddComplaint('" . $row['id'] . "', 'news')\">" );]]></replacecode>
            </operation>
        </file>
        <file name="engine/inc/complaint.php">
            <operation action="after">
                <searchcode><![CDATA[<th>{$lang['opt_complaint_2']}</th>]]></searchcode>
                <replacecode><![CDATA[<th>Тип:</th>]]></replacecode>
            </operation>
            <operation action="before">
                <searchcode><![CDATA[$entries .= "<tr>]]></searchcode>
                <replacecode><![CDATA[if( $row['email'] ) $email = "<div>{$row['email']}</div>";
    else $email = "";
    if( $row['type'] ) $type = $row['type'];
    else $type = " - ";]]></replacecode>
            </operation>
            <operation action="replace">
                <searchcode><![CDATA[<td>{$date}<strong>{$from}</strong></td>]]></searchcode>
                <replacecode><![CDATA[<td>{$date}<strong>{$from}</strong>{$email}</td>
    <td>{$type}</td>  ]]></replacecode>
            </operation>
            <operation action="replace">
                <searchcode><![CDATA[`from`, `to`, `date`]]></searchcode>
                <replacecode><![CDATA[`from`, `to`, `date`, `email`, `type`]]></replacecode>
            </operation>
            <operation action="replace">
                <searchcode><![CDATA[`to`, " . PREFIX . "_complaint.date]]></searchcode>
                <replacecode><![CDATA[`to`, " . PREFIX . "_complaint.date, " . PREFIX . "_complaint.email, " . PREFIX . "_complaint.type]]></replacecode>
            </operation>
            <operation action="before">
                <searchcode><![CDATA[<form action="?mod=complaint" method="post" name="optionsbar3" id="optionsbar3">
    <input type="hidden" name="mod" value="complaint">]]></searchcode>
                <replacecode><![CDATA[<div class="navbar navbar-default navbar-component navbar-xs" style="z-index: inherit;">
        <div class="navbar-collapse collapse" id="navbar-filter">
            <ul class="nav navbar-nav">
                {$filter_menu}
            </ul>
        </div>
    </div>]]></replacecode>
            </operation>
            <operation action="before">
                <searchcode><![CDATA[<form action="?mod=complaint" method="post" name="optionsbar4" id="optionsbar4">
    <input type="hidden" name="mod" value="complaint">]]></searchcode>
                <replacecode><![CDATA[<div class="navbar navbar-default navbar-component navbar-xs" style="z-index: inherit;">
        <div class="navbar-collapse collapse" id="navbar-filter">
            <ul class="nav navbar-nav">
                {$filter_menu}
            </ul>
        </div>
    </div>]]></replacecode>
            </operation>
            <operation action="after">
                <searchcode><![CDATA[if( !$langformatdatefull ) $langformatdatefull = "d.m.Y H:i";]]></searchcode>
                <replacecode><![CDATA[if( isset($_GET['type']) ) {
      $filter = " AND type = '".urldecode($db->safesql( strip_tags($_GET['type']) ))."'";
    } else $filter = "";

    $menu_active = " class=\"active\"";
    $complaint_t = $db->super_query( "SELECT type, count(*) as count FROM " . PREFIX . "_complaint WHERE 1 GROUP by type", true);
    $c_all = 0;
    $filter_link = array();

    foreach( $complaint_t as $row ) {
       
        if( $_GET['type'] == $row['type'] ) $menu_active = " class=\"active\"";
        else $menu_active = "";
          if( $row['type'] )
          $filter_link[] = "<li{$menu_active}><a href=\"{$config['admin_path']}?mod=complaint&type=".urlencode($row['type'])."\">{$row['type']} ({$row['count']})</a></li>";

        $c_all = $c_all + $row['count'];
    }
    if( !isset($_REQUEST['type']) ) $menu_active = " class=\"active\"";
    else $menu_active = "";
    array_unshift($filter_link, "<li{$menu_active}><a href=\"{$config['admin_path']}?mod=complaint\">Все ({$c_all})</a></li>");
    $filter_menu = implode($filter_link);]]></replacecode>
            </operation>
            <operation action="replace">
                <searchcode><![CDATA[n_id > '0']]></searchcode>
                <replacecode><![CDATA[n_id > '0'{$filter}]]></replacecode>
            </operation>
            <operation action="replace">
                <searchcode><![CDATA[echo <<<HTML
    <div class="panel panel-default">
      <div class="panel-heading">]]></searchcode>
                <replacecode><![CDATA[echo <<<HTML
    <div class="navbar navbar-default navbar-component navbar-xs" style="z-index: inherit;">
        <div class="navbar-collapse collapse" id="navbar-filter">
            <ul class="nav navbar-nav">
                {$filter_menu}
            </ul>
        </div>
    </div>
    <div class="panel panel-default">
      <div class="panel-heading">]]></replacecode>
            </operation>
        </file>
    </dleplugin>

    P.S. В 14 версии движка поле email не нужно, оно уже есть. При установке будут ошибки на дублирование поля в базе и в плагине стоит удалить всё связанное с email, можно заменить на другое поле, телефон например
     

    Attached Files:

    Last edited: Mar 25, 2020
    • Нравится Нравится x 4