Skip to content

Commit

Permalink
Merge pull request #8 from Matej-ch/intro_options
Browse files Browse the repository at this point in the history
Intro options
  • Loading branch information
Matej-ch authored May 13, 2022
2 parents f4cb4db + ce7d0ca commit 1c9b297
Show file tree
Hide file tree
Showing 15 changed files with 106 additions and 11 deletions.
17 changes: 14 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ or add
"matejch/yii2-page-guide": "^1.0"
```

to the require section of your `composer.json` file.
to the requirement section of your `composer.json` file.

Setup
-----

#### 1. First migrate table

it is necessary for saving rules on pages
It is necessary for saving rules on pages

```php
./yii migrate --migrationPath=@vendor/matejch/yii2-page-guide/src/migrations
Expand All @@ -45,7 +45,7 @@ it is necessary for saving rules on pages

#### 3. Add widget on pages you want to use page guide on

By default it is rendered in place you put widget on
By default, it is rendered in place you put widget on

```php
<?= \matejch\pageGuide\widget\PageAssist::widget() ?>
Expand All @@ -58,13 +58,24 @@ If you want it to be positioned on right top side, use widget option **_'btnPosi

```

### 4. Additional intro options from intro.js library

If you want you can add intro.js option into widget with attribute `introOptions`

More options here [intro.js](https://introjs.com/docs/examples/customizing/html-tooltip)
```php
<?= \matejch\pageGuide\widget\PageAssist::widget(['introOptions' => ['showProgress' => true] ]) ?>

```

Usage
-----
Access index and form for creation of rules with

```php
{key_of_module_you_use_in_web.php}/page-guide/index
```

#### 1. Create new set of rules

Insert url on your yii web page into first input
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "matejch/yii2-page-guide",
"description": "Ability to add guide to pages for user orientation",
"type": "yii2-extension",
"version": "1.1.1",
"version": "1.2.0",
"keywords": ["yii2","extension","guide"],
"license": "MIT",
"authors": [
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "yii2-page-guide",
"version": "1.1.1",
"version": "1.2.0",
"description": "Page guide extension\r ====================\r Ability to add guide to pages for user orientation",
"main": "",
"scripts": {
Expand Down
Binary file modified readme/Contact with guide.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified readme/Create page guide.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions src/messages/cs/model.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php

return [
'ID' => 'Id',
'Url' => 'Stránka návodu',
'Rules' => 'Pravidla',
'Rules not set' => 'Musíte nastavit alespoň jeden krok',
'Rules not valid' => 'Pravidlo je neplatné',
];
29 changes: 29 additions & 0 deletions src/messages/cs/view.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

return [
'Not found' => 'Model nebyl nalezen',
'page guide' => 'Nápovědy',
'create' => ' Vytvořit',
'create guide' => 'Vytvořit nápovědu',
'update guide' => 'Upravit nápovědu: {id}',
'goto' => 'Jdi na stránku',
'save' => 'Uložit',
'help_1' => 'Vložte url adresu pro kterou, chcete nastavit nápovědu',
'help_2' => 'Otevřete stránku v novém okně a vyberte elementy pro které chcete vytvořit nápovědu',
'help_3' => 'Na stránkách kterých chcete vytvořit nápovědu musí mít widget PageAssist z adresáře widget',
'step' => 'Krok',
'element' => 'Element na který napojit návod',
'element_help' => 'Nápověda k elementu',
'help_4' => 'Přesuňte požadovaný element sem',
'rule_element' => 'Element',
'intro' => 'Obsah',
'prev' => 'Zpět',
'next' => 'Dále',
'skip' => 'Přeskočit',
'done' => 'Ukončit',
'position' => 'Pozice',
'right' => 'Vpravo',
'left' => 'Vlevo',
'bottom' => 'Dole',
'top' => 'Nahoru'
];
5 changes: 5 additions & 0 deletions src/messages/en/view.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,9 @@
'next' => 'Next',
'skip' => 'Skip',
'done' => 'Done',
'position' => 'Position',
'right' => 'Right',
'left' => 'Left',
'bottom' => 'Bottom',
'top' => 'Top'
];
5 changes: 5 additions & 0 deletions src/messages/it/view.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,9 @@
'next' => 'Successivo',
'skip' => 'Salta',
'done' => 'Fine',
'position' => 'Posizione',
'right' => 'Right',
'left' => 'Left',
'bottom' => 'Bottom',
'top' => 'Top'
];
5 changes: 5 additions & 0 deletions src/messages/sk/view.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,9 @@
'next' => 'Ďalej',
'skip' => 'Preskočiť',
'done' => 'Ukončiť',
'position' => 'Pozícia',
'right' => 'Vpravo',
'left' => 'Vľavo',
'bottom' => 'Dole',
'top' => 'Hore'
];
13 changes: 12 additions & 1 deletion src/views/page-guide/partials/_rule.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@

/** @var int $index */

?>
use yii\helpers\Html;

?>

<div class="w-full max300 well-block px-4 py-4 mx-2 js-rule-container relative">
<div class="w-full">
Expand All @@ -14,6 +15,16 @@
<label class="control-label"><?= Yii::t('pageGuide/view','element') ?></label>
<input type="text" value="<?= $rule['element'] ?? '' ?>" name="PageGuide[rules][<?= $index ?>][element]" class="form-control js-element">
</div>
<div class="w-full">
<label class="control-label"><?= Yii::t('pageGuide/view','position') ?></label>
<?= Html::dropDownList("PageGuide[rules][$index][position]",
$rule['position'] ?? 'bottom', [
'right' => Yii::t('pageGuide/view','right'),
'left' => Yii::t('pageGuide/view','left'),
'bottom' => Yii::t('pageGuide/view','bottom'),
'top' => Yii::t('pageGuide/view','top')
], ['class' => 'form-control js-position']) ?>
</div>
<div class="w-full">
<label class="control-label"><?= Yii::t('pageGuide/view','element_help') ?></label>
<textarea name="PageGuide[rules][<?= $index ?>][intro]" cols="30" rows="10" class="form-control js-intro"><?= $rule['intro'] ?? '' ?></textarea>
Expand Down
14 changes: 14 additions & 0 deletions src/views/page-guide/templates/_rule.php
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
<?php

use yii\helpers\Html;

?>
<template id="element-input-template">
<div class="w-full max300 well-block px-4 py-4 mx-2 js-rule-container relative">
<div class="w-full">
Expand All @@ -8,6 +13,15 @@
<label class="control-label"><?= Yii::t('pageGuide/view','element') ?></label>
<input type="text" value="" name="PageGuide[rules][][element]" class="form-control js-element">
</div>
<div class="w-full">
<label class="control-label"><?= Yii::t('pageGuide/view','position') ?></label>
<?= Html::dropDownList("PageGuide[rules][][position]", 'bottom', [
'right' => Yii::t('pageGuide/view','right'),
'left' => Yii::t('pageGuide/view','left'),
'bottom' => Yii::t('pageGuide/view','bottom'),
'top' => Yii::t('pageGuide/view','top')
], ['class' => 'form-control js-position']) ?>
</div>
<div class="w-full">
<label class="control-label"><?= Yii::t('pageGuide/view','element_help') ?></label>
<textarea name="PageGuide[rules][][intro]" cols="30" rows="10" class="form-control js-intro"></textarea>
Expand Down
6 changes: 3 additions & 3 deletions src/web/js/assist.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,7 @@ document.addEventListener('DOMContentLoaded',() => {

function startIntro() {
const intro = introJs();
intro.setOptions({
steps: window.guideRules || []
});
intro.setOptions(window.guideRules);

intro.setOption("prevLabel",window.guideLabels.prevLabel || 'Prev' );
intro.setOption("nextLabel",window.guideLabels.nextLabel || 'Next' );
Expand Down Expand Up @@ -122,6 +120,7 @@ document.addEventListener('DOMContentLoaded',() => {

container.querySelector('.js-step').name = 'PageGuide[rules]['+step+'][step]';
container.querySelector('.js-step').value = step + 1;
container.querySelector('.js-position').name = 'PageGuide[rules]['+step+'][position]';
container.querySelector('.js-element').name = 'PageGuide[rules]['+step+'][element]';
container.querySelector('.js-intro').name = 'PageGuide[rules]['+step+'][intro]';

Expand All @@ -148,6 +147,7 @@ document.addEventListener('DOMContentLoaded',() => {
let tmpl = document.getElementById('element-input-template').content.cloneNode(true);
tmpl.querySelector('.js-step').name = 'PageGuide[rules]['+count+'][step]';
tmpl.querySelector('.js-step').value = count + 1;
tmpl.querySelector('.js-position').name = 'PageGuide[rules]['+count+'][position]';
tmpl.querySelector('.js-element').name = 'PageGuide[rules]['+count+'][element]';
tmpl.querySelector('.js-intro').name = 'PageGuide[rules]['+count+'][intro]';
document.getElementById('js-el-container').appendChild(tmpl);
Expand Down
2 changes: 1 addition & 1 deletion src/web/js/assist.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion src/widget/PageAssist.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use matejch\pageGuide\models\PageGuide;
use Yii;
use yii\base\Widget;
use yii\helpers\ArrayHelper;
use yii\helpers\Json;
use yii\web\View;

Expand All @@ -16,6 +17,8 @@ class PageAssist extends Widget

public $selectors = [];

public $introOptions = [];

public function init()
{
parent::init();
Expand All @@ -39,7 +42,10 @@ public function run()
'skipLabel' => Yii::t('pageGuide/view','skip'),
'doneLabel' => Yii::t('pageGuide/view','done')
]);
$view->registerJs("window.guideRules=$guide->rules;window.guideLabels=$labels");

$options = Json::encode(ArrayHelper::merge($this->introOptions,['steps' => Json::decode($guide->rules)]));

$view->registerJs("window.guideRules=$options;window.guideLabels=$labels");
}

if(!empty($this->selectors)) {
Expand Down

0 comments on commit 1c9b297

Please sign in to comment.