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're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

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

Creating A F.A.Q. page, How do I group questions?


Go to End


4 Posts   1101 Views

Avatar
otherjohn

Community Member, 125 Posts

7 May 2010 at 4:18am

Hi all
I want to have administrators be able to enter faq questions and assign them to groups to achieve an output like this:
QuestionGroup1
Question 1
Answer 1
Question 2
Answer 2
QuestionGroup 2
Question 3
Answer 3

I am having a heck of a time getting this to work in the admin.
I created a "FAQPage" and added 2 tabs "Question Groups" and "Questions"
Questions doesn't allow me to assign the question to a question group.
Can someone give me some insight to this?
-John
Here is my code

class FAQPage extends Page
{
	
   static $has_many = array (
		'QuestionGroups' => 'QuestionGroup'
	);
 
	public function getCMSFields()
	{
		$f = parent::getCMSFields();
		$f->addFieldToTab("Root.Content.QuestionGroup", new DataObjectManager(
			$this,
			'QuestionBunchs',
			'QuestionBunch',
			array('QuestionGroup'=>'QuestionGroup'),
			'getCMSFields_forPopup'
		));
		$f->addFieldToTab("Root.Content.Questions", new DataObjectManager(
			$this,
			'FaqQuestions',
			'FaqQuestion',
			array('Question'=>'Question','Answer'=>'Answer'),
			'getCMSFields_forPopup'
		));
		$f->renameField("Root.Content.Questions", "Question Groups");
		return $f;
	}
 
}

class FaqQuestion extends DataObject {
 
   static $db = array(
      'Question' => 'Text',
      'Answer' => 'HTMLText'
   );
   static $has_one = array (
		'QuestionBunch' => 'QuestionBunch'
	);
 
 
    
   
 
	
	public function getCMSFields_forPopup()
	{
		return new FieldSet(
			new TextField('Question'),
			new TextareaField('Answer')
		);
	}

 
}

class QuestionBunch extends DataObject {
 
   static $db = array(
      'QuestionGroup' => 'Text',
      'Order' => 'Int'
   );
   static $has_many = array (
		'FaqQuestions' => 'FaqQuestion'
	);

	
	public function getCMSFields_forPopup()
	{
		return new FieldSet(
			new TextField('QuestionGroup')
		);
	}

 
}

Avatar
UncleCheese

Forum Moderator, 4102 Posts

7 May 2010 at 4:32am

You need a nested DOM..

Page -> has_many -> FAQGroups -> has_many ->FAQs.

<% control FAQGroups %>
$Title
<% control FAQs %>
$Question $Answer
<% end_control %>
<% end_control%>

Avatar
otherjohn

Community Member, 125 Posts

7 May 2010 at 4:36am

I guess my question is, How do I get in the ADMIN, the ability to attach questions to FAQGroups?
In the questions tab, it just has the ability to enter question and answer. What am I missing to pick what group its a part of?
John

Avatar
UncleCheese

Forum Moderator, 4102 Posts

7 May 2010 at 4:40am

In the edit form for your question group, put a DOM in there for adding FAQs..

Holder page..

new DataObjectManager($this,'QuestionGroups','QuestionGroup');

QuestionGroup

return new FieldSet(
new TextField('Title'),
new DataObjectManager($this,'FAQs','FAQ')
);