none
Personalizar links menú vertical Sharepoint 2010 RRS feed

  • Pregunta

  • Hola,

    Tengo un sitio con una master personalizada basada en la que viene por defecto en Sharepoint 2010 pero hay algo que necesito cambiar, en el menú vertical que aparece a la izquierda, aparece por defecto:

    Páginas
     Página 1
     Página 2
     Página 3

    Lo que necesito es o bien cambiar la url a la que apunta en link "Páginas" o bien eliminar que sea clickable, he estado mirando con el Designer pero como todo está basado en controles Sharepoint que montan el menú dinámicamente, no consigo ver dónde podría meter mano al tema.

    ¿Cómo podría de una forma sencilla modificar el funcionamiento para evitar que el usuario final pueda entrar a viewlsts.aspx a través de ese enlace?

    Gracias

    viernes, 14 de diciembre de 2012 11:36

Respuestas

  • Hola de nuevo

    Al final no he conseguido con javascript modificar la URL, al no tener ID propio tenía que enlazar varios getelemetByTag y no ha habido forma, así que he optado por ir a la manera más tosca pero más sencilla, partiendo del DIV que tiene una ID más superior y montar toda la ristra de etiquetas anidadas de la siguiente forma:

    #s4-leftpanel-content > table > tbody > tr > td > div > div > div > div > ul > li > a {

    display:none;

    }

    Esto no me permite cambiar la URL pero sí que me permite ocultarla y que el usuario no pueda entrar donde no quiero que entre, algo es algo.

    Un saludo y gracias de todos modos por la ayuda.
    • Marcado como respuesta redheart.net miércoles, 16 de enero de 2013 9:58
    miércoles, 16 de enero de 2013 9:58

Todas las respuestas

  • Hola redheart.net,

    Para modificar el menu que sale a la izquierda lo puedes modificar directamente desde las Acciones del Propio sitio en lo que te indica los enlaces que se van a visualizar. Estos enlaces son totalmente personalizables.

    Si lo que quieres quitar el enlace que pone Listas, Documentos o lo que sea es como te he comentado. Si por el contrario lo que quieres es eliminar el icono de la Papelera y ver todo el contenido del Sitio lo puedes hacer utilizando estilos.

    Saludos

    viernes, 14 de diciembre de 2012 12:38
  • Gracias por el aporte Adrián, la modificación manual ya la conocía, pero no es lo que busco, definitivamente me he explicado mal.

    Tenemos un portal que acabamos de migrar de MOSS2007 a Sharepoint2010 y contiene unos 500 sitios (incluso alguno se nos ha podido escapar), tras hacer la migración y haber aplicado una master page personalizada con css propia, he detectado lo que comentaba, que a través del encabezado de los menús verticales se permite al usuario acceder a viewlsts.aspx y no se quiere que el usuario pueda acceder ahí mediante enlace alguno.

    Modificar uno a uno cada uno de los enlaces que hay en todo el portal lo considero inviable por su elevado número, nos llevaría muchísimo tiempo y sería un trabajo de chinos, por lo que ando buscando algo que pueda aplicar a nivel de master page, estilos, feature, powershell o algo similar que me modifique esos links automatizadamente y los pueda personalizar ya sea eliminando el enlace en sí o poniendo el que yo quiera.

    Espero haberme explicado mejor ahora,
    Un saludo

    lunes, 17 de diciembre de 2012 7:41
  • Ah...

    Haciendo algo personalizado con Visual Studio puedes leer del objeto navigation y si contiene viewlst.aspx pues no mostrarlo y siempre puedes modificar lo que tu quieras pero creo que desde ese punto de vista es demasiada faena (aunque no tanta como modificarlo de forma manual).

    Quizas algo que se pone en este link que se utiliza para eliminar el link de la papelera de reciclaje y Todo el contenido del sitio de pueda valer enlace.

    Si no te acopla nada dilo y buscamos otra solución.

    Saludos,

    lunes, 17 de diciembre de 2012 15:24
  • Gracias de nuevo Adrián, pero no me ha resultado útil (o yo al menos no he sabido sacarle utilidad)

    Tengo algunos elementos ocultos en algunas master pages hechas por mi, en algunos casos aplicados por CSS como indica en el tercer caso de tu ejemplo y en otros mediante la propia master con un display:none en el elemento, en el caso de la "papelera de reciclaje" y "todo el contenido del sitio", ambos elementos tienen un control individual, por lo que al ocultarlos solo afecta a ese elemento y en ese caso puede ser útil, pero en el caso de los títulos de los menús se montan dinámicamente y son el primer elemento de unos cuantos que vienen englobados en un control del tipo Sharepoint:SPNavigationManager, por lo que si oculto todo el control me quedo sin el menú completo y eso es peor todavía.

    Lo ideal sería poder especificar algo del tipo: 

    NavigateUrl=”~site/_layouts/mtgredir.aspx”

    para que nos lleve a la home del site o algo similar, pero  que se aplique en tiempo real una vez accedes a cada página, el problema es que no sé cómo modificar la URL a la que apunta, que es esta:

    <div class="ms-quicklaunch">
      <div class="s4-ql">
       <div class="menu-vertical">
         <ul class="root static>
           <li class="static">
             <a class="static menu-item" href="/sitios/misitio/_layouts/viewlsts.aspx">

    el href marcado en negrita es el que necesito modificar, pero no sé cómo forzarle a sustituir esa url a través de la master page.

    Un saludo

    martes, 18 de diciembre de 2012 11:12
  • Hola Redheart,

    Pues yo lo ultimo que ya probaria y sino lo desarrollaria con un webpart a medida, seria añadir una funcion JavaScript para sustituir el enlace que no quieres que se vea por el que quieres ver, para ello en este enlace te indica de que forma tan sencilla lo puedes hacer http://javoaxian.blogspot.com.es/2008/06/cambiar-el-contenido-de-un-div-usando.html

    Despues es añadir este función en la master y que se ejecute una vez se cargue la master tal y como pone en este post

    http://nileshmandekar.blogspot.com.es/2011/02/execute-javascript-onload-function-in.html

    Se que no es la opción más elegante, pero quizas si la mas útil.

    Saludos

    martes, 18 de diciembre de 2012 14:25
  • Hola de nuevo

    Al final no he conseguido con javascript modificar la URL, al no tener ID propio tenía que enlazar varios getelemetByTag y no ha habido forma, así que he optado por ir a la manera más tosca pero más sencilla, partiendo del DIV que tiene una ID más superior y montar toda la ristra de etiquetas anidadas de la siguiente forma:

    #s4-leftpanel-content > table > tbody > tr > td > div > div > div > div > ul > li > a {

    display:none;

    }

    Esto no me permite cambiar la URL pero sí que me permite ocultarla y que el usuario no pueda entrar donde no quiero que entre, algo es algo.

    Un saludo y gracias de todos modos por la ayuda.
    • Marcado como respuesta redheart.net miércoles, 16 de enero de 2013 9:58
    miércoles, 16 de enero de 2013 9:58