Problemas con dropmenu por culpa de jquery en Source/load.php... ?

Started by JJMD, January 22, 2014, 04:52:55 PM

Previous topic - Next topic

JJMD

Buenas!!!!!

Debido a la normativa de las cookies, pues me he decidido a poner bien el site xD
El caso es que al poner lo siguiente en /source/load.php (añado una cookie para que no se muestre más una div)


if (isset($context['html_headers']))
$context['html_headers'] .= '
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
<script type="text/javascript">
$(document).ready(function($){
var cookieSet = document.cookie.indexOf("avisocookie=") != -1;
if(!cookieSet)
$("#cookie_btn").click(function(){
var expire = new Date();
expire.setDate(expire.getDate() + 365);
document.cookie = "avisocookie=1; path=/; expires=" + expire;
$(".cookieback").fadeOut("fast");
});
else
$(".cookieback").css("visibility", "hidden");
});
</script>
';


Me va perfectamente el Popup y demás, pero yo tenía un dropmenu al pulsar mi nombre de usuario que se desplegaba con cosas como "nuevos mensajes no leídos",etc.

El caso es que, el problema viene por culpa de
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>

pero sin eso no puedo cargar lo del popup de las cookies...

El dropmenu que deja de funcionar es el siguiente: (a partir del <ul> )


<li>
<a href="#" id="dropdown_user">
<img class="avatar" src="', empty($context['user']['avatar']) ? '' . $settings['images_url'] . '/theme/noavatar.png' : '' . $context['user']['avatar']['href'] . '', '" alt="', $txt['profile'], '" title="', $txt['profile'], '" />
<span class="welcome">Bienvenido, ', $context['user']['name'], '!</span>

</a>
<ul class="dropmenu_user" style="display: none;">
<li class="ulist"><a href="', $scripturl, '?action=unreadreplies">', $txt['unread_replies'], '</a></li>
<li class="ulist"><a href="', $scripturl, '?action=unread">', $txt['unread_topics_visit'], '</a></li>
<li class="ulist"><a href="', $scripturl, '?action=profile;area=account">', $txt['account'], '</a></li>
<li class="ulist"><a href="', $scripturl, '?action=profile;area=forumprofile">', $txt['forumprofile'], '</a></li>
<li class="ulist"> <a href="', $scripturl, '?action=logout;',$context['session_var'],'=', $context['session_id'], '">Logout</a></li>
</ul>
</li>


Y aquí dejo mis preguntas:
1) En /sources/load pongo if (isset($context['html_headers'])), pero, en verdad lo puse porque es lo que mejor me fue... lo que quiero es que salte a todos. Lo dejo así? o pongo otra cosa?

2) Cómo soluciono el problema por el que abrí el post? xD

3) Habría alguna forma de bloquear TODAS las cookies de la web hasta que pulse el botón OK que acepta la ventana de información de las cookies??

4) las imágenes de registro de captcha dejaron de cargarse (se muestra como imagen no encontrada), a qué puede ser debido?

Mi web: http://www.clanwaza.com

Gracias de antemano y sorry por el tochopost y tanta pregunta  ::)

Un saludo!

luuuciano

Firebug dice:

TypeError: $(...).superfish is not a function
$('ul.dropmenu').superfish();

buscá info sobre jquery noconflict y agregale eso por lo menos a las funciones de ese dropmenu

Por otro lado... estás cargando jquery muchas veces... y lo del cookie y demás te queda antes de las especificaciones de doctype, etc...
No me agradan los foros que no te dejan borrar TU PROPIO usuario, como por ejemplo smfsimple.com.
E incluso te mandan emails no solicitados, de los cuales, quizá, no puedas escapar porque NO te dejan posibilidad a deshabilitarlos (a menos que NO te tengan en su lista negra).

JJMD

No logro usar bien el noconflict XD

Y lo dle doctype, supongo que queda todo antes del doctype debido a que lo puse en load.php. Lo puse ahí por el hecho de que quiero que el mensajito salga siempre dando igual a qué parte de la web entres primero. Qué debería hacer entonces con el doctype?

#jsDotx3

Una consulta, si usas un dropmenu (de por sí, usas jQuery) ¿no estarás haciendo doble mención a la API del archivo de jQuery?, deja tu index.template.php para otorgar mejor soporte y veremos.

Solved
(Life would be easy with a simple solution.)

JJMD

Aquí dejo adjunto el index.template que es donde tengo el dropmenu.
en Load.php donde tengo las cookies (y otra cosa que lleva lo mismo). Se encuentra fácil buscando //cookies

global.js hace referencia al dropmenu
theme.js está el superfish ese

O:)


Por cierto, gracias por las respuestas!

Diego Andrés


SMF Tricks - Free & Premium Responsive Themes for SMF.

JJMD

Quote from: Diego Andrés on January 23, 2014, 08:48:22 PM
Prueba este
GRACIAS!! Funciona ^^

Por lo que veo sólo cambiaste de lugar
// Output any remaining HTML headers. (from mods, maybe?)
echo $context['html_headers'];


Me podría alguien explicar por qué le afectó el cambio de lugar y qué hace eso exactamente? ^^

Advertisement: