Publicidad

Autor Tema: [MOD] Agregar a amigos con AJAX  (Leído 1321 veces)

Desconectado brayan2259

  • Tester interino
  • *
  • Mensajes: 1237
  • Power: 225
  • Sexo: Masculino
  • To be or not to be...
    • Ver Perfil
[MOD] Agregar a amigos con AJAX
« en: Diciembre 25, 2011, 06:39:45 am »
Este es el MOD de agregar amigos con Ajax desde los posts vean caps , esta basado en DrDexter .


CARACTERISTICAS:
-Usa Mydialog
-Enviar solicitud sin salir del post.
-Dejar de ser amigo sin salir del post.
-Verifica estado de amistad y de eso depende el boton a mostrar( amigo , no amigo )
-Enviar solicitud con AJAX en los posts.
-Dejar de ser amigos AJAX en los posts.

CAPS:





PASOS:

NOTA: Si ya tienes el MyDialog evitar los pasos de Nº 1,2,3


1- Abre tu acciones-sp-1.1.js de Themes/tutheme y al final agregas:

Código: [Seleccionar]
//MYDIALOG INICIO 
/* MyDialog */
var mydialog = {

is_show: false,
class_aux: '',
mask_close: true,
close_button: false,
show: function(class_aux){
    if(this.is_show)
        return;
    else
        this.is_show = true;
    if($('#mydialog').html()=='') //Primera vez
        $('#mydialog').html('<div id="dialog"><div id="title"></div><div id="cuerpo"><div id="procesando"><div id="mensaje"></div></div><div id="modalBody"></div><div id="buttons"></div></div></div>');

    if(class_aux==true)
        $('#mydialog').addClass(this.class_aux);
    else if(this.class_aux != ''){
        $('#mydialog').removeClass(this.class_aux);
        this.class_aux = '';
    }

    if(this.mask_close)
        $('#mask').click(function(){ mydialog.close() });
    else
        $('#mask').unbind('click');

    if(this.close_button)
        $('#mydialog #dialog').append('<img class="close_dialog" src="/Themes/default/icons/close_dialog.png" width="16px" onclick="mydialog.close()" />');
    else
        $('#mydialog #dialog .close_dialog').remove();

    $('#mask').css({'width':$(document).width(),'height':$(document).height(),'display':'block'});

    if(jQuery.browser.msie && jQuery.browser.version<7) //Fix IE<7 <- fack you
        $('#mydialog #dialog').css('position', 'absolute');
    else
        $('#mydialog #dialog').css('position', 'fixed');
    $('#mydialog #dialog').fadeIn('fast');
},
close: function(){
    //Vuelve todos los parametros por default
    this.class_aux = '';
    this.mask_close = true;
    this.close_button = false;

    this.is_show = false;
    $('#mask').css('display', 'none');
    $('#mydialog #dialog').fadeOut('fast', function(){ $(this).remove() });
    this.procesando_fin();
},
center: function(){
    if($('#mydialog #dialog').height() > $(window).height()-60)
        $('#mydialog #dialog').css({'position':'absolute', 'top':20});
    else
        $('#mydialog #dialog').css('top', $(window).height()/2-$('#mydialog #dialog').height()/2);
    $('#mydialog #dialog').css('left', $(window).width()/2-$('#mydialog #dialog').width()/2);
},

title: function(title){
    $('#mydialog #title').html(title);
},
body: function(body, width, height){
    if(!width && (jQuery.browser.opera || (jQuery.browser.msie && jQuery.browser.version<7)))
        width = '400px';
    $('#mydialog #dialog').width(width?width:'').height(height?height:'');
    $('#mydialog #modalBody').html(body);
},
buttons: function(display_all, btn1_display, btn1_val, btn1_action, btn1_enabled, btn1_focus, btn2_display, btn2_val, btn2_action, btn2_enabled, btn2_focus){
    if(!display_all){
        $('#mydialog #buttons').css('display', 'none').html('');
        return;
    }

    if(btn1_action=='close')
        btn1_action='mydialog.close()';
    if(btn2_action=='close' || !btn2_val)
        btn2_action='mydialog.close()';
    if(!btn2_val){
        btn2_val = 'Cancelar';
        btn2_enabled = true;
    }

    var html = '';
    if(btn1_display)
        html += '<input type="button" class="Boton BtnBlue'+(btn1_enabled?'':' disabled')+'" style="display:'+(btn1_display?'inline-block':'none')+'"'+(btn1_display?' value="'+btn1_val+'"':'')+(btn1_display?' onclick="'+btn1_action+'"':'')+(btn1_enabled?'':' disabled')+' />';
    if(btn2_display)
        html += ' <input type="button" class="Boton BntRed'+(btn1_enabled?'':' disabled')+'" style="display:'+(btn2_display?'inline-block':'none')+'"'+(btn2_display?' value="'+btn2_val+'"':'')+(btn2_display?' onclick="'+btn2_action+'"':'')+(btn2_enabled?'':' disabled')+' />';
    $('#mydialog #buttons').html(html).css('display', 'inline-block');

    if(btn1_focus)
        $('#mydialog #buttons .mBtn.btnOk').focus();
    else if(btn2_focus)
        $('#mydialog #buttons .mBtn.btnCancel').focus();
},
buttons_enabled: function(btn1_enabled, btn2_enabled){
    if($('#mydialog #buttons .Boton.Small.BtnBlue'))
        if(btn1_enabled)
            $('#mydialog #buttons .Boton.BtnBlue').removeClass('disabled').removeAttr('disabled');
        else
            $('#mydialog #buttons .Boton.BtnBlue').addClass('disabled').attr('disabled', 'disabled');

    if($('#mydialog #buttons .Boton.BtnRed'))
        if(btn2_enabled)
            $('#mydialog #buttons .mBtn.btnCancel').removeClass('disabled').removeAttr('disabled');
        else
            $('#mydialog #buttons .Boton.BtnRed').addClass('disabled').attr('disabled', 'disabled');
},
alert: function(title, body, reload){
    this.show();
    this.title(title);
    this.body(body);
    this.buttons(true, true, 'Aceptar', 'mydialog.close();' + (reload ? 'location.reload();' : 'close'), true, true, false);
    this.center();
},
error_500: function(fun_reintentar){
    setTimeout(function(){
        mydialog.procesando_fin();
        mydialog.show();
        mydialog.title('Error detectado!');
        mydialog.body(lang['error procesar']);
        mydialog.buttons(true, true, 'Reintentar', 'mydialog.close();'+fun_reintentar, true, true, true, 'Cancelar', 'close', true, false);
        mydialog.center();
    }, 200);
},
procesando_inicio: function(value, title){
    if(!this.is_show){
        this.show();
        this.title(title);
        this.body('');
        this.buttons(false, false);
        this.center();
    }
    $('#mydialog #procesando #mensaje').html('<br /><img src="/Themes/default/loading.gif" />');
    $('#mydialog #procesando').fadeIn('fast');
},
procesando_fin: function(){
    $('#mydialog #procesando').fadeOut('fast');
}

};
// MYDIALOG FIN

