News:

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

Main Menu

Agregar background a solo admins

Started by ZabiinoOo, November 15, 2016, 02:40:18 PM

Previous topic - Next topic

ZabiinoOo

Hola amigos resulta que estoy agregando un background que solo sea visible para los rangos administradores, el background es solo una simple luces en su nick, Arme un class desde el CSS, ahora lo que quiero lograr es conectar el class desde el subs.simplecolorizer para que solo se active el class a los id_group 1 que son los administradores, mi codigo es:

$buffer = preg_replace(str_replace('{$user_id}', $user_id, $regex[1]), '$1 style="background: url(../images/back.gif) repeat scroll 0% 0% transparent;text-shadow: 0 0 8px ' . $user_color . '; color: ' . $user_color . ';"', $buffer);

y cree este classs:



ZabiinoOo


ZabiinoOo

al parecer aqui nadie ayuda, o no tienen conocimiento

-Rock Lee-

Quote from: ZabiinoOo on November 19, 2016, 03:47:55 PM
al parecer aqui nadie ayuda, o no tienen conocimiento

Todos somos voluntarios en este lugar ayudamos en nuestro tiempos libres ya te contestaran en cuando se pueda, la modificación planteas lleva un tiempo para poder lograrlo.


Saludos!
¡Regresando como cual Fenix! ~ Bomber Code
Ayudas - Aportes - Tutoriales - Y mucho mas!!!

YahirKeym

Quote from: Rock Lee on November 19, 2016, 04:10:24 PM
Quote from: ZabiinoOo on November 19, 2016, 03:47:55 PM
al parecer aqui nadie ayuda, o no tienen conocimiento

Todos somos voluntarios en este lugar ayudamos en nuestro tiempos libres ya te contestaran en cuando se pueda, la modificación planteas lleva un tiempo para poder lograrlo.


Saludos!

Cómo dijo Rock Lee, todos somos voluntarios, si queremos ayudar o no ya depende de nosotros.

Respecto a lo que dices, no me a dado tiempo de revisar tu codigo, pero al parecer lo que buscas lo podrías solucionar de una manera más sencilla con condicionales if, y haciendo una modificación sencilla seleccionando el grupo de usuarios qué en éste caso sería administrador y modificando la etiqueta body.

Un ejemplo sencillo pero qué no es sería así.

if(grupodeusuarios = "Admin"){
echo '<body class="admin" (o bien) style="background:#fff;">'
}else{
echo '<body class="normales" (o bien) style="background:#000;">'
}

Edito:
Para más información de las condiciones if, te dejo éste post:

http://www.simplemachines.org/community/index.php?topic=548643.0

ZabiinoOo

quede en lo mismo, si es as como dices entonces lo que intentas decir es que ya eso lo tendria que traer por defecto el smf ya que a como dices entonces no se tendria que usar el simplecolorizer en ningun lado

Suki

Depende enteramente de lo que quieras hacer.

No se entiende si el background es para los mensajes de los usuarios o si quieres que ciertos grupos vean el fondo de tu foro o algun otro fondo con distinto color.

Hay dos clases de usuarios, los que están viendo tu foro en un momento en especifico y los que aparecen como creadores de un mensaje, ¿A cuál de los dos grupos te refieres?
Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

d3vcho

Hola Suki;

Creo que a lo que se refiere el usuario es a poner un background sólo en el nick de los administradores, algo así como si el nombre de usuario tuviese efectos.

Saludos :)
"Greeting Death as an old friend, they departed this life as equals"

Suki

OK, pero igual depende de que exactamente quiere, ón de lo quiere, solo en el nick o en la celda del nick?  suponiendo que el theme que esté usando se celdas o tablas o algún otro medio para separar los campos.
Disclaimer: unless otherwise stated, all my posts are personal and does not represent any views or opinions held by Simple Machines.

ZabiinoOo

Si yo uso el simplecolorizer que es para darle color al nick, pero resulta que le quiero agregar efectos al nick pero solo a los administradores, entonces yo cree un class en el index.css le puse asi



