Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

include php file


Go to End


6 Posts   6407 Views

Avatar
bebabeba

Community Member, 193 Posts

14 July 2010 at 3:49am

Edited: 14/07/2010 6:34pm

Hi!
I create a new page php (ArticlePage.php) whti some function and a relative template (ArticlePage.ss).
Is it possible include this new page in a parte of an othe page (for example Page.php)?

something like..

<% include ArticlePage %>

I need create a table in Page.ss and in every block of my table a different include with different template. Every new tempate is caracterized by different php code.
I hope to be clear..

Thanks!

Avatar
bebabeba

Community Member, 193 Posts

14 July 2010 at 6:34pm

any idea?is possible?

Avatar
Willr

Forum Moderator, 5523 Posts

14 July 2010 at 7:12pm

If you want to control content from another page you can use the <% control Page(url-of-your-page %>.... $Title ... <% end_control %> which will control over the page object with the given URL. If control Page() doesn't work then you will have to write a PHP function to render the template inside the page (see documentation about renderWith()). Also you can only use <% include %> to get templates from the includes folder (not from layout folder).

Avatar
bebabeba

Community Member, 193 Posts

14 July 2010 at 8:05pm

Edited: 14/07/2010 9:06pm

Thanks for reply me but for me is a bit complicated..can you help me to set code?

This is my ArticlePage.php

class ArticlePage extends Page {

public static $db = array();
public static $has_one = array();
}

class ArticlePage_Controller extends Page_Controller {

public function init() {
parent::init();
Requirements::themedCSS("layout");
Requirements::themedCSS("typography");
Requirements::themedCSS("form"); }

function templatePhp() {
require_once('../class/classe.php');

$_return_article=articlePhp();
return $_return_article;}

$doSet = new DataObjectSet();

$result = array(
'data' => $_return_hitlist, );
$doSet->push(new ArrayData($result));
//var_dump($doSet);
return $doSet;
}

classe.php file set articlePhp(); function.
To show my $_return_article variable in Page.ss template a write $data but i see nothing but var_dump($doSet) is correct..help..

Avatar
Devlin

Community Member, 344 Posts

14 July 2010 at 9:12pm

"How can I show my $_return_article variable in Page.ss template?"

ArticlePage extends Page so templatePhp() does not exist per se in Page.ss.
- You can call templatePhp() with $templatePhp in ArticlePage.ss if you want to.
- Or use <% control Page(url-of-your-page) %>$templatePhp<% end_control %> or <% if ClassName = ArticlePage %>$templatePhp<% end_if %> in Page.ss.
- Or create a wrapper method in Page.php for ArticlePage.php (or move templatePhp() to Page.php of course)

Avatar
bebabeba

Community Member, 193 Posts

14 July 2010 at 10:00pm

Thanks!!I use last solution..the second don't work..