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): ?>
| getFiltertypeID();?> |
getFiltervalue();?> |
- getFiltervalue();?> |
+ getFiltervalue();?> |
+ remove filterentry
--
cgit v1.2.3-55-g7522
| |