pero ahora lo que quiero es saber desde donde puedo otorgar dicho efecto solo a admins, osea hacer un tipo de llamado del class y chequeo de que sea admin se le active, lo trate hacer desde el archivo simplecolorizer pero se les agrega a todos los usuarios y no a los administradores alguno sabe algun formato para usar?

Dhayzon

según lo que entiendo tu quieres que se agregue una clase automaticamente  a los admins

ejemplos

<a class="admin" style="...">pepito</a>
<a class="usuarionormal" style="...">jorgito</a>
<a class="moderadores" style="...">Elrubiosxd</a>

y luego usar las classes css
..{
bla bla bla
}

mira no se que hayas modificado tu, pero te explicare  imaginando que no esta modificado nada ya tu piensas un poco  y lo adaptas a tus necesidades.

en el mod en su archivo subs en la linea  25 esta el nucleo  ya lo sabes..

si tu antes de "style="color:"   le agregas  class="admin"    y lo guardas y lo corres  ...... (estoy trabajando el localhost)

todo los links de los usuarios tendrán la clase  admin ........ahora  viene lo  bueno......y la pregunta ..¿como coloco clases por grupo? para que me salga  admin si es admin, usuario normal si es normal etc......   bien pues sigamos...

que necesitaremos?

1. una consulta ala base de datos para saber a que grupo pertenece el usuario.

debido a que ya la consulta esta echa solo tenemos que modificar algunas cosas.

en el archivo  busca:

SELECT mem.id_member, mem.real_name,

y justo después agrega esto mg.id_group,

con eso sabrás a que grupo pertenece un usuario  .. debido a mis escasos conocimientos en php, me vas a disculpar pero lo que sigue lo haremos de la siguiente forma ..no se si sea lo ideal pero  funciona.

luego busca

$user_colors[$row['id_member']] = !empty($row['member_group_color']) ? $row['member_group_color'] : $row['post_group_color'];

y lo reemplazas por
$user_colors[$row['id_member']] = !empty($row['member_group_color']) ? ''.$row['member_group_color'].'|'.$row['id_group'].'' : $row['post_group_color'];

lo que hago es colar el id del grupo $row['id_group'] con el color de grupo ...para  mas adelante separarlos ...

es como pegar dos cosas con cinta para sacarlos por  una puerta  y ya fuera separarlos xd

bien ya metimos todo en una cajita  bien embalada para poder sacarla ilegalmente  xd

ahora  remplaza este codigo

foreach ($user_colors as $user_id => $user_color)
$buffer = preg_replace(str_replace('{$user_id}', $user_id, $regex[1]), '$1 style="color: ' . $user_color . ';"', $buffer);


por este:
foreach ($user_colors as $user_id => $user_color){  
if (strpos($user_color, '|') !== false) {
    $array = explode('|', $user_color);
    $grupo =$array[1];
    $user_color =$array[0];
}else{
$grupo = 'na';
}

$buffer = preg_replace(str_replace('{$user_id}', $user_id, $regex[1]), '$1 class="grupo_'.$grupo.'" style="color:  '.$user_color.';"', $buffer);
}


Todo esta basado en el archivo con 0 modificaciones ... si te explico es por que quizá hiciste cosas y mas o menos  te des una idea de como lo hice.

dentro del foreach    saco las cositas que metí en mi cajita  ...

lo primero que hago es  que en mi cajita que es nuestro ($user_color) Exista un string ( | ) pudo a ver sido otra cosa xd  ..

si  existe significa que en la cajita hay otro elemento  que sea nuestro id .... entonces procedemos a separarlos  para que  funcionen independientemente ....

luego  .............ya me canse xd  para este punto ya deveria funcionar  solo guardalooo  y veras  que  cada link de los usuarios tendran una clase dell tipo

class="grupo_1" que es admin

class="grupo_na" los que no pertenezcan a grupos primarios

class="grupo_x"  x representa un numero .....que podria ser algun otro grupo primario  moderador etc..........

ahora solo  tienes que crear clases personalizadas para cada grupo que quieras

