Datensätze in con_properties & FEuser

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Ähm, mal abgesehen davon, dass ich da noch Murx eingebaut habe, warum ist die Methode so kompliziert und geht über ein Array (class.properties.php):

Code: Alles auswählen

 function deleteProperties ($itemtype, $itemid) 
   { 
      if (isset($this->client)) 
      { 
         $this->select("idclient = '".$this->client."' AND itemtype = '$itemtype' AND itemid = '$itemid'"); 
      } else { 
         $this->select("itemtype = '$itemtype' AND itemid = '$itemid'"); 
      } 

      $deleteProperties = Array(); 

      while ($item = $this->next()) 
      { 
         $deleteProperties[] = $item->get("idproperty"); 
      } 

      foreach($deleteProperties as $idproperty) { 
         $this->delete($idproperty); 
      } 

   } 
Wie wäre es mit:

Code: Alles auswählen

 function deleteProperties ($itemtype, $itemid) 
   { 
      $oProperties = new PropertyCollection;
      if (isset($this->client)) 
      { 
         $oProperties->select("idclient = '".$this->client."' AND itemtype = '$itemtype' AND itemid = '$itemid'"); 
      } else { 
         $oProperties->select("itemtype = '$itemtype' AND itemid = '$itemid'"); 
      } 

      while ($item = $oProperties->next()) 
      { 
         $this->delete($item->get("idproperty"));
      }
   } 
Und hast Du eine Idee, wozu das var $propertiesDelete; in der class.genericdb.php gut ist?

Im Moment wird sie noch in der delete()-Methode der genericdb verwendet, aber die sollte man eigentlich auch so gestalten können:

Code: Alles auswählen

	function delete($id)
	{
		/* Local new db instance since we don't want to kill our
		   probably existing result set */
		$db = new DB_Contenido;

		$sql = "DELETE FROM ".$this->table." WHERE ";
		$sql .= $this->primaryKey." = '".$id."'";

		$db->query($sql);

		/* Runtime on-demand allocation of the properties object */
		if (!is_object($this->properties))
		{
			$this->properties = new PropertyCollection;
		}
		/* if (!is_object($this->propertiesDelete))
		{
			$this->propertiesDelete = new PropertyCollection;
		} */

		/* delete the property values */ 
		$this->properties->deleteProperties($this->primaryKey, $id);

		/* If this object wasn't loaded before, return false */
		if ($this->virgin == true)
		{
			$this->lasterror = "No item loaded";
			return false;
		}

		if ($db->affected_rows() == 0)
		{
			return false;
		} else
		{
			return true;
		}
	}
Thanks for the advice.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

warum das in der genericdb so drinnen ist ? keine ahnung ich hab dort nur die namen übernommen...

und die andere sache
innerhalb der property klasse nochmals ein property object aufmachen... geh bitte... (das soll weniger kompliziert sein ?)
abgesehen davon hab ich so seit monaten im einsatz... es läuft und macht keinerlei probleme... lass bitte die finger davon...
*** make your own tools (wishlist :: thx)
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

innerhalb der property klasse nochmals ein property object aufmachen... geh bitte... (das soll weniger kompliziert sein ?)
Nun, es wurde an anderer Stelle so gemacht und es ist zumindest eleganter. Ich gebe Dir aber Recht, dass das Array im Hinblick auf Performance und Speicherbedarf besser ist.
abgesehen davon hab ich so seit monaten im einsatz... es läuft und macht keinerlei probleme... lass bitte die finger davon...
Ähm ... auch das andere läuft problemlos an anderer Stelle seit Jahren. Ich kann Dich aber beruhigen: Wider Erwarten teste ich meine Änderungen und übernehme nur Dinge, die augenscheinlich funktionieren (was Fehler an anderer Stelle naturgemäß nicht ausschließt ... :wink: ).

Ich werde die Stelle nach dieser Bewertung technisch natürlich nicht ändern - was aber nicht heißt, dass ich davon meine Finger lasse ... sorry.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

HerrB hat geschrieben:...es wurde an anderer Stelle so gemacht und es ist zumindest eleganter.
ähm, da sag ich jetzt mal nein...
innerhalb der class.properties.php gibt es keine nochmalige anforderung eines properties objects...
das selbe objekt innerhalb einer klasse nochmals anzufordern ist nicht elegant...

wenn das in der class.genericdb.php gemacht wurde ist ganz was anderes...
*** make your own tools (wishlist :: thx)
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

wenn das in der class.genericdb.php gemacht wurde ist ganz was anderes...
Nicht nur, aber wenn Du es sagst, wird es stimmen... :wink:

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt