Pok4
Registered
Хора, имам един проблем с Argos CMS и по-точно с новия екстеншън, който съм решил да напиша. Той е вече готов (но почти). Останаха Ajax заявките да проработят, но не в отделни файлове, а в контролерите (както искам аз)
Тъй като не ползвам готово решение, а част от фреймуърк, който не е писан от мен, ще дам и код.
Проблема е, че самите екстеншъни се лоудват от бейсконтролера, а именно в __constructor метода.
Там се инклудва файл с клас, а класа е самия екстеншън, ето пример:
И така, а самия екстеншън е прост клас, пример:
До тук добре, функциите на екстеншъна работят, аз съм дал само малко код от него, но вътре има load функцията и т.н.
Аз искам с рутиране да достъпя този клас който е в __construct метода в бейс контролера. Както виждате това е класа с име the_tickets.
С class_exist проверих дали класа го има там в бейсконтролера и го има, но рутирането не го открива.
Рутирането е такова:
Достъпвам файла, но ми вади бяла страница и не вади въпросното '1' като число, което съм задал горе и след него има die().
По принцип темплейт файла е празен и нарочно е такъв, тъй като там ще се изважда Output-a от аякс рекуеста. Това въобще не го коментираме. Аз просто искам да направя така, че контролера да вика този клас от конструкшън метода на бейс контролера.
Цял ден се мъча, писах на няколко места, но никой не ми отговаря
Ако го направя така:
работи..
Другите подобни рутирания също работят, ето примери:
Държа да отбележа, че по-горе има повече пъти :: работи като достъп от клас до метод, но пък аз искам да го ползвам с повече от 1 (демек 3), което може да е някакъв проблем с рутиращия клас и въобще да не работи. Вие как мислите ?
Знам, че това което искам да направя е brainfuck и въобше не знам дали е и възможно, просто съм се хванал на хорото да ъпдейтвам и да надграждам системата и искам да видя, дали вие ще намерите решение на моя проблем.
Тъй като не ползвам готово решение, а част от фреймуърк, който не е писан от мен, ще дам и код.
Проблема е, че самите екстеншъни се лоудват от бейсконтролера, а именно в __constructor метода.
Там се инклудва файл с клас, а класа е самия екстеншън, ето пример:
Код:
<?php
namespace App\Controllers;
class BaseController {
public function __construct() {
require_once...(ext.php);
}
};
И така, а самия екстеншън е прост клас, пример:
Код:
class the_tickets extends \App\Controllers\BaseController {
public function __construct() {
parent::__construct();
}
public function ajax() {
echo 1;
die();
}
};
$load_ext = new the_tickets;
$load_ext->load();
До тук добре, функциите на екстеншъна работят, аз съм дал само малко код от него, но вътре има load функцията и т.н.
Аз искам с рутиране да достъпя този клас който е в __construct метода в бейс контролера. Както виждате това е класа с име the_tickets.
С class_exist проверих дали класа го има там в бейсконтролера и го има, но рутирането не го открива.
Рутирането е такова:
Код:
'_controller' => 'App\Controllers\BaseController::__construct::the_tickets::ajax',
По принцип темплейт файла е празен и нарочно е такъв, тъй като там ще се изважда Output-a от аякс рекуеста. Това въобще не го коментираме. Аз просто искам да направя така, че контролера да вика този клас от конструкшън метода на бейс контролера.
Цял ден се мъча, писах на няколко места, но никой не ми отговаря
Ако го направя така:
Код:
'_controller' => 'App\Controllers\BaseController::__construct',
работи..
Другите подобни рутирания също работят, ето примери:
Код:
'_controller' => 'App\Controllers\Ajax\Chat_Reloader::Chat_Reloader',
'_controller' => 'App\Controllers\OneSignal_User::OneSignal_User',
Държа да отбележа, че по-горе има повече пъти :: работи като достъп от клас до метод, но пък аз искам да го ползвам с повече от 1 (демек 3), което може да е някакъв проблем с рутиращия клас и въобще да не работи. Вие как мислите ?
Знам, че това което искам да направя е brainfuck и въобше не знам дали е и възможно, просто съм се хванал на хорото да ъпдейтвам и да надграждам системата и искам да видя, дали вие ще намерите решение на моя проблем.