I have a requirement to integrate an Expression Engine website with a third party recruitment system. I need to be able to make HTTP Posts to a remote server that will return XML. I also need to be able to filter the resulting XML using XPATH before transforming into HTML using XLST. I have no requirement to import the information received from the XML files.

What is the best option going forward? Should I be looking to create a custom module for the project or simply allow PHP within given templates.

I know there are a couple of modules that might be a good place to start I.e. Entry API but I'm looking for some advice from seasoned EE developers on the best way forward.

Thanks, Carl

  • Not sure if this is the StackExchange way but what was your outcome on this? I'm looking to do something similar. Jan 29, 2015 at 17:51

1 Answer 1


You should definitely create a module, or use an existing one. PHP in templates is always a bad idea.

There are plenty of plugins which let you make web service API calls, such as Rest.

If you want to go the route of creating your own one, how you should start depends entirely on when you want these API calls to be made. If API calls should happen when entries are created/updated, or on some other event, then you probably want to look at making an "Extension". This lets you run custom PHP code based on hooks in ExpressionEngine.

If you want to call the API from your templates, you probably want to create a "Plugin". This lets you create new tags to use in your templates. If you are using the API in your templates , then I assume you are displaying it to the users. In that case, you probably also want to look at caching the responses (either cache the raw response in your PHP code, or cache the resulting template using something like CE Cache or the built in EE template caching options).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.