Filemanager – napojení na Nette
- Klainer
- Člen | 42
Dobrý den,
objevil jsem jeden pěkný filemanager a chtěl bych si ho napojit na nějakou
akci kontroleru v nette.
Konkrétně se jedná o tohle: http://www.responsivefilemanager.com/demo.php
Je to knihovna php + jquery…
Nakopíroval jsem si tuto knihovnu do adresáře libs a manažer pak spustím přes absolutní cestu url: http://localhost:8080/…r/dialog.php?…
Vše je funkční, jen by to chtělo nějak více zapasovat do NETTE, jde mi hlavně o to aby k tomuto manageru byl přístup pouze z administrace. Zatím nemám moc praxe s nette, takže nejsem si jistý jak to nějak elegantně a bezpečně udělat. Napadlo mě udělat nějakou akci kontrolleru která by mě vždy na tuto url přesměrovala.
Cílem je aby se mi manager pouštěl někde v modálním okně tak jak je to na demu, pouze pokud ho otevřu z ADMIN modulu …
Děkuji za Vaše rady a názory!
- Klainer
- Člen | 42
Tak jsem si našel řešení, ale potřeboval bych trošku pomoct.
Jak jsem již psal složku s komponentou pro upload napsanou v PHP mám
umístěnou v libs..
Napadlo mě že bych si do toho php souboru který obstarává funkci této komponenty načetl soubory frameworku. To se povedlo zapnul jsem si tam i laděnku. Nicméně asi dělám něco špatně, protože mi to v laděnce ukazuje že nejsem přihlášen, pokud přijdu na tu danou absolutní url s komponentou.
Pokud jsem ale normálně v sekci admin, tak zalogovaný, jsem, i v laděnce se mi to ukáže. Takže jedinná věc co bych potřeboval vyřešit je aby se mi informace o přihlášenem uživateli objevovali i v té komponentě s uploadem souborů.
Jak tedy správně načíst NETTE do scriptu abych měl zachované všechny informace i o přihlášení uživatelů ?
Děkuji moc za radu !
Kod je zde:
include ('../nette/nette/Nette/loader.php');
use Nette\Mail\Message;
use Nette\Forms\Form;
use Nette\Security\AuthenticationException;
use Nette\Security as NS;
use Nette\Http\Session;
use Nette\Security\User;
$configurator = new Nette\Config\Configurator;
$configurator->setTempDirectory(__DIR__ . '/../../temp');
$configurator->setDebugMode(); // = TRUE
$configurator->enableDebugger(__DIR__ . "/../../log");
$container = $configurator->createContainer();
$user = $container->user;
if( $user->isLoggedIn() == false )
{
//redirect('http://localhost:8080/pcms/admin/');
}
// vytvoření formuláře
$form = new Form;
function redirect($url, $statusCode = 303)
{
header('Location: ' . $url, true, $statusCode);
die();
}
include('config/config.php');
$_SESSION["verify"]= "RESPONSIVEfilemanager";
if(isset($_POST['submit'])){
include('upload.php');
}else{
include('include/utils.php');
if (isset($_GET['fldr'])
&& !empty($_GET['fldr'])
&& strpos($_GET['fldr'],'../')===FALSE
&& strpos($_GET['fldr'],'./')===FALSE)
$subdir = urldecode(trim($_GET['fldr'],"/") ."/");
......
- Klainer
- Člen | 42
Děkuji, bohužel to nemělo žádný efekt. Stále jsem v adminu
zalogován, ale v komponentě ne..
Nakonec vyřešeno takhle:
require '/../autoload.php';
//include ('../nette/nette/Nette/loader.php');
use Nette\Mail\Message;
use Nette\Forms\Form;
use Nette\Security\AuthenticationException;
use Nette\Security as NS;
use Nette\Http\Session;
use Nette\Security\User;
$configurator = new Nette\Config\Configurator;
$configurator->enableDebugger(__DIR__ . "/../../log");
$configurator->setTempDirectory(__DIR__ . '/../../temp');
$configurator->setDebugMode(); // = TRUE
$configurator->createRobotLoader()
->addDirectory(__DIR__ . '/../DoctrineExtensions')
->addDirectory(__DIR__ . "/../../app")
->register();
\Nella\Console\Config\Extension::register($configurator);
\Nella\Doctrine\Config\Extension::register($configurator);
\Nella\Doctrine\Config\MigrationsExtension::register($configurator);
$configurator->addConfig(__DIR__ . '/../../app/config/config.neon');
$container = $configurator->createContainer();
$container->getByType('Nette\Http\Session')->start();
// $container->session->start();
//$container->session->start();
Editoval Klainer (26. 11. 2013 20:18)
- bazo
- Člen | 620
Klainer napsal(a):
Tak jsem si našel řešení, ale potřeboval bych trošku pomoct.
Jak jsem již psal složku s komponentou pro upload napsanou v PHP mám umístěnou v libs..Napadlo mě že bych si do toho php souboru který obstarává funkci této komponenty načetl soubory frameworku. To se povedlo zapnul jsem si tam i laděnku. Nicméně asi dělám něco špatně, protože mi to v laděnce ukazuje že nejsem přihlášen, pokud přijdu na tu danou absolutní url s komponentou.
co keby si to spravil naopak? netahal nette do komponenty, ale prehodil by si funkcie toho php skriptu do nette?
vysledkom bude o hodne menej problemov
- Klainer
- Člen | 42
Mno to si nemyslím. Pokud se koukneš na tu komponentu, tak přepsat ji do NETTE by trošku trvalo, zatímco tady stačí správně inicializovat NETTE, a frčí to jak hodinky…
Můžu taky knihovnu průběžně aktualizovat vyjde li nová verze a podobně..
bazo napsal(a):
Klainer napsal(a):
Tak jsem si našel řešení, ale potřeboval bych trošku pomoct.
Jak jsem již psal složku s komponentou pro upload napsanou v PHP mám umístěnou v libs..Napadlo mě že bych si do toho php souboru který obstarává funkci této komponenty načetl soubory frameworku. To se povedlo zapnul jsem si tam i laděnku. Nicméně asi dělám něco špatně, protože mi to v laděnce ukazuje že nejsem přihlášen, pokud přijdu na tu danou absolutní url s komponentou.
co keby si to spravil naopak? netahal nette do komponenty, ale prehodil by si funkcie toho php skriptu do nette?
vysledkom bude o hodne menej problemov