News:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord

Main Menu

nneonneo's Shoutbox

Started by nneonneo, December 26, 2006, 06:58:11 PM

Previous topic - Next topic

majarm

i want o display the shoutbox only the main page

nneonneo

OK, then follow the second option.
Check out the AJAX Shoutbox (my one and only mod to date :P)
Do you like SMF? Are you using ProBoards, InvisionFree, ActiveBoards or some other web-hosted forum? I can help you convert to SMF (without having to purchase a DB conversion)...contact me [nneonneo {at} gmail *dot* com], and see this topic
spammers here!

majarm

i put the second piece of code in boardindex.template but the shoutbox not loaded.
display:

shoutbox loaded

nneonneo

Is this the default theme? If so, have you removed the existing modifications in index.template.php?
Check out the AJAX Shoutbox (my one and only mod to date :P)
Do you like SMF? Are you using ProBoards, InvisionFree, ActiveBoards or some other web-hosted forum? I can help you convert to SMF (without having to purchase a DB conversion)...contact me [nneonneo {at} gmail *dot* com], and see this topic
spammers here!

majarm

is default theme
but i make installation like a custom theme because i want to change colors letters ...

nneonneo

Err, you can always just edit Themes/default/[css/]yshout-style.css...
Check out the AJAX Shoutbox (my one and only mod to date :P)
Do you like SMF? Are you using ProBoards, InvisionFree, ActiveBoards or some other web-hosted forum? I can help you convert to SMF (without having to purchase a DB conversion)...contact me [nneonneo {at} gmail *dot* com], and see this topic
spammers here!

majarm

i try it but nothing happwn

nneonneo

Alright, let me know your forum address, and I'll stop by to check it out.
Check out the AJAX Shoutbox (my one and only mod to date :P)
Do you like SMF? Are you using ProBoards, InvisionFree, ActiveBoards or some other web-hosted forum? I can help you convert to SMF (without having to purchase a DB conversion)...contact me [nneonneo {at} gmail *dot* com], and see this topic
spammers here!

Niagra

Wow,  nneonneo,  You are  very generous and patient with all of us  and  that says  much for your personal character.  I thought you should know  I noticed  and thank you.  Now  ,  done   with the  kisses  and time  to get your brain  working  on a new and  interesting challenge. Ready?  hehe

2 issues for me...

#1  I use the shout box in my tiny portal center  block.  It shows up on all the pages in the forum at the top  under the menu bar.  This however has caused a real problem with my member map page. All the pins  end up  above the map (misaligned!) So it would seem that the shout box  has caused the  page to start at a position that the normal map page had not expected?  Or else the  module for the member map has  not been coded right.
I know having the shout box causes other  pages in a different theme to be misaligned as well... ie: Gallery headings  are not correctly lined  up well and I think the links  page too.  Anyway that led me to believe that it was perhaps  a missing  code or dash or dot  or  whatever  it is you program people need  in the shout box code and not the  actual mods pages codes.  Big deep breath,... soooooo.  Can you help me  figure  out  how to either  ask  tiny portal to not show the  shout box on the member map page OR   how to fix this little bug in the  modification of that page?  I don't mind making it unavailable in that page.

#2 - This one is going to really tax you.  hehe 

Because I have it in a center block  and because I dont use the right and left  side blocks in the actual forum pages, my shout box becomes very long  with much blank space on those pages.  My  question therefore is, is there a way that on those  particular pages that I could  show an  image  in that blank space area?

If you are not offended by  adult content please feel free to pop in and see for yourself  what  and  why I wish to  do this.  www.frogn.com

I realize I'm asking a lot  here  and  if it is too much  please  feel free to say so.  FYI .. I know nothing about java script.  Although am learning php.

Thank you for your time.

NIagra

majarm

http://www.firstradio.gr [nofollow]

Now it works because i put the code in index.template

Apllicmz




Mystiquo

// This gets called each refresh; it reloads the shoutboxes content.