Quote.grupo_1{
  bla....
bla....
bla....
bla....
}
.grupo_x{
  bla....
bla....
bla....
bla....
}


espero me que ayas entendido  y espero que yo te aya entendido :V por que eso fue lo que entendí   ....  deecho pensaba hacerlo    y aproveche  la oportunidad para hacerlo xd


saludos .... me gusta escribir mucho perdón u.u


extra ... con esto ya no necesitas colocar el  background: url(../images/back.gif) repeat scroll 0% 0% transparent;text-shadow:

puedes usar css

[class^='grupo_']{
     background: url(../images/back.gif) repeat scroll 0% 0% transparent;
}

ZabiinoOo

No entendi fue nada jaja :laugh: mucha escritura para tan poco entendimiento 8)

Dhayzon

dices que ya has editado el mod solo has l0 mismo pero con estas nuevas modificaciones
en el archivo  subs del mod con 0 modificaciones busca:
 
SELECT mem.id_member, mem.real_name,

justo después agrega
mg.id_group,

luego busca

$user_colors[$row['id_member']] = !empty($row['member_group_color']) ? $row['member_group_color'] : $row['post_group_color'];

y reemplazalo por esto

$user_colors[$row['id_member']] = !empty($row['member_group_color']) ? ''.$row['member_group_color'].'|'.$row['id_group'].'' : $row['post_group_color'];


luego busca

foreach ($user_colors as $user_id => $user_color)
$buffer = preg_replace(str_replace('{$user_id}', $user_id, $regex[1]), '$1 style="color: ' . $user_color . ';"', $buffer);


y lo reemplazas por esto

foreach ($user_colors as $user_id => $user_color){  
if (strpos($user_color, '|') !== false) {
    $array = explode('|', $user_color);
    $grupo =$array[1];
    $user_color =$array[0];
}else{
$grupo = 'na';
}

$buffer = preg_replace(str_replace('{$user_id}', $user_id, $regex[1]), '$1 class="grupo_'.$grupo.'" style="color:  '.$user_color.';"', $buffer);
}


ahora en tu css 

agrega esto para los admins


.grupo_1{
tus codigos css para admin la que muestras en tu imagen
}



eso tendrías que hacer en resumen

y cito esto ...

al parecer aqui nadie ayuda, o no tienen conocimiento

si hay conocimiento .... pero creo que te quedo grande..... echale ganas tu puedes <3

ZabiinoOo

Dhayzon eres un capo la verdad, si me funciono hermano, ya pude agregarle a los grupos que yo queria tambien, solo una cosita se me ve en todos lados el back pero ahora necesito agregarlo solo al shoutbox que es el unico lado donde me falto donde haría en eso? y la verdad mil gracias asi como dijiste funciona perfectamente en todo el foro

Dhayzon

El mod  hace eso, poner los colores en toda la página,  y si agregamos cosas también se replicara en todas la páginas, esto significa que en cualquier pagina donde aparezca un nombre de usuario, se aplicará la clase que agregamos más el color que agrega el mod por defecto.  ahora si solo quiero que la clase que se agrego solo este por ejemplo en la pagina del post 

tendrías que usar una condición dentro del foreach ejemplo

if($isset($_REQUEST['topic'])){
if (strpos($user_color, '|') !== false) {
    $array = explode('|', $user_color);
    $grupo =$array[1];
    $user_color =$array[0];
}else{
$grupo = 'na';
}
}else{
$grupo = 'na';
}


no lo probé ..pues  a si debería de funcionar

ahora respecto a tu shoutbox no lo sé , pues no dices cual usas para poder tratar de ayudarte, hay muchos :/

el mod atrapa todos los  ?action=profile;u=222

si tu shoutbox genera eso, (es el link del usuario ).  pues debería  funcionar en teoría.. pero no se ... deberías dejar un poco más de info, como el link de shoutbox y el link de tu web  :/

ZabiinoOo

El shoutbox que uso es este: http://custom.simplemachines.org/mods/?mod=1295 quisiera que los efectos del nick me aparezcan tambien en el shoutbox

Advertisement: