Acciones

Example post Acciones

Las Acciones son funciones que podemos integrar en la plantilla para hacerla mas dináminca. Tenemos unas cuantas por defecto que son:

Creando Acciones

Vamos a crear una acción que automáticamente genere un enlace al final de cada pagina usando una acción que ya esta en la plantilla que es AntCms\AntCMS::runAction('theme_after);.

<?php
    // llamamos a la acción theme_after
    AntCms\AntCMS::actionAdd('theme_after',function(){
        // y ahora que enseñe esto
        echo '<a href="'.AntCms\AntCMS::urlBase().'/articulos">Ver articulos.</a>';
    });

Y ahora en todas las páginas al final se verá ese enlace, asi de facil.

Ahora vamos añadir algo más, le vamos a decir que si está en la sección artículos y la página extensiones enseñe el texto y si no no enseñe nada.

<?php
    // llamamos a la acción theme_after
    AntCms\AntCMS::actionAdd('theme_after',function(){
        // urlSegment sirve para señalar un segmento del enlace
        // si pones var_dump(AntCms\AntCMS::urlSegments()) veras todos los segmentos del enlace
        if(AntCms\AntCMS::urlSegment(0) == 'articulos' && AntCms\AntCMS::urlSegment(1) == 'extensiones'){
                // y ahora que enseñe esto
            echo '<a href="'.AntCms\AntCMS::urlBase().'/articulos">Ver articulos.</a>';
        }
    });

Ahora haremos una acción que cambie el fondo solo en esta página, para ello usaremos el AntCms\AntCMS::actionRun('head') que hay en el archivo head.inc.html.

<?php
    // llamamos a la accion head
    AntCms\AntCMS::actionAdd('head',function(){
        // urlSegment sirve para señalar un segmento del enlace
        if(AntCms\AntCMS::urlSegment(0) == 'articulos' 
        && AntCms\AntCMS::urlSegment(1) == 'extensiones'){
            // y ahora incrustamos esto
            echo '<style rel="stylesheet">
                body{
                    background:blue;
                    color:white;
                }
                pre,code{
                    background: #0000bb;
                    border-color: #00008e;
                    box-shadow: 0px 3px 6px -2px #02026f;
                    color: white;
                }
            </style>';
        }
    });