PHPackages                             toist-net/smarty\_skeleton - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. toist-net/smarty\_skeleton

ActiveMetapackage[Templating &amp; Views](/categories/templating)

toist-net/smarty\_skeleton
==========================

A basic theme developed with smarty to be extended by designers

v1.0(5y ago)05opensource

Since Mar 3Compare

[ Source](https://github.com/jomisacu/toist_smarty_skeleton)[ Packagist](https://packagist.org/packages/toist-net/smarty_skeleton)[ RSS](/packages/toist-net-smarty-skeleton/feed)WikiDiscussions Synced today

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

toist\_smarty\_skeleton
=======================

[](#toist_smarty_skeleton)

Este es un skeleton para construir un tema compatible con el sitio [toist.net](https://www.toist.net).

Directorios
===========

[](#directorios)

Este paquete contiene un grupo de archivos para ayudarte a crear temas. Debes prestar atencion especial a la carpeta templates, ya que es aqui donde reside el tema que estas creando y es la carpeta cuyo contenido debes comprimir y subir en formato zip para publicar tu tema.

Archivos requeridos
-------------------

[](#archivos-requeridos)

Para que un tema sea considerado como valido debe contener al menos los siguientes archivos:

- index\_page.tpl
- index\_content.tpl
- index\_section.tpl
- index\_list.tpl

### index\_page.tpl

[](#index_pagetpl)

Este archivo sera usado para mostrar las páginas del sitio web. Por ejemplo, la seccion "nosotros" del sitio.

### index\_content.tpl

[](#index_contenttpl)

Este archivo será usado para mostrar los artículos del sitio web.

### index\_section.tpl

[](#index_sectiontpl)

Este archivo se usa para mostrar las paginas de inicio de los sitios.

### index\_list.tpl

[](#index_listtpl)

Este archivo se usa para mostrar listados de articulos.

### El archivo theme.json

[](#el-archivo-themejson)

La finalidad de este archivo es definir los recursos del tema. No es estrictamente necesario, pero si queremos agregar multiples plantillas para articulos, páginas y secciones o si queremos especificar donde estan las miniaturas del tema, debemos entonces agregarlo. El aspecto de este archivo se muestra a continuación:

```
{
  "sections": [
    {
      "name": "Default home aspect",
      "file": "index_section.tpl"
    }
  ],

  "pages": [
    {
      "name": "Default page aspect",
      "file": "index_page.tpl"
    }
  ],

  "contents": [
    {
      "name": "Default article aspect",
      "file": "index_content.tpl"
    }
  ],

  "lists": [
    {
      "name": "Default list aspect",
      "file": "index_list.tpl"
    }
  ],

  "previews": [
    {
      "file": "previews/thumb.jpg",
      "title": "The thumb",
      "description": "This is the thumb that will be used on lists"
    },
    {
      "file": "previews/home.jpg",
      "title": "Home",
      "description": "This is the home preview"
    },
    {
      "file": "previews/page.jpg",
      "title": "Page",
      "description": "This is the page preview"
    }
  ]
}
```

Variables disponibles
=====================

[](#variables-disponibles)

section
-------

[](#section)

Una seccion en un sitio web, representa un contexto. Y va a deterinar la forma en que se va a mostrar el sitio. Imagina las secciones como portadas (paginas de inicio), que pueden ser publicadas bajo urls especificas. Veamos un ejemplo. Imagina que en tu sitio web tienes varias secciones: juegos y peliculas. Puedes acceder a ellas a traves de las urls  y  respectivamente. Al entrar en cada url, podrias ver listados de noticias diferentes, diapositivas diferentes, un diseño diferente, etc., etc.

La variable section sirve para acceder a todos los datos del contexto actual. Los atributos expuestos por la variable section son los siguientes: title, domain, path, is\_default, permanent\_url, url\_permanent, menus, contents.

#### section.title

[](#sectiontitle)

Guarda el titulo de la seccion. A continuacion, se muestra como establecer un titulo personalizado en la pagina segun la seccion:

```
{* usar la seccion para construir un titulo de pagina personalizado *}
{$section.title} - Example.com
```

#### section.domain

[](#sectiondomain)

Sirve para acceder al dominio en que esta definida la seccion actual. Por ejemplo, el sitio web example.com podria definir dos secciones "juegos" y "peliculas" y desplegar estas bajo sub dominios diferentes, juegos.example.com y peliculas.example.com respectivamente.

#### section.path

[](#sectionpath)

La porcion de la url que sigue al dominio es el path de la url actual (la que se encuentra en la barra de direcciones de nuestro navegador), incluyendo la barra (/) del inicio. Por ejemplo, en la url  el path, hace referencia a "/una/ruta/en/el/sitio/".

#### section.is\_default

[](#sectionis_default)

Nos sirve para saber si la seccion actual es la predeterminada.

#### section.permanent\_url y section.url\_permanent (ambos)

[](#sectionpermanent_url-y-sectionurl_permanent-ambos)

Este valor representa la url completa a traves de la cual accedemos a la seccion. Si la seccion tiene un dominio y un path, la combinacion de ambos dara como resultado la url permanente de la seccion. Notese que cuando hablamos de la url permanente de la seccion nos referimos a la url que nos lleva al inicio de esta. Los contenidos publicados en la seccion tienen su propia url permanente, que a su vez, incluye la url permanente de la seccion.

#### section.menus

[](#sectionmenus)

Como hemos dicho antes, una seccion representa un contexto. Para brindar el mayor nivel de persolizacion a las diferentes secciones del sitio web, podemos personalizar los menus segun la seccion en la que nos encontremos. Asi, el menu "main\_menu", puede desplegar diferentes opciones de menu segun la seccion en la que nos encontremos. Veamos un ejemplo:

```
{* usando $section.menus para acceder a los menus del sitio *}
{if $section.menus.main_menu && $section.menus.main_menu.items}

			{foreach $section.menus.main_menu.items as $menu_item}
			{$menu_item.caption}
			{/foreach}

{/if}
```

#### section.contents

[](#sectioncontents)

section.contents nos sirve para acceder a los articulos de nuestro sitio. Expone las listas de contenidos definidas en el sitio web. Por defecto existen cuatro listas: latest, featured, most\_commented y most\_viewed. Tambien, estan disponibles las listas creadas por el usuario y listas basadas en categorias. Veamos un ejemplo.

```
{* mostrar los ultimos (usando la lista lates: section.contents.latest) 20 articulos publicados en la seccion actual *}
{foreach $section.contents.latest->get(1, 20) as $content}

    		{$content.title}

    		{$date->format('%d/%m/%Y', $content.publication_date_int)}
    		{$content.title}

    		{$content.description}

    		{$content.comments_count}

{/foreach}
```

page and current\_page
----------------------

[](#page-and-current_page)

Nos sirven para acceder al numero de pagina actual. Es util cuando estamos mostrando listados de articulos.

currentList
-----------

[](#currentlist)

Expone la lista de contenidos donde estan agrupados los articulos que se estan desplegando en la pagina.

site
----

[](#site)

Expone los datos del sitio web. A traves de sta variable tenemos acceso a los siguientes datos: language\_iso\_code, language\_name, name, title, logo, site\_title, company\_email, company\_name, company\_phone, company\_address, section, menus, contents.

lang
----

[](#lang)

La variable lang nos sirve para traducir el texto del tema al idioma de nuestro sitio.

content
-------

[](#content)

Si nos encontramos en un articulo, esta variable guarda todos los detalles del articulo. Veamos un ejemplo.

```

		{$content.title}

		{foreach $content.blocks as $block}
        	{if $block.type == 'text'}

        			{$block.text}

        	{elseif $block.type == 'gallery'}

        			{foreach $block.images as $image}
        				{if $image.link}

        				{/if}

        					{if $image.description}

        							{$image.description}

        					{/if}

        				{if $image.link}

        				{/if}
        			{/foreach}

        	{elseif $block.type == 'title'}
        		{$block.text}
        	{/if}
        {/foreach}

```

Helpers
=======

[](#helpers)

Los helpers son objetos que nos ayudan (de ahi el nombre helpers) a realizar acciones puntuales y de cierto ambito. Los helpers disponibles se listan a continuacion.

date
----

[](#date)

Lo usamos para formatear fechas. Una lista completa de las opciones disponibles para el helper "date" esta disponible [aqui](https://www.php.net/manual/es/function.strftime.php). Para ofrecer nombres mas amigables a las opciones de formato de fecha hemos creado algunos alias. Estos se listan a continuacion:

- %year equivale a %Y
- %year\_short =&gt; %Y
- %month equivale a %m
- %month\_short equivale a %m
- %month\_name equivale a %B
- %month\_name\_short equivale a %b
- %day equivale a %d
- %day\_short equivale a %#d (windows)
- %day\_short equivale a %e
- %day\_name equivale a %A
- %day\_name\_short equivale a %a
- %hour\_24 equivale a %H
- %hour equivale a %I
- %hour\_12 equivale a %I
- %minute equivale a %M
- %second equivale a %S

Veamos un ejemplo:

```
...

	Writed by John Smith at {$date->format('%d/%m/%Y', $content.publication_date_int)}

...
```

url
---

[](#url)

Este helper nos ayuda a crear urls. Hay disponibles 3 metodos hasta el momento: image\_url, css\_url y js\_url. A continuación un par de ejemplos.

creando la url para la imagen "square" de un articulo usando un ancho de 200 pixeles y una altura de 100 pixeles

```

```

incluyendo el css y js de nuestro tema

```

```

ads
---

[](#ads)

Este helper es solo una comodidad para inlcuir bloques de anuncio. Los bloques de anuncio se manejan desde el dashboard del sitio web.

Intentando incluir un bloque de anuncios con un tamaño aceptable para un ancho de 900 pixeles y una altura de 100 pixeles.

```

	{$ads->get(900, 100)}

```

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1947d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/6318326?v=4)[jomisacu](/maintainers/jomisacu)[@jomisacu](https://github.com/jomisacu)

---

Top Contributors

[![jomisacu](https://avatars.githubusercontent.com/u/6318326?v=4)](https://github.com/jomisacu "jomisacu (63 commits)")

### Embed Badge

![Health badge](/badges/toist-net-smarty-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/toist-net-smarty-skeleton/health.svg)](https://phpackages.com/packages/toist-net-smarty-skeleton)
```

###  Alternatives

[symfony/http-kernel

Provides a structured process for converting a Request into a Response

8.1k869.4M8.7k](/packages/symfony-http-kernel)[symfony/framework-bundle

Provides a tight integration between Symfony components and the Symfony full-stack framework

3.6k251.7M11.5k](/packages/symfony-framework-bundle)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[symfony/security-bundle

Provides a tight integration of the Security component into the Symfony full-stack framework

2.5k185.6M2.3k](/packages/symfony-security-bundle)[symfony/security-http

Symfony Security Component - HTTP Integration

1.7k177.2M381](/packages/symfony-security-http)[api-platform/core

Build a fully-featured hypermedia or GraphQL API in minutes!

2.6k51.2M337](/packages/api-platform-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
