# evoYTAccess: rules and properties reference

> Every rule in the evoYTAccess Access tab, how they combine, the properties each node stores and the evoMCP tools the plugin registers.

# evoYTAccess: rules and properties reference

## Where the tab appears

On every Builder type that has tabs, including *Advanced*: elements, items, section, row and column. The **Acceso** (Access) tab is inserted right before *Advanced*. A type with no tabs, or with no *Advanced* tab, is left alone.

The tab labels are in Spanish whatever the admin language. YOOtheme does not use Joomla language files inside the Builder, so the labels are fixed text. The English meaning is given in brackets below.

## General fields

| Field | What it does |
| --- | --- |
| Condiciones: “Activar condiciones de acceso” (Enable access conditions) | Turns the node’s conditions on. Unticked, the node behaves as usual. |
| Acción (Action) | “Mostrar solo si se cumplen” (show only if met, the default) or “Ocultar si se cumplen” (hide if met). |
| Lógica (Logic) | “Deben cumplirse todas (Y)” (all must be met, the default) or “Basta con una (O)” (any one is enough). |

If you turn conditions on but fill in no rule, the node is rendered.

## Rules

Within each rule, fields combine as the last column says.

| Rule | Builder fields | Within the rule |
| --- | --- | --- |
| Usuario (User) | Estado (Cualquiera, Solo invitados, Solo usuarios con sesión: any, guests only, logged-in only); Grupos de usuario (groups); Niveles de acceso (access levels); Usuarios concretos (specific users) | Every filled field must match. Inside Groups or Levels, one of the ticked values is enough. |
| Idioma (Language) | Idiomas | One is enough. |
| Fecha y hora (Date and time) | Desde (from); Hasta (until); Días de la semana (weekdays); Hora desde (time from); Hora hasta (time to) | Every filled field must match. |
| Dispositivo (Device) | Dispositivos (Escritorio, Tablet, Móvil: desktop, tablet, mobile) | One is enough. |
| Categoría (Category) | Categorías de artículos (article categories); Categorías DJ-Catalog2 (only if the component is installed); Incluir subcategorías (include subcategories) | One is enough. |
| Menú (Menu) | Elementos de menú (menu items); Incluir también sus elementos hijos (also include child items) | One is enough. |

### User

- **Specific users**: IDs or usernames separated by commas, spaces, `;` or line breaks (for example `42, jperez`). Username matching is case-insensitive. A guest never matches.
- **User groups**: depends on the [User group matching](https://evoaddons.com/en/documentation/evoytaccess-settings) setting.
- **Access levels**: the visitor has at least one of the ticked levels.

### Language

The site’s active language is compared with the ticked ones. The list offers the content languages; if there are none, the installed site languages.

### Date and time

- Dates and times are read in the site’s time zone (the one in Joomla’s global configuration).
- “Desde” and “Hasta” define an open range: you can leave one empty. “Hasta” is inclusive; if it holds only a date, the whole day counts.
- Weekdays run from Monday to Sunday.
- The time slot uses 24-hour `HH:MM`. If “Hora desde” is later than “Hora hasta”, the slot crosses midnight (for example 22:00 to 06:00). If you fill in only one, the other is taken as 00:00 or 23:59. A value that cannot be read is ignored.

### Device

Detected on the server from the user agent. An empty user agent counts as desktop. iPads on recent iPadOS identify as a Mac and count as desktop. To hide by screen width only, use YOOtheme’s own “Visibility” option.

### Category

The rule looks at the **page**, not at each item in a listing. These pages are recognised:

| Page | Category used |
| --- | --- |
| Joomla article | The article’s category. |
| Joomla category blog or list | The category shown. |
| DJ-Catalog2 product | The main category and the additional ones. |
| DJ-Catalog2 listing with a category | The listing’s category. |
| Any other page | None: the rule is not met. |

With “Incluir subcategorías”, ticking a parent category also matches pages in its descendants.

### Menu

The active menu item is compared with the ticked ones. With “Incluir también sus elementos hijos”, ticking an item also matches pages under its descendants. If there is no active menu item, the rule is not met.

## How the decision is made

1. If the node does not have conditions turned on, it is rendered.
2. In the Builder preview, if “Evaluate in Builder preview” is No, it is rendered.
3. Each filled rule is evaluated. Empty ones are dropped.
4. With AND the node matches if all rules do; with OR, if any does.
5. With “show only if met” it is rendered when they match. With “hide if met” it is rendered when they do not.

A discarded node is removed before its children are processed and before its dynamic content is resolved. Rows, columns and sections left empty collapse as they do with “Disable element”.

## Properties stored on each node

They live in the Builder layout next to the node’s other properties, with the `ytaccess_` prefix. The prefix did not change when the plugin was renamed.

| Property | Type | Values |
| --- | --- | --- |
| `ytaccess_enabled` | boolean |  |
| `ytaccess_action` | string | `show` (default), `hide` |
| `ytaccess_logic` | string | `all` (default), `any` |
| `ytaccess_user_state` | string | empty, `guest`, `registered` |
| `ytaccess_groups`, `ytaccess_levels` | list | IDs |
| `ytaccess_users` | string | IDs or usernames |
| `ytaccess_languages` | list | lowercase codes such as `es-es` |
| `ytaccess_date_from`, `ytaccess_date_to` | string | date and time |
| `ytaccess_weekdays` | list | `1` (Monday) to `7` (Sunday) |
| `ytaccess_time_from`, `ytaccess_time_to` | string | `HH:MM` |
| `ytaccess_devices` | list | `desktop`, `tablet`, `mobile` |
| `ytaccess_categories` | list | article category IDs |
| `ytaccess_djc2_categories` | list | DJ-Catalog2 category IDs |
| `ytaccess_category_children` | boolean |  |
| `ytaccess_menus` | list | menu item IDs |
| `ytaccess_menu_children` | boolean |  |

## evoMCP tools

They exist only if evoMCP is installed. The plugin registers them itself; there is no separate plugin.

| Tool | Permission | What it does |
| --- | --- | --- |
| `evoytaccess_get_settings` | read | Returns `evaluate_in_builder` and `group_match`. |
| `evoytaccess_set_settings` | write, with approval | Changes `evaluate_in_builder` (boolean) and `group_match` (`direct` or `inherited`). Supports `dry_run`. |

Both require the user to be able to manage plugins; changing settings also requires the right to edit them. These are the only tools evoYTAccess provides itself; per-node conditions have no dedicated tools.

---

https://evoaddons.com/en/documentation/evoytaccess-reference
