PHPackages                             infrajs/rubrics - 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. infrajs/rubrics

ActiveLibrary

infrajs/rubrics
===============

Any rubrics - blog, pages, events

v1.0.48(4y ago)01.5k[1 issues](https://github.com/infrajs/rubrics/issues)8PHP

Since Oct 31Pushed 3y ago1 watchersCompare

[ Source](https://github.com/infrajs/rubrics)[ Packagist](https://packagist.org/packages/infrajs/rubrics)[ Docs](https://github.com/infrajs/rubrics)[ RSS](/packages/infrajs-rubrics/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (9)Dependencies (10)Versions (50)Used By (8)

***Неготово к использованию***

rubrics
=======

[](#rubrics)

Расширение для infrajs/controller

Установка через composer
------------------------

[](#установка-через-composer)

Нужно отдельно подключить расширение dimsemenov/magnific-popup либо вручную либо через infrajs/collect

Подключение
-----------

[](#подключение)

```
{
	"external":"-rubrics/rubrics.layer.json"
}
```

В текущем адресном пространстве будут обрабатываться все имена и согласно `config.rubrics.main` при наличии в папке `~pages`одноимённого файла(`docx`,`html`,`tpl`) покажется статья. По умолчанию расширение включает в себя обработку разделов `pages`, `blog`, `events`, `files`. Разделы с параметрами перечислены в конфиге `-rubrics/.infra.json`.

Лента новостей на главной странице
----------------------------------

[](#лента-новостей-на-главной-странице)

Данные для ленты на главной беруться из файла `index.php` которые обрабатывает параметры

- `type` - имя раздела из конфига
- `list` - требуется список
- `chunk` - количество `array_chunk`
- `show` - требуется полный текст
- `lim` - ограничение по количеству записей в списке start,lenght

```
{
	"json":"-rubrics/?type=events&list&lim=0,10"
}
```

Формат данных на основе разбора файла с текcтом

```
{
    "list": [
        {
            "id": 30,
            "name": "1-evro-60-rubley",
            "fname": "151103 1-evro-60-rubley",
            "file": "151103 1-evro-60-rubley.docx",
            "date": "151103",
            "ext": "docx",
            "modified": 1446563947,
            "heading": "1 евро = 60 рублей",
            "title": "1-evro-60-rubley",
            "images": [
                {
                    "src": "cache/docx/51b77a7d46b00f7438b701d284a31059/word/media/image1.jpeg"
                }
            ],
            "preview": "«Слоган «1 евро = 60 рублей» - это не просто рекламная уловка, – говорит директор по продажам компании Кемппи. - Конечно, мы не имеем права менять валюту, тем более по такому курсу. Однако, стоимость нашего оборудования, которое изготавливается в Финляндии и поставляется исключительно оттуда, формируется, исходя именно из такого соотношения рубля к евро. ",
            "size": 0.06,
            "links": [
                {
                    "href": "/contacts",
                    "title": "Контакты"
                }
            ]
        }

```

Имя файла
---------

[](#имя-файла)

Имя файла интерпретируется согласно правилам [infrajs/load](https://github.com/infrajs/load)

```
	yymmdd name@id.ext

```

API
---

[](#api)

```
use infrajs\rubrics\Rubrics;
$res = Rubrics::search('events', id); //id - порядковый номер файла или номер указанный в имени файла после @ или имя файла без учёта даты и номера файла
//Поддерживаются расширения 'docx', 'mht', 'tpl', 'html', 'txt', 'php'
$html = Rubrics::article('~events/'.$res['file']); //Содержимое файла в html
```

Показывать только год в ленте
-----------------------------

[](#показывать-только-год-в-ленте)

В конфиг .infra.json нужно добавить ключ **onlyyear**

```
"list":{
    "events":{
        "onlyyear":true,
        "title":"События",
        "type":"list"
    }
}
```

SEO
---

[](#seo)

Для формирования seo-мета тегов используется расширение [infrajs/layer-seojson](https://github.com/infrajs/layer-seojson). SEO главной страницы ожидается в ~pages/index.json, SEO страниц совпадает с именем файла с содержаием, например ~pages/about.json. В других разделах аналогично. Файл ~pages/page.json используется для seo страницы по умолчанию и нужно его везде подключать. Например

```
{
	"title":"Акция подари скидку другу. Протезирование зубов в Тольятти",
	"external":"~pages/page.json"
}
```

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity76

Established project with proven stability

 Bus Factor1

Top contributor holds 99.3% 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

Every ~48 days

Recently: every ~126 days

Total

49

Last Release

1498d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/099cc220594581ec0bf8ca30a215f3d2bf334e3cfb01e46e795dcaa08acf8f18?d=identicon)[oduvanio](/maintainers/oduvanio)

![](https://www.gravatar.com/avatar/341a8ef8a06866ad99b1bbcf0216fd8e331b076b1690a7d992c386192674b787?d=identicon)[akiyatkin](/maintainers/akiyatkin)

![](https://www.gravatar.com/avatar/66efa4c4cf0d387e8085081b04af668bc3dc7ebea307683bcd5744d08ed1d235?d=identicon)[ange187](/maintainers/ange187)

---

Top Contributors

[![akiyatkin](https://avatars.githubusercontent.com/u/953753?v=4)](https://github.com/akiyatkin "akiyatkin (140 commits)")[![oduvanio](https://avatars.githubusercontent.com/u/11479446?v=4)](https://github.com/oduvanio "oduvanio (1 commits)")

### Embed Badge

![Health badge](/badges/infrajs-rubrics/health.svg)

```
[![Health](https://phpackages.com/badges/infrajs-rubrics/health.svg)](https://phpackages.com/packages/infrajs-rubrics)
```

PHPackages © 2026

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