Бесплатный форум: форум поддержки
Добро пожаловать на форум поддержки сервиса Forum2x2 !

Для полноценной работы с форумом,
пожалуйста, войдите на форум под своим логином (если вы уже зарегистрированы) или же зарегистрируйтесь.


С нашей помощью вы можете создать форум,
похожий на этот!
Мы в социальных сетях

Правила форума

для обязательного прочтения!


Внимание! Важная информация для РЕГИСТРАЦИИ на форуме:

Пожалуйста, не регистрируйтесь на этом форуме с электронными адресами mail.ru, bk.ru, inbox.ru, list.ru - вам может не прийти письмо со ссылкой активации!
Вы можете воспользоваться адресами типа yandex.ru, rambler.ru, gmail.com и т.д.
Интересные решения
Быстрый переход к сервисам: j-p-g.net Видео фоторедактор Транслит

Быстрое редактирование.

Предыдущая тема Следующая тема Перейти вниз

Быстрое редактирование.

Сообщение автор Феникс в Пн 11 Янв - 7:34

Поиск по сайту не дал результатов, значит здесь еще не было. smile Нашел на португальском сайте поддержки.



Переводил текст в скрипте яндексом. При желании можете отредактировать на свой вкус.



Описание: в принципе видно на скрине, но поясню, что само редактирование поста происходит без перезагрузки страницы.
Спойлер:

