From 999057aa42c78ac3bbe27847c049af615d725eb5 Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 4 Mar 2011 11:46:40 +0100 Subject: zend einrichten geupdated --- application/controllers/FilterController.php | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'application/controllers/FilterController.php') diff --git a/application/controllers/FilterController.php b/application/controllers/FilterController.php index d066c53..d631083 100644 --- a/application/controllers/FilterController.php +++ b/application/controllers/FilterController.php @@ -65,6 +65,11 @@ class FilterController extends Zend_Controller_Action // TODO: ACL implementieren ob er den filter löschen darf if(is_numeric($filterID)){ // TODO: lösche den aktuellen eintrag + $deletefilter = new Application_Model_Filter(); + $deletefilter->setID($filterID); + $filtermapper = new Application_Model_FilterMapper(); + $filtermapper->delete($deletefilter); + $this->_redirect('/filter'); } // action body } -- cgit v1.2.3-55-g7522 From 222a64c21af7bad9311d37a6385f1a69d708791a Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 4 Mar 2011 12:24:45 +0100 Subject: löschen von Filtern && einrichte-script geändert --- application/configs/application.ini | 2 +- application/controllers/FilterController.php | 7 ++++--- application/views/scripts/filter/index.phtml | 4 ++-- zend-einrichten.sh | 31 ---------------------------- zend-su.sh | 29 ++++++++++++++++++++++++++ zend-user.sh | 4 ++++ 6 files changed, 40 insertions(+), 37 deletions(-) delete mode 100755 zend-einrichten.sh create mode 100755 zend-su.sh create mode 100644 zend-user.sh (limited to 'application/controllers/FilterController.php') diff --git a/application/configs/application.ini b/application/configs/application.ini index 6970da3..9bfaec2 100644 --- a/application/configs/application.ini +++ b/application/configs/application.ini @@ -10,7 +10,7 @@ resources.frontController.params.displayExceptions = 0 resources.db.adapter = PDO_MYSQL resources.db.params.host = localhost resources.db.params.username = root -resources.db.params.password = lsfks +resources.db.params.password = 123456 resources.db.params.dbname = pbs resources.db.isDefaultTableAdapter = true diff --git a/application/controllers/FilterController.php b/application/controllers/FilterController.php index d631083..256539e 100644 --- a/application/controllers/FilterController.php +++ b/application/controllers/FilterController.php @@ -61,7 +61,9 @@ class FilterController extends Zend_Controller_Action public function removefilterAction() { - $filterID = $_GET['filterID']; + echo 'test'; + print_r($_GET); + $filterID = $this->_request->getParam('filterID'); // TODO: ACL implementieren ob er den filter löschen darf if(is_numeric($filterID)){ // TODO: lösche den aktuellen eintrag @@ -69,9 +71,8 @@ class FilterController extends Zend_Controller_Action $deletefilter->setID($filterID); $filtermapper = new Application_Model_FilterMapper(); $filtermapper->delete($deletefilter); - $this->_redirect('/filter'); } - // action body + $this->_redirect('/filter'); } public function editfilterAction() diff --git a/application/views/scripts/filter/index.phtml b/application/views/scripts/filter/index.phtml index 19b21cc..711bad9 100644 --- a/application/views/scripts/filter/index.phtml +++ b/application/views/scripts/filter/index.phtml @@ -30,11 +30,11 @@ edit filter + true) ?>">delete filter diff --git a/zend-einrichten.sh b/zend-einrichten.sh deleted file mode 100755 index 483433e..0000000 --- a/zend-einrichten.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -apt-get update -apt-get install apache2 -y -apt-get install php5 libapache2-mod-php5 -y -# passwort lsfks-openslx -apt-get install mysql-server -y -apt-get install phpmyadmin -y -echo "Include /etc/phpmyadmin/apache.conf" >> /etc/apache2/apache2.conf -zcat /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz | mysql -uroot -p -apt-get install zend-framework-bin -y -a2enmod rewrite -cd /tmp/ -su sf34 -c "git clone git@openslx.org:lsfks/master-teamprojekt/pbs2.git" -mkdir /tmp/pbs2/library/ -ln -s /usr/share/php/libzend-framework-php/Zend/ /tmp/pbs2/library/Zend -touch /etc/apache2/sites-available/pbs2 -echo " " >> /etc/apache2/sites-available/pbs2 -echo " ServerName pbs2.local" >> /etc/apache2/sites-available/pbs2 -echo " ServerAlias pbs2.local" >> /etc/apache2/sites-available/pbs2 -echo " ServerAdmin admin@pbs2.local" >> /etc/apache2/sites-available/pbs2 -echo " DocumentRoot /tmp/pbs2/public" >> /etc/apache2/sites-available/pbs2 -echo " " >> /etc/apache2/sites-available/pbs2 -echo " Options FollowSymLinks" >> /etc/apache2/sites-available/pbs2 -echo " AllowOverride All" >> /etc/apache2/sites-available/pbs2 -echo " " >> /etc/apache2/sites-available/pbs2 -echo " " >> /etc/apache2/sites-available/pbs2 -ln -s /etc/apache2/sites-available/pbs2 /etc/apache2/sites-enabled/pbs2 -echo "127.0.0.2 pbs2.local" >> /etc/hosts -/etc/init.d/apache2 restart -mysql -u root -p < /tmp/pbs2/pbs.sql -su sf34 -c "cp ~/pbs2/application/configs/application.ini /tmp/pbs2/application/configs/application.ini" diff --git a/zend-su.sh b/zend-su.sh new file mode 100755 index 0000000..234505e --- /dev/null +++ b/zend-su.sh @@ -0,0 +1,29 @@ +#!/bin/bash +apt-get update +apt-get install apache2 -y +apt-get install php5 libapache2-mod-php5 -y +# passwort lsfks-openslx +apt-get install mysql-server -y +apt-get install phpmyadmin -y +echo "Include /etc/phpmyadmin/apache.conf" >> /etc/apache2/apache2.conf +zcat /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz | mysql -uroot -p +apt-get install zend-framework-bin -y +a2enmod rewrite +cd /tmp/ +su sf34 -c "git clone git@openslx.org:lsfks/master-teamprojekt/pbs2.git" +mkdir /tmp/pbs2/library/ +ln -s /usr/share/php/libzend-framework-php/Zend/ /tmp/pbs2/library/Zend +touch /etc/apache2/sites-available/pbs2 +echo " " >> /etc/apache2/sites-available/pbs2 +echo " ServerName pbs2.local" >> /etc/apache2/sites-available/pbs2 +echo " ServerAlias pbs2.local" >> /etc/apache2/sites-available/pbs2 +echo " ServerAdmin admin@pbs2.local" >> /etc/apache2/sites-available/pbs2 +echo " DocumentRoot /tmp/pbs2/public" >> /etc/apache2/sites-available/pbs2 +echo " " >> /etc/apache2/sites-available/pbs2 +echo " Options FollowSymLinks" >> /etc/apache2/sites-available/pbs2 +echo " AllowOverride All" >> /etc/apache2/sites-available/pbs2 +echo " " >> /etc/apache2/sites-available/pbs2 +echo " " >> /etc/apache2/sites-available/pbs2 +ln -s /etc/apache2/sites-available/pbs2 /etc/apache2/sites-enabled/pbs2 +echo "127.0.0.2 pbs2.local" >> /etc/hosts +/etc/init.d/apache2 restart diff --git a/zend-user.sh b/zend-user.sh new file mode 100644 index 0000000..801920e --- /dev/null +++ b/zend-user.sh @@ -0,0 +1,4 @@ +#!/bin/bash +cp ~/pbs2/application/configs/application.ini /tmp/pbs2/application/configs/application.ini +mysql -u root -p < /tmp/pbs2/pbs.sql +mysql -u root -p < /tmp/pbs2/simonFilterSqlTests.sql \ No newline at end of file -- cgit v1.2.3-55-g7522 From ba63996435b583f7e9d9468280fe291c78d1935f Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 4 Mar 2011 12:47:05 +0100 Subject: Filtertypen in SQL hinzugefügt && notes (von notiz-zettel)n hinzugefügt --- application/controllers/FilterController.php | 2 +- notes-1.txt | 385 +++++++++++++++++++++++++++ notes-2.txt | 76 ++++++ simonFilter.sql | 7 + simonFilter.txt | 9 - 5 files changed, 469 insertions(+), 10 deletions(-) create mode 100644 notes-1.txt create mode 100644 notes-2.txt create mode 100644 simonFilter.sql delete mode 100644 simonFilter.txt (limited to 'application/controllers/FilterController.php') diff --git a/application/controllers/FilterController.php b/application/controllers/FilterController.php index 256539e..35dfd75 100644 --- a/application/controllers/FilterController.php +++ b/application/controllers/FilterController.php @@ -77,7 +77,7 @@ class FilterController extends Zend_Controller_Action public function editfilterAction() { - // action body + } diff --git a/notes-1.txt b/notes-1.txt new file mode 100644 index 0000000..95c33f5 --- /dev/null +++ b/notes-1.txt @@ -0,0 +1,385 @@ + +wget -qO - "$@" http://132.230.4.3/uniontmp.php | tar -C testdownload/ -zxvf - + + +Whitelist: +tar cz --file=/home/mp57/whitelist --ignore-failed-read --exclude=.wh* ./* + +Blacklist: +find /uniontmp/ -name .wh* >> /home/mp57/blacklist + + +http://piratepad.net/master-projekt +Whiteliste anlegen +echo '#!/bin/sh' > whitelist.sh +find * -printf 'chmod %m %p\n' >> whitelist.sh +chmod a+x whitelist.sh + +Setzen aller Ordner auf 777 +chmod -R 755 ./* + +Gepackt werden (bleibt mit ordnerberechtigung 755 auf dem server +nach herunterladen müssen die dateiberechtigugnen wieder gesetzt werden +./whitelist.sh + + +http://akrabat.com/zend-framework-tutorial/ + +http://lab.ks.uni-freiburg.de/projects/preboot/wiki/ZendWebInterface +http://lab.ks.uni-freiburg.de/projects/preboot/wiki/Zend_einrichten + +############################################################## +controller erstellen +zf create controller person +zf create action register person +zf create action login person +zf create action edit person +zf create action request person + +datenbankanbindung in der application.ini setzen + resources.db.adapter = PDO_MYSQL + resources.db.params.host = localhost + resources.db.params.username = rob + resources.db.params.password = 123456 + resources.db.params.dbname = pbs + +Datenbank initialisieren (pbs datenbank anlegen + pbs.sql einfügen + + +zf create db-table Person pbs_person +=> erstellt application/models/DbTable/Person.php + +Mapper erstellen + zf create model PersonMapper +=> erstellt application/models/PersonMapper.php +http://framework.zend.com/manual/en/learning.quickstart.create-model.html + + zf create model Person +=> erstellt /var/www/pbs/application/models/Person.php + +zf create controller Person + + + + + + + + + + + + + + + +

