Data source customisation question
This is an open discussion with 10 replies, filed under General.
Search
What does echo'<pre>';print_r($entry);echo'</pre>';
or var_dump($entry);
give when inside the foreach
construct?
It doesn't solve your customisation issue, but maybe your underlying problem: why don't you create a page that just returns the XML of your data source. You could then use this page as a source in XML Importer, adding your input's value to the date field on import.
Nils solution is the most elegant and error proof.
Thanks guys. I agree Nils' technique is probably more correct, but there are complications (its a members sections with no unique keys other than ID) which make that approach a little bloated compared to the alternative. I would need to add a (reflection) field to the section and install a new extension. The DS approach would avoid both of these and keep things lean.
@DavidOliver adding echo'<pre>';print_r($entry);echo'</pre>';
outputs the following for each entry:
SimpleXMLElement Object ( [@attributes] => Array ( [id] => 15055 ) [mc-paid-until] => 2013-12-13 )
The full DS source is here: http://pastie.org/private/bgdgqb4opnm7s8ollfffka
Based on Basic SimpleXML usage, I think it’s:
$paid_until = $entry->mc-paid-until;
You can do this in SQL too, without any PHP or what not.
UPDATE sym_entries_data_268 as `t268` SET value = (SELECT value FROM sym_entries_data_{entry_id} as `txyz` WHERE `txyz`.entry_id=`t268`.entry_id)
@DavidOliver That was indeed what I'd expect but $entry->mc-paid-until
returns zero.
Thanks Brendo. Yes, I'll do it that way.
Ah, it's probably the hyphens. If you still want to do it with PHP, you could try $entry->{'mc-paid-until'}
.
Accessing elements within an XML document that contain characters not permitted under PHP's naming convention (e.g. the hyphen) can be accomplished by encapsulating the element name within braces and the apostrophe.
Mr Oliver I owe you a beer :-)
Create an account or sign in to comment.
I would like to run a cron job to loop through the entries in a section and to take a date out of a text field and add it to a date field.
This is the result of a legacy system which used a text field where a date field would have been much better. I now want to filter by dates.
At present I have XML looking like this:
The data source has this customisation added to the end of it:
The problem is that I don't know the syntax for retrieving the value of
mc-paid-until
in each entry so that I can insert it into new the new database field.