Код:
/***
    * Fast edit without refresh window!
    * Version: 1.10292014-jq1.9.1 - ieiunium et dextera
    * Made and Optimizations by JScript - 2013/11/12
    * View more in: http://ajuda.forumeiros.com
    * Copyright (c) 2013 JScript <jscriptbrasil at live dot com>
    * This work is free. You can redistribute it and/or modify it
    * under the terms of the WTFPL, Version 2
    */
    var sFE_oldMsg = '', oFE_msgID = 0, sFE_subject = '', iFE_lt = 0, sFE_post = 'Send', iFE_auth1 = 0, iFE_auth2 = 0;

    jQuery(function () {
      var sCSS = '' +
          '<style>' +
'.input_submit.alt {' +
            'background: none repeat scroll 0 0 #E2E9F0;' +
            'border-radius: 3px;' +            
            'border:solid 1px #DAE2EA;' +
            'box-shadow: 0 1px 0 0 #EFF3F8 inset, 0 2px 3px rgba(0, 0, 0, 0.2);' +
            'color: #464646;' +
            'margin-left: 4px !important;' +
            'padding: 3px;' +
            'text-decoration: none;' +
          '}' +
          '.input_text, .fdfButton {' +
            'padding: 3px !important;' +
            'box-shadow: 0 1px 0 0 #EFF3F8 inset, 0 2px 3px rgba(0, 0, 0, 0.2);' +
          '}' +        
          '.desc {' +
            'background-color: #F1F6F9;' +
            'padding: 9px;' +
            'color: #777777;' +
            'font-size: 11px;' +
          '}' +
          '</style>';
      document.head.insertAdjacentHTML('beforeEnd', sCSS);

      jQuery('a[href*="mode=editpost"]').click(function (event) {
          event.preventDefault();
          var datahref = jQuery(this).attr('href');
          var post_ID = datahref.split('p=')[1].split('&')[0];
          /* Forum versions! */
          var phpBB2 = jQuery('#p' + post_ID).find('td .postbody div:eq(0)');
          var phpBB3 = jQuery('#p' + post_ID).find('div.content');
          var punbb = jQuery('#p' + post_ID).next().find('div.entry-content');
          var invision = jQuery('#p' + post_ID).find('div.post-entry');

          if (phpBB2.length) {
            oFE_msgID = phpBB2;
          } else if(phpBB3.length) {
            oFE_msgID = phpBB3;
          } else if(punbb.length) {
            oFE_msgID = punbb;
          } else if(invision.length) {
            oFE_msgID = invision;
          };
          fastEditMsg(post_ID);
      });
    });
    /***
    * Fast edit post!
    * Function: fastEditMsg(post_ID);
    */
    fastEditMsg = function(post_ID){
      if (isNaN(post_ID) || (jQuery('#p' + post_ID).length == 0) ) {return false}

      sFE_oldMsg = oFE_msgID.html();

      var sHtml = '<div class="main-content topic">' +
          '<div class="post">' +
            '<div id="editor_' + post_ID + '">' +
                '<textarea cols="9" id="text_editor_textarea_' + post_ID + '" name="message" onclick="storeCaret(this)" onkeyup="storeCaret(this)" onselect="storeCaret(this)" rows="15" style="width: 98%; height: 250px;" tabindex="3" wrap="virtual">' +
                '\n\n\n\n\n\nЗагрузка сообщения, пожалуйста, подождите...</textarea>' +
                '<div class="row2 desc">' +
                  'Причина для редактирования: <input type="text" value="" name="post_edit_reason_' + post_ID + '" id="post_edit_reason_' + post_ID + '" class="input_text" maxlength="250" size="35"> ' +
                  '<input type="checkbox" value="1" id="add_edit_' + post_ID + '" name="add_edit_' + post_ID + '" style="vertical-align: middle ! important;"> <label for="add_edit_' + post_ID + '">Показать \'Последнее издание\'</label>' +
                '</div>' +
                '<fieldset class="submit" style="font-size: 13px !important; padding: 15px 6px; text-align: center; border: 0 none; background-color: #D1DDEA;">' +
                  '<input class="button2 fdfButton" name="post" tabindex="6" type="button" value="Сохранить Изменения" onclick="fastEditSave(' + post_ID + ')"> ' +
                  '<input class="button2 fdfButton" type="button" value="Полный Редактор" onClick=location.href="/post?p='+ post_ID + '&mode=editpost"></a>' +                
                  '<input class="button2 fdfButton" type="button" value="Отмена" href="javascript:void(0);" onclick="fastEditCancel(' + post_ID + ');"></a>' +
                '</fieldset>' +
            '</div>' +
          '</div>' +
      '</div>';
      oFE_msgID.html(sHtml);

      var text_area = jQuery('#text_editor_textarea_' + post_ID);
      text_area.val(sFE_oldMsg.replace(/<br\s?\/?>/g,"\n"));
      /* text_area.val(HtmlToBBCode(sFE_oldMsg)); */

      try
      {
          text_area.sceditor({
            locale: "pt",
            height: "250px",
            width: "auto",
            plugins: "bbcode",
            toolbar: "bold,italic,underline,strike|left,center,right,justify|quote,code,faspoiler,fahide|servimg,image,link,youtube|size,color,font,removeformat|emoticon,date,time,maximize,source",
            parserOptions: {
                /*breakAfterBlock: false,*/
                /*removeEmptyTags: false, */
                /*fixInvalidNesting: false,*/
                /*fixInvalidChildren: false*/
            },
            style: "http://illiweb.com/rsc/85/frm/SCEditor/minified/jquery.sceditor.default.min.css",
            rtl: false,
            emoticonsEnabled: true,
            emoticonsCompat: true,
            emoticonsRoot: "",
            emoticonsURL: "/smilies.forum?f=9&mode=smilies_frame&t=1383011440"
          });
          text_area.sceditor("instance").toggleSourceMode();
          text_area.sceditor("instance").focus();
          jQuery("a.sceditor-button-source").addClass("hover");
          /*jQuery.sceditor.ShowHideToolbarElements();*/

          var container = $('.sceditor-container');
          var ciframe = container.find('iframe');
          var ctextarea = container.find('textarea');
          ciframe.width(ciframe.width() - 9);
          ctextarea.width(ctextarea.width() - 9);
          jQuery('.sceditor-resize-cover').show();
      } catch(e) { if( typeof(console) != 'undefined' ) { console.error(e); } }

      jQuery.get("/post?p=" + post_ID + "&mode=editpost", function(data) {
          sFE_subject  = jQuery(data).find('input[name="subject"]').val();
          var user_Msg = jQuery(data).find('#text_editor_textarea[name="message"]').val();
          text_area.val(user_Msg);
          text_area.sceditor('instance').val(user_Msg);

          iFE_lt = jQuery(data).find('input[name="lt"]').val();
          sFE_post = jQuery(data).find('input[name="post"]').val();

          var oTarget = jQuery(data).find('input[name="auth[]"]');
          iFE_auth1 = jQuery(oTarget[0]).val();
          iFE_auth2 = jQuery(oTarget[1]).val();
      }).done(function(){
          jQuery('.sceditor-resize-cover').hide();
      }).fail(function(){
          oFE_msgID.html(sFE_oldMsg);
          alert('Atenção!\n\n Произошла ошибка при заказе редактирования поста, подождите 10 секунд и попробуйте снова изменить!');
      });
      jQuery('html,body').animate({
          scrollTop: jQuery('#p' + post_ID).offset().top
      }, 1200);
    };
    /***
    * Fast cancel post!
    * Function: fastEditCancel(post_ID);
    */
    fastEditCancel = function(post_ID){
      oFE_msgID.html(sFE_oldMsg);
      jQuery('html,body').animate({
          scrollTop: jQuery('#p' + post_ID).offset().top
      }, 400);
    };
    /***
    * Fast edit post!
    * Function: fastEditSave(post_ID);
    */
    fastEditSave = function(post_ID) {
      if (isNaN(post_ID) || (jQuery('#p' + post_ID).length == 0) ) {return false}

      var text_area = jQuery('#text_editor_textarea_' + post_ID);
      var edit_reason = '';
      text_area.sceditor("instance").toggleSourceMode();
      var user_Msg = text_area.sceditor('instance').val();
      var sHtml = text_area.sceditor('instance').getSourceEditorValue();

      if(jQuery('#add_edit_' + post_ID).is(':checked')) {
          edit_reason = jQuery('#post_edit_reason_' + post_ID).val();
      }

      oFE_msgID.html(sHtml);
      if (sHtml.indexOf('<code>') !== -1) {
          var tagCode = oFE_msgID.children('code');
          var sContent = tagCode.html();
          tagCode.before('<div class="punbbtop">Código        <button onclick="punbbExpand(this); return false;">expand</button><button style="display: none" onclick="punbbCollapse(this); return false;">collapse</button>  <button onclick="punbbSelect(this); return false;">select</button>  <button onclick="punbbPopup(this); return false;">popup</button>  <button style="margin-right: 50px; float: right;" onclick="punbbAbout(this); return false;">?</button></div><pre class="highlight punbb_block">' + sContent + '</pre>');
          tagCode.remove();
          jQuery.getScript('http://balupton.github.io/jquery-syntaxhighlighter/scripts/jquery.syntaxhighlighter.min.js', function () {
            jQuery.SyntaxHighlighter.init({
                'wrapLines': false
            })
          })
      }

      jQuery.post("/post", {
          p: post_ID,
          lt: iFE_lt,
          auth: iFE_auth1,
          auth: iFE_auth2,
          mode: 'editpost',
          subject: sFE_subject,
          message: user_Msg,
          edit_reason: edit_reason,
          attach_sig: 1,
          notify: 0,
          post: sFE_post
      }).done(function(){
          /* */
      }).fail(function(){
          oFE_msgID.html(sFE_oldMsg);
          alert('Atenção!\n\n Произошла ошибка при сохранении редактирования поста, подождите 10 секунд и попробуйте отредактировать еще раз!');
      });
      jQuery('html,body').animate({
          scrollTop: jQuery('#p' + post_ID).offset().top
      }, 400);
    };

Спасибо Домовому за подправку скрипта. Был косячок с кнопкой "отмена"
avatar
Феникс
Помощник
Помощник

Мужчина

Сообщения : 735
Возраст : 45
Регистрация : 2015-10-29
Благодарности : 159

Без предупреждений

http://dayana.forum2x2.ru/

Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения