*/
class QnAPlugin extends MicroAppPlugin
{
+
+ var $oldSaveNew = true;
+
/**
* Set up our tables (question and answer)
*
return true;
}
- /**
- * Load related modules when needed
- *
- * @param string $cls Name of the class to be loaded
- *
- * @return boolean hook value; true means continue processing, false means stop.
- */
- function onAutoload($cls)
- {
- $dir = dirname(__FILE__);
-
- switch ($cls)
- {
- case 'QnanewquestionAction':
- case 'QnanewanswerAction':
- case 'QnashowquestionAction':
- case 'QnaclosequestionAction':
- case 'QnashowanswerAction':
- case 'QnareviseanswerAction':
- case 'QnavoteAction':
- include_once $dir . '/actions/'
- . strtolower(mb_substr($cls, 0, -6)) . '.php';
- return false;
- case 'QnanewquestionForm':
- case 'QnashowquestionForm':
- case 'QnanewanswerForm':
- case 'QnashowanswerForm':
- case 'QnareviseanswerForm':
- case 'QnavoteForm':
- include_once $dir . '/lib/' . strtolower($cls).'.php';
- break;
- case 'QnA_Question':
- case 'QnA_Answer':
- case 'QnA_Vote':
- include_once $dir . '/classes/' . $cls.'.php';
- return false;
- break;
- default:
- return true;
- }
+ public function newFormAction() {
+ return 'qnanewquestion';
}
/**
{
$versions[] = array(
'name' => 'QnA',
- 'version' => STATUSNET_VERSION,
+ 'version' => GNUSOCIAL_VERSION,
'author' => 'Zach Copley',
'homepage' => 'http://status.net/wiki/Plugin:QnA',
'description' =>
*
* @return Notice the resulting notice
*/
- function saveNoticeFromActivity($activity, $actor, $options=array())
+ function saveNoticeFromActivity(Activity $activity, Profile $actor, array $options=array())
{
if (count($activity->objects) != 1) {
// TRANS: Exception thrown when there are too many activity objects.
);
break;
case Answer::ObjectType:
- $question = QnA_Question::staticGet('uri', $questionObj->id);
+ $question = QnA_Question::getKV('uri', $questionObj->id);
if (empty($question)) {
// FIXME: save the question
// TRANS: Exception thrown when answering a non-existing question.
* @return ActivityObject
*/
- function activityObjectFromNotice($notice)
+ function activityObjectFromNotice(Notice $notice)
{
$question = null;
$obj->id = $question->uri;
$obj->type = QnA_Question::OBJECT_TYPE;
$obj->title = $question->title;
- $obj->link = $notice->bestUrl();
+ $obj->link = $notice->getUrl();
// XXX: probably need other stuff here
{
case QnA_Question::OBJECT_TYPE:
$id = (empty($nli->repeat)) ? $nli->notice->id : $nli->repeat->id;
- $class = 'hentry notice question';
+ $class = 'h-entry notice question';
if ($nli->notice->scope != 0 && $nli->notice->scope != 1) {
$class .= ' limited-scope';
}
- $question = QnA_Question::staticGet('uri', $nli->notice->uri);
+ $question = QnA_Question::getKV('uri', $nli->notice->uri);
if (!empty($question->closed)) {
$class .= ' closed';
case QnA_Answer::OBJECT_TYPE:
$id = (empty($nli->repeat)) ? $nli->notice->id : $nli->repeat->id;
- $cls = array('hentry', 'notice', 'answer');
+ $cls = array('h-entry', 'notice', 'answer');
- $answer = QnA_Answer::staticGet('uri', $nli->notice->uri);
+ $answer = QnA_Answer::getKV('uri', $nli->notice->uri);
if (!empty($answer) && !empty($answer->best)) {
$cls[] = 'best';
* @param Notice $notice
* @param HTMLOutputter $out
*/
- function showNotice($notice, $out)
+ function showNoticeContent(Notice $notice, $out)
{
switch ($notice->object_type) {
case QnA_Question::OBJECT_TYPE:
}
}
- function showNoticeQuestion($notice, $out)
+ function showNoticeQuestion(Notice $notice, $out)
{
$user = common_current_user();
$nli = new NoticeListItem($notice, $out);
$nli->showNotice();
- $out->elementStart('div', array('class' => 'entry-content question-description'));
+ $out->elementStart('div', array('class' => 'e-content question-description'));
$question = QnA_Question::getByNotice($notice);
$out->elementEnd('div');
// @fixme
- $out->elementStart('div', array('class' => 'entry-content'));
+ $out->elementStart('div', array('class' => 'e-content'));
}
/**
$user = common_current_user();
$question = QnA_Question::getByNotice($notice);
- if (!empty($user)) {
+ if (!empty($user) and !empty($question)) {
$profile = $user->getProfile();
$answer = $question->getAnswer($profile);
return false;
}
- function showNoticeAnswer($notice, $out)
+ function showNoticeAnswer(Notice $notice, $out)
{
$user = common_current_user();
$nli = new NoticeListItem($notice, $out);
$nli->showNotice();
- $out->elementStart('div', array('class' => 'entry-content answer-content'));
+ $out->elementStart('div', array('class' => 'e-content answer-content'));
if (!empty($answer)) {
$form = new QnashowanswerForm($out, $answer);
$out->elementEnd('div');
// @todo FIXME
- $out->elementStart('div', array('class' => 'entry-content'));
+ $out->elementStart('div', array('class' => 'e-content'));
}
static function shorten($content, $notice)
$ellipsis = _m('…');
$short = mb_substr($content, 0, $max - 1);
$short .= sprintf('<a href="%1$s" rel="more" title="%2$s">%3$s</a>',
- $notice->uri,
+ $notice->getUrl(),
// TRANS: Title for link that is an ellipsis in English.
_m('more...'),
$ellipsis);
*
* @param Notice $notice
*/
- function deleteRelated($notice)
+ function deleteRelated(Notice $notice)
{
switch ($notice->object_type) {
case QnA_Question::OBJECT_TYPE: