LinkPreview widget automatically retrieves some information from the content of the link.
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.
- Execute init migration:
php yii migrate/up --migrationPath=@vendor/yii2mod/yii2-link-preview/migrations
- Define preview action in your controller:
public function actions()
{
return [
'link-preview' => LinkPreviewAction::className()
];
}
- 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
- 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() ?>
- 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());