Skip to content

luyadev/luya-module-news

Repository files navigation

LUYA Logo

News Module

LUYA Latest Stable Version Tests Maintainability Test Coverage Total Downloads

The news module will provided you a basic news system with categories and tags.

Installation

For the installation of modules Composer is required.

composer require luyadev/luya-module-news

Configuration

After installation via Composer include the module to your configuration file within the modules section.

'modules' => [
    // ...
    'news' => [
    	'class' => 'luya\news\frontend\Module',
    	'useAppViewPath' => false, // When enabled the views will be looked up in the @app/views folder, otherwise the views shipped with the module will be used.
    ],
    'newsadmin' => 'luya\news\admin\Module',
]

Initialization

After successfully installation and configuration run the migrate, import and setup command to initialize the module in your project.

1.) Migrate your database.

./vendor/bin/luya migrate

2.) Import the module and migrations into your LUYA project.

./vendor/bin/luya import

3.) Add the permissions to your group (Under "System -> Groups" in the LUYA admin interface)

You will now be able to edit and add news articles.

With version 2.0 of news module, the admin queue is required in order to switch the visibility of the news based on time, therefore read LUYA Queue or enable:

'modules' => [
    'admin' => [
        'class' => 'luya\admin\Module',
        // ...
        'autoBootstrapQueue' => true,
    ],
    //...
]

Example Views

As the module will try to render a view for the news overview, here is what this could look like this in a very basic way:

views/news/default/index.php

<?php
use yii\widgets\LinkPager;

/** @var \luya\web\View $this */
/** @var \yii\data\ActiveDataProvider $provider */
?>
<h2>Latest News Articles</h2>
<?php foreach($provider->models as $item): ?>
    <?php /** @var \luya\news\models\Article $item */ ?>
    <pre>
        <?php print_r($item->toArray()); ?>
    </pre>
    <p>
        <a href="<?= $item->detailUrl; ?>">News Detail Link</a>
    </p>
<?php endforeach; ?>

<?= LinkPager::widget(['pagination' => $provider->pagination]); ?>

views/news/default/detail.php

<?php
/** @var \luya\web\View $this  */
/** @var \luya\news\models\Article $model  */
?>
<h1><?= $model->title; ?></h1>
<pre>
<?php print_r($model->toArray()); ?>
</pre>

The above examples will just dump all the data from the model active records.