Как вызвать компонент внутри компонента [OctoberCMS]

Я хочу вызвать компонент внутри компонента с помощью переменной, например:введите здесь описание изображения

Вот код default.html->

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<div class="container">
    <div class="row">
        {% partial __SELF__ ~ "::category" category=__SELF__.category childscategory=__SELF__.childscategory%}
        <div class="col-xs-3">
          <strong>DATA</strong>
          <ul class="list-group text-center">
            {% partial __SELF__ ~ "::dates" files=__SELF__.files  %}
          </ul>
        </div>

        <div class="col-xs-3">
          <strong>Nome do Ficheiro</strong>
          <ul class="list-group text-center">
            {% partial __SELF__ ~ "::files" files=__SELF__.files  %}
          </ul>
        </div>

        <div class="col-xs-3">
          <strong>Descrição</strong>
          <ul class="list-group text-center">
            {% partial __SELF__ ~ "::description" files=__SELF__.files %}
          </ul>
        </div>

        <div class="col-xs-1">
          <strong>{{__SELF__.labelpresentation}}</strong>
          <ul class="list-group text-center">
            {% partial __SELF__ ~ "::download_1" files=__SELF__.files %}
          </ul>
        </div>
          -> I WANT TO CALL THE COMPONENT HERE <-
    </div>
</div>

Если вы хотите, чтобы я разместил больше кода, такого как .php, это нормально.


person Ricardo Cruz    schedule 16.06.2016    source источник
comment
Не ленитесь, публикуйте реальные фрагменты кода вместо скриншотов, это может помочь другим, повторно используя ваш код для ответа на ваш вопрос.   -  person Stacked    schedule 16.06.2016


Ответы (1)


Пример: используйте компонент fileUploader в моем компоненте ApplicationForm. В классе ApplicationForm добавьте это:

public function init()
{
    $component = $this->addComponent(
        'Responsiv\Uploader\Components\FileUploader',
        'fileUploader',
        [
            'deferredBinding'   => true,
            'maxSize'           => $this->property('maxFileSize'),
            'fileTypes'         => $this->property('fileTypes'),
            'placeholderText'   => $this->property('placeholderText'),
        ]
    );

    $component->bindModel('cv', new Application());
}

И в представлении (default.htm) компонента ApplicationForm используйте инициализированный компонент следующим образом:

{% component 'fileUploader' %}
person Ametad    schedule 15.07.2016
comment
Часть $component->bindModel('cv', new Application()); вызывает у меня ошибку Class not found. Пропуск этого работал нормально. - person Mike; 10.01.2019