denyadzi/luya-module-posts

The posts module provides standard blog/news functionality, including categories, articles, tags, wysiwyg, social networks integration.

dev-master / 2.x-dev 2020-02-27 06:08 UTC

README

LUYA Logo

Posts Module

LUYA Slack Support

The posts module provides standard blog/news functionality, including categories, articles, tags, wysiwyg, social networks integration.

This module is a fork of the luya news module

Stability

The module is under development, so no stable version is currently available yet

Installation

For the installation of modules Composer is required.

composer require denyadzi/luya-module-posts: ~2.0-dev

For multilingual posts, the php intl extention is highly recommended to be installed in your system

Configuration

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

'modules' => [
    // ...
    'posts' => [
    	'class' => 'luya\posts\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.
    ],
    'postsadmin' => [
        'class' => 'luya\posts\admin\Module',
        'vkAppId' => 1234, /* optional. Needed for Vkontakte autoposts */
        'fbAppId' => 1234, /* optional. Needed for Facebook autoposts */
        'wysiwygOptions' => [ /* various tinymce editor options */
            'height' => '480',
            'menubar' => false,
            'plugins' => 'link image code lists textcolor',
            'toolbar' => 'undo redo | bold underline italic forecolor backcolor image | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code'
        ],
    ],
]

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

After adding the persmissions to your group you will be able to edit and add new posts.

Example Views

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

views/posts/default/index.php

<?php
use yii\widgets\LinkPager;

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

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

views/posts/default/detail.php

<?php
/* @var $this \luya\web\View */
/* @var $model \luya\posts\models\Article */
?>
<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.