Concrete5 — метод класса не работает

Я пытаюсь создать собственное приложение панели мониторинга в Concrete5 для своего клиента. У меня проблемы с получением методов внутри класса контроллера для работы страницы.

Вы можете просмотреть мой пост на официальных форумах concrete5 для более подробного объяснения здесь: https://www.concrete5.org/community/forums/customizing_c5/call-to-controller-method-throwing-404-page-not-found-error/

Это мой файл view.php для страницы панели инструментов, которая генерирует форму

<?php  defined('C5_EXECUTE') or die(_("Access Denied."));

$dh = Loader::helper('concrete/dashboard');
$ih = Loader::helper('concrete/interface');

$uNamePosted = "Pants";

$help = 'This add-on works in conjuction with my XML Export add-on ';
$help .= 'this is a new dashboard page which allows you to open these';
$help .= 'XML files, edit and then save them, so that you can then';
$help .= 'import them using Core Commerce Import.';

echo $dh->getDashboardPaneHeaderWrapper(t('XML Viewer'), t($help), 'span8', false);

?>
<div class="ccm-pane-body">
<?php echo $uNamePosted; ?>
<form method="post"action="<?php echo $this->action('test_form'); ?>">
<input type="text" name="uName" value="" />
<input type="submit" value="Search" />
</form>
</div>
<?php  echo $dh->getDashboardPaneFooterWrapper(false); ?>

Это содержимое моего файла controller.php для страницы панели инструментов.

<?php  defined('C5_EXECUTE') or die(_("Access Denied."));class DashboardCoreCommerceXmlViewerController extends Controller {
public function test_form() {
$uName = $this->post('uName');
$this->set('uNamePosted', $uName);
}
}

Ожидаемая функциональность: я набираю что-то в поле и нажимаю кнопку поиска, фиктивное значение «штаны» меняется на то, что я набрал

Что происходит: ничего, когда я нажимаю кнопку поиска, страница перезагружается и никакая информация не изменяется.

Я следую учебному пособию сотрудника C5, расположенного здесь: http://andrewembler.com/posts/basic-mvc-in-concrete5/

Насколько я могу сказать, это должно работать, но ничего не происходит, когда я нажимаю на поиск. Я проверил, что функция внутри класса доступна из-за печати («sometext»); В верхней части функции создается следующая ошибка: Невозможно изменить информацию заголовка — заголовки уже отправлены (вывод запущен в public_html / site / packages / xml_viewer / controllers / dashboard / core_commerce / xml_viewer / controller.php: 6) в public_html / сайт / бетон / ядро ​​/ библиотеки / view.php онлайн +963

Что ожидается, потому что его печать после отправки заголовков, но это доказывает, что concrete5 / .PHP находит функцию, однако ничего не происходит со строкой

$this->set('uNamePosted', $uName);

Любая помощь приветствуется, спасибо заранее. Даже учебник от их собственного сотрудника говорит, что это должно работать.

0

Решение

Ответил на форумах Conrete5.

У меня был пердеть мозг, и я устанавливал переменную «брюки» внутри view.php, а не внутри controller.php

Doh!

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector