Search

@tachyondecay An effort at email notification in xmlimporter has begun :)

I seem to be running into some old issues when using the Master branch with Symphony 2.3.1, specifically:

  1. Attempting to save a new XML Importer gives the error message "An error occurred while processing this form".
  2. On checking the logs I noticed that the error was coming from the same line previously reported by Nils so I applied his fix.
  3. I can now create importer records but fields are not saved so I can't do anything with them.

Both problems have popped up in this thread before but a long time ago and they appear to have been resolved. I'm still seeing them with the latest version though. Do I have to do anything special to get this extension working?

I don't know if I have the same problem as pauldice above, but I don't get to import any values - the import creates only new blank entries in the destination section, whereas it should update existing ones and add some new.

Its an entries import from one Symphony (2.2.5) to another (2.3.2RC2).

I have a symphony's xml page type holding /data/export/entry nodes (this is also the path to included elements in the later import), and I point to the values in xml importer as firstname/text() etc. There is no namespace (maybe thats a problem).

Any tips I can follow?

Thank you.

Same problem as Pauldice, wont save and when i fix that line the field setup isnt saved and the import doesnt work. im running lasted released version 2.3.2 and 2.0 of the extension.

Oh I tried it with integration branch and it works (of the extension) and adding in the line fix.

Does anyone know, if there is a way to update entries based on their system id?

It's nothing I am able to select in the interface because usually you don't actively set the system id, but it the only unique value I have in my existing and the import data.

The only way I know of i to make a field solely to hold a duplicate of the id. There is no other way at present, as the field will need to have a value, and be able to be written to with a value.

I have a funky problem. I am trying to import the contents of a <![CDATA[]]> into a textarea, it’s mostly (badly formed) HTML (thanks, Tumblr!), but there’s some markdown as well.

When I use content (the name of the node) in the XPath, it imports

<content><!CDATA[<p>stuff</p>]></content>

(as it should). When I use content/* the field is completely blank (Huh?).

But when I use content/text(), I get:

Symphony Fatal Database Error: Column count doesn't match value count at row 3

(with the error in the attached image), so it’s processing the elements within the CDATA (which it shouldn’t) and failing somewhere.

[/var/www/dev.bernardyu.com/public_html/symphony/lib/toolkit/class.mysql.php:459]
MySQL->__error();
[/var/www/dev.bernardyu.com/public_html/symphony/lib/toolkit/class.mysql.php:589]
MySQL->query();
[/var/www/dev.bernardyu.com/public_html/symphony/lib/toolkit/class.entrymanager.php:186]
MySQL->insert();
[/var/www/dev.bernardyu.com/public_html/extensions/xmlimporter/lib/class.xmlimporter.php:358]
EntryManager::edit();
[/var/www/dev.bernardyu.com/public_html/extensions/xmlimporter/content/content.importers.php:80]
XMLImporter->commit();
[/var/www/dev.bernardyu.com/public_html/extensions/xmlimporter/content/content.importers.php:41]
contentExtensionXmlImporterImporters->__prepareRun();
[/var/www/dev.bernardyu.com/public_html/symphony/lib/core/class.administration.php:254]
contentExtensionXmlImporterImporters->build();
[/var/www/dev.bernardyu.com/public_html/symphony/lib/core/class.administration.php:442]
Administration->__buildPage();
[/var/www/dev.bernardyu.com/public_html/index.php:22]
Administration->display();

I feel like this should be simple and I’m missing something. Help?

Attachments:
Screen Shot 2013-10-05 at 21.57.46 PM.png

I've not tried it but try using strip_tags() as a PHP function on that import field which should strip out both the CDATA and the HTML tags.

I just tried using strip_tags() with XPath for content, but it leaves the field completely empty.

content/text() should be just right.

There seems to be another error related to the field with the id 111 where the importer tries to set two values while the field only accepts one. What kind of field is this?

@Nils, your comment just helped me figure it out. (The field is a textarea.) id 111 was the content field, which made me go back to look at the XML I was using. Apparently, the XML that I was having generated was like this: <![CDATA[

stuff

instead of

<content><![CDATA[<p>stuff</p>]]></content>

…which meant the importer was treating each line space as an entry. Which, in retrospect, is obvious. Thank you!

Hmm, I’m getting an error page when I try to fix the formatting in my comment. That’s not happy.

To summarize the broken formatting, the there were line breaks between the content element opening and closing tags and the CDATA when there shouldn’t be any.

Never quite sure whether to post a new thread or post on the extension thread... sorry if I chose wrong.

I am trying to use this extension along with the Dynamic Text Group extension to import data from a phpmyadmin XML dump of a table in another DB. My data looks like:

<table>
    <column name="sidebar">
        <div id="relatedlinks"><span class="reltitle">Quick Links</span><ul><li><a href="/path/page.html">Page 1</a></li><li><a href="/path2/page2.html">Page 2</a></li></ul></div>
    </column>
</table>

And I want to insert it into a section with a Dynamic Text Group with text and href fields.

I think I can access the a tags to get to the data I want in the XML, but I cannot figure a way to get the XML Importer to then give the data to the Dynamic Text Group in a way that it can process. I am hoping there is someone here who understands more about how to use the PHP function field, who could give me some idea of if it is even possible to return $value as an array instead of a string.

Currently, the error I get if I attempt to submit data to a Dynamic Text Group is:

PHP Fatal error: Cannot use string offset as an array in extensions/dynamictextgroup/fields/field.dynamictextgroup.php on line 297

Any help is welcome. I'm not afraid to code, but I'm afraid I don't understand either extension that well yet.

Thanks for reading.

As far as I'm aware the extension, only saves a json equivalent to the field data in a text field.

I'd suggest having a look at prepareImportValue inside field.dynamictextgroup.php the result at the end of the function; should be something similar to the data when posted through the backend.

Thank you for your help @gunglien. I was able to successfully import a json string into a dynamic text field which a couple of minor changes to the Dynamic Text Field extension (https://github.com/sarahkemp/dynamictextgroup/commit/e26ddf8a810995be31ae9c52e99f12cc58731b47).

I was also able to direct the XML Importer to the a tags in my xml, which causes it to concatenate all of the a tags.

I did run into trouble with the XML Importer, however, because I needed to be able to combine all of the data from all of the a tags into one JSON data structure. In order to do this, I added a 'multi' branch to my fork of the XML importer (https://github.com/sarahkemp/xmlimporter/commit/1c62917fdc0a61a7c1c784e9ef04a0de6763d443) which allows the creation of custom functions that take over control of the loop rather than just processing a single result at a time (designated by a multi prefix to the function name). It also allows the use of a JSON string as an additional argument to the custom function.

So now my XML Importer looks like:

Dynamic Text Group / XML Importer support

And it imports this data:

<column name="sidebar">
    <div id="relatedlinks"><span class="reltitle">Quick Links</span> <ul> <li><a href="page1.html">Page 1</a></li> <li><a href="page2.html">Page 2</a></li> </ul> </div>
</column>

Into a section where the links field is a Dynamic Text Group like:

alt text

I tend to doubt either of these "improvements" are something that anyone would want to see integrated into the XML importer, but they are there if anyone wants to check them out. Not well tested at all as it works for my purposes at the moment and I don't foresee a lot of outside interest, but let me know.

I would like to see support for the Dynamic Text Group integrated into this extension - whether it is accomplished the way I did or someone has a better idea is TBD.

Thanks for the help!

Glad you managed to sort it out. I had a go a while a go to add XML importer support, but I didn't update the code base to support the latest version(s) it's not in a 'share-mode' just yet. Time permitting I'll try to package it.

I am not sure why, but I get to update only some entries from all included and also mentioned to be successfully updated. For example only 4 from total 12.

Every entry gets its new values for sure - I see it in a preview - and all entries have the same conditions, just different values.

What could be the cause of that?

I am exporting from and importing to entries from the same section in one SCMS installation.

I use SCMS 2.3.4 with latest XML Importer 2.1.2, tried also upcomming 3.0.

What about the datasources branch?

You mean if I tried also the datasources branch? Or if there's something broken?

I've tried it but was the same. Some entries just did not populate with new values, although all had the same starting point.

I also had an idea to create a test site installation just from scratch and to test it there with some basic values. Maybe I do overlook something, but I did other imports before. I will test it this weekend and let know.

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details