Как получить доступ и запустить определенный php файл в OctoberCMS при создании внутреннего модуля?

Я хотел бы иметь возможность обслуживать файл php, который не обременен бэкэнд-темой OctoberCMS, для использования в новом окне. (Автономная страница)


person David Lundquist    schedule 22.12.2016    source источник


Ответы (2)


Как использовать настраиваемую «свернуть свою собственную страницу PHP» при создании внутреннего модуля OctoberCMS

Оказывается, ответ очень прост:

  1. в каталоге плагинов plugins / acme / cheesyplugin / добавьте папку просмотра.
  2. Сохраните файл PHP в каталоге просмотра example myphppage.php.
  3. Создайте контроллер или используйте существующий по вашему выбору.
  4. Создайте метод (например, позвольте мне вызвать мой метод myphppage) в контроллере.

  5. Добавьте, например, следующий код в свой метод на контроллере:

      //method inside your chosen controller class
      public function myphppage(){
    
        return \Response::view(
                           'acme.cheesyplugin::myphppage',
                            ['a'=>$this])->header('Content-Type', "text/html");
    
    }
    

Все сделано

Теперь у вас есть своя собственная страница PHP, которая будет отображаться как вам угодно, но при этом имеет все преимущества участия в вашем внутреннем сеансе.

Чтобы перейти на свою страницу php, выполните следующие действия: Пример PHP: http://[server]/backend/[you_as_publisher]/[plugin_name]/[controller_name]/[your_custom_method]

Обратите внимание, что второй атрибут для Response :: view () - это массив переменных, к которым ваша пользовательская страница может получить доступ. вы можете изменить тип контента по своему усмотрению. Идеально подходит для двоичных файлов, таких как PDF-файлы и т. Д.

person David Lundquist    schedule 22.12.2016
comment
Можем ли мы также применить макет к этому файлу php? - person MSN; 27.02.2019

Это можно сделать двумя способами.

Первый - создать файл с именем routes.php в любом каталоге ваших плагинов и поместить некоторый код, подобный следующему:

Route::get('/welcome', function(){
    ?>
    //Here goes my HTML,CSS,JS,PHP CODE !
    <?php
});

Другой способ также в routes.php - перенаправить ваш маршрут в представление, подобное следующему коду:

Route::get('/welcome', function(){
    return view('mynamespace.mypluginname::welcome');
});

И представление должно находиться в плагине, который вы указали его пространство имен и его имя в предыдущем коде. И он должен находиться в папке с именем views, поэтому полный путь должен быть plugins/mynamespace/mypluginname/views/welcome.blade.php

Как видите, вы можете использовать Blade шаблонизатор.

Надеюсь, это поможет.

person Ahmed Essam    schedule 04.01.2017