PHPackages                             farmerstevieb/tina4php-catalog - 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. farmerstevieb/tina4php-catalog

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

farmerstevieb/tina4php-catalog
==============================

Tina4 catalog Module

08Twig

Since May 5Pushed 2y ago1 watchersCompare

[ Source](https://github.com/farmerstevieb/tina4php-catalog)[ Packagist](https://packagist.org/packages/farmerstevieb/tina4php-catalog)[ RSS](/packages/farmerstevieb-tina4php-catalog/feed)WikiDiscussions main Synced 2d ago

READMEChangelogDependenciesVersions (1)Used By (0)

\# Tina4 CMS Module Welcome to the Tina4CMS module, how does it work? ``` composer require tina4stack/tina4cms composer exec tina4 initialize:run ``` Add the database connection to your index.php file which would have been created ``` require\_once "vendor/autoload.php"; global $DBA; $DBA = new \\Tina4\\DataSQLite3("test.db","", "", "d/m/Y"); echo new \\Tina4\\Tina4Php(); ``` Run the CMS ```commandline composer start 8080 ``` Open up the CMS to setup the admin user http://localhost:8080/cms/login -&gt; will get you started ### The Landing Page - home You need to create a landing page called "home" as your starting page for things to working properly. ### Customization Make a \*base.twig\* file in your \*/src/templates\* folder, it needs the following blocks ``` {{ title }} {% block headers %} {% endblock %} {% block body %} {% block navigation %} {% include "navigation.twig" %} {% endblock %} {% block content %} {% endblock %} {% block footer %} {% endblock %} {% endblock %} ``` or an example which extends the existing base in the tina4-cms ``` {% extends "@tina4cms/base.twig" %} {% block headers %} {% endblock %} {% block body %} {% block navigation %} {% include "navigation.twig" %} {% endblock %} {% block content %} {% endblock %}

{% endblock %} ``` #### Example of a navigation.twig which you can over write Create a \*navigation.twig\* file in your \*src/templates\* folder ``` {% set menus = Content.getMenu("") %}  {% for menu in menus %} - [{{ menu.name }}]() {% if menu.children %}  {% for childmenu in menu.children %} - [{{ childmenu.name }}]()
     {% endfor %}
     {% endif %}
 {% endfor %}
``` ### Including your snippets in the CMS There are two ways you can do this: When you want to include content as it is, and not have the snippet parsed with Twig you can simply use the following: Use the raw filter when you want to have scripts or other things included correctly ``` {{snippetName | raw}} or {{snippetName}} ``` The following is how you would include a snippet where you want variables in the page for example parsed in the snippet ``` {{ include(getSnippet("snippetName")) }} ``` #### Example: Page content of "home" ``` {% set world = "World!" %} {{ include (getSnippet("mySnippet")) }} ``` Snippet content of "mySnippet" ``` Hello {{world}}! ``` Adding articles into a page ``` {% set articles = Content.getArticles ("", 8) %} {% for article in articles %}{% include "snippets/medium.twig" with {"article": article} %}{% endfor %} {% set params = {"tag": "all", "skip": 4, "limit": 4, "template": "medium.twig"} %} {% include "load-more.twig" with params %} ``` Overwriting the default CMS twig namespace - your own namespace ``` CMS\_TWIG\_NAMESPACE="" ``` # tina4php-ecomm

###  Health Score

13

—

LowBetter than 1% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity19

Early-stage or recently created project

 Bus Factor1

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

### Community

Maintainers

![](https://www.gravatar.com/avatar/08825c873092f437f0bc5831e8bd8d99e6f9d7eb4de0a5cc525e4d886669ac7f?d=identicon)[farmerstevieb](/maintainers/farmerstevieb)

---

Top Contributors

[![farmerstevieb](https://avatars.githubusercontent.com/u/38105759?v=4)](https://github.com/farmerstevieb "farmerstevieb (5 commits)")[![mickeyDominic](https://avatars.githubusercontent.com/u/60381147?v=4)](https://github.com/mickeyDominic "mickeyDominic (3 commits)")

### Embed Badge

![Health badge](/badges/farmerstevieb-tina4php-catalog/health.svg)

```
[![Health](https://phpackages.com/badges/farmerstevieb-tina4php-catalog/health.svg)](https://phpackages.com/packages/farmerstevieb-tina4php-catalog)
```

###  Alternatives

[gbrock/laravel-table

Table functionality for Laravel models

7845.6k](/packages/gbrock-laravel-table)[cleverage/process-bundle

Process, import/export, transform and validate data with a simple API with Symfony3

2254.1k14](/packages/cleverage-process-bundle)

PHPackages © 2026

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