2 - Abrir tu estilos-sp.css de Themes/tutheme

 Agregar al final esto (esta comprimido por eso esta en tinypaste):
http://tinypaste.com/cc37f2c2

3- Abrir el index.template.php de Themes/tutheme

Buscar:

Código: [Seleccionar]
<body>

Colocar despues:

Código: [Seleccionar]
<div id="mask"></div>
<div id="mydialog"></div>

Tambien buscas:
Código: [Seleccionar]
/acciones-sp-1.1.js"></script>

Agregas despues:
Código: [Seleccionar]
<script>
var boardurl = "'.$boardurl.'";
</script>



4- Abrir el acciones-sp-1.1.js

Agregar al final:
Código: [Seleccionar]
//////////////////////////////////////////////AMIGOS//////////////////////////////////////////

/* Agregar amigo - enviar solicitud */
function agregar_amigo(id){
mydialog.close_button = true;
mydialog.procesando_inicio('Cargando...', 'Cargando :)');
$.ajax({
type: 'POST',
url: boardurl+'/Ajax/amigos.peticion.php',
data: 'user=' + id,
success: function(h){
switch(h.charAt(0)){
case '0': // Error
mydialog.alert('Error', h.substring(3));
break;
case '1': // OK
mydialog.title('Agregar amigo');
mydialog.body(h.substring(3), 400);
mydialog.buttons(true, true, 'Enviar solicitud de amistad', 'agregar_amigo_solicitud_send('+id+')', true, true, true);
mydialog.center();
break;
}
},
error: function(){
mydialog.error_500("agregar_amigo("+id+")");
return;
},
complete: function(){
mydialog.procesando_fin();
}
});
}

