別のYii2アプリケーションではtextarea
をHTMl編集可能ボックスに置き換えるためにnavatech/yii2-roxymce
というパッケージを使用しました。現在のアプリケーションでは、すべてを簡単に再利用できるようにしたいが、私はそれを使用したくない。言い換えれば、私は条件付きのチェックは、パッケージがインストールされている場合は、通常のアクティブなフォームのテキストエリアを呼び出す場合はそれを呼び出すことを言う。私は、次のようなclass_exists
を試してみましたYii2パッケージが定義されているかどうかをチェック
は:
<?php
// _form.php code
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\Url;
use navatech\roxymce\widgets\RoxyMceWidget;
......
<?php if (class_exists('RoxyMceWidget')): ?>
<?= RoxyMceWidget::widget([
'model' => $model, //your Model, REQUIRED
'attribute' => 'content', //attribute name of your model, REQUIRED if using 'model' section
'name' => 'Post[content]', //default name of textarea which will be auto generated, NOT REQUIRED if using 'model' section
'value' => isset($_POST['Post']['content']) ? $_POST['Post']['content'] : $model->content, //default value of current textarea, NOT REQUIRED
'action' => Url::to(['roxymce/default']), //default roxymce action route, NOT REQUIRED
'options' => [//TinyMce options, NOT REQUIRED, see https://www.tinymce.com/docs/
'title' => 'RoxyMCE',//title of roxymce dialog, NOT REQUIRED
'height' => 450,
],
]);?>
<?php else: ?>
<?= $form->field($model, 'content')->textarea(['rows' => 14]);?>
<?php endif; ?>
.....
しかし、作曲を使用してnavatech\roxymce\widgets\RoxyMceWidget
のインストール後に、条件文は同じ結果を与えます。すなわち通常のアクティブフォームのテキストエリアを印刷するので、class_exists
はウィジェットがインストールされている間に常にfalseを返すようです。
パッケージが見つかったかどうかを確認する他の正しい方法はありますか?
ですが、それはすでに 'use'文で定義され、
yii2-roxymce
の最新のバージョンを使用する必要がありますか? – SaidbakR'class_exists'はそれを知らない。 – Bizley