yii2mod/yii2-link-preview

LinkPreview widget renders page preview

Installs: 1 712

Dependents: 0

Suggesters: 0

Security: 0

Stars: 28

Watchers: 10

Forks: 12

Open Issues: 2

Type:yii2-extension

1.3 2016-11-22 14:10 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:37:03 UTC


README

LinkPreview widget automatically retrieves some information from the content of the link.

Latest Stable Version Total Downloads License Build Status

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist yii2mod/yii2-link-preview "*"

or add

"yii2mod/yii2-link-preview": "*"

to the require section of your composer.json file.

Usage

  1. Execute init migration:
php yii migrate/up --migrationPath=@vendor/yii2mod/yii2-link-preview/migrations
  1. Define preview action in your controller:
public function actions()
{
    return [
        'link-preview' => LinkPreviewAction::className()
    ];
}
  1. Add widget to your page as follows:
echo LinkPreview::widget([
    'selector' => '#your-input-id or .someclass',
    'clientOptions' => [
        'previewActionUrl' => \yii\helpers\Url::to(['link-preview'])
    ],
])

Example of usage with the ActiveForm and saving the page info

  1. Create the basic form in the view:
<?php $form = \yii\widgets\ActiveForm::begin() ?>
    <div class="form-group">
        <label for="preview">Preview</label>
        <input name="preview" class="form-control" id="preview" placeholder="Preview">
    </div>
    <?php echo \yii2mod\linkpreview\LinkPreview::widget([
        'selector' => '#preview',
        'clientOptions' => [
            'previewActionUrl' => \yii\helpers\Url::to(['link-preview'])
        ],
    ]) ?>
    <div class="form-group">
        <?= \yii\helpers\Html::submitButton('Save', ['class' => 'btn btn-primary']) ?>
    </div>
<?php \yii\widgets\ActiveForm::end() ?>
  1. Add the following code to your action for the saving page info:
$model = new LinkPreviewModel();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
    $model->save();
}

// or the short version 

$linkPreviewId = LinkPreviewModel::saveAndGetId(Yii::$app->request->post());

GitHub Preview Example

Alt text

Video Link Preview Example

Alt text