Jump to content
php.lv forumi

Admin panelis uz CodeIgniter


mickys

Recommended Posts

Laba diena!

Veidoju savu pirmo lapu uz CodeIgniter un saskāros ar problēmu.

Izveidoju routi

$route['(:any)'] = "site/$1";

lai URL izskatītos kā http://...lv/kategorija/raksta_id'>http://...lv/kategorija/raksta_id

labots:bet url var būt arī http://...lv/kategorija , bez raksta id

bet problēma radās, kad gribēju izveidot admin paneli. Kā par nelaimi, arī tas routējas uz šo pašu kontrolieri.

Kā būtu pareizāk veidot to admin paneli, lai URL tam būtu apmēram http://...lv/admin/raksti

 

Pašlaik risinājums ir

site.php

public function _remap($k,$d){
if($k=='admin')
	$this->admin($k,$d);
else
	$this->raksts($k,$d);
}
[..]
public function admin($k,$d){
include "admin.php";
$admin = new Admin();
$admin->index($k,$d);
}

 

bet tas pavisam noteikti nav labākais risinājums. Iesakiet pareizo variantu, lai iemācos uzreiz pareizi :)

Edited by mickys
Link to comment
Share on other sites

naa, šitais cauri neiet izmēģināts vairākkārt

 

Tikko radās spoža ideja, jāuzraksta regulārā izteiksme, ka viss izņemot admin

 

$route['^(?!admin)(.*)$'] = "site/$1";
$route['admin/(:any)']= "admin/$1";

Edited by mickys
Link to comment
Share on other sites

Es liktu admin kā atsevišķu kontrolieru un konstruktorā pārbaudītu, vai cilvēks ir iegājis, vai ne.

 

Neticu, ka var normāli sabāzt visu admin paneli vienā kontrolierī.

 

Es darītu tā - tāpat ar regulāro vai kādu citu izteiksmi noteiktu, ka tiek izsaukta kāda admin sadaļa.

Tālāk, izveidotu abstrakto admin kontrolieri, kuram konstruktorā(before() metodē, vai kā CI to sauc) ieliktu nepieciešamās pārbaudes, vai lietotājs ir tiesīgs šo kontrolieri izsaukt (atbilstošu metodi).

Un tālāk visiem admin paneļa kontrolieriem vienkārši liktu mantot šo abstrakto admin kontrolieri.

Link to comment
Share on other sites

Neticu, ka var normāli sabāzt visu admin paneli vienā kontrolierī.

 

Kāpēc lai nevarētu? Pie tam, tur ir iespēja visus aprēķinus ielikt modeļos. Kontrolieris būtu pilns ar šādām funkcijām:

 

function edititem()
{
   $this->loadmod('item');
   $this->model->edititem();
}

Link to comment
Share on other sites

Sāku mācīties kko no OOP un MVC filozofijas, tāpēc jautājums - Kas ir abstrakts kontrolieris?

 

Klase, ko nevar izsaukt tieši... bet no tās var "extend'oties" un panākt vēlamo efektu. Piemēram, "Controller_Template" vai "Controller_Authentication".

Link to comment
Share on other sites

Kāpēc lai nevarētu? Pie tam, tur ir iespēja visus aprēķinus ielikt modeļos. Kontrolieris būtu pilns ar šādām funkcijām:

 

function edititem()
{
   $this->loadmod('item');
   $this->model->edititem();
}

 

Jāskatās cik sarežģīta ir visa sistēma. Tādu kontroles paneli, kāds ir WordPress'am - visas iespējams - Es neliktu vienā kontrolerī. Labāk pieturēties pie hiarhiskas sakārtotības...

 

- Controller_CP
-- Controller_CP_Users

 

...kā tā.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...