PHPackages                             besnovatyj/yii2-cms-shortcode - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. besnovatyj/yii2-cms-shortcode

ActiveYii2-extension[Utility &amp; Helpers](/categories/utility)

besnovatyj/yii2-cms-shortcode
=============================

Модуль управления шорткодами для Yii2 CMS

v1.0.1(2d ago)03MITPHP &gt;=8.4

Since Jul 7Compare

[ Source](https://github.com/besnovatyj/yii2-cms-shortcode)[ Packagist](https://packagist.org/packages/besnovatyj/yii2-cms-shortcode)[ RSS](/packages/besnovatyj-yii2-cms-shortcode/feed)WikiDiscussions Synced today

READMEChangelogDependencies (6)Versions (3)Used By (0)

### Пример использования

[](#пример-использования)

```
(NB: Модули тоже могут регистрировать свои шорткоды, например, в методе Module::init())

```

1. **Конфигурация компонента** (в `config/web.php`):

    ```
    'components' => [
        'shortcode' => [
            'class' => 'modules\shortcode\components\ShortcodeManager',
        ],
    ],
    ```
2. **Регистрация шорткодов**:

    ```
    // Регистрация виджетного шорткода
    \Yii::$app->shortcode->registerWidget('gallery', 'common\widgets\GalleryWidget');

    // Регистрация текстовых шорткодов
    \Yii::$app->shortcode->registerText('homeUrl', 'https://example.com');
    \Yii::$app->shortcode->registerText('siteName', 'My Site');
    ```
3. **Использование в контенте**:

    ```
    echo \modules\shortcode\widgets\ShortcodeContent::widget([
        'content' => 'Visit %siteName% at %homeUrl% or %unknown%. See our [gallery, id=123, title="Photos", count=5]Photos[/gallery] or [unknown, id="1"].',
    ]);
    ```

    **Результат**:

    - `%siteName%` → `My Site`.
    - `%homeUrl%` → `https://example.com`.
    - `%unknown%` → `%unknown%` (исходная строка, так как шорткод не зарегистрирован).
    - `[gallery, id=123, title="Photos", count=5]Photos[/gallery]` → Вызов `GalleryWidget` с параметрами `id => 123` (число), `title => "Photos"`, `count => 5` (число) и внутренним контентом `Photos`.
    - `[unknown, id="1"]` → `[unknown, id="1"]` (исходная строка, так как виджет не зарегистрирован).

### Дополнительные замечания

[](#дополнительные-замечания)

1. **Числовые значения**:
    - В текущей реализации числовые значения преобразуются в `int`. Если нужны числа с плавающей точкой (например, `price=19.99`), можно изменить условие в `parseAttributes` на: ```
        if (is_numeric($value)) {
            $value = strpos($value, '.') !== false ? (float)$value : (int)$value;
        }
        ```
2. **Админка**:
    - Для управления текстовыми шорткодами создайте модель и контроллер, чтобы загружать шорткоды через `loadTextShortcodes`.
3. **Логирование**:
    - Если нужно отслеживать неизвестные шорткоды, добавьте логирование: ```
        if ($replacement === null) {
            \Yii::warning("Unknown text shortcode: $shortcode");
            return $matches[0];
        }
        ```
4. **Производительность**:
    - Для больших текстов рассмотрите кэширование результатов обработки шорткодов с помощью `\Yii::$app->cache`.

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance99

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

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

Every ~1 days

Total

2

Last Release

2d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4dab004c4cab25d241bbf453f63cb48e6226d00bd84f50315e735c257c4a1b40?d=identicon)[besnovatyj](/maintainers/besnovatyj)

---

Tags

cmsyii2shortcode

### Embed Badge

![Health badge](/badges/besnovatyj-yii2-cms-shortcode/health.svg)

```
[![Health](https://phpackages.com/badges/besnovatyj-yii2-cms-shortcode/health.svg)](https://phpackages.com/packages/besnovatyj-yii2-cms-shortcode)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M3.2k](/packages/craftcms-cms)[skeeks/cms

SkeekS CMS — control panel and tools based on php framework Yii2

13825.8k60](/packages/skeeks-cms)

PHPackages © 2026

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