/* Si aceptó , Luego enviando la solicitud */
function agregar_amigo_solicitud_send(id){
mydialog.close_button = true;
mydialog.procesando_inicio('Enviando...', 'Cargando :)');
$.ajax({
type: 'POST',
url: boardurl+'/Ajax/amigos.enviarpeticion.php',
data: 'user=' + id,
success: function(h){
switch(h.charAt(0)){
case '0': // Error
mydialog.alert('Error', h.substring(3));
break;
case '1': // OK
mydialog.alert('Solicitud enviada', h.substring(3));
$('#mostrar_agregar').hide('fast');
$('#mostrar_eliminar').show('fast');
break;
}
},
error: function(){
mydialog.error_500("agregar_amigo_solicitud_send("+id+")");
return;
},
complete: function(){
mydialog.procesando_fin();
}
});
}

/* Dejar de ser amigos */
function eliminar_amigo(id){
mydialog.close_button = true;
mydialog.procesando_inicio('Cargando...', 'Cargando :)');
$.ajax({
type: 'POST',
url: boardurl+'/Ajax/amigos.dejar.php',
data: 'user=' + id,
success: function(h){
switch(h.charAt(0)){
case '0': // Error
mydialog.alert('Error', h.substring(3));
break;
case '1': // OK
mydialog.title('Eliminar amistad :( ');
mydialog.body(h.substring(3), 400);
mydialog.buttons(true, true, 'Eliminar amistad', 'eliminar_amigo_send('+id+')', true, true, true);
mydialog.center();
break;
}
},
error: function(){
mydialog.error_500("agregar_amigo("+id+")");
return;
},
complete: function(){
mydialog.procesando_fin();
}
});
}

/* Si aceptó , Luego dejamos de ser amigos :( so sad */
function eliminar_amigo_send(id){
mydialog.close_button = true;
mydialog.procesando_inicio('Enviando...', 'Cargando :)');
$.ajax({
type: 'POST',
url: boardurl+'/Ajax/amigos.dejardeser.php',
data: 'user=' + id,
success: function(h){
switch(h.charAt(0)){
case '0': // Error
mydialog.alert('Error', h.substring(3));
break;
case '1': // OK
mydialog.alert('Amistad eliminada con exito', h.substring(3));
$('#mostrar_agregar').show('fast');
$('#mostrar_eliminar').hide('fast');
break;
}
},
error: function(){
mydialog.error_500("eliminar_amigo_send("+id+")");
return;
},
complete: function(){
mydialog.procesando_fin();
}
});
}


/////////////////////////////FIN AMIGOS (brayan2259)//////////////////////////////////////////

5- Crear una carpeta llamada "Ajax" en la raiz y subir alli los siguiente archivos del .zip adjunto:

amigos.dejar.php , amigos.dejardeser.php , amigos.enviarpeticion.php , amigos.peticion.php

6- Subir a  "/Themes/default/images" esto:

loading.gif , botones-bg.png , close_dialog.png


7 - Abrir tu Display.template.php

Buscar:
Código: [Seleccionar]
<span class="size11">',$txt['disp_images'],'</span></a></span></div>';

}

Agregar Despues:

Código: [Seleccionar]
//PETICION AMIGO AJAX (brayan2259)
//verifica estado (amigo o no amigo) now
$ver = db_query("SELECT ID_MEMBER, BUDDY_ID FROM {$db_prefix}buddies
WHERE ID_MEMBER = {$context['user']['id']}
AND BUDDY_ID = {$message['member']['id']}
LIMIT 1",__FILE__,__LINE__);
$ok = mysql_num_rows($ver);

if($ok > 0){
if($message['member']['id'] != $context['user']['id'] && $context['user']['is_logged']){
echo'<span id="mostrar_eliminar"><br class="space"><hr class="divider"><input  style="width:131px;font-size:12px;" onclick="eliminar_amigo(\''.$message['member']['id'].'\'); return false;" value="Dejar de ser amigos" title="Dejar de ser amigos" class="Boton BtnGray" type="button"></span>
<span id="mostrar_agregar" style="display:none"><br class="space"><hr class="divider"><input onclick="agregar_amigo(\''.$message['member']['id'].'\'); return false;" value="A&ntilde;adir a mis amigos" title="A&ntilde;adir a mis amigos" style="width:131px;font-size:12px;" class="Boton BtnGray" type="button"></span>
';}
}
else {
if($message['member']['id'] != $context['user']['id'] && $context['user']['is_logged']){
echo'<span id="mostrar_agregar"><br class="space"><hr class="divider"><input onclick="agregar_amigo(\''.$message['member']['id'].'\'); return false;" style="width:131px;font-size:12px;" value="A&ntilde;adir a mis amigos" title="A&ntilde;adir a mis amigos" class="Boton BtnGray" type="button"></span>
<span id="mostrar_eliminar" style="display:none"><br class="space"><hr class="divider"><input style="width:131px;font-size:12px;" onclick="eliminar_amigo(\''.$message['member']['id'].'\'); return false;" value="Dejar de ser amigos" title="Dejar de ser amigos" class="Boton BtnGray" type="button"></span>';}}

//FIN PETICION AMIGO AJAX (brayan2259)

« última modificación: Diciembre 25, 2011, 06:57:10 am por brayan2259 »


Luis LMFAO

Desconectado sondeoh

  • Newbie
  • *
  • Mensajes: 23
  • Power: 1
    • Ver Perfil
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #1 en: Diciembre 25, 2011, 06:52:36 am »
muy bueno ya lo instalo :)

Desconectado virus

  • Soporte Oficial
  • *
  • Mensajes: 826
  • Power: 85
  • Sexo: Masculino
    • Ver Perfil
    • System VT - Descargas, Programas, Juegos, Peliculas, Musica, Ayuda
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #2 en: Diciembre 25, 2011, 06:54:00 am »
wow men estas a full muy bueno el mod ahi te dejo +1 :-D

Desconectado beatlero18

  • Sr. Member
  • ****
  • Mensajes: 397
  • Power: 89
  • Sexo: Masculino
  • It always needs moar desu~.
    • Ver Perfil
    • Macosfera
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #3 en: Diciembre 25, 2011, 07:03:43 am »
Bien ahí crayon. +1

Desconectado anferro

  • Tester interino
  • *
  • Mensajes: 2737
  • Power: 70
  • Sexo: Masculino
  • Solo Negocios (?)
    • Ver Perfil
    • Email
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #4 en: Diciembre 25, 2011, 07:06:20 am »
Wow men que te dieron de navidad? un poder xD venis a full  con los Mods

Desconectado Ema_94

  • Full Member
  • ***
  • Mensajes: 144
  • Power: 4
  • Sexo: Masculino
    • Ver Perfil
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #5 en: Diciembre 25, 2011, 07:11:21 am »
Wow siempre me gusto mas el sitema de amigos q el de seguidores y esto me ayuda a mejorarlo +1

Desconectado anferro

  • Tester interino
  • *
  • Mensajes: 2737
  • Power: 70
  • Sexo: Masculino
  • Solo Negocios (?)
    • Ver Perfil
    • Email
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #6 en: Diciembre 25, 2011, 07:12:22 am »
Men una pregunta te notifica cuando recibes la solicitud de amistad via MP? o es compatible con el Mod de fivezone

Desconectado dario master

  • Full Member
  • ***
  • Mensajes: 135
  • Power: 12
  • Sexo: Masculino
    • Ver Perfil
    • Email
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #7 en: Diciembre 25, 2011, 07:19:02 am »
muy bueno el mod +1 :B

Desconectado foroposteadores

  • SPadicto
  • ******
  • Mensajes: 1465
  • Power: 295
  • Sexo: Masculino
  • La inspiración proviene de arriba :p
    • Ver Perfil
    • Foro Posteadores
    • Email
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #8 en: Diciembre 25, 2011, 08:27:58 am »
excelente mod +1
[X] Unirme a Spirate!
[X] Hacer un mod
[X] Perder la traducción del script a portugues
[ ] Traducir la 2.4 al portugues
[ ] Ser moderador

Desconectado foroposteadores

  • SPadicto
  • ******
  • Mensajes: 1465
  • Power: 295
  • Sexo: Masculino
  • La inspiración proviene de arriba :p
    • Ver Perfil
    • Foro Posteadores
    • Email
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #9 en: Diciembre 25, 2011, 11:57:41 pm »
una pregunta, encontre en amigos.dejardeser.php esta linea:

Código: [Seleccionar]
include('../Ajax/funciones.php');

creo que te olvidaste de subir el archivo funciones.php
[X] Unirme a Spirate!
[X] Hacer un mod
[X] Perder la traducción del script a portugues
[ ] Traducir la 2.4 al portugues
[ ] Ser moderador

Desconectado brayan2259

  • Tester interino
  • *
  • Mensajes: 1237
  • Power: 225
  • Sexo: Masculino
  • To be or not to be...
    • Ver Perfil
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #10 en: Diciembre 26, 2011, 10:45:59 pm »
una pregunta, encontre en amigos.dejardeser.php esta linea:

Código: [Seleccionar]
include('../Ajax/funciones.php');

creo que te olvidaste de subir el archivo funciones.php

Gracias por avisar ahi al rato lo adjunto


Luis LMFAO

Desconectado 50cent

  • VIP
  • *
  • Mensajes: 1462
  • Power: 239
  • Sexo: Masculino
  • Y u no upload 2.4 !!!
    • Ver Perfil
    • Pruebas guachin '_'
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #11 en: Diciembre 30, 2011, 01:55:05 am »
Are You Sure ? 

Para que ponerlo si lo puedes poner en las variables de los idiomas, así ya depende de que idioma se esté usando.

+1

Desconectado leo

  • Full Member
  • ***
  • Mensajes: 159
  • Power: 30
  • "Si la vida te da lomones, vendelos"
    • Ver Perfil
    • Clanboox.com
    • Email
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #12 en: Febrero 13, 2012, 03:41:14 am »
Muy bueno el mod... te falta el archivo funciones.php que va dentro de la carpeta Ajax...

aca te dejo el que yo tengo, creo q es el de los muros de five pero ya ni me acuerdo jeje :P

solo lo tienen que poner dentro de la carpeta Ajax junto con los otros archivos que dice arriba ;) un saludo :P


Citar
"Si la vida te da limones, vendelos"

Desconectado inuyasha_df

  • Newbie
  • *
  • Mensajes: 9
  • Power: 0
    • Ver Perfil
Re:[MOD] Agregar a amigos con AJAX
« Respuesta #13 en: Julio 04, 2012, 11:27:59 am »
que tal yo tengo un problema al agregar sun en el js me marca error en esta linea

    $('#mydialog #procesando #mensaje').html('

y cuando entro a algun post eh intento agregar amigo nada mas no sucede nada espero alguien me pueda ayudar de ante mano gracias

Desconectado xentryx

  • Full Member
  • ***
  • Mensajes: 144
  • Power: 2
  • Sexo: Masculino
    • Ver Perfil
    • Email
IDEM al problema de inuyasha_df
« Respuesta #14 en: Julio 05, 2012, 12:32:20 pm »
IDEM al problema de inuyasha_df solo que a mi no me ejecuta la acción. Uno le da agregar amigo o dejar de ser amigo y no llama la acción. Gracias vere que puedo hacer o si alguien puede ayudar bienvenida la ayuda.