The news module will provided you a basic news system with categories and tags.
For the installation of modules Composer is required.
composer require luyadev/luya-module-news
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',
]
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,
],
//...
]
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:
<?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]); ?>
<?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.