Sign Our Guestbook

+ +Guestbook Entries:
+
+ entries as $entry): ?> +
escape($entry->email) ?>
+
escape($entry->comment) ?>
+ +
+ + + + + + +_dbTable = $dbTable; + return $this; +} + +public function getDbTable() +{ + if (null === $this->_dbTable) { + $this->setDbTable('Application_Model_DbTable_Person'); + } + return $this->_dbTable; +} + +public function save(Application_Model_Person $person) +{ + $data = array( + 'title' => $person->getTitle(), + 'name' => $person->getName(), + 'firstname' => $person->getFirstname(), + 'street' => $person->getStreet(), + 'housenumber' => $person->getHousenumber(), + 'city' => $person->getCity(), + 'postalcode' => $person->getPostalcode(), + 'logindate' => $person->getlogindate(), + 'registerdate' => $person->getRegisterdate(), + 'email' => $person->getEmail(), + 'login' => $person->getLogin(), + 'password' => $person->getPassword() + ); + + if (null === ($id = $person->getPersonID())) { + unset($data['personID']); + $this->getDbTable()->insert($data); + } else { + $this->getDbTable()->update($data, array('personID = ?' => $id)); + } +} + +public function find($id, Application_Model_Person $person) +{ + $result = $this->getDbTable()->find($id); + if (0 == count($result)) { + return; + } + $row = $result->current(); + $guestbook->setPersonID($row->personID) + ->setTitle($row->title) + ->setName($row->name) + ->setFirstname($row->firstname) + ->setStreet($row->street) + ->setHousenumber($row->housenumber) + ->setCity($row->city) + ->setPostalcode($row->postalcode) + ->setLogindate($row->logindate) + ->setRegisterdate($row->registerdate) + ->setEmail($row->email) + ->setLogin($row->login) + ->setPassword($row->password); +} + +public function fetchAll() +{ + $resultSet = $this->getDbTable()->fetchAll(); + $entries = array(); + foreach ($resultSet as $row) { + $entry = new Application_Model_Person(); + $entry->setPersonID($row->personID) + ->setTitle($row->title) + ->setName($row->name) + ->setFirstname($row->firstname) + ->setStreet($row->street) + ->setHousenumber($row->housenumber) + ->setCity($row->city) + ->setPostalcode($row->postalcode) + ->setLogindate($row->logindate) + ->setRegisterdate($row->registerdate) + ->setEmail($row->email) + ->setLogin($row->login) + ->setPassword($row->password); + $entries[] = $entry; + } + return $entries; +} +} + + + + +setOptions($options); + } + } + + public function __set($name, $value) + { + $method = 'set' . $name; + if (('mapper' == $name) || !method_exists($this, $method)) { + throw new Exception('Invalid person property'); + } + $this->$method($value); + } + + public function __get($name) + { + $method = 'get' . $name; + if (('mapper' == $name) || !method_exists($this, $method)) { + throw new Exception('Invalid person property'); + } + return $this->$method(); + } + + public function setOptions(array $options) + { + $methods = get_class_methods($this); + foreach ($options as $key => $value) { + $method = 'set' . ucfirst($key); + if (in_array($method, $methods)) { + $this->$method($value); + } + } + return $this; + } + + public function setTitle($text) + { + $this->_title = (string) $text; + return $this; + } + public function getTitle() + { + return $this->_title; + } + + public function setName($text) + { + $this->_name = (string) $text; + return $this; + } + public function getName() + { + return $this->_name; + } + public function setFirstname($text) + { + $this->_firstname = (string) $text; + return $this; + } + public function getFirstname() + { + return $this->_firstname; + } + + public function setStreet($text) + { + $this->_street = (string) $text; + return $this; + } + public function getStreet() + { + return $this->_street; + } + + public function setHousenumber($text) + { + $this->_housenumber = (string) $text; + return $this; + } + public function getHousenumber() + { + return $this->_housenumber; + } + + public function setCity($text) + { + $this->_city = (string) $text; + return $this; + } + public function getCity() + { + return $this->_city; + } + + public function setPostalcode($text) + { + $this->_postalcode = (string) $text; + return $this; + } + public function getPostalcode() + { + return $this->_postalcode; + } + public function setLogindate($text) + { + $this->_logindate = (string) $text; + return $this; + } + public function getLogindate() + { + return $this->_logindate; + } + public function setRegisterdate($text) + { + $this->_registerdate = (string) $text; + return $this; + } + public function getRegisterdate() + { + return $this->_registerdate; + } + + registerdate + + public function setEmail($email) + { + $this->_email = (string) $email; + return $this; + } + public function getEmail() + { + return $this->_email; + } + + public function setLogin($login) + { + $this->_login = (string) $login; + return $this; + } + public function getLogin() + { + return $this->_login; + } + public function setPassword($login) + { + $this->_password = (string) $login; + return $this; + } + public function getPassword() + { + return $this->_password; + } + + + public function setPersonID($id) + { + $this->_personID = (int) $id; + return $this; + } + public function getPersonID() + { + return $this->_personID; + } +} + diff --git a/notes-2.txt b/notes-2.txt new file mode 100644 index 0000000..39718f5 --- /dev/null +++ b/notes-2.txt @@ -0,0 +1,76 @@ +drop trigger if exists GroupGroups_Trigger; + +CREATE TRIGGER Groups_Trigger +BEFORE delete ON pbs_group +FOR EACH ROW + INSERT INTO pbs_groupgroups g SET g.parentID = (SELECT parentID FROM pbs_groupgroups WHERE groupID = old.gro + +INSERT INTO pbs_group (title) VALUES ('testgruppe1'); +INSERT INTO pbs_group (title) VALUES ('testgruppe2'); +INSERT INTO pbs_group (title) VALUES ('testgruppe3'); +INSERT INTO pbs_group (title) VALUES ('testgruppe4'); +INSERT INTO pbs_group (title) VALUES ('testgruppe5'); +INSERT INTO pbs_groupgroups (parentID,groupID) VALUES (1,2); +INSERT INTO pbs_groupgroups (parentID,groupID) VALUES (2,3); +INSERT INTO pbs_groupgroups (parentID,groupID) VALUES (1,4); +INSERT INTO pbs_groupgroups (parentID,groupID) VALUES (3,5); + +Löschen von Gruppen + +Case 1. Lösche alle Untergruppen +Case 2. Untergruppen werden an Root gehängt +Case 2. Untergruppen werden an alle Obergruppen der Gruppe gehängt (Authorisation der Obergruppe?) +Case 3. Untergruppen werden an bestimmte Obergruppen gehängt (Authorisation der Obergruppe?) + +Löschen von Groupgroups + +Case1. Gruppe hat noch andere Obergruppen -> tue nichts +Case2. Gruppe hat keine Obergruppen mehr -> hänge gruppe an root + +Gruppen verwalten + +root-gruppen +Gruppen die unter Root hängen repräsentieren eine PBS-Datenbank Instanz, sog. root-gruppen (z.b. PBS-Server1) +root-gruppen können nicht gelöscht werden +root-gruppen können Untergruppen anlegen und wieder löschen +root-gruppen besitzen angehörige, rollen, rechte +angehörige mit den nötigen Rechten können Untergruppen erstellen und löschen. +angehörige mit den nötigen Rechten können Personen anlegen, angehörigkeiten und rollen zuweisen +angehörige mit den nötigen Rechten können rechte erstellen, ändern und löschen +angehörige mit den nötigen Rechten können Untergruppen einen oder mehreren Gruppen unterstellen + +Gruppen +Jede Gruppe kann mehrere Untergruppen erstellen und löschen +Gruppen können sich nicht selbst löschen + +Jede Gruppe außer root-gruppen können mehrere Obergruppen besitzen + + + +Sanity Checks + +Constraints + +1. Group -> Groupgroups +1. Groupgroups -> group, group +2. Grouprequests -> person, group +3. RightRoles -> role, right +4. Membership -> role, group, right +5. Role -> group +6. Config -> membership +7. BootOs -> group +8. Bootmenuentries -> bootos, bootmenu +9. Bootmenu -> membership +10. BootIso -> membership +11. Session -> client, bootos +12. MembershipFilters -> membership, filter +13. Poolentries -> pool, client +14. Filter -> membership, bootmenu +15. Poolfilters -> pool, filter +16. Filterentries -> filter, filtertype + +Not Null +... + + + diff --git a/simonFilter.sql b/simonFilter.sql new file mode 100644 index 0000000..c9cf9fa --- /dev/null +++ b/simonFilter.sql @@ -0,0 +1,7 @@ +INSERT INTO `pbs`.`pbs_filtertype` (`filtertypeID`, `filtertypename`) VALUES (NULL, 'IP'); +INSERT INTO `pbs`.`pbs_filtertype` (`filtertypeID`, `filtertypename`) VALUES (NULL, 'MAC'); +INSERT INTO `pbs`.`pbs_filtertype` (`filtertypeID`, `filtertypename`) VALUES (NULL, 'PoolID'); +INSERT INTO `pbs`.`pbs_filtertype` (`filtertypeID`, `filtertypename`) VALUES (NULL, 'BootIso'); +INSERT INTO `pbs`.`pbs_filtertype` (`filtertypeID`, `filtertypename`) VALUES (NULL, 'Membership'); +INSERT INTO `pbs`.`pbs_filtertype` (`filtertypeID`, `filtertypename`) VALUES (NULL, 'Group'); +INSERT INTO `pbs`.`pbs_filtertype` (`filtertypeID`, `filtertypename`) VALUES (NULL, 'Time'); \ No newline at end of file diff --git a/simonFilter.txt b/simonFilter.txt deleted file mode 100644 index bac6fd7..0000000 --- a/simonFilter.txt +++ /dev/null @@ -1,9 +0,0 @@ - -- IP / IP-range -- Mac Adresse -- PoolID -- BootIso -- Besitzer -- Uhrzeit - - -- cgit v1.2.3-55-g7522 From 2c3d9f3d53afedf153a28f1f0ac2c8c4957dcf51 Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 4 Mar 2011 18:33:19 +0100 Subject: Filters Übersicht, FilterEntries hinzufügen --- .zfproject.xml | 1 + application/controllers/FilterController.php | 41 ++++++++++++++--- application/forms/FilterEdit.php | 54 +++++++++++++++++++++++ application/models/DbTable/FilterEntries.php | 2 +- application/models/FilterEntriesMapper.php | 36 +++++++++++---- application/models/FilterType.php | 2 + application/models/FilterTypeMapper.php | 6 ++- application/views/scripts/filter/editfilter.phtml | 16 ++++++- application/views/scripts/filter/index.phtml | 34 +++++++++++--- 9 files changed, 167 insertions(+), 25 deletions(-) create mode 100644 application/forms/FilterEdit.php (limited to 'application/controllers/FilterController.php') diff --git a/.zfproject.xml b/.zfproject.xml index ad4a683..b956d27 100644 --- a/.zfproject.xml +++ b/.zfproject.xml @@ -37,6 +37,7 @@ + diff --git a/application/controllers/FilterController.php b/application/controllers/FilterController.php index 35dfd75..09f4081 100644 --- a/application/controllers/FilterController.php +++ b/application/controllers/FilterController.php @@ -18,7 +18,12 @@ class FilterController extends Zend_Controller_Action { try{ $this->_filtermapper = new Application_Model_FilterMapper(); - $this->view->filters = $this->_filtermapper->fetchAll(); + $this->view->filters = $this->_filtermapper->fetchAll(); + + $filterentries = new Application_Model_FilterEntriesMapper(); + + $this->view->filterentries = $filterentries->fetchAll(); + }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; } @@ -26,7 +31,6 @@ class FilterController extends Zend_Controller_Action public function addfilterAction() { - $db = Zend_Db_Table::getDefaultAdapter(); if (!isset($_POST["add"])){ $addfilterform = new Application_Form_FilterAdd(); $this->view->addfilterform = $addfilterform; @@ -43,9 +47,7 @@ class FilterController extends Zend_Controller_Action // TODO: Ändere mit ACL $newfilter->setGroupID('1'); $newfilter->setMembershipID('1'); - $newfilter->setBootmenuID('1'); - - + $newfilter->setBootmenuID('1'); $newfilter2 = new Application_Model_FilterMapper(); $newfilter2->save($newfilter); @@ -77,7 +79,34 @@ class FilterController extends Zend_Controller_Action public function editfilterAction() { - + // TODO: ACL implementieren ob er editieren darf + if (!isset($_POST["add"])){ + echo "case1"; + try{ + $editfilterform = new Application_Form_FilterEdit(array('filterID' => $this->_request->getParam('filterID'))); + $this->view->editfilterform=$editfilterform; + + }catch (Zend_Exception $e) { + echo "Error message 2: " . $e->getMessage() . "\n"; + } + } else{ + $editfilterform = new Application_Form_FilterEdit($_POST); + echo "case2"; + + if ($editfilterform->isValid($_POST)) { + + $newfilterenty = new Application_Model_FilterEntries(); + $newfilterenty->setFilterID($_POST['filterID']); + $newfilterenty->setFiltertypeID($_POST['filtertype']); + $newfilterenty->setFiltervalue($_POST['filtervalue1']); + $newfilterenty->setFiltervalue2($_POST['filtervalue2']); + + $newfilter2 = new Application_Model_FilterEntriesMapper(); + + $newfilter2->save($newfilterenty); + } + $this->_redirect('/filter'); + } } diff --git a/application/forms/FilterEdit.php b/application/forms/FilterEdit.php new file mode 100644 index 0000000..5d5a242 --- /dev/null +++ b/application/forms/FilterEdit.php @@ -0,0 +1,54 @@ +setName("Add Filter"); + $this->setMethod('post'); + + + try{ + $filtertypemapper = new Application_Model_FilterTypeMapper(); + $filtertype = $filtertypemapper->fetchAll(); + }catch (Zend_Exception $e) { + echo "Error message 1: " . $e->getMessage() . "\n"; + } + + $filtertypes = $this->createElement('select','filtertype'); + $filtertypes ->setLabel('Type:'); + foreach($filtertype as $f){ + $filtertypes->addMultiOption($f->getID(),$f->getFiltertypename()); + } + $this->addElement($filtertypes); + + + $this->addElement('text', 'filtervalue1', array( + 'label' => 'Value1:' + )); + + $this->addElement('text', 'filtervalue2', array( + 'label' => 'Value2:' + )); + + $this->addElement('hidden', 'filterID', array( + 'value' => $this->filterID + )); + + $this->addElement('submit', 'add', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Add Filtertype', + )); + } + public function setFilterID($id) + { + $this->filterID = $id; + } + + + +} + diff --git a/application/models/DbTable/FilterEntries.php b/application/models/DbTable/FilterEntries.php index f0f976d..309858d 100644 --- a/application/models/DbTable/FilterEntries.php +++ b/application/models/DbTable/FilterEntries.php @@ -4,7 +4,7 @@ class Application_Model_DbTable_FilterEntries extends Zend_Db_Table_Abstract { protected $_name = 'pbs_filterentries'; - + protected $_primary = array('filterID','filtertypeID'); } diff --git a/application/models/FilterEntriesMapper.php b/application/models/FilterEntriesMapper.php index 58ea563..09bc627 100644 --- a/application/models/FilterEntriesMapper.php +++ b/application/models/FilterEntriesMapper.php @@ -32,13 +32,19 @@ class Application_Model_FilterEntriesMapper public function save(Application_Model_FilterEntries $filterentries) { - $data = array('filterID'=> $filterentries->getFilterID() ,'filtertypeID'=> $filterentries->getFiltertypeID() ,'filtervalue'=> $filterentries->getFiltervalue() ,'filtervalue2'=> $filterentries->getFiltervalue2() ); - - if (null === ($id = $filterentries->getID()) ) { - unset($data['filterentriesID']); + $data = array('filterID'=> $filterentries->getFilterID() , + 'filtertypeID'=> $filterentries->getFiltertypeID() , + 'filtervalue'=> $filterentries->getFiltervalue() , + 'filtervalue2'=> $filterentries->getFiltervalue2() ); + + if (null != ($id1 = $filterentries->getFilterID()) && + null != ($id2 = $filterentries->getFiltertypeID()) && + $this->getDbTable()->find($filterentries->getFilterID(),$filterentries->getFiltertypeID())) { $this->getDbTable()->insert($data); + echo 'fall1'; } else { - $this->getDbTable()->update($data, array('filterentriesID = ?' => $id)); + $this->getDbTable()->update($data, array('filterID = ?' => $id1, 'filtertypeID = ?' => $id2)); + echo 'fall2'; } } @@ -51,17 +57,29 @@ class Application_Model_FilterEntriesMapper } } - public function find($id, Application_Model_FilterEntries $filterentries) + public function find($filterID,$filtertypeID, Application_Model_FilterEntries $filterentries) { - $result = $this->getDbTable()->find($id); + $result = $this->getDbTable()->find($filterID,$filtertypeID); + echo 'dump1'; if (0 == count($result)) { return; } - + echo 'dump2'; $row = $result->current(); - $filterentries->setFilterID($row->filterID)->setFiltertypeID($row->filtertypeID)->setFiltervalue($row->filtervalue)->setFiltervalue2($row->filtervalue2); + $filterentries->setFilterID($row->filterID) + ->setFiltertypeID($row->filtertypeID) + ->setFiltervalue($row->filtervalue) + ->setFiltervalue2($row->filtervalue2); + return $filterentries; } + public function findBy($field,$value) + { + $db = $this->getAdapter(); + $where = $db->quoteInto($db->quoteIdentifier($field).' = ?', value); + return $this->fetchAll($where); + + } public function fetchAll() { diff --git a/application/models/FilterType.php b/application/models/FilterType.php index 9601368..a66950a 100644 --- a/application/models/FilterType.php +++ b/application/models/FilterType.php @@ -50,6 +50,7 @@ class Application_Model_FilterType public function setID($_filtertypeID) { $this->_filtertypeID = $_filtertypeID; + return $this; } public function getFiltertypename() { @@ -58,6 +59,7 @@ class Application_Model_FilterType public function setFiltertypename($_filtertypename) { $this->_filtertypename = $_filtertypename; + return $this; } } diff --git a/application/models/FilterTypeMapper.php b/application/models/FilterTypeMapper.php index f10ee21..8ed2722 100644 --- a/application/models/FilterTypeMapper.php +++ b/application/models/FilterTypeMapper.php @@ -60,7 +60,8 @@ class Application_Model_FilterTypeMapper $row = $result->current(); - $filtertype->setID($row->filtertypeID)->setFiltertypename($row->filtertypename); + $filtertype->setID($row->filtertypeID) + ->setFiltertypename($row->filtertypename); } public function fetchAll() @@ -70,7 +71,8 @@ class Application_Model_FilterTypeMapper foreach ($resultSet as $row) { $entry = new Application_Model_FilterType(); - $entry->setID($row->filtertypeID)->setFiltertypename($row->filtertypename); + $entry->setID($row->filtertypeID) + ->setFiltertypename($row->filtertypename); $entries[] = $entry; } diff --git a/application/views/scripts/filter/editfilter.phtml b/application/views/scripts/filter/editfilter.phtml index 452a096..9b54ac7 100644 --- a/application/views/scripts/filter/editfilter.phtml +++ b/application/views/scripts/filter/editfilter.phtml @@ -1 +1,15 @@ -

View script for controller Filter and script/action name editfilter
\ No newline at end of file +

Edit Filter

+".$this->filterID.""; +echo 'test'; +?> +editfilterform->setAction($this->url()); + + +$this->editfilterform; + + +?> diff --git a/application/views/scripts/filter/index.phtml b/application/views/scripts/filter/index.phtml index 711bad9..4e5f8af 100644 --- a/application/views/scripts/filter/index.phtml +++ b/application/views/scripts/filter/index.phtml @@ -1,4 +1,9 @@

Filters

+

url( array( 'controller' => 'filter', @@ -35,11 +42,26 @@ ), 'default', true) ?>">delete filter + + + + + filterentries as $filterentry): ?> + filterID == $filter->getID()): ?> + + + + + + + +
getFiltertypeID();?>getFiltervalue();?>getFiltervalue();?>
+ - - - -- cgit v1.2.3-55-g7522 From e230208572623c0f924db26243229c1fd322cf61 Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 4 Mar 2011 20:01:42 +0100 Subject: Oberfläche der filter wurde verbessert, sodass nun filterentrys angelegt werden können, das löschen dieser filter funktioniert wegen einem fehler im Mapper noch nicht --- .zfproject.xml | 5 + application/controllers/FilterController.php | 143 +++++++++++++-------- application/forms/FilterEntriesAdd.php | 53 ++++++++ application/models/FilterEntriesMapper.php | 9 +- .../views/scripts/filter/addfilterentry.phtml | 3 + application/views/scripts/filter/index.phtml | 21 ++- 6 files changed, 174 insertions(+), 60 deletions(-) create mode 100644 application/forms/FilterEntriesAdd.php create mode 100644 application/views/scripts/filter/addfilterentry.phtml (limited to 'application/controllers/FilterController.php') diff --git a/.zfproject.xml b/.zfproject.xml index b956d27..4c88021 100644 --- a/.zfproject.xml +++ b/.zfproject.xml @@ -28,6 +28,7 @@ + @@ -38,6 +39,7 @@ + @@ -152,6 +154,9 @@ + + + diff --git a/application/controllers/FilterController.php b/application/controllers/FilterController.php index 09f4081..6acaae8 100644 --- a/application/controllers/FilterController.php +++ b/application/controllers/FilterController.php @@ -8,89 +8,96 @@ class FilterController extends Zend_Controller_Action public function init() { try{ - $this->_filtermapper = new Application_Model_FilterMapper(); - }catch (Zend_Exception $e) { - echo "Error message 1: " . $e->getMessage() . "\n"; + $this->_filtermapper = new Application_Model_FilterMapper(); + }catch (Zend_Exception $e) { + echo "Error message 1: " . $e->getMessage() . "\n"; } } public function indexAction() { try{ - $this->_filtermapper = new Application_Model_FilterMapper(); - $this->view->filters = $this->_filtermapper->fetchAll(); - - $filterentries = new Application_Model_FilterEntriesMapper(); - - $this->view->filterentries = $filterentries->fetchAll(); - - }catch (Zend_Exception $e) { - echo "Error message 2: " . $e->getMessage() . "\n"; - } + $this->_filtermapper = new Application_Model_FilterMapper(); + $this->view->filters = $this->_filtermapper->fetchAll(); + + $filterentries = new Application_Model_FilterEntriesMapper(); + + $this->view->filterentries = $filterentries->fetchAll(); + + }catch (Zend_Exception $e) { + echo "Error message 2: " . $e->getMessage() . "\n"; + } } public function addfilterAction() { if (!isset($_POST["add"])){ - $addfilterform = new Application_Form_FilterAdd(); - $this->view->addfilterform = $addfilterform; - }else { - $addfilterform = new Application_Form_FilterAdd($_POST); - if ($addfilterform->isValid($_POST)) { - try{ - $newfilter = new Application_Model_Filter(); - $newfilter->setTitle($_POST['title']); - $newfilter->setCreated(time()); - $newfilter->setDescription($_POST['description']); - $newfilter->setPriority($_POST['priority']); - - // TODO: Ändere mit ACL - $newfilter->setGroupID('1'); - $newfilter->setMembershipID('1'); - $newfilter->setBootmenuID('1'); - - $newfilter2 = new Application_Model_FilterMapper(); - $newfilter2->save($newfilter); - - $this->_redirect('/filter'); - return; - }catch (Zend_Exception $e) { - echo "Error message 2: " . $e->getMessage() . "\n"; - } - } + $addfilterform = new Application_Form_FilterAdd(); + $this->view->addfilterform = $addfilterform; + }else { + $addfilterform = new Application_Form_FilterAdd($_POST); + if ($addfilterform->isValid($_POST)) { + try{ + $newfilter = new Application_Model_Filter(); + $newfilter->setTitle($_POST['title']); + $newfilter->setCreated(time()); + $newfilter->setDescription($_POST['description']); + $newfilter->setPriority($_POST['priority']); + + // TODO: Ändere mit ACL + $newfilter->setGroupID('1'); + $newfilter->setMembershipID('1'); + $newfilter->setBootmenuID('1'); + + $newfilter2 = new Application_Model_FilterMapper(); + $newfilter2->save($newfilter); + + $this->_redirect('/filter'); + return; + }catch (Zend_Exception $e) { + echo "Error message 2: " . $e->getMessage() . "\n"; + } + } } } public function removefilterAction() - { - echo 'test'; - print_r($_GET); - $filterID = $this->_request->getParam('filterID'); - // TODO: ACL implementieren ob er den filter löschen darf - if(is_numeric($filterID)){ - // TODO: lösche den aktuellen eintrag - $deletefilter = new Application_Model_Filter(); - $deletefilter->setID($filterID); - $filtermapper = new Application_Model_FilterMapper(); - $filtermapper->delete($deletefilter); - } - $this->_redirect('/filter'); + { + echo 'test'; + print_r($_GET); + $filterID = $this->_request->getParam('filterID'); + // TODO: ACL implementieren ob er den filter löschen darf + if(is_numeric($filterID)){ + // TODO: lösche den aktuellen eintrag + $deletefilter = new Application_Model_Filter(); + $deletefilter->setID($filterID); + $filtermapper = new Application_Model_FilterMapper(); + $filtermapper->delete($deletefilter); + } + $this->_redirect('/filter'); } public function editfilterAction() { - // TODO: ACL implementieren ob er editieren darf + // TODO: ACL implementieren ob er editieren darf + // TODO: korrigieren, damit man einen filter (priorität und namen ändern kann) + } + + public function addfilterentryAction() + { + // TODO: ACL implementieren ob er editieren darf if (!isset($_POST["add"])){ echo "case1"; try{ - $editfilterform = new Application_Form_FilterEdit(array('filterID' => $this->_request->getParam('filterID'))); - $this->view->editfilterform=$editfilterform; + $editfilterform = new Application_Form_FilterEntriesAdd(array('filterID' => $this->_request->getParam('filterID'))); + $this->view->editfilterform = $editfilterform; + echo "case 1.1"; }catch (Zend_Exception $e) { echo "Error message 2: " . $e->getMessage() . "\n"; } } else{ - $editfilterform = new Application_Form_FilterEdit($_POST); + $editfilterform = new Application_Form_FilterEntriesAdd($_POST); echo "case2"; if ($editfilterform->isValid($_POST)) { @@ -108,6 +115,28 @@ class FilterController extends Zend_Controller_Action $this->_redirect('/filter'); } } + public function editfilterentryAction() + { + + } + public function removefilterentryAction() + { + echo 'test'; + $filterID = $this->_request->getParam('filterID'); + $filtertypeID = $this->_request->getParam('filtertypeID'); + var_dump(array($filterID,$filtertypeID)); + // TODO: ACL implementieren ob er den filter löschen darf + if(is_numeric($filterID)){ + // TODO: lösche den aktuellen eintrag + $deletefilterentry = new Application_Model_FilterEntries(); + $deletefilterentry->setFilterID($filterID); + $deletefilterentry->setFiltertypeID($filtertypeID); + + $filterentriesmapper = new Application_Model_FilterEntriesMapper(); + $filterentriesmapper->delete($deletefilterentry); + } + #$this->_redirect('/filter'); + } } @@ -118,3 +147,5 @@ class FilterController extends Zend_Controller_Action + + diff --git a/application/forms/FilterEntriesAdd.php b/application/forms/FilterEntriesAdd.php new file mode 100644 index 0000000..8ec5bd9 --- /dev/null +++ b/application/forms/FilterEntriesAdd.php @@ -0,0 +1,53 @@ +setName("Add Filterentry"); + $this->setMethod('post'); + + + try{ + $filtertypemapper = new Application_Model_FilterTypeMapper(); + $filtertype = $filtertypemapper->fetchAll(); + }catch (Zend_Exception $e) { + echo "Error message 1: " . $e->getMessage() . "\n"; + } + + $filtertypes = $this->createElement('select','filtertype'); + $filtertypes ->setLabel('Type:'); + foreach($filtertype as $f){ + $filtertypes->addMultiOption($f->getID(),$f->getFiltertypename()); + } + $this->addElement($filtertypes); + + + $this->addElement('text', 'filtervalue1', array( + 'label' => 'Value1:' + )); + + $this->addElement('text', 'filtervalue2', array( + 'label' => 'Value2:' + )); + + $this->addElement('hidden', 'filterID', array( + 'value' => $this->filterID + )); + + $this->addElement('submit', 'add', array( + 'required' => false, + 'ignore' => true, + 'label' => 'Add Filtertype', + )); + } + public function setFilterID($id) + { + $this->filterID = $id; + } + +} + diff --git a/application/models/FilterEntriesMapper.php b/application/models/FilterEntriesMapper.php index 09bc627..41f1023 100644 --- a/application/models/FilterEntriesMapper.php +++ b/application/models/FilterEntriesMapper.php @@ -50,10 +50,15 @@ class Application_Model_FilterEntriesMapper public function delete(Application_Model_FilterEntries $filterentries) { - if (null === ($id = $filterentries->getID()) ) { + $id1 = $filterentries->getFilterID(); + $id2 = $filterentries->getFiltertypeID(); + var_dump(array($id1,$id2)); + //TODO: Löschen klappt nicht + if ((null != $id1) && (null != $id2) && + $this->getDbTable()->find($filterentries->getFilterID(),$filterentries->getFiltertypeID())) { return; } else { - $this->getDbTable()->delete(array('filterentriesID = ?' => $id)); + $this->getDbTable()->delete(array('filterID = ?' => $id1, 'filtertypeID = ?' => $id2)); } } diff --git a/application/views/scripts/filter/addfilterentry.phtml b/application/views/scripts/filter/addfilterentry.phtml new file mode 100644 index 0000000..8bf501a --- /dev/null +++ b/application/views/scripts/filter/addfilterentry.phtml @@ -0,0 +1,3 @@ +editfilterform->setAction($this->url()); +echo $this->editfilterform; diff --git a/application/views/scripts/filter/index.phtml b/application/views/scripts/filter/index.phtml index 4e5f8af..b3c3013 100644 --- a/application/views/scripts/filter/index.phtml +++ b/application/views/scripts/filter/index.phtml @@ -42,9 +42,17 @@ tr.filter{background-color:#DDD;} ), 'default', true) ?>">delete filter + add filterentry - + filterentries as $filterentry): ?> - + + -- cgit v1.2.3-55-g7522
getFiltertypeID();?> getFiltervalue();?>getFiltervalue();?>getFiltervalue();?>remove filterentry