We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 23019
    • 27 Posts
    Bien, lo que intento es tener una variable de template para unos documentos de tipo "artículo" por decir algo.

    En dicha variable las opciones a marcar serán 1 o varias y deberan corresponder con todos los posibles "autores" que a su vez poseen un id (puesto que cada uno tiene su propia páigna, es decir, id).

    Sé que con el @EVAL pueden evaluarse expresiones php, lo único que se me ocurre no sé hacerlo, y sería usar un código PHP cuya salida fuera una cadena de caracteres formada por los "pagetitle" de todos los documentos (id’s) de una carpeta separados por "||" para que se interpretaran como opciones de la variable Multi-Select.

    ¿Alguna ayuda? Muchas gracias.
      • 32982
      • 674 Posts
      Estas en el camino adecuado, mira con las funciones getdocumentchildren que te debuelven todos los hijos de un padre , recorrelos con un bucle e intercalales el separador escupiendo la salida.
      A ver que tal te sale...
      Saludos.
        Jabiertxof (formerly XYZVISUAL)
        My bussines: http://marker.es
        https://www.youtube.com/user/jabiertxof/videos
        • 23019
        • 27 Posts
        Quote from: xyzvisual at Nov 17, 2008, 06:32 PM

        Estas en el camino adecuado, mira con las funciones getdocumentchildren que te debuelven todos los hijos de un padre , recorrelos con un bucle e intercalales el separador escupiendo la salida.
        A ver que tal te sale...
        Saludos.

        Muchas gracias, el problema es que mi conocimientos de PHP/MySQL son muy limitados. Sé lo que tengo que hacer pero no cómo se hace...

        Sé que sería:

        @EVAL (Código PHP que realice un bucle dentro del documento padre cuyo id le pasaría y me devuelve el pagetitle de cada uno en cada iteración tras la cula debería concatenar la cadena "||")

        Ahora "Sólo" me basta saber cómo diablos hacerlo sad
          • 32982
          • 674 Posts
          en una sola línea
          //crea el array de hijos de un padre
          $children = $modx->getDocumentChildren([color=red]aqui la carpeta padre[/color],1,0,'id', 'hidemenu=0','menuindex ASC,pagetitle', 'DESC');
          $childrenCount=count($children);
          //bucle que recorre el array de id
          for($x=0; $x<$childrenCount; $x++) {
          $output .=$children[$x]['id'].'||';
          }
          // y para borrar los dos últimos separadores
          return  substr( $output, 0, -1);


          SSolo decirte que puedes ademas de mostrar el id del documento con algo de logica mostrar el titulo del documento.
            Jabiertxof (formerly XYZVISUAL)
            My bussines: http://marker.es
            https://www.youtube.com/user/jabiertxof/videos
            • 23019
            • 27 Posts
            Quote from: xyzvisual at Nov 17, 2008, 06:50 PM

            en una sola línea
            //crea el array de hijos de un padre
            $children = $modx->getDocumentChildren([color=red]aqui la carpeta padre[/color],1,0,'id', 'hidemenu=0','menuindex ASC,pagetitle', 'DESC');
            $childrenCount=count($children);
            //bucle que recorre el array de id
            for($x=0; $x<$childrenCount; $x++) {
            $output .=$children[$x]['id'].'||';
            }
            // y para borrar los dos últimos separadores
            return  substr( $output, 0, -1);


            SSolo decirte que puedes ademas de mostrar el id del documento con algo de logica mostrar el titulo del documento.

            Muchas gracias!!! laugh He conseguido poner el pagetitle con solo mirar la documentacion de la función getDocumentChildren. Resumo todo para que quede guardado para la posteridad :p:

            //crea el array de hijos de un padre
            $children = $modx->getDocumentChildren(ID_PADRE,1,0,'id,pagetitle', 'hidemenu=0','menuindex ASC,pagetitle', 'DESC');
            $childrenCount=count($children);
            //bucle que recorre el array de id
            for($x=0; $x<$childrenCount; $x++) {
            $output .=$children[$x]['pagetitle'].'||';
            }
            // y para borrar los dos últimos separadores
            return  substr( $output, 0, -1);