The forum of the forums
Welcome to the Official Support Forum of Forumotion!

To take full advantage of everything offered by our forum, please log in if you are already a member, or join our community if you've not yet.



Create a free forum like this one.

Moving The Dice Rolling To Quick Reply.

View previous topic View next topic Go down

Solved Moving The Dice Rolling To Quick Reply.

Post by RsS.YuGi on February 27th 2015, 12:51 am

Hello Forumotion,
I have a question about the dice rolling.

Is there a way to move/copy the dice rolling section from the advanced reply to the simple reply?
As in rolling from the quick reply box.

Note: I know there's the BBC but I don't want that.

RsS.YuGi
Forumember

Male Posts : 120
Reputation : 4
Language : English
Location : Palestine

http://resurrectionacademy.org

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by RsS.YuGi on February 28th 2015, 6:38 am

Bump~

RsS.YuGi
Forumember

Male Posts : 120
Reputation : 4
Language : English
Location : Palestine

http://resurrectionacademy.org

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by Ange Tuteur on February 28th 2015, 7:46 pm

Hello @RsS.YuGi,

Go to Administration Panel > Modules > JavaScript codes management > Create a new script

Title : faroll
Placement : In all the pages
Paste the following code and submit :
Code:
$(function(){$(function() {
  if (!$.sceditor || $('.sceditor-button-faroll').length) return; // return if the editor isn't present or the dice exist
  var a = document.createElement('A'), b = document.createElement('DIV'), c = $('.sceditor-button-emoticon')[0], sce = $('#text_editor_textarea').sceditor('instance'), i = 0, j = dice.length, opt, n;
 
  // button attributes
  a.className = 'sceditor-button sceditor-button-faroll';
  a.title = $.sceditor.commands.faroll.tooltip;
  a.innerHTML = '<div unselectable="on"></div>';
  a.onclick = function() { b.style.display.match(/none/) ? b.style.display = '' : b.style.display = 'none' };
  a.onmouseover = function() { a.className.match(/disabled/) && (a.className = a.className.replace(/disabled/,'')) }; // remove disabled caused by source change
 
  // dropdown attributes
  b.className = 'sceditor-dropdown sceditor-faroll-picker';
  b.style.display = 'none';
  b.style.marginTop = '25px';
 
  // create dice roll options
  for (; i<j; i++) {
    n = dice[i];
    opt = document.createElement('A');
    opt.className = 'sceditor-fontsize-option';
    opt.innerHTML = n;
    opt.onclick = function() {
      sce.inSourceMode() ? sce.sourceEditorInsertText('[roll="'+n+'"][/roll]') : sce.wysiwygEditorInsertText('[roll="'+n+'"][/roll]');
      b.style.display = 'none';
    };
    b.appendChild(opt);
  }
 
  // insert button and dropdown
  c.parentNode.insertBefore(a,c);
  c.parentNode.insertBefore(b,c);
})});

Ange Tuteur
Forumaster

Male Posts : 13021
Reputation : 2683
Language : EN10, FR5
Location : Pennsylvania

http://fmdesign.forumotion.com

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by RsS.YuGi on March 1st 2015, 3:37 am

Hello "Ange Tuteur",
Thanks for replying but I think you misunderstood, That code is to make the BB codes work in the quick reply, what I seek is having the whole dice section that you'd have from the advanced reply copied under the quick reply.

I hope it's clear enough, if it's not.. I'll try including screens.

RsS.YuGi
Forumember

Male Posts : 120
Reputation : 4
Language : English
Location : Palestine

http://resurrectionacademy.org

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by Ange Tuteur on March 1st 2015, 10:05 pm

I see what you mean now. What's the version of your forum so I can include the proper HTML ?

Ange Tuteur
Forumaster

Male Posts : 13021
Reputation : 2683
Language : EN10, FR5
Location : Pennsylvania

http://fmdesign.forumotion.com

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by RsS.YuGi on March 1st 2015, 10:59 pm

@Ange Tuteur wrote:I see what you mean now. What's the version of your forum so I can include the proper HTML ?

Hello @Ange Tuteur, sorry I forgot to mention the version, it's PHPBB2.
=)

RsS.YuGi
Forumember

