Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

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

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

Тема в разделе "Свободное общение", создана пользователем Voldigoad, 16 мар 2020.

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

    Voldigoad PRO Users

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

    ProfitGet PRO Users

    Сообщения:
    1.511
    Симпатии:
    126
    Лучших ответов:
    1
    ZERROY, рекомендую реализовать функционал на подобие этого :D, только текст свой есствно... ;) :

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

    Uralbox Команда форума VIP Кинотрафик v2

    Сообщения:
    1.566
    Симпатии:
    174
    Лучших ответов:
    0
    Осталось ещё кнопку - "да" вырезать :D
     
  4. TopicStarter Overlay
    Voldigoad

    Voldigoad PRO Users

    Сообщения:
    157
    Симпатии:
    14
    Лучших ответов:
    1
    Какое это имеет отношение к данной теме?
     
  5. ProfitGet

    ProfitGet PRO Users

    Сообщения:
    1.511
    Симпатии:
    126
    Лучших ответов:
    1
    ZERROY, это шаблон обратной связи (готовое решение), только текст на свой смени... ;)
     
  6. PlusLike

    PlusLike Бывалый

    Сообщения:
    176
    Симпатии:
    14
    Лучших ответов:
    0
    ProfitGet Прекрасный чёрный юмор, добро тебе соратник :D
     
  7. Sam_Morrou

    Sam_Morrou PRO Users

    Сообщения:
    645
    Симпатии:
    48
    Лучших ответов:
    0
    Тоже интересует данный функционал, давно хотел такое реализовать.
     
    • Нравится Нравится x 1
  8. TopicStarter Overlay
    Voldigoad

    Voldigoad PRO Users

    Сообщения:
    157
    Симпатии:
    14
    Лучших ответов:
    1
    UP, ребята очень нужно!
     
  9. PunPun

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

    Сообщения:
    7.436
    Симпатии:
    3.688
    Лучших ответов:
    32
    500 рублей, или 700 на двоих.
     
  10. Roman.U

    Roman.U PRO Users

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

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

    Сообщения:
    0
    Симпатии:
    0
    Лучших ответов:
    54
    ZERROY за очень выразительный и понятный заголовок, тема во флудильне, в будущем все подобные невнятные и непонятные заголовки будут или во флудильне или в мусорке!

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

    ProfitGet PRO Users

    Сообщения:
    1.511
    Симпатии:
    126
    Лучших ответов:
    1
    Roman.U, в юкозе не скрипт, а форма обратной связи, которую можно вывести в полную новость чезез специальные $коды$ , которые работают только в юкозе... ;)
     
  13. Roman.U

    Roman.U PRO Users

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

    Sam_Morrou PRO Users

    Сообщения:
    645
    Симпатии:
    48
    Лучших ответов:
    0
    Я не против, если ZERROY согласится, можно и скинутся.
     
  15. sunx

    sunx PRO Users

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

    Voldigoad PRO Users

    Сообщения:
    157
    Симпатии:
    14
    Лучших ответов:
    1
    я согласен
     
    • Нравится Нравится x 1
  17. TopicStarter Overlay
    Voldigoad

    Voldigoad PRO Users

    Сообщения:
    157
    Симпатии:
    14
    Лучших ответов:
    1
    Мы согласны, шо, какой ритуал надо провести чтобы ты взялся за работу?)
     
  18. Sam_Morrou

    Sam_Morrou PRO Users

    Сообщения:
    645
    Симпатии:
    48
    Лучших ответов:
    0
    Может передумал, или ему на сайте Техническая поддержка написать?
     
  19. PunPun

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

    Сообщения:
    7.436
    Симпатии:
    3.688
    Лучших ответов:
    32
    Нет, я занят модулем. Скоро дам знать.
     
    • Нравится Нравится x 1
  20. TeraMoune

    TeraMoune Бывалый

    Сообщения:
    310
    Симпатии:
    77
    Лучших ответов:
    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, можно заменить на другое поле, телефон например
     

    Вложения:

    Последнее редактирование: 25 мар 2020
    • Нравится Нравится x 4