course_uc.classes.inc in Course 8.2
File
modules/course_uc/course_uc.classes.inc
View source
<?php
class CourseObjectUbercart extends CourseObjectNode {
public function hasPolling() {
return TRUE;
}
function getTakeType() {
return 'content';
}
function take() {
global $user;
if (!($this
->getNode()->sell_price > 0) && variable_get('course_access_bypass_checkout', 1)) {
$this
->getFulfillment($user)
->setComplete(1)
->save();
}
if ($this
->getFulfillment($user)
->isComplete()) {
return "You've already purchased this activity.";
}
else {
$node_view = node_view($this
->getNode());
$atc = t('You must purchase this course before proceeding.') . drupal_render($node_view['display_price']) . drupal_render($node_view['add_to_cart']);
if (!$atc) {
return "Something isn't right...";
}
else {
return $atc;
}
}
}
public function optionsForm(&$form, &$form_state) {
parent::optionsForm($form, $form_state);
$form['node']['instance']['#title'] = t('Product to check');
$form['node']['instance']['#description'] .= '</br>' . t('Use an existing ubercart-enabled product for checking payment. Defaults to this course.');
}
public function optionsSubmit(&$form, &$form_state) {
if (isset($form_state['values']['instance'])) {
if (!$form_state['values']['instance']) {
$form_state['values']['instance'] = $this
->getCourse()
->id();
}
}
parent::optionsSubmit($form, $form_state);
}
public function create($node = NULL) {
if (!$this
->getInstanceId()) {
$this
->setOption('instance', $this
->getCourse()
->id());
}
}
function getNodeTypes() {
return uc_product_types();
}
function getCloneAbility() {
return t('Payment objects will be created as a reference to the new course');
}
public function freeze() {
return TRUE;
}
function thaw($ice) {
return $this
->getCourse()
->id();
}
}