|
|
|
@ -10,85 +10,97 @@ |
|
|
|
|
*/ |
|
|
|
|
define('TIMELINE_STATUS_ACTIVE', '1'); |
|
|
|
|
define('TIMELINE_STATUS_INACTIVE', '2'); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Timeline model class definition |
|
|
|
|
*/ |
|
|
|
|
class Timeline extends Model { |
|
|
|
|
var $table; |
|
|
|
|
var $columns = array('headline', 'type', 'start_date', 'end_date', 'text', 'media', 'media_credit', 'media_caption', 'title_slide', 'parent_id', 'status','c_id'); |
|
|
|
|
var $is_course_model = true; |
|
|
|
|
|
|
|
|
|
public function __construct() { |
|
|
|
|
class Timeline extends Model |
|
|
|
|
{ |
|
|
|
|
public $table; |
|
|
|
|
public $columns = array('headline', 'type', 'start_date', 'end_date', 'text', 'media', 'media_credit', 'media_caption', 'title_slide', 'parent_id', 'status','c_id'); |
|
|
|
|
public $is_course_model = true; |
|
|
|
|
|
|
|
|
|
public function __construct() |
|
|
|
|
{ |
|
|
|
|
$this->table = Database::get_course_table(TABLE_TIMELINE); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get the count of elements |
|
|
|
|
*/ |
|
|
|
|
public function get_count() { |
|
|
|
|
public function get_count() |
|
|
|
|
{ |
|
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
|
$row = Database::select('count(*) as count', $this->table, array('where' => array('parent_id = ? AND c_id = ?' => array('0', $course_id))), 'first'); |
|
|
|
|
return $row['count']; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function get_all($where_conditions = array()) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param array $where_conditions |
|
|
|
|
* @return array |
|
|
|
|
*/ |
|
|
|
|
public function get_all($where_conditions = array()) |
|
|
|
|
{ |
|
|
|
|
return Database::select('*',$this->table, array('where'=>$where_conditions,'order' =>'headline ASC')); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Displays the title + grid |
|
|
|
|
*/ |
|
|
|
|
public function listing() { |
|
|
|
|
public function listing() |
|
|
|
|
{ |
|
|
|
|
// action links |
|
|
|
|
$html .= '<div class="actions">'; |
|
|
|
|
//$html .= '<a href="career_dashboard.php">'.Display::return_icon('back.png',get_lang('Back'),'','32').'</a>'; |
|
|
|
|
$html .= '<a href="'.api_get_self().'?action=add">'.Display::return_icon('add.png', get_lang('Add'),'','32').'</a>'; |
|
|
|
|
$html = '<div class="actions">'; |
|
|
|
|
//$html .= '<a href="career_dashboard.php">'.Display::return_icon('back.png',get_lang('Back'),'','32').'</a>'; |
|
|
|
|
$html .= '<a href="'.api_get_self().'?action=add">'.Display::return_icon('add.png', get_lang('Add'),'','32').'</a>'; |
|
|
|
|
$html .= '</div>'; |
|
|
|
|
$html .= Display::grid_html('timelines'); |
|
|
|
|
$html .= Display::grid_html('timelines'); |
|
|
|
|
return $html; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function get_status_list() { |
|
|
|
|
|
|
|
|
|
public function get_status_list() |
|
|
|
|
{ |
|
|
|
|
return array(TIMELINE_STATUS_ACTIVE => get_lang('Active'), TIMELINE_STATUS_INACTIVE => get_lang('Inactive')); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns a Form validator Obj |
|
|
|
|
* @todo the form should be auto generated |
|
|
|
|
* @param string url |
|
|
|
|
* @param string action add, edit |
|
|
|
|
* @return obj form validator obj |
|
|
|
|
* @return obj form validator obj |
|
|
|
|
*/ |
|
|
|
|
public function return_form($url, $action) { |
|
|
|
|
public function return_form($url, $action) |
|
|
|
|
{ |
|
|
|
|
$form = new FormValidator('timeline', 'post', $url); |
|
|
|
|
// Setting the form elements |
|
|
|
|
$header = get_lang('Add'); |
|
|
|
|
$header = get_lang('Add'); |
|
|
|
|
if ($action == 'edit') { |
|
|
|
|
$header = get_lang('Modify'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$form->addElement('header', $header); |
|
|
|
|
$id = isset($_GET['id']) ? intval($_GET['id']) : ''; |
|
|
|
|
$form->addElement('hidden', 'id', $id); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$form->addElement('text', 'headline', get_lang('Name'), array('size' => '70')); |
|
|
|
|
//$form->add_html_editor('description', get_lang('Description'), false, false, array('ToolbarSet' => 'careers','Width' => '100%', 'Height' => '250')); |
|
|
|
|
$status_list = $this->get_status_list(); |
|
|
|
|
//$form->add_html_editor('description', get_lang('Description'), false, false, array('ToolbarSet' => 'careers','Width' => '100%', 'Height' => '250')); |
|
|
|
|
$status_list = $this->get_status_list(); |
|
|
|
|
$form->addElement('select', 'status', get_lang('Status'), $status_list); |
|
|
|
|
if ($action == 'edit') { |
|
|
|
|
//$form->addElement('text', 'created_at', get_lang('CreatedAt')); |
|
|
|
|
//$form->freeze('created_at'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if ($action == 'edit') { |
|
|
|
|
$form->addElement('style_submit_button', 'submit', get_lang('Modify'), 'class="save"'); |
|
|
|
|
} else { |
|
|
|
|
$form->addElement('style_submit_button', 'submit', get_lang('Add'), 'class="save"'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$form->addRule('headline', get_lang('ThisFieldIsRequired'), 'required'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Setting the defaults |
|
|
|
|
$defaults = $this->get($id); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*if (!empty($defaults['created_at'])) { |
|
|
|
|
$defaults['created_at'] = api_convert_and_format_date($defaults['created_at']); |
|
|
|
|
} |
|
|
|
@ -96,27 +108,33 @@ class Timeline extends Model { |
|
|
|
|
$defaults['updated_at'] = api_convert_and_format_date($defaults['updated_at']); |
|
|
|
|
}*/ |
|
|
|
|
$form->setDefaults($defaults); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Setting the rules |
|
|
|
|
$form->addRule('headline', get_lang('ThisFieldIsRequired'), 'required'); |
|
|
|
|
return $form; |
|
|
|
|
$form->addRule('headline', get_lang('ThisFieldIsRequired'), 'required'); |
|
|
|
|
return $form; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function return_item_form($url, $action) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param $url |
|
|
|
|
* @param $action |
|
|
|
|
* @return FormValidator |
|
|
|
|
*/ |
|
|
|
|
public function return_item_form($url, $action) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
$form = new FormValidator('item_form', 'post', $url); |
|
|
|
|
// Settting the form elements |
|
|
|
|
$header = get_lang('Add'); |
|
|
|
|
$header = get_lang('Add'); |
|
|
|
|
if ($action == 'edit') { |
|
|
|
|
$header = get_lang('Modify'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$form->addElement('header', $header); |
|
|
|
|
$id = isset($_GET['id']) ? intval($_GET['id']) : ''; |
|
|
|
|
$parent_id = isset($_GET['parent_id']) ? intval($_GET['parent_id']) : ''; |
|
|
|
|
$form->addElement('hidden', 'parent_id', $parent_id); |
|
|
|
|
$form->addElement('hidden', 'parent_id', $parent_id); |
|
|
|
|
$form->addElement('hidden', 'id', $id); |
|
|
|
|
$form->addElement('text', 'headline', get_lang('Name'), array('class' => 'span4')); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//@todo fix this |
|
|
|
|
$form->addElement('text', 'start_date', get_lang('StartDate'), array('size' => '70')); |
|
|
|
|
$form->addElement('text', 'end_date', get_lang('EndDate'), array('size' => '70')); |
|
|
|
@ -125,13 +143,13 @@ class Timeline extends Model { |
|
|
|
|
$form->addElement('text', 'media_caption', get_lang('TimelineItemMediaCaption'), array('size' => '70')); |
|
|
|
|
$form->addElement('text', 'media_credit', get_lang('TimelineItemMediaCredit'), array('size' => '70')); |
|
|
|
|
$form->addElement('text', 'title_slide', get_lang('TimelineItemTitleSlide'), array('size' => '70')); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$form->addRule('headline', get_lang('ThisFieldIsRequired'), 'required'); |
|
|
|
|
$form->addRule('start_date', get_lang('ThisFieldIsRequired'), 'required'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//$form->add_html_editor('description', get_lang('Description'), false, false, array('ToolbarSet' => 'careers','Width' => '100%', 'Height' => '250')); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//$form->add_html_editor('description', get_lang('Description'), false, false, array('ToolbarSet' => 'careers','Width' => '100%', 'Height' => '250')); |
|
|
|
|
|
|
|
|
|
if ($action == 'edit') { |
|
|
|
|
// Setting the defaults |
|
|
|
|
$defaults = $this->get($id); |
|
|
|
@ -139,7 +157,7 @@ class Timeline extends Model { |
|
|
|
|
} else { |
|
|
|
|
$form->addElement('style_submit_button', 'submit', get_lang('Add'), 'class="save"'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*if (!empty($defaults['created_at'])) { |
|
|
|
|
$defaults['created_at'] = api_convert_and_format_date($defaults['created_at']); |
|
|
|
|
} |
|
|
|
@ -147,22 +165,31 @@ class Timeline extends Model { |
|
|
|
|
$defaults['updated_at'] = api_convert_and_format_date($defaults['updated_at']); |
|
|
|
|
}*/ |
|
|
|
|
$form->setDefaults($defaults); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Setting the rules |
|
|
|
|
$form->addRule('headline', get_lang('ThisFieldIsRequired'), 'required'); |
|
|
|
|
return $form; |
|
|
|
|
|
|
|
|
|
$form->addRule('headline', get_lang('ThisFieldIsRequired'), 'required'); |
|
|
|
|
return $form; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function save_item($params) { |
|
|
|
|
$params['c_id'] = api_get_course_int_id(); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param array $params |
|
|
|
|
* @return bool |
|
|
|
|
*/ |
|
|
|
|
public function save_item($params) |
|
|
|
|
{ |
|
|
|
|
$params['c_id'] = api_get_course_int_id(); |
|
|
|
|
$id = parent::save($params); |
|
|
|
|
if (!empty($id)) { |
|
|
|
|
//event_system(LOG_CAREER_CREATE, LOG_CAREER_ID, $id, api_get_utc_datetime(), api_get_user_id()); |
|
|
|
|
} |
|
|
|
|
return $id; |
|
|
|
|
return $id; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param array $params |
|
|
|
|
* @return bool |
|
|
|
|
*/ |
|
|
|
|
public function save($params) { |
|
|
|
|
$params['c_id'] = api_get_course_int_id(); |
|
|
|
|
$params['parent_id'] = '0'; |
|
|
|
@ -173,25 +200,25 @@ class Timeline extends Model { |
|
|
|
|
} |
|
|
|
|
return $id; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function delete($id) { |
|
|
|
|
parent::delete($id); |
|
|
|
|
//event_system(LOG_CAREER_DELETE, LOG_CAREER_ID, $id, api_get_utc_datetime(), api_get_user_id()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function get_url($id) { |
|
|
|
|
return api_get_path(WEB_AJAX_PATH).'timeline.ajax.php?a=get_timeline_content&id='.intval($id); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function get_timeline_content($id) { |
|
|
|
|
$timeline = array(); |
|
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
|
$timeline['timeline'] = $this->process_item($this->get($id)); |
|
|
|
|
$items = $this->process_items($this->get_all(array('parent_id = ? AND c_id = ? ' =>array($id, $course_id)))); |
|
|
|
|
$timeline['timeline'] = $this->process_item($this->get($id)); |
|
|
|
|
$items = $this->process_items($this->get_all(array('parent_id = ? AND c_id = ? ' =>array($id, $course_id)))); |
|
|
|
|
$timeline['timeline']['date'] = $items; |
|
|
|
|
return $timeline; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function process_items($items) { |
|
|
|
|
foreach ($items as &$item) { |
|
|
|
|
$item = $this->process_item($item); |
|
|
|
@ -208,15 +235,15 @@ class Timeline extends Model { |
|
|
|
|
if (!empty($item['end_date'])) { |
|
|
|
|
$item['endDate'] = $item['end_date']; |
|
|
|
|
} else { |
|
|
|
|
unset($item['endDate']); |
|
|
|
|
unset($item['endDate']); |
|
|
|
|
} |
|
|
|
|
unset($item['end_date']); |
|
|
|
|
// Assets |
|
|
|
|
$item['asset'] = array( 'media' => $item['media'], |
|
|
|
|
'credit' => $item['media_credit'], |
|
|
|
|
'caption' => $item['media_caption'], |
|
|
|
|
'credit' => $item['media_credit'], |
|
|
|
|
'caption' => $item['media_caption'], |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Cleaning items |
|
|
|
|
unset($item['id']); |
|
|
|
|
if (empty($item['type'])) { |
|
|
|
@ -227,8 +254,8 @@ class Timeline extends Model { |
|
|
|
|
unset($item['media_caption']); |
|
|
|
|
unset($item['status']); |
|
|
|
|
unset($item['title_slide']); |
|
|
|
|
unset($item['parent_id']); |
|
|
|
|
unset($item['parent_id']); |
|
|
|
|
unset($item['c_id']); |
|
|
|
|
return $item; |
|
|
|
|
return $item; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|