25 de julio de 2018

:: Evitar indexación por parte de los motores de búsqueda

Para evitar la indexación de nuestro portal web por parte de los motores de búsqueda podemos llevar a cabo distintas tareas:

robots.txt
Generar un fichero robots.txt con el siguiente contenido:

User-Agent: *
Disallow: /

Metaetiqueta
En el tema, podríamos insertar la siguiente metaetiqueta

<meta name="robots" content="noindex, nofollow" />


httpd.conf
En el fichero http.conf localizaremos la línea siguiente

Options Includes Indexes FollowSymLinks MultiViews


Eliminamos el literal: "Indexes"
Reiniciaremos el Apache

.htaccess
En el fichero .htaccess añadiremos la siguiente línea:

Header set X-Robots-Tag "noindex, nofollow"


También podemos añadir la línea siguiente:

Options -Indexes


Todos estos cambios deberemos revertirlos en el momento de la publicación del portal web.

20 de julio de 2018

:: CMIS. Documentos de una determinada carpeta

Como prueba de concepto, necesitamos obtener los documentos de una determinada carpeta mediante una consulta CMIS:

SELECT cmis:objectId, cmis:name FROM cmis:document  WHERE 

CONTAINS('PATH:"//app:company_home/st:sites/cm:netic360/cm:documentLibrary/cm:Facturas/*"')


Podemos hacer uso de CMIS Workbench:
http://chemistry.apache.org/java/developing/tools/dev-tools-workbench.html

Información adicional sobre la especificación CMIS:
http://docs.oasis-open.org/cmis/CMIS/v1.1/CMIS-v1.1.html#x1-110001r109

16 de julio de 2018

:: Alfresco. Crear documento desde plantilla con un número incremental

Como prueba de concepto, queremos que los usuarios creen documentos a partir de una plantilla, y que estos tengan el mismo nombre y un código numérico (incremental), indicando el número de documento.

Para ello, los pasos a seguir son los siguientes:

.- La plantilla del documento la copiaremos en: ""
De esta manera, a nuestros usuarios les aparecerá la opción de seleccionar la plantilla oportuna, en la opción: "Crear documento a partir de plantilla"

.- Sobre la carpeta contenedora, definiremos una regla de contenido que al crear o entrar documentos ejecute un script

.- El contenido del script: "rename_doc.js" podría ser algo similar a esto:

var folder=document.parent;
var documents=folder.children;
var docNumber=documents.length;

document.name=document.name+"_"+docNumber+".docx";
document.properties["cm:title"]=document.name+"_"+docNumber+".docx";
document.properties["cm:description"]="DocNumber: "+docNumber;
document.save();


9 de julio de 2018

:: Emmet. Plugin para Notepad++

Emmet es un plugin que nos ahorrará tiempo de codificación ya que nos permitirá- a partir de expresiones- generar el código correspondiente.

Por ejemplo, si en notepad++ escribimos: "html:5" y pulsamos la combinación de teclas asociada, Emmet nos convertirá este código en:

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<body>
 
</body>
</html>


Para instalar este plugin, debemos llevar a cabo los siguientes pasos:

1.- Instalar "python script", para lo que seleccionaremos la opción de menú: "Plugins>Plugin Manager>Show Plugin Manager" y buscaremos "Python script" y procederemos a su instalación

2.- Descargaremos el plugin "Emmet" de la página oficial: https://emmet.io/download/

3.- El plugin descargado lo descomprimimos en la carpeta "plugins" de nuestra instalación de Notepad++

4.- Podemos comprobar las teclas asignadas para la ejecución de este plugin, para lo que seleccionaremos: "Configuración > Enlaces directos >"
En el cuadro de dialogo, seleccionaremos la pestaña: "Plugins commands" y buscaremos los denominados:
Expand abbreviation
Wrap with abbreviation

De esta manera, tras escribir el código y pulsar la combinación de teclas asociadas a Expand abbreviation (por ejemplo: Ctrl+Shift+Enter) el código se tranformará en lo que corresponda.

Más información sobre la sintaxis a utilizar: https://docs.emmet.io/cheat-sheet/

4 de julio de 2018

:: Alfresco. Evitar el autocompletado de contraseñas en la página de login

Como prueba de concepto vamos a crear una página de login personalizada, para lo que seguiremos los pasos que describiremos a continuación.

1.- Localizamos el fichero: "login.get.html.ftl" ubicado en: "\tomcat\webapps\share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\components\guest"

2.- Copiamos el fichero anterior a la siguiente ubicación: "\tomcat\shared\classes\alfresco\web-extension\site-webscripts\org\alfresco\components\guest"
En caso de que alguna de las carpetas no exista, será necesario crearlas.

3.- Sobre este fichero, llevaremos a cabo las modificaciones necesarias


<@markup id="form">
         <form id="${el}-form" accept-charset="UTF-8" method="post" action="${loginUrl}" class="form-fields login ${edition}" autocomplete="off">
            <@markup id="fields">
            <input type="hidden" id="${el}-success" name="success" value="${successUrl?replace("@","%40")?html}"/>
            <input type="hidden" name="failure" value="${failureUrl?replace("@","%40")?html}"/>
            <div class="form-field">
               <label for="${el}-username">${msg("label.username")}</label><br/>
               <input type="text" id="${el}-username" name="username" maxlength="255" value="<#if lastUsername??>${lastUsername?html}</#if>" />
            </div>
            <div class="form-field">
               <label for="${el}-password">${msg("label.password")}</label><br/>
               <input type="password" id="${el}-password" name="password" maxlength="255" />
            </div>
   <div class="form-field">
    <input type="checkbox" id="showpassword" onclick="showPassword('${el}-password')"/>
    <label for="showpassword"> Mostrar clave</label><br/>
   </div>
            </@markup>
            <@markup id="buttons">
            <div class="form-field">
               <input type="submit" id="${el}-submit" class="login-button" value="${msg("button.login")}"/>
            </div>
            </@markup>
         </form>
      </@markup>


Tras reiniciar el servicio de Alfresco, como formulario de login se mostrará este que hemos modificado.


Información adicional: https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion

:: Cookies de nuestra página web. ¿Para qué sirve cada una?

A menudo una pregunta que nos hacen es qué cookies se están utilizando en mi página y para qué sirven. Para ver las cookies, podemos selecci...