I had similar thoughts developing my own CMS engine. Eventually I end up with basicaly same solution as you did, but with Smarty, for logic-presentation separation.
But now after some time I have different and much better solution. Make use of Command Pattern. You will need to separate your code into classes not in files like you did. You must establish Command Interface which all of your classes will implement. This way your admin page will act as Front Controler (another design pattern).
Responsibilty of Front Controler is to gather all input from your page, that is in your case $_GET["action"] , according to this actions you will have to instantiate Command objects and after this switch statement you will call $command->execute(); that will execute code contained in your Command classes.
For your examle you will have : EditPageCommand, DeletePageCommand, NewPageCommand, etc.
Avoid code separation in files. Try to use classes for everything and learn patterns. ;)