Forums / Setup & design / Include website in another

"Please Note:
  • At the specific request of Ibexa we are changing this projects name to "Exponential" or "Exponential (CMS)" effective as of August, 11th 2025.
  • This project is not associated with the original eZ Publish software or its original developer, eZ Systems or Ibexa".

Include website in another

Author Message

Aurore Hublé

Friday 15 December 2006 3:19:13 am

Hi,

I need to include a website in another. I tried to do that with php include fonction in an extension. It's work but instead of be between <div></div>, the included part is at the top.

In pagelayout.tpl I add

<div id="block-contenu">
	{web_include(''http://localhost/boutique/index.php/boutique')}

And in my extension :

function web_include($path)
{
	include($path); 
}

And the result

       ___________________________________________________
   |  included part                                    |
___|__ (http://localhost/boutique/index.php/boutique')_|
|                                                      |
|   Main website                                       |
|______________________________________________________|

instead of

 _____________________________
|                             |
|    Main website             |
|_____________________________|__________________
|     included part                              |
| (http://localhost/boutique/index.php/boutique')|
|________________________________________________|
|________________________________________________|

Kåre Køhler Høvik

Friday 15 December 2006 3:44:42 am

Hi

The include() function will output the result to the std. out output. This is displayed before any result from the templates. Make your extension function return the content instead, example:

function web_include( $path )
{
    return file_get_contents(  $path );
}

Kåre Høvik

Aurore Hublé

Friday 15 December 2006 5:05:56 am

Ok thanks !!

Mark Marsiglio

Friday 15 December 2006 5:18:12 am

I have done something similar using an iframe. It can either go in the template code directly, or using the literal html class in the Online Editor:

<iframe src ="/default.asp" width="100%" border="0">
</iframe>

http://www.thinkcreative.com
Turning Ideas Into Strategic Solutions

kracker

Friday 15 December 2006 7:35:00 am

Alternately you can use a php template operator as the above php function uses just one parameter (limitation).

PHP Function: '<i>file_get_contents</i>'
<i>http://us2.php.net/file_get_contents</i>

Add this line to your setting file, '<i>settings/siteaccess/example/template.ini.append.php</i>'.

[PHP]
PHPOperatorList[file_get_contents]=file_get_contents

Add this line to your pagelayout file, '<i>design/example/templates/pagelayout.tpl</i>'.

{'http://yahoo.com/'|file_get_contents()}

Alternately, if you need to use a php function using many arguments, you will want to use the 'wrap_operator' extension (in contributions). <i>http://ez.no/community/contribs/template_plugins/wrapper_operator</i>

Add this line to your setting file, '<i>settings/override/wrap_operator.ini.append.php</i>'.

[PHPFunctions]
PermittedFunctionList[]
PermittedFunctionList[]=file_get_contents

Add this line to your pagelayout file, '<i>design/example/templates/pagelayout.tpl</i>'.

{wrap_php_func('file_get_contents', 'http://google.com/' )}

Well still you could pass additional arguments as well using this method.

{wrap_php_func('file_get_contents', array( 'http://google.com/', FALSE, NULL, 0, 0 ) )}

And and after that you can write as many user defined functions in php and use them as php or template operators with the wrap_operator extension. A very flexible tool to provide for simple solutions.

Still ... beware of cache and cache block (possible) related considerations.

//kracker
<i>tv: metalocalypse</i>

Member since: 2001.07.13 || http://ezpedia.se7enx.com/

Jianjun Hu

Saturday 07 July 2007 8:18:43 pm

Very helpful!
Thanks!

OnlyBlue

☆..·°∴°.☆°°.☆°.
°∴ °☆ .·enjoy star° .·★°∴°
∴°.°★ .·°
  ミ☆°∴°.★☆° ∴·°
°.☆° .·∴° 

Is it a pleasure after all to practice in due time what one has learnt?