[support] Unserializing Data for Use in a View

Metzler, David metzlerd at evergreen.edu
Fri Sep 3 01:10:07 UTC 2010


try 
 
$orderattributes = unserialize($row->order_product_data);
// Get a sense of the structure here
print_r($orderattributes); 
// Try and get a specific value if I'm reading it right
print $orderattributes['kit_id'] .' - '. $order_attirbutes['module'];
 
Hope that helps. 
 

________________________________

From: support-bounces at drupal.org [mailto:support-bounces at drupal.org] On
Behalf Of Shai Gluskin
Sent: Thursday, September 02, 2010 4:47 PM
To: support at drupal.org
Subject: Re: [support] Unserializing Data for Use in a View


Hi Dave, 

Thanks so much, this is what prints out, following your instructions.
the yellow part is the part that I'm interested in:


	stdClass Object ( [order_product_id] => 65
[uc_order_products_qty] => 2 [uc_order_products_title] => Rosh Hashanah
Day 1 [uc_orders_billing_last_name] => Eizen [uc_order_products_data] =>
a:5:{s:6:"kit_id";s:3:"570";s:6:"module";s:14:"uc_product_kit";s:10:"att
ributes";a:2:{s:9:"Attending";a:1:{i:0;s:26:"Irene Eizen, Bernard
Eizen";}s:4:"Note";a:1:{i:0;s:45:"We are friends of Eric Sack and Sandy
Steiker";}}s:9:"shippable";s:1:"0";s:9:"unique_id";s:23:"4c7d632a8090c7.
95333579";} [uc_order_products_nid] => 565 )
	
	

Shai


On Thu, Sep 2, 2010 at 7:22 PM, Metzler, David <metzlerd at evergreen.edu>
wrote:


	Try changing this to this to see what the properties really are.
If you don't understand what you get there, then tell me the results,
and I'll try and interpret them for you. 
	 
	
	$orderattributes = print_r($row,1);
	print $orderattributes;
	 
	
	 
________________________________

	
	From: support-bounces at drupal.org
[mailto:support-bounces at drupal.org] On Behalf Of Shai Gluskin
	
	Sent: Thursday, September 02, 2010 2:01 PM
	To: support at drupal.org
	Subject: Re: [support] Unserializing Data for Use in a View
	
	
	David and all, 

	David, thanks for the response:

	I just tried

	$orderattributes = $row->{$field->data};
	print $orderattributes;

	I get a php fatal error: "Cannot access empty property"
	
	
	The following is from Views "Theme information": Field
uc_order_products: data (ID: data)

	Ideas?

	Thanks much,

	Shai

	On Thu, Sep 2, 2010 at 4:31 PM, Metzler, David
<metzlerd at evergreen.edu> wrote:
	

		I'm not an expert here, but I'm reading the coments
differently than you are. 
		 
		I think you should be working with $row->data ( or at
least $row) and not with $output.  That's got html in it, right? 
		 
		Dave

________________________________

		From: support-bounces at drupal.org
[mailto:support-bounces at drupal.org] On Behalf Of Shai Gluskin
		Sent: Thursday, September 02, 2010 1:24 PM
		To: support at drupal.org
		Subject: [support] Unserializing Data for Use in a View
		
		
		I'm creating a view of ubercart order products. I got
the necessary data to be accessible to Views using Table Wizard
(http://drupal.org/project/tw). 

		The product attribute info is stored serialized in the
"data" field on the uc_order_products table. Here is an example of the
raw serialized data:


	
a:5:{s:6:"kit_id";s:3:"570";s:6:"module";s:14:"uc_product_kit";s:10:"att
ributes";a:2:{s:9:"Attending";a:1:{i:0;s:26:"Jane Doe, John
Doe";}s:4:"Note";a:1:{i:0;s:45:"We are friends of Eric Smith and Sandy
Smith";}}s:9:"shippable";s:1:"0";s:9:"unique_id";s:23:"4c7d632a8090c7.95
333579";}


		I have no problem printing it out like above. 

		Unserialized it looks like this:

		Array
		(
		[kit_id] => 570
		[module] => uc_product_kit
		[attributes] => Array
		(
		[Attending] => Array
		(
		[0] => Jane Doe, John Doe
		)
		
		[Note] => Array
		(
		[0] => We are friends of Eric Smith and Sandy Smith
		)
		
		)
		
		[shippable] => 0
		[unique_id] => 4c7d632a8090c7.95333579
		)
		
		
		I want to print out: Jane Doe, John Doe
		
		
		Here is what views-view-field.tpl.php has to say:
		
		
		
		// $Id: views-view-field.tpl.php,v 1.1 2008/05/16
22:22:32 merlinofchaos Exp $
		 /**
		  * This template is used to print a single field in a
view. It is not
		  * actually used in default Views, as this is
registered as a theme
		  * function which has better performance. For single
overrides, the
		  * template is perfectly okay.
		  *
		  * Variables available:
		  * - $view: The view object
		  * - $field: The field handler object that can process
the input
		  * - $row: The raw SQL result that can be used
		  * - $output: The processed output that will normally
be used.
		  *
		  * When fetching output from the $row, this construct
should be used:
		  * $data = $row->{$field->field_alias}
		  *
		  * The above will guarantee that you'll always get the
correct data,
		  * regardless of any changes in the aliasing that might
happen if
		  * the view is modified.
		  */
		
		
		This is what I'm putting in views-view-field.tpl.php:
		
		
		$data = unserialize($output);
		print $data['Attending'][0];

		Nothing gets returned.

		What am I doing wrong?

		thanks,

		Shai

		--
		[ Drupal support list | http://lists.drupal.org/ ]
		



	--
	[ Drupal support list | http://lists.drupal.org/ ]
	


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/support/attachments/20100902/9776b99e/attachment-0001.html 


More information about the support mailing list