summaryrefslogtreecommitdiffstats
path: root/application/modules/dev/controllers/PrebootController.php
diff options
context:
space:
mode:
Diffstat (limited to 'application/modules/dev/controllers/PrebootController.php')
-rw-r--r--application/modules/dev/controllers/PrebootController.php170
1 files changed, 170 insertions, 0 deletions
diff --git a/application/modules/dev/controllers/PrebootController.php b/application/modules/dev/controllers/PrebootController.php
new file mode 100644
index 0000000..e319058
--- /dev/null
+++ b/application/modules/dev/controllers/PrebootController.php
@@ -0,0 +1,170 @@
+<?php
+
+class dev_PrebootController extends Zend_Controller_Action
+{
+
+ public function init()
+ {
+ $db = Zend_Db_Table::getDefaultAdapter();
+ }
+
+ public function indexAction()
+ {
+ $prebootmapper = new Application_Model_PreBootMapper();
+ $groupmapper = new Application_Model_GroupMapper();
+ $membershipmapper = new Application_Model_MembershipMapper();
+ $personmapper = new Application_Model_PersonMapper();
+
+ $this->view->prebootlist = $prebootmapper->fetchAll();
+ $this->view->update = array();
+
+ foreach ($this->view->prebootlist as $preboot){
+ $this->view->update[$preboot->getID()] = $this->checkupdateAction($preboot);
+ $preboot->setGroupID("[".$preboot->getGroupID()."] ".$groupmapper->find($preboot->getGroupID())->getTitle());
+ $preboot->setMembershipID("[".$preboot->getMembershipID()."] ".$personmapper->find($membershipmapper->find($preboot->getMembershipID())->getPersonID())->getFirstname());
+ }
+ }
+
+ public function createprebootAction()
+ {
+ $groupmapper = new Application_Model_GroupMapper();
+
+ if (!isset($_POST["createpreboot"])){
+ $createprebootForm = new dev_Form_PrebootCreate(array('grouplist' => $groupmapper->fetchAll()));
+ } else {
+
+ $createprebootForm = new dev_Form_PrebootCreate(array('grouplist' => $groupmapper->fetchAll()),$_POST);
+
+ if ($createprebootForm->isValid($_POST)) {
+
+ $preboot = new Application_Model_PreBoot($_POST);
+ $preboot->setMembershipID('1');
+ $prebootmapper = new Application_Model_PreBootMapper();
+
+ try {
+
+ exec("wget --spider ".$preboot->getPath_preboot()." 2>&1 | grep 'Remote file exists.'", $exists_preboot);
+
+ if(!array_pop($exists_preboot)){
+ $this->view->createprebootForm = $createprebootForm;
+ return;
+ }
+
+ $prebootID = $prebootmapper->save($preboot);
+
+ $path_preboot = "../resources/bootmedium/$prebootID/";
+
+ exec("wget -P ".$path_preboot." -r -nH --cut-dirs=1 -np -R '*.html*' -N ".$preboot->getPath_preboot());
+
+
+ }catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+
+ }
+ $this->_redirect('/dev/preboot');
+ }
+ }
+
+ $this->view->createprebootForm = $createprebootForm;
+ }
+
+ public function checkupdateAction($preboot)
+ {
+ exec("wget --server-response --spider ".escapeshellcmd($preboot->getPath_preboot())."changed 2>&1 | grep 'Last-Modified:'", $prebootdate);
+
+ //print_a($prebootdate);
+
+ $prebootdate = strtotime(trim(str_replace('Last-Modified:', '', array_pop($prebootdate))));
+ $prebootname = array_pop(scandir("../resources/bootmedium/".$preboot->getID()."/"));
+
+ if($prebootname != "." && $prebootname != "..")
+ $prebootolddate = filemtime("../resources/bootmedium/".$preboot->getID()."/".$prebootname);
+ else
+ $prebootolddate = false;
+
+ //print_a($prebootname,$prebootdate,$prebootolddate);
+
+
+ if($prebootdate > $prebootolddate)
+ return true;
+ else
+ return false;
+
+ }
+
+ public function updateprebootAction()
+ {
+ $prebootID = $this->_request->getParam('prebootID');
+ $prebootmapper = new Application_Model_PreBootMapper();
+ $preboot = new Application_Model_PreBoot();
+ $prebootmapper->find($prebootID,$preboot);
+
+ $path_preboot = "../resources/bootmedium/$prebootID/";
+
+ exec("wget -P ".$path_preboot." -r -nH --cut-dirs=1 -np -R '*.html*' -N ".$preboot->getPath_preboot());
+
+ $this->_redirect('/dev/preboot');
+ }
+
+ public function editprebootAction()
+ {
+ $prebootID = $this->_request->getParam('prebootID');
+ $groupmapper = new Application_Model_GroupMapper();
+
+ if (!isset($_POST["editpreboot"])){
+ $prebootID = $this->_request->getParam('prebootID');
+ if (!isset($prebootID) || !is_numeric($prebootID)){
+ $this->_redirect('/dev/preboot');
+ } else {
+ $preboot = new Application_Model_PreBoot();
+ $prebootmapper = new Application_Model_PreBootMapper();
+ $prebootmapper->find($prebootID, $preboot);
+
+ $editprebootForm = new dev_Form_PrebootEdit(array('grouplist' => $groupmapper->fetchAll()));
+ $editprebootForm->populate($preboot->toArray());
+ }
+ }else{
+ $editprebootForm = new dev_Form_PrebootEdit(array('grouplist' => $groupmapper->fetchAll()),$_POST);
+
+ if ($editprebootForm->isValid($_POST)) {
+
+ $preboot = new Application_Model_PreBoot($_POST);
+ $preboot->setMembershipID('1');
+ $prebootmapper = new Application_Model_PreBootMapper();
+ $preboot->setID($prebootID);
+
+ try {
+ $prebootmapper->save($preboot);
+ }catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ }
+
+ $this->_redirect('/dev/preboot');
+ }
+
+ }
+
+ $this->view->editprebootForm = $editprebootForm;
+ }
+
+ public function deleteprebootAction()
+ {
+ $prebootID = $this->_request->getParam('prebootID');
+ if (!isset($prebootID)){
+ $this->_redirect('/dev/preboot');
+ } else {
+ $preboot = new Application_Model_PreBoot();
+ $preboot->setID($prebootID);
+ $prebootmapper = new Application_Model_PreBootMapper();
+ $prebootmapper->delete($preboot);
+ }
+ $this->_redirect('/dev/preboot');
+ }
+
+
+}
+