Síguenos en: icono twitter icono facebook

 

Logo de Saga Consulting (Nueva Ventana)

Widget MultiCategory

Widget que muestra la jsp de selección de categorias de OpenCms (la misma pantalla que si seleccionamos en el menú /Relaciones/Asignar Categorias).

 

Para la instalación podemos seguir el siguiente manual de la wiki: http://www.opencms-wiki.org/Custom_Widgets

package com.saga.opencms.templatesaga.widget;

import java.util.List;
import java.util.Map;

import org.opencms.file.CmsObject;
import org.opencms.main.OpenCms;
import org.opencms.widgets.A_CmsSelectWidget;
import org.opencms.widgets.I_CmsWidget;
import org.opencms.widgets.I_CmsWidgetDialog;
import org.opencms.widgets.I_CmsWidgetParameter;

/**
 * @author Saga nguillen
 * @version 1.0
 * Widget que genera un Select multiple con las categorias que existen definidas
 * El recurso sera asignado a las categorias seleccionadas en el select
 * En la configuración se puede marcar la ruta base.
 */

public class CmsMultiCategoryWidget extends A_CmsSelectWidget {

    /** Indicates if used html code is a multi selection list or a list of checkboxes. */
    private boolean m_asCheckBoxes;



    /**
     * Creates a new select widget.<p>
     */
    public CmsMultiCategoryWidget() {

        // empty constructor is required for class registration
        super();
    }



    public CmsMultiCategoryWidget(List configuration) {

        this(configuration, false);
    }


    public CmsMultiCategoryWidget(List configuration, boolean asCheckboxes) {

        super(configuration);
        m_asCheckBoxes = asCheckboxes;
    }


    public CmsMultiCategoryWidget(String configuration) {

        super(configuration);
    }


    public void setEditorValue(
        CmsObject cms,
        Map formParameters,
        I_CmsWidgetDialog widgetDialog,
        I_CmsWidgetParameter param) {
    }


    public String getDialogWidget(CmsObject cms, I_CmsWidgetDialog widgetDialog, I_CmsWidgetParameter param) {

       String id = param.getId();
        StringBuffer result = new StringBuffer(16);

        List options = parseSelectOptions(cms, widgetDialog, param);

        result.append("<td class=\"xmlTd\">\r\n");
        result.append("<script>\r\n");
        result.append("function ShowWebSite(val){\r\n");
        result.append("document.all.myFrame.src=val;\r\n");
        result.append("document.all.myFrame.style.visibility=\"visible\";}\r\n");
        result.append("function Button1_onclick() {\r\n");
        String uri=OpenCms.getSystemInfo().getOpenCmsContext()+"/system/workplace/views/admin/admin-main.jsp";
        result.append("var v = '"+uri+"?root=explorer&path=/categories&resource='+document.getElementsByName('resource')[0].value;\r\n");
        result.append("ShowWebSite(v);}\r\n");
        result.append("function ocultaCab() {\r\n");
   	 	result.append("document.all.myFrame.contentWindow.document. getElementById('screenH').style.position='absolute';\r\n");
   	 	result.append("document.all.myFrame.contentWindow.document. getElementById('screenH').style.top='-140px';");
        result.append("  }\r\n");
        result.append("</script>\r\n");
    	result.append("<iframe width=\"750\" height=\"500\" frameborder=\"0\" id=\"myFrame\" onLoad=\"ocultaCab();\"  scrolling=\"auto\" ></iframe>");
    	result.append("<script>Button1_onclick();</script>");
    	result.append("</td>");
        return result.toString();
    }


    public I_CmsWidget newInstance() {

        return new CmsMultiCategoryWidget(getConfiguration());
    }

}

Noel Guillen - Saga Consulting

© OpenCms Hispano - Powered by OpenCms 7.5.2 & Template Saga
logo template Saga