var oldShouts = null;
function doRefresh() {
   
   
if (oldShouts != null && oldShouts != $("shouts").innerHTML)
{
   
   if(get_cookie("shoutSound") == "true")
   

   if (delete_cookie('shoutSound'))
{
set_cookie('shoutSound','true',3600*24);
}   
soundManager.setVolume('sound',0); // my addition line, you can remove it
soundManager.play('sound');
}
oldShouts = $("shouts").innerHTML;
   if($("yshout").style.display == "none") {refreshSet = false; return;};
   set_cookie("yShout_open","true",3/*seconds*/);
   request=new ajax (yshout_php, {
      postBody: 'reqtype=refresh&file=' + shoutFile,
      update: $('shouts'),
      onComplete: schedRefresh
   });

   
Done but not go well, then I tried to change this
SoundManager.play ( 'sound');
In this
SoundManager.onstop ( 'sound');
Now if I click no sound on the sound not feel but if I put the sound I have to refresh the page

// This gets called each refresh; it reloads the shoutboxes content.

var oldShouts = null;
function doRefresh() {
   
   
if (oldShouts != null && oldShouts != $("shouts").innerHTML)
{
   
   if(get_cookie("shoutSound") == "true")
   

   if (delete_cookie('shoutSound'))
{
set_cookie('shoutSound','true',3600*24);
}   
soundManager.setVolume('sound',0); // my addition line, you can remove it
soundManager.onstop('sound');
}
oldShouts = $("shouts").innerHTML;
   if($("yshout").style.display == "none") {refreshSet = false; return;};
   set_cookie("yShout_open","true",3/*seconds*/);
   request=new ajax (yshout_php, {
      postBody: 'reqtype=refresh&file=' + shoutFile,
      update: $('shouts'),
      onComplete: schedRefresh
   });

nneonneo

@Niagra: The member map is using onload events to position the pins. The shoutbox, however, loads after the page does, so the pins are placed before the shoutbox is completely setup.
The easiest thing to do is simply to disable the shoutbox on that page.
In yshout/js/yshout.js, under
function loadChat() {
if ($("yshout").style.display=="none") return;

add
if(document.location.href.indexOf("action=mm")!=-1) {$("yshout").style.display="none"; return;}
and the shoutbox will simply not load on that page.

For the second problem, presumably TinyPortal isn't even active on the other pages -- have you put the shoutbox in TP and in index.template.php? If so, then it is quite easy to make this change -- you just edit index.template.php, set a small table tag with two columns, putting the shoutbox in the left and whatever you want in the right.
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="50%">!!SHOUTBOXCODE!!</td>
<td>
!!OTHERTHING!!
</td>
</tr>
</table>


@Mystiquo: why did you need to use onstop?
Check out the AJAX Shoutbox (my one and only mod to date :P)
Do you like SMF? Are you using ProBoards, InvisionFree, ActiveBoards or some other web-hosted forum? I can help you convert to SMF (without having to purchase a DB conversion)...contact me [nneonneo {at} gmail *dot* com], and see this topic
spammers here!

Mystiquo

I use onstop at least when I hit no sound remains without refresh the page, but unfortunately I have to put it back to refresh the page, I have the practical effect as opposed to the first.

I wanted to know firefox and ie7 not have the same color why?
Ie7 and then it is very slow to open the pages you can help me?

nneonneo

FF and IE7 have different colours? How different (and what colors are different)?

I posted my entire yshout.js file, which works fine (for me) a few posts ago:
http://www.simplemachines.org/community/index.php?topic=137508.msg1475479#msg1475479
Check out the AJAX Shoutbox (my one and only mod to date :P)
Do you like SMF? Are you using ProBoards, InvisionFree, ActiveBoards or some other web-hosted forum? I can help you convert to SMF (without having to purchase a DB conversion)...contact me [nneonneo {at} gmail *dot* com], and see this topic
spammers here!

rebus

The shoutbox works fine, but I got many errors like these in the log:

8: Undefined index: yshout_shoutbox
File: /home/davematt/public_html/forum/Themes/default/Display.template.php (eval?)
Linea: 301


8: Undefined index: yshout_loading
File: /home/davematt/public_html/forum/Themes/default/BoardIndex.template.php (eval?)
Linea: 302


Is that normal?

nneonneo

Not really, but they are easily fixed. Does the shoutbox appear to have no text? If so, then you simply have to copy Themes/default/languages/Modifications.english.php to Modifications.<yourlanguage>.php.
Check out the AJAX Shoutbox (my one and only mod to date :P)
Do you like SMF? Are you using ProBoards, InvisionFree, ActiveBoards or some other web-hosted forum? I can help you convert to SMF (without having to purchase a DB conversion)...contact me [nneonneo {at} gmail *dot* com], and see this topic
spammers here!

Mystiquo



// Flood control time in milliseconds:
var floodTime = 1000;

// Time between refreshes (minimum) in milliseconds:
// Note that since 1.08, this option will have less of an effect on performance,
// hence the default value is very low :)
var refreshTime = 150;

// Check for duplicate instances?
// This can improve performance in some cases.
var checkDuplicates = false;

// Internet Explorer 7 has a bug (feature?) which causes extreme lag when
// moving between pages. This delay controls "false alarms"; the amount
// of time between detecting a page move and reloading the shoutbox.
// If it is too high, users may experience laggy shoutboxes.
// If it is too low, users may experience lag moving to a new page.
// This bug only affects Internet Explorer 7 (not previous versions)
var falseAlarmDelay = 5000;

// Don't edit below this line, unless you know what you are doing ;)
username = "";

var yshout_php=(board_url?board_url:'')+'/yshout/yshout.php';

// Set up Behaviour
var myrules = {
'#shout-form' : function(element){
element.onsubmit = function(){
return false;
}
},

'#shout-text' : function(element){
element.onkeypress = function(evt){
return onKP(element, evt);
}
element.onfocus = function() {
onF(element);
}
},

'#shout-button' : function(element){
element.onclick = function(){
doSend();
}
}
};

var guest;

Behaviour.register(myrules);

// onKeyPress event handler for the two textboxes
function onKP (element, evt) {
evt = (evt) ? evt : (window.event) ? event : null;

var charCode;
if (evt)
charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));

if (charCode == 13 || charCode == 3) {
doSend();
return false;
}
}

// onFocus event handler for the two textboxes
function onF (element) {
element.value = "";
defocus(element);
}

// Clear the onFocus event handler and set the foreground color to black.
function defocus(element) {
element.onfocus = null;
element.style.color = null;
}

// Set off the AJAX call to load the chat form into the empty yShout div
function loadChat() {
if ($("yshout").style.display=="none") return;
if(checkDuplicates)
{
if(get_cookie("yShout_open"))
{
$("yshout").innerHTML="Shoutbox loaded in another window. Retrying...";
setTimeout("loadChat()",Math.random()*1000+1000/*between 1 and 2 seconds*/);
return;
}
set_cookie("yShout_open","true",3/*seconds*/);
}
window.onunload = delcookie;
if ($("yshout") && shoutFile != "") {
new ajax (yshout_php, {
postBody: 'reqtype=init&file=' + shoutFile,
update: $('yshout'),
onComplete: loadDone
});
}
}

function delcookie() {

delete_cookie("yShout_open");
}

// Re-apply Behaviour after the chat loads
function loadDone() {
setTimeout("Behaviour.apply()", 5);
setTimeout("setupChat()", 5);
}

var oldNameBackgroundColor, oldTextBackgroundColor;

function setupChat() {
startRefresh();
username = $("forum-name").value;
if($("forum-name").disabled) guest=false;
else guest=true;
}

function complex_escape(text) {
return escape(textToEntities(text.replace(/&#/g, "&#38;#"))).replace(/\+/g, "%2B");
}

// Send the message
function doSend() {
if (guest) {
if($("forum-name").value=='')
{
alert("Please enter a username.");
return;
}
username=complex_escape($F("forum-name"));
set_cookie("username",username,20*365*24*3600);
var toShout = complex_escape($F("shout-text"));
floodControl();
new ajax (yshout_php, {
postBody: 'reqtype=shout&shout=' + toShout + '&file=' + shoutFile + '&username=' + username,
update: $('shouts'),
onComplete: shoutDone
});
return;
}
if (formValidate() && $("shout-text").value) {
var toShout = complex_escape($F("shout-text"));
floodControl();

new ajax (yshout_php, {
postBody: 'reqtype=shout&shout=' + toShout + '&file=' + shoutFile,
update: $('shouts'),
onComplete: shoutDone
});
}
}

function autoShout(theText) {
new ajax (yshout_php, {
postBody: 'reqtype=autoshout&shout=' + theText + '&file=' + shoutFile,
update: $('shouts'),
onComplete: shoutDone
});
}

function ajaxGet(args) {
new ajax (yshout_php+'?'+args, {
update: $('shouts'),
onComplete: shoutDone
});
}

function goTo(args) {
if(request) request.transport.abort();
document.location=yshout_php+'?'+args;
}

// Start refreshing the chat after a message has been sent
function shoutDone() {
startRefresh();
}

var refreshSet = false;

function startRefresh() {
if (!refreshSet) {
setTimeout("doRefresh()", refreshTime);
refreshSet = true;
}
}

function schedRefresh() {
if (refreshSet) {
setTimeout("doRefresh()", refreshTime);
}
}

// Validate the form to ensure that the fields are filled
function formValidate() {
var shoutText = $F("shout-text");

var textValid = true;

if (shoutText == "Shout text" || shoutText == "")
textValid = false;

if (!textValid) {
changeClass($("shout-text"), "shout-invalid");
$("shout-text").focus();
return false;
} else {
changeClass($("shout-text"), "shout-valid-shout");
}

return true;
}

// This gets called each refresh; it reloads the shoutboxes content.

var oldShouts = null;
function doRefresh() {


if (oldShouts != null && oldShouts != $("shouts").innerHTML)
{



soundManager.play('sound')
}
if(get_cookie("shoutSound") == "true")

{
if (delete_cookie('shoutSound'))
{
set_cookie('shoutSound','true',3600*24);
}
soundManager.setVolume('sound',0); // my addition line, you can remove it
soundManager.onstop('sound');
}

oldShouts = $("shouts").innerHTML;
if($("yshout").style.display == "none") {refreshSet = false; return;};
set_cookie("yShout_open","true",3/*seconds*/);
request=new ajax (yshout_php, {
postBody: 'reqtype=refresh&file=' + shoutFile,
update: $('shouts'),
onComplete: schedRefresh
});
// IE7 kludge: Abort transfers before navigating away, otherwise IE waits for completion
for (i=0;i<document.links.length;i++){
if(document.links[i].getAttribute("href").substring(11,0) != "javascript:")
document.links[i].setAttribute("onactivate",function(){request.transport.abort();setTimeout("schedRefresh()",falseAlarmDelay);});
}
}

function floodControl() {
$("shout-text").disabled = true;
$("shout-text").value = "";
Form.disable($("shout-form"));
setTimeout("enableShout()", floodTime);

}

function enableShout() {
Form.enable($("shout-form"));
$("shout-text").value = "";
if(!guest) $("forum-name").disabled = true;
$("shout-text").disabled = false;

setTimeout('$("shout-text").focus()', 0);
}

function changeClass(element, newClass) {
element.className = newClass;
}

function set_cookie( name, value, expires, path, domain, secure )
{

// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}

// this function gets the cookie, if it exists
function get_cookie( name ) {
var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if ( ( !start ) &&
( name != document.cookie.substring( 0, name.length ) ) )
{
return null;
}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ";", len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );

}

function delete_cookie ( cookie_name )
{
var cookie_date = new Date ( );  // current date & time
cookie_date.setTime ( cookie_date.getTime() - 1 );
document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}


nneonneo

Mystiquo, can you please try the yshout.js I posted?
Check out the AJAX Shoutbox (my one and only mod to date :P)
Do you like SMF? Are you using ProBoards, InvisionFree, ActiveBoards or some other web-hosted forum? I can help you convert to SMF (without having to purchase a DB conversion)...contact me [nneonneo {at} gmail *dot* com], and see this topic
spammers here!

jossanaijr

Error when uploading to SMF 2.0 beta 3:

An Error Has Occurred!
The package you tried to upload either is not a valid package or has become corrupted.

Advertisement: