Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, biapar, Willr, Ingo, swaiba, simon_w

how to get values ?


Go to End
Reply


2 Posts   1435 Views

Avatar
snaip

Community Member, 180 Posts

31 July 2009 at 10:19am

hi

i want to get values but i dont know how

my ObjectPage,php

<?php
class ObiektyPage extends Strona {
   	static $db = array(
   		'Zajawka' => 'Text',
   		'Lat' => 'Varchar(50)',
   		'Lng' => 'Varchar(50)'
   	);
   	
   	static $has_one = array(
   		'Zdjecie' => 'Image'
   	);

	function getCMSFields() {
		$fields = parent::getCMSFields();

		$fields->addFieldToTab("Root.Content.Main", new TextareaField("Zajawka", "Zajawka:",4),"Content");
		
		$fields->addFieldToTab("Root.Content.Zdjęcie główne", new ImageField("Zdjecie"));
		
		$fields->addFieldToTab("Root.Content.Wspolrzedne", new TextField("Lat", "Lat:"));
		$fields->addFieldToTab("Root.Content.Wspolrzedne", new TextField("Lng", "Lng:"));
		
		return $fields;
	}
   	   
}



class ObiektyPage_Controller extends Strona_Controller {
 
}
 
?>

my DataObjectManager

<?php 
class Obiekty extends DataObject
{
	static $db = array (
		'Nazwa' => 'Text',
		'Obiekt' => 'Text',
   		'Lat' => 'Varchar(50)',
   		'Lng' => 'Varchar(50)'
	);
	
	static $has_one = array (
		'TrasyPage' => 'TrasyPage'
	);
			
	public function getCMSFields_forPopup() {
	  
   		$stuff = DataObject::get("ObiektyPage");
      		$map = $stuff? $stuff->toDropdownMap():array();
	  	
		return new FieldSet(
			new TextField('Nazwa'),
			new DropdownField('Obiekt','Obiekt',$map)	
		);
	}
}
?>

and my TrasyPage.php

<?php
class TrasyPage extends Strona {
   	static $db = array(
   	);
   	
   	static $has_one = array(
   	);
   
	static $has_many = array (
		'Trasy' => 'Trasy',
		'Obiekty' => 'Obiekty'
	);   

	function getCMSFields() {
		$fields = parent::getCMSFields();

		$manager = new DataObjectManager(
			$this, // Controller
			'Trasy', // Source name
			'Trasy', // Source class
			array('Nr' => 'Nr', 'Lat' => 'Lat', 'Lng' => 'Lng'), // Headings
			'getCMSFields_forPopup' // Detail fields function or FieldSet	
		);

		$obiekty = new DataObjectManager(
			$this, // Controller
			'Obiekty', // Source name
			'Obiekty', // Source class
			array('Nazwa' => 'Nazwa', 'Obiekt' => 'Obiekt'), // Headings
			'getCMSFields_forPopup' // Detail fields function or FieldSet	
		);

		$fields->addFieldToTab("Root.Content.Wspolrzedne", $manager);
		$fields->addFieldToTab("Root.Content.Obiekty", $obiekty);
		return $fields;
	}	   
}



class TrasyPage_Controller extends Strona_Controller {
 
}
 
?>

1) i add object into ObiektPage (Name, some Text, Coordinates: Lat / Lng, Image)
2) in TrasyPage i add objects by DropdownField (Data Object Manager) but I want to get the coordinates Lat / Lng of chosen object and put into Lat/Lng fields.. i don't know how

any idea ?

Avatar
snaip

Community Member, 180 Posts

1 August 2009 at 1:21am

Edited: 01/08/2009 1:22am

i tried with

	function onAfterWrite() {
   		$cp = DataObject::get_by_id('ObiektyPage',$this->ID); 
   		$cp->Lat = $this->Lat;
   		$cp->Lng = $this->Lng;
   		$cp->write();
		return parent::onAfterWrite(); 
 	}

in class Obiekty extends DataObject but have an error "Call to undefined method stdClass::write()"