Male Posts : 120
Reputation : 4
Language : English
Location : Palestine

http://resurrectionacademy.org

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by Ange Tuteur on March 1st 2015, 11:35 pm

Go to Administration Panel > Modules > JavaScript codes management and create a new script

Placement : In the topics
Paste the code below and submit :
Code:
$(function() {
  var a = document.createElement('DIV'), d, o, i = 0, j = dice.length;
  a.innerHTML = '<table class="forumline" border="0" cellpadding="0" cellspacing="1" width="100%"><tbody><tr><th class="thHead" colspan="2"><table width="100%"><tbody><tr><td width="10">&nbsp;</td><td align="center"><span class="gen"><b>Dices roll</b></span></td></tr></tbody></table></th></tr><tr><td class="row1"><table style="width:100%" id="list_dice"><tbody><tr><td><span class="postbody">Dices roll #1 :&nbsp;</span><select name="post_dice_0" id="post_dice"><option value="">-</option></select><span class="postbody">&nbsp;<label for="nb_rolls_0">Dice rolls : </label><input size="2" maxlength="3" name="nb_rolls_0" id="nb_rolls_0" class="post" value="1" type="text">&nbsp;<span id="dice_to_del"><a href="javascript:add_dice(1,\'\',1)"><img class="sprite-tabs_more" src="http://illiweb.com/fa/empty.gif" alt="plus"></a></span></span></td></tr></tbody></table></td></tr></tbody></table>';
 
  add_dice = function(dice_number,dice,number) {
    var content = document.getElementById('post_dice').innerHTML;
    document.getElementById('dice_to_del').innerHTML = '';
    document.getElementById('dice_to_del').id = '';
    var new_tr = document.createElement('tr');
    new_tr.appendChild(document.createElement('td'));
    new_tr.firstChild.innerHTML = '<span class="postbody">Dices roll #' + (dice_number + 1) + ' :&nbsp;</span><select name="post_dice_' + dice_number + '" id="post_dice_' + dice_number + '" value="' + dice + '">' + content + '</select><span class="postbody">&nbsp;<label for="nb_rolls_' + dice_number + '">Dice rolls : </label><input type="text" size="2" maxlength="3" name="nb_rolls_' + dice_number + '" id="nb_rolls_' + dice_number + '" class="post" value="' + number + '" />&nbsp;<span id="dice_to_del"><a href="javascript:add_dice(' + (dice_number + 1) + ',\'\',1)"><img class="sprite-tabs_more" src="http://illiweb.com/fa/empty.gif" alt="plus" /></a></span></span>';
    document.getElementById('list_dice').lastChild.appendChild(new_tr);
    var select_dice = document.getElementById('post_dice_' + dice_number);
    if ( dice == '' ) select_dice.selectedIndex = 0;
    for ( var i = 1; select_dice.options[i]; i++ ) select_dice.options[i].selected = ( select_dice.options[i].value == dice );
  };
 
  document.getElementById('quick_reply').appendChild(a);
  for (d = document.getElementById('post_dice'); i<j; i++) {
    o = document.createElement('OPTION');
    o.value = i + 1;
    o.innerHTML = dice[i];
    d.appendChild(o);
  }
});

Ange Tuteur
Forumaster

Male Posts : 13021
Reputation : 2683
Language : EN10, FR5
Location : Pennsylvania

http://fmdesign.forumotion.com

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by RsS.YuGi on March 2nd 2015, 2:16 am

Hello @Ange Tuteur,
The dice section has been added under the quick reply but it's empty.
http://pokit.org/get/?20b7c77c8b4b5d8cece6ccaa89d823fd.jpg

Note, I have dice games made and stuff:
http://pokit.org/get/?678b79e2a365d83b038261596e55492d.jpg

RsS.YuGi
Forumember

Male Posts : 120
Reputation : 4
Language : English
Location : Palestine

http://resurrectionacademy.org

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by Ange Tuteur on March 2nd 2015, 2:59 am

That's weird.. dice is actually a global array and is present in the editor, so I'm not sure how it was unable to create the options. Anyway, I changed up how the options are created, see if it works for you now.
Code:
$(function() {
  if (!document.getElementById('quick_reply') || !dice) return;
  var a = document.createElement('DIV'), d = '', i = 0, j = dice.length;
  for (; i<j; i++) d += '<option value="'+(i+1)+'">'+dice[i]+'</option>';
  a.innerHTML = '<table class="forumline" border="0" cellpadding="0" cellspacing="1" width="100%"><tbody><tr><th class="thHead" colspan="2"><table width="100%"><tbody><tr><td width="10"> </td><td align="center"><span class="gen"><b>Dices roll</b></span></td></tr></tbody></table></th></tr><tr><td class="row1"><table style="width:100%" id="list_dice"><tbody><tr><td><span class="postbody">Dices roll #1 : </span><select name="post_dice_0" id="post_dice"><option value="">-</option>'+d+'</select><span class="postbody"> <label for="nb_rolls_0">Dice rolls : </label><input size="2" maxlength="3" name="nb_rolls_0" id="nb_rolls_0" class="post" value="1" type="text"> <span id="dice_to_del"><a href="javascript:add_dice(1,\'\',1)"><img class="sprite-tabs_more" src="http://illiweb.com/fa/empty.gif" alt="plus"></a></span></span></td></tr></tbody></table></td></tr></tbody></table>';
 
  add_dice = function(dice_number,dice,number) {
    var content = document.getElementById('post_dice').innerHTML;
    document.getElementById('dice_to_del').innerHTML = '';
    document.getElementById('dice_to_del').id = '';
    var new_tr = document.createElement('tr');
    new_tr.appendChild(document.createElement('td'));
    new_tr.firstChild.innerHTML = '<span class="postbody">Dices roll #' + (dice_number + 1) + ' : </span><select name="post_dice_' + dice_number + '" id="post_dice_' + dice_number + '" value="' + dice + '">' + content + '</select><span class="postbody"> <label for="nb_rolls_' + dice_number + '">Dice rolls : </label><input type="text" size="2" maxlength="3" name="nb_rolls_' + dice_number + '" id="nb_rolls_' + dice_number + '" class="post" value="' + number + '" /> <span id="dice_to_del"><a href="javascript:add_dice(' + (dice_number + 1) + ',\'\',1)"><img class="sprite-tabs_more" src="http://illiweb.com/fa/empty.gif" alt="plus" /></a></span></span>';
    document.getElementById('list_dice').lastChild.appendChild(new_tr);
    var select_dice = document.getElementById('post_dice_' + dice_number);
    if ( dice == '' ) select_dice.selectedIndex = 0;
    for ( var i = 1; select_dice.options[i]; i++ ) select_dice.options[i].selected = ( select_dice.options[i].value == dice );
  };
 
  document.getElementById('quick_reply').appendChild(a);
});

Ange Tuteur
Forumaster

Male Posts : 13021
Reputation : 2683
Language : EN10, FR5
Location : Pennsylvania

http://fmdesign.forumotion.com

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by RsS.YuGi on March 2nd 2015, 3:09 am

@Ange Tuteur sorry for the troubles, but still same issue :|

RsS.YuGi
Forumember

Male Posts : 120
Reputation : 4
Language : English
Location : Palestine

http://resurrectionacademy.org

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by Ange Tuteur on March 2nd 2015, 3:20 am

I want you to check if you have access to dice in the topics.

Create a new script with placement in the topics, and paste the following code :
Code:
$(function() {
  var q = document.getElementById('quick_reply'), a = document.createElement('DIV'), d = dice;
 
  if (d.length) {
    for (var i = 0, j = d.length; i<j; i++) a.innerHTML += d[i] + '<br/>';
    q.appendChild(a);
  } else {
    a.innerHTML = '<span style="color:red">dice is not available</span>';
    q.appendChild(a);
  }
});

Then go to a topic and see if the names of your dice are under the editor. If you don't have access it'll show the following message :

Ange Tuteur
Forumaster

Male Posts : 13021
Reputation : 2683
Language : EN10, FR5
Location : Pennsylvania

http://fmdesign.forumotion.com

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by RsS.YuGi on March 2nd 2015, 3:41 am



Yep, not available.
So is there anything to be done :/? Sorry for troubling you so much.

RsS.YuGi
Forumember

Male Posts : 120
Reputation : 4
Language : English
Location : Palestine

http://resurrectionacademy.org

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by Ange Tuteur on March 2nd 2015, 4:23 am

We'll just have to use AJAX and localStorage to store your dice for 24h to prevent multiple requests. Replace your script with this :
Code:
$(function() {
  if (!document.getElementById('quick_reply')) return;
  var a = document.createElement('DIV'), storage = window.localStorage;
  if (storage && storage.faDice && storage.faDiceExp > +new Date - 24*60*60*1000) formDice(storage.faDice);
  else {
    $.post('/post',{
      message : 'preview',
      mode : 'reply',
      t : document.post.t.value,
      preview : 1
    },function(d){
      var opts = $('#post_dice',d)[0].innerHTML;
      formDice(opts);
      if (storage) {
        storage.faDice = opts;
        storage.faDiceExp = +new Date;
      }
    });
  }
 
  add_dice = function(dice_number,dice,number) {
    var content = document.getElementById('post_dice').innerHTML;
    document.getElementById('dice_to_del').innerHTML = '';
    document.getElementById('dice_to_del').id = '';
    var new_tr = document.createElement('tr');
    new_tr.appendChild(document.createElement('td'));
    new_tr.firstChild.innerHTML = '<span class="postbody">Dices roll #' + (dice_number + 1) + ' : </span><select name="post_dice_' + dice_number + '" id="post_dice_' + dice_number + '" value="' + dice + '">' + content + '</select><span class="postbody"> <label for="nb_rolls_' + dice_number + '">Dice rolls : </label><input type="text" size="2" maxlength="3" name="nb_rolls_' + dice_number + '" id="nb_rolls_' + dice_number + '" class="post" value="' + number + '" /> <span id="dice_to_del"><a href="javascript:add_dice(' + (dice_number + 1) + ',\'\',1)"><img class="sprite-tabs_more" src="http://illiweb.com/fa/empty.gif" alt="plus" /></a></span></span>';
    document.getElementById('list_dice').lastChild.appendChild(new_tr);
    var select_dice = document.getElementById('post_dice_' + dice_number);
    if ( dice == '' ) select_dice.selectedIndex = 0;
    for ( var i = 1; select_dice.options[i]; i++ ) select_dice.options[i].selected = ( select_dice.options[i].value == dice );
  };
  function formDice(dice) {
    a.innerHTML = '<table class="forumline" border="0" cellpadding="0" cellspacing="1" width="100%"><tbody><tr><th class="thHead" colspan="2"><table width="100%"><tbody><tr><td width="10"> </td><td align="center"><span class="gen"><b>Dices roll</b></span></td></tr></tbody></table></th></tr><tr><td class="row1"><table style="width:100%" id="list_dice"><tbody><tr><td><span class="postbody">Dices roll #1 : </span><select name="post_dice_0" id="post_dice">'+dice+'</select><span class="postbody"> <label for="nb_rolls_0">Dice rolls : </label><input size="2" maxlength="3" name="nb_rolls_0" id="nb_rolls_0" class="post" value="1" type="text"> <span id="dice_to_del"><a href="javascript:add_dice(1,\'\',1)"><img class="sprite-tabs_more" src="http://illiweb.com/fa/empty.gif" alt="plus"></a></span></span></td></tr></tbody></table></td></tr></tbody></table>';
    document.getElementById('quick_reply').appendChild(a);
  };
});

Ange Tuteur
Forumaster

Male Posts : 13021
Reputation : 2683
Language : EN10, FR5
Location : Pennsylvania

http://fmdesign.forumotion.com

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by RsS.YuGi on March 2nd 2015, 4:35 am

It's working perfectly!
Thank you very much Ange =)


Solved.

RsS.YuGi
Forumember

Male Posts : 120
Reputation : 4
Language : English
Location : Palestine

http://resurrectionacademy.org

Back to top Go down

Solved Re: Moving The Dice Rolling To Quick Reply.

Post by Ange Tuteur on March 2nd 2015, 4:42 am

Super, you're welcome. Mr. Green

Topic archived

Have a nice day. Smile

Ange Tuteur
Forumaster

Male Posts : 13021
Reputation : 2683
Language : EN10, FR5
Location : Pennsylvania

http://fmdesign.forumotion.com

Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum