logicampus-cvs Mailing List for Logicampus (Page 4)
Brought to you by:
trilexcom
You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(30) |
Sep
(77) |
Oct
(33) |
Nov
(29) |
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(36) |
Feb
(33) |
Mar
(5) |
Apr
(2) |
May
(7) |
Jun
(3) |
Jul
|
Aug
(2) |
Sep
(8) |
Oct
(1) |
Nov
(136) |
Dec
(30) |
2007 |
Jan
(64) |
Feb
(103) |
Mar
(29) |
Apr
(106) |
May
(185) |
Jun
(75) |
Jul
(3) |
Aug
(16) |
Sep
(154) |
Oct
(164) |
Nov
(26) |
Dec
|
2008 |
Jan
(15) |
Feb
(17) |
Mar
(32) |
Apr
(3) |
May
|
Jun
(4) |
Jul
|
Aug
(4) |
Sep
|
Oct
(2) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
(21) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
(3) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2010 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
From: Mark K <har...@us...> - 2008-03-01 23:43:25
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv9622/services/lobrepo Modified Files: add.lcp edit.lcp exam.lcp import.lcp myobj.lcp preview.lcp Log Message: Moving libraries into sub folders. Index: add.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/add.lcp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** add.lcp 5 Oct 2007 21:35:48 -0000 1.16 --- add.lcp 1 Mar 2008 23:43:19 -0000 1.17 *************** *** 10,15 **** include_once(LIB_PATH.'lc_table_renderer.php'); ! include_once(LIB_PATH.'lc_lob.php'); ! include_once(LIB_PATH.'lc_lob_renderer.php'); /** --- 10,15 ---- include_once(LIB_PATH.'lc_table_renderer.php'); ! include_once(LIB_PATH.'lob/lc_lob.php'); ! include_once(LIB_PATH.'lob/lc_lob_renderer.php'); /** Index: edit.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/edit.lcp,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** edit.lcp 17 Feb 2008 04:35:03 -0000 1.23 --- edit.lcp 1 Mar 2008 23:43:19 -0000 1.24 *************** *** 5,10 **** include_once(LIB_PATH.'PBDO/LobUserLink.php'); ! include_once(LIB_PATH.'lc_lob.php'); ! include_once(LIB_PATH.'lc_lob_test.php'); include_once(LIB_PATH.'lc_table.php'); include_once(LIB_PATH.'lc_table_renderer.php'); --- 5,10 ---- include_once(LIB_PATH.'PBDO/LobUserLink.php'); ! include_once(LIB_PATH.'lob/lc_lob.php'); ! include_once(LIB_PATH.'lob/lc_lob_test.php'); include_once(LIB_PATH.'lc_table.php'); include_once(LIB_PATH.'lc_table_renderer.php'); Index: import.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/import.lcp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** import.lcp 8 Oct 2007 22:18:54 -0000 1.11 --- import.lcp 1 Mar 2008 23:43:21 -0000 1.12 *************** *** 10,14 **** include_once(LIB_PATH.'PBDO/LobTest.php'); ! include_once(LIB_PATH.'lc_lob.php'); /** --- 10,14 ---- include_once(LIB_PATH.'PBDO/LobTest.php'); ! include_once(LIB_PATH.'lob/lc_lob.php'); /** Index: preview.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/preview.lcp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** preview.lcp 28 May 2007 20:46:08 -0000 1.2 --- preview.lcp 1 Mar 2008 23:43:21 -0000 1.3 *************** *** 3,7 **** include_once(LIB_PATH.'PBDO/LobContent.php'); ! include_once(LIB_PATH.'lc_lob.php'); include_once(LIB_PATH.'lc_table.php'); include_once(LIB_PATH.'lc_table_renderer.php'); --- 3,7 ---- include_once(LIB_PATH.'PBDO/LobContent.php'); ! include_once(LIB_PATH.'lob/lc_lob.php'); include_once(LIB_PATH.'lc_table.php'); include_once(LIB_PATH.'lc_table_renderer.php'); Index: myobj.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/myobj.lcp,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** myobj.lcp 8 Oct 2007 19:41:24 -0000 1.18 --- myobj.lcp 1 Mar 2008 23:43:21 -0000 1.19 *************** *** 7,12 **** include_once(LIB_PATH.'lc_table.php'); include_once(LIB_PATH.'lc_table_renderer.php'); ! include_once(LIB_PATH.'lc_lob.php'); ! include_once(LIB_PATH.'lc_lob_class.php'); include_once(SERVICE_PATH.'lobrepo/lob_table_renderer.php'); --- 7,12 ---- include_once(LIB_PATH.'lc_table.php'); include_once(LIB_PATH.'lc_table_renderer.php'); ! include_once(LIB_PATH.'lob/lc_lob.php'); ! include_once(LIB_PATH.'lob/lc_lob_class.php'); include_once(SERVICE_PATH.'lobrepo/lob_table_renderer.php'); Index: exam.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/exam.lcp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** exam.lcp 5 Oct 2007 22:37:38 -0000 1.2 --- exam.lcp 1 Mar 2008 23:43:19 -0000 1.3 *************** *** 7,12 **** include_once(LIB_PATH.'AssessmentLib.php'); ! include_once(LIB_PATH.'lc_lob.php'); ! include_once(LIB_PATH.'lc_lob_test.php'); include_once(LIB_PATH.'lc_table.php'); include_once(LIB_PATH.'lc_table_renderer.php'); --- 7,12 ---- include_once(LIB_PATH.'AssessmentLib.php'); ! include_once(LIB_PATH.'lob/lc_lob.php'); ! include_once(LIB_PATH.'lob/lc_lob_test.php'); include_once(LIB_PATH.'lc_table.php'); include_once(LIB_PATH.'lc_table_renderer.php'); |
From: Mark K <har...@us...> - 2008-03-01 23:42:42
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/lib/lob In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv9592/lob Log Message: Directory /cvsroot/logicampus/logicampus/src/logicreate/lib/lob added to the repository |
From: Mark K <har...@us...> - 2008-03-01 23:42:41
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/lib/lesson In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv9592/lesson Log Message: Directory /cvsroot/logicampus/logicampus/src/logicreate/lib/lesson added to the repository |
From: Mark K <har...@us...> - 2008-02-26 15:07:42
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/lib In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv8235 Modified Files: lc_table_calendar.php Log Message: Fix problem with calendar when a student is in multiple classes. Index: lc_table_calendar.php =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/lib/lc_table_calendar.php,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** lc_table_calendar.php 2 Nov 2007 00:57:27 -0000 1.18 --- lc_table_calendar.php 26 Feb 2008 15:07:36 -0000 1.19 *************** *** 479,483 **** */ function loadLessonEvents($start,$end) { ! $classIds = implode($this->classIds, ' or id_classes='); $sql =' --- 479,483 ---- */ function loadLessonEvents($start,$end) { ! $classIds = implode($this->classIds, ' or B.id_classes='); $sql =' |
From: Mark K <har...@us...> - 2008-02-17 04:36:31
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/templates In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv25994/templates Modified Files: edit_main.html Log Message: verbage Index: edit_main.html =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/templates/edit_main.html,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** edit_main.html 17 Feb 2008 04:10:27 -0000 1.13 --- edit_main.html 17 Feb 2008 04:36:27 -0000 1.14 *************** *** 44,47 **** --- 44,48 ---- </table> <form method="GET" action="<?=appurl('lobrepo/edit/event=change/id='.$lob->getRepoId());?>"> + <input type="submit" value="Change this object"/> </form> *************** *** 72,76 **** <li>Private: <?=$lob->isPrivate();?></li> <li>Version: <?=$lob->getVersion();?></li> ! <li>Last update on: <?= $lob->getEditedOn();?></li> <li>Date created: <?= $lob->getCreatedOn();?></li> </ul> --- 73,77 ---- <li>Private: <?=$lob->isPrivate();?></li> <li>Version: <?=$lob->getVersion();?></li> ! <li>Last update: <?= $lob->getEditedOn();?></li> <li>Date created: <?= $lob->getCreatedOn();?></li> </ul> |
From: Mark K <har...@us...> - 2008-02-17 04:35:39
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/classmgr In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv25612 Modified Files: classMaterial.lcp Log Message: syntax change Index: classMaterial.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/classmgr/classMaterial.lcp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** classMaterial.lcp 1 Feb 2008 03:05:38 -0000 1.1 --- classMaterial.lcp 17 Feb 2008 04:35:35 -0000 1.2 *************** *** 285,289 **** function run(&$db,&$u,&$lc,&$t) { ! $class_id = $u->activeClassTaught->id_classes; $datagrid = new DataGrid($this->module,$this->serviceName); --- 285,289 ---- function run(&$db,&$u,&$lc,&$t) { ! $classId = $u->activeClassTaught->id_classes; $datagrid = new DataGrid($this->module,$this->serviceName); *************** *** 296,300 **** LEFT JOIN class_lessons AS C ON B.lesson_id = C.id_class_lessons ! WHERE A.class_id = '.$u->activeClassTaught->id_classes.' AND A.lob_type = "content" ORDER BY B.due_offset ASC'; --- 296,300 ---- LEFT JOIN class_lessons AS C ON B.lesson_id = C.id_class_lessons ! WHERE A.class_id = '.$classId.' AND A.lob_type = "content" ORDER BY B.due_offset ASC'; *************** *** 307,311 **** LEFT JOIN class_lessons AS C ON B.lesson_id = C.id_class_lessons ! WHERE A.class_id = '.$u->activeClassTaught->id_classes.' AND A.lob_type = "content"'; --- 307,311 ---- LEFT JOIN class_lessons AS C ON B.lesson_id = C.id_class_lessons ! WHERE A.class_id = '.$classId.' AND A.lob_type = "content"'; |
From: Mark K <har...@us...> - 2008-02-17 04:35:06
|
Update of /cvsroot/logicampus/logicampus/data In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv25188/data Modified Files: lob_metadata.mysql.sql lob_class_metadata.mysql.sql Log Message: Adding source to the metadata. Index: lob_class_metadata.mysql.sql =================================================================== RCS file: /cvsroot/logicampus/logicampus/data/lob_class_metadata.mysql.sql,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** lob_class_metadata.mysql.sql 2 Oct 2007 17:06:37 -0000 1.1 --- lob_class_metadata.mysql.sql 17 Feb 2008 04:35:02 -0000 1.2 *************** *** 2,6 **** -- entity version: 0.0 -- DB type: mysql ! -- generated on: 10.02.2007 --- 2,6 ---- -- entity version: 0.0 -- DB type: mysql ! -- generated on: 02.16.2008 *************** *** 13,16 **** --- 13,17 ---- `subdisc` varchar (255) NOT NULL, `author` varchar (255) NOT NULL, + `source` varchar (255) NOT NULL, `copyright` varchar (255) NOT NULL, `license` varchar (255) NOT NULL, *************** *** 22,25 **** ); ! CREATE INDEX lob_class_repo_idx ON lob_class_metadata (lob_class_repo_id); --- 23,26 ---- ); ! CREATE INDEX `lob_class_repo_idx` ON `lob_class_metadata` (`lob_class_repo_id`); Index: lob_metadata.mysql.sql =================================================================== RCS file: /cvsroot/logicampus/logicampus/data/lob_metadata.mysql.sql,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** lob_metadata.mysql.sql 26 Sep 2007 20:26:51 -0000 1.2 --- lob_metadata.mysql.sql 17 Feb 2008 04:35:02 -0000 1.3 *************** *** 2,6 **** -- entity version: 0.0 -- DB type: mysql ! -- generated on: 09.26.2007 --- 2,6 ---- -- entity version: 0.0 -- DB type: mysql ! -- generated on: 02.16.2008 *************** *** 13,16 **** --- 13,17 ---- `subdisc` varchar (255) NOT NULL, `author` varchar (255) NOT NULL, + `source` varchar (255) NOT NULL, `copyright` varchar (255) NOT NULL, `license` varchar (255) NOT NULL, *************** *** 22,25 **** ); ! CREATE INDEX lob_repo_entry_idx ON lob_metadata (lob_repo_entry_id); --- 23,26 ---- ); ! CREATE INDEX `lob_repo_entry_idx` ON `lob_metadata` (`lob_repo_entry_id`); |
From: Mark K <har...@us...> - 2008-02-17 04:35:06
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/lib/PBDO In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv25188/src/logicreate/lib/PBDO Modified Files: LobClassMetadata.php LobMetadata.php Log Message: Adding source to the metadata. Index: LobMetadata.php =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/lib/PBDO/LobMetadata.php,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** LobMetadata.php 26 Sep 2007 20:30:37 -0000 1.2 --- LobMetadata.php 17 Feb 2008 04:35:03 -0000 1.3 *************** *** 12,15 **** --- 12,16 ---- var $subdisc; var $author; + var $source; var $copyright; var $license; *************** *** 25,28 **** --- 26,30 ---- 'subdisc'=>'varchar', 'author'=>'varchar', + 'source'=>'varchar', 'copyright'=>'varchar', 'license'=>'varchar', *************** *** 127,130 **** --- 129,133 ---- $st->fields['subdisc'] = 'subdisc'; $st->fields['author'] = 'author'; + $st->fields['source'] = 'source'; $st->fields['copyright'] = 'copyright'; $st->fields['license'] = 'license'; *************** *** 152,155 **** --- 155,159 ---- $st->fields['subdisc'] = $this->subdisc; $st->fields['author'] = $this->author; + $st->fields['source'] = $this->source; $st->fields['copyright'] = $this->copyright; $st->fields['license'] = $this->license; *************** *** 179,182 **** --- 183,187 ---- $st->fields['subdisc'] = $obj->subdisc; $st->fields['author'] = $obj->author; + $st->fields['source'] = $obj->source; $st->fields['copyright'] = $obj->copyright; $st->fields['license'] = $obj->license; *************** *** 248,251 **** --- 253,257 ---- $x->subdisc = $row['subdisc']; $x->author = $row['author']; + $x->source = $row['source']; $x->copyright = $row['copyright']; $x->license = $row['license']; Index: LobClassMetadata.php =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/lib/PBDO/LobClassMetadata.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** LobClassMetadata.php 2 Oct 2007 17:06:37 -0000 1.1 --- LobClassMetadata.php 17 Feb 2008 04:35:03 -0000 1.2 *************** *** 12,15 **** --- 12,16 ---- var $subdisc; var $author; + var $source; var $copyright; var $license; *************** *** 25,28 **** --- 26,30 ---- 'subdisc'=>'varchar', 'author'=>'varchar', + 'source'=>'varchar', 'copyright'=>'varchar', 'license'=>'varchar', *************** *** 127,130 **** --- 129,133 ---- $st->fields['subdisc'] = 'subdisc'; $st->fields['author'] = 'author'; + $st->fields['source'] = 'source'; $st->fields['copyright'] = 'copyright'; $st->fields['license'] = 'license'; *************** *** 152,155 **** --- 155,159 ---- $st->fields['subdisc'] = $this->subdisc; $st->fields['author'] = $this->author; + $st->fields['source'] = $this->source; $st->fields['copyright'] = $this->copyright; $st->fields['license'] = $this->license; *************** *** 179,182 **** --- 183,187 ---- $st->fields['subdisc'] = $obj->subdisc; $st->fields['author'] = $obj->author; + $st->fields['source'] = $obj->source; $st->fields['copyright'] = $obj->copyright; $st->fields['license'] = $obj->license; *************** *** 248,251 **** --- 253,257 ---- $x->subdisc = $row['subdisc']; $x->author = $row['author']; + $x->source = $row['source']; $x->copyright = $row['copyright']; $x->license = $row['license']; |
From: Mark K <har...@us...> - 2008-02-17 04:35:06
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/lib In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv25188/src/logicreate/lib Modified Files: lc_lob.php Log Message: Adding source to the metadata. Index: lc_lob.php =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/lib/lc_lob.php,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** lc_lob.php 17 Feb 2008 04:08:12 -0000 1.32 --- lc_lob.php 17 Feb 2008 04:35:03 -0000 1.33 *************** *** 372,375 **** --- 372,376 ---- $classLob->lobMetaObj->subdisc = $meta->subdisc; $classLob->lobMetaObj->author = $meta->author; + $classLob->lobMetaObj->source = $meta->source; $classLob->lobMetaObj->copyright = $meta->copyright; $classLob->lobMetaObj->license = $meta->license; |
From: Mark K <har...@us...> - 2008-02-17 04:35:06
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv25188/src/logicreate/services/lobrepo Modified Files: edit.lcp Log Message: Adding source to the metadata. Index: edit.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/edit.lcp,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** edit.lcp 17 Feb 2008 04:10:26 -0000 1.22 --- edit.lcp 17 Feb 2008 04:35:03 -0000 1.23 *************** *** 164,168 **** $t['lob'] = $lob; $t['licenses'] = $this->getLicenseArray(); - // $lob->updateMeta($lc->postvars); } --- 164,167 ---- |
From: Mark K <har...@us...> - 2008-02-17 04:35:06
|
Update of /cvsroot/logicampus/logicampus/src/pbdo In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv25188/src/pbdo Modified Files: logicampus_pbdo.xml Log Message: Adding source to the metadata. Index: logicampus_pbdo.xml =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/pbdo/logicampus_pbdo.xml,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** logicampus_pbdo.xml 2 Nov 2007 22:25:26 -0000 1.26 --- logicampus_pbdo.xml 17 Feb 2008 04:35:02 -0000 1.27 *************** *** 521,524 **** --- 521,528 ---- size="255" type="VARCHAR"/> + <attribute name="source" + required="true" + size="255" + type="VARCHAR"/> <attribute name="copyright" required="true" *************** *** 673,676 **** --- 677,684 ---- size="255" type="VARCHAR"/> + <attribute name="source" + required="true" + size="255" + type="VARCHAR"/> <attribute name="copyright" required="true" |
From: Mark K <har...@us...> - 2008-02-17 04:10:34
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv15762 Modified Files: edit.lcp Log Message: adding proper meta data editing for all types of content. Index: edit.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/edit.lcp,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** edit.lcp 8 Oct 2007 22:18:54 -0000 1.21 --- edit.lcp 17 Feb 2008 04:10:26 -0000 1.22 *************** *** 96,99 **** --- 96,100 ---- $lob->updateAsFile($lc->postvars['txTitle'], 'image'); } + $lob->set('lobDescription', $lc->postvars['description']); if ($lc->postvars['lob_sub_type'] == 'text') { *************** *** 129,133 **** - $lob->updateMeta($lc->postvars); $lob->save(); //get the new ID if a new save --- 130,133 ---- *************** *** 151,155 **** $this->presentor = 'redirectPresentation'; ! $t['url'] = appurl('lobrepo/edit/c='.$id); } --- 151,192 ---- $this->presentor = 'redirectPresentation'; ! $t['url'] = appurl('lobrepo/edit/event=meta/id='.$id); ! } ! ! ! /** ! * Show form for editing meta-data ! */ ! function metaRun(&$db,&$u,&$lc,&$t) { ! $lobId = intval($lc->getvars['id']); ! $lc->templateName = 'edit_meta'; ! $lob = new Lc_Lob_Content($lobId); ! $t['lob'] = $lob; ! $t['licenses'] = $this->getLicenseArray(); ! // $lob->updateMeta($lc->postvars); ! } ! ! /** ! * Save meta-data changes ! */ ! function saveMetaRun(&$db,&$u,&$lc,&$t) { ! $lobId = intval($lc->getvars['id']); ! if ($lobId < 1) { ! trigger_error('no valid ID found'); ! return false; ! } ! $lc->templateName = 'edit_meta'; ! $lob = new Lc_Lob_Content($lobId); ! if ($lob->repoObj->isNew()) { ! trigger_error('unable to load content object.'); ! return false; ! } ! $lob->updateMeta($lc->postvars); ! $lob->save(); ! ! $u->addSessionMessage('Successfully saved <i>"'.htmlentities($lob->get('lobTitle'),ENT_QUOTES, 'UTF-8').'"</i>.'); ! ! $this->presentor = 'redirectPresentation'; ! $t['url'] = appurl('lobrepo/edit/c='.$lob->repoObj->getPrimaryKey()); } *************** *** 212,215 **** --- 249,258 ---- } + + function getLicenseArray() { + return array('ccl30' => 'Creative Commons License 3.0', + 'ccancsa30' => 'Creative Commons Attribution-Noncommercial-Share Alike 3.0', + 'private' => 'Private Copyright'); + } } |
From: Mark K <har...@us...> - 2008-02-17 04:10:34
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/templates In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv15762/templates Modified Files: add_doc.html add_html.html add_text.html edit_main.html Added Files: edit_meta.html Log Message: adding proper meta data editing for all types of content. Index: add_doc.html =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/templates/add_doc.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** add_doc.html 4 Oct 2007 18:54:48 -0000 1.6 --- add_doc.html 17 Feb 2008 04:10:26 -0000 1.7 *************** *** 10,15 **** <hr/> - - <form action="<?=appurl('lobrepo/edit/event=save');?>" method="POST" enctype="multipart/form-data"> <table width="100%" border="0" cellspacing="2" cellpadding="2"> --- 10,13 ---- *************** *** 18,26 **** </tr> - <tr><td valign="top" class="">*Enter subject.</td><td valign="top" class=""><input type="text" id="md_subj" name="md_subj" value="<?=htmlentities($t['lob']->getMeta('subject'));?>" size="25" maxlength="255"></td></tr> - - <tr><td valign="top" class="">*Enter sub-discipline.</td><td valign="top" class=""><input type="text" id="md_subdisc" name="md_subdisc" value="<?=htmlentities($t['lob']->getMeta('subdisc'));?>" size="25" maxlength="255"></td></tr> <tr><td valign="top" class="">*Upload Your File</td><td valign="top" class=""> ! <input type="file" id="document" name="document" value="" size=""> </td></tr> <tr><td valign="top" class="">Enter a Description</td><td valign="top" class=""> --- 16,21 ---- </tr> <tr><td valign="top" class="">*Upload Your File</td><td valign="top" class=""> ! <input size="50" type="file" id="document" name="document" value="" size=""> </td></tr> <tr><td valign="top" class="">Enter a Description</td><td valign="top" class=""> Index: edit_main.html =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/templates/edit_main.html,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** edit_main.html 8 Oct 2007 22:18:54 -0000 1.12 --- edit_main.html 17 Feb 2008 04:10:27 -0000 1.13 *************** *** 93,96 **** --- 93,100 ---- </tr> </table> + <form method="GET" action="<?=appurl('lobrepo/edit/event=meta/id='.$lob->getRepoId());?>"> + <input type="submit" value="Change Meta-data"/> + </form> + <br/> Index: add_html.html =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/templates/add_html.html,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** add_html.html 4 Oct 2007 18:54:48 -0000 1.9 --- add_html.html 17 Feb 2008 04:10:27 -0000 1.10 *************** *** 25,55 **** </td> </tr> - <tr> - <td colspan="2" valign="top" class=""> </td> - </tr> - <tr> - <td valign="top" class="">Subject</td> - <td valign="top" class=""><input type="text" id="md_subj" name="md_subj" value="<?=htmlentities($t['lob']->getMeta('subject'));?>" size="" maxlength=""></td> - </tr> - <tr> - <td valign="top" class="">Sub-Discipline</td> - <td valign="top" class=""><input type="text" id="md_subdisc" name="md_subdisc" value="<?=htmlentities($t['lob']->getMeta('subdisc'));?>" size="" maxlength=""></td> - </tr> - <tr> - <td valign="top" class="">Author</td> - <td valign="top" class=""><input type="text" id="md_author" name="md_author" value="<?=htmlentities($t['lob']->getMeta('author'));?>" size="" maxlength=""></td> - </tr> - <tr> - <td valign="top" class="">Copyright Year</td> - <td valign="top" class=""><input type="text" id="md_copyright" name="md_copyright" value="<?=htmlentities($t['lob']->getMeta('copyright'));?>" size="" maxlength=""></td> - </tr> - <tr> - <td valign="top" class="">License</td> - <td valign="top" class=""><input type="text" id="md_license" name="md_license" value="<?=htmlentities($t['lob']->getMeta('license'));?>" size="" maxlength=""></td> - </tr> - <tr> - <td valign="top" class=""></td> - <td valign="top" class=""><input type="submit" id="sbmt_button" name="sbmt_button" value="Save Content"></td> - </tr> </table> --- 25,28 ---- Index: add_text.html =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/lobrepo/templates/add_text.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** add_text.html 12 Sep 2007 04:05:46 -0000 1.1 --- add_text.html 17 Feb 2008 04:10:27 -0000 1.2 *************** *** 26,52 **** </tr> <tr> - <td colspan="2" valign="top" class=""> </td> - </tr> - <tr> - <td valign="top" class="">Subject</td> - <td valign="top" class=""><input type="text" id="md_subj" name="md_subj" value="<?=htmlentities($t['lob']->getMeta('subject'));?>" size="" maxlength=""></td> - </tr> - <tr> - <td valign="top" class="">Sub-Discipline</td> - <td valign="top" class=""><input type="text" id="md_subdisc" name="md_subdisc" value="<?=htmlentities($t['lob']->getMeta('subdisc'));?>" size="" maxlength=""></td> - </tr> - <tr> - <td valign="top" class="">Author</td> - <td valign="top" class=""><input type="text" id="md_author" name="md_author" value="<?=htmlentities($t['lob']->getMeta('author'));?>" size="" maxlength=""></td> - </tr> - <tr> - <td valign="top" class="">Copyright Year</td> - <td valign="top" class=""><input type="text" id="md_copyright" name="md_copyright" value="<?=htmlentities($t['lob']->getMeta('copyright'));?>" size="" maxlength=""></td> - </tr> - <tr> - <td valign="top" class="">License</td> - <td valign="top" class=""><input type="text" id="md_license" name="md_license" value="<?=htmlentities($t['lob']->getMeta('license'));?>" size="" maxlength=""></td> - </tr> - <tr> <td valign="top" class=""></td> <td valign="top" class=""><input type="submit" id="submit" name="submit" value="Save Content"></td> --- 26,29 ---- --- NEW FILE: edit_meta.html --- <?php $lob = $t['lob'];?> <h4>Edit Learning Objects</h4> <a href="<?=appurl('lobrepo/');?>">Learning Objects Home</a> • <a href="<?=appurl('lobrepo/myobj');?>">My Learning Objects</a> • <a href="<?=appurl('lobrepo/import');?>">Import Learning Objects</a> • <a href="<?=appurl('lobrepo/add');?>">Add Learning Objects</a> <hr/> <h3><?= $lob->get('lobTitle');?></h3> <form method="POST" action="<?=appurl('lobrepo/edit/event=saveMeta/id='.$lob->getRepoId());?>"> <table border="0" width="600"> <tr> <td valign="top" width="300" colspan="2"> <div style="width:300px"> <fieldset> <legend>Status</legend> <ul> <li>Private: <?=$lob->isPrivate();?></li> <li>Version: <?=$lob->getVersion();?></li> <li>Last update on: <?= $lob->getEditedOn();?></li> <li>Date created: <?= $lob->getCreatedOn();?></li> </ul> </fieldset> </div> </td> </tr> <tr> <td valign="top" class="">Subject</td> <td valign="top" class=""><input type="text" id="md_subj" name="md_subj" value="<?=htmlentities($t['lob']->getMeta('subject'));?>" size="50" maxlength=""></td> </tr> <tr> <td valign="top" class="">Sub-Discipline</td> <td valign="top" class=""><input type="text" id="md_subdisc" name="md_subdisc" value="<?=htmlentities($t['lob']->getMeta('subdisc'));?>" size="50" maxlength=""></td> </tr> <tr> <td valign="top" class="">Author</td> <td valign="top" class=""><input type="text" id="md_author" name="md_author" value="<?=htmlentities($t['lob']->getMeta('author'));?>" size="50" maxlength=""></td> </tr> <tr> <td valign="top" class="">Source</td> <td valign="top" class=""><input type="text" id="md_source" name="md_source" value="<?=htmlentities($t['lob']->getMeta('source'));?>" size="50" maxlength=""></td> </tr> <tr> <td valign="top" class="">Copyright Year</td> <td valign="top" class=""><input type="text" id="md_copyright" name="md_copyright" value="<?=htmlentities($t['lob']->getMeta('copyright'));?>" size="24" maxlength=""></td> </tr> <tr> <td valign="top" class="">License</td> <td valign="top" class=""><select id="md_license" name="md_license"> <?php echo makeOptions($t['licenses'], htmlentities($t['lob']->getMeta('license'))); ?></select> </td> </tr> <tr> <td valign="top" class=""></td> <td valign="top" class=""><input type="submit" id="sbmt_button" name="sbmt_button" value="Save Content"></td> </tr> </table> </form> |
From: Mark K <har...@us...> - 2008-02-17 04:08:17
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/lib In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv14897 Modified Files: lc_lob.php Log Message: fixing nasty bug when figuring out mime types. Index: lc_lob.php =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/lib/lc_lob.php,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** lc_lob.php 9 Oct 2007 18:44:20 -0000 1.31 --- lc_lob.php 17 Feb 2008 04:08:12 -0000 1.32 *************** *** 227,230 **** --- 227,231 ---- $this->setMeta('lobKind','content'); $this->setMeta('author', $vars['md_author']); + $this->setMeta('source', $vars['md_source']); $this->setMeta('copyright', $vars['md_copyright']); $this->setMeta('license', $vars['md_license']); *************** *** 587,596 **** * @static */ ! function getMimeForSubtype($subType,$ext='') { if ($ext == 'jpeg' || $ext == 'pjpeg' || $ext == 'jpg') { $ext = 'jpeg'; } ! switch($subType) { case 'text': return 'text/plain'; --- 588,597 ---- * @static */ ! function getMimeForSubtype($subtype,$ext='') { if ($ext == 'jpeg' || $ext == 'pjpeg' || $ext == 'jpg') { $ext = 'jpeg'; } ! switch($subtype) { case 'text': return 'text/plain'; |
From: Mark K <har...@us...> - 2008-02-17 03:20:11
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/lib In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv27886 Modified Files: LC_user.php Log Message: possible fix to all login problems, no more REPLACE syntax. Index: LC_user.php =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/lib/LC_user.php,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** LC_user.php 26 Jan 2008 21:21:45 -0000 1.36 --- LC_user.php 17 Feb 2008 03:20:03 -0000 1.37 *************** *** 433,444 **** $sessid = $this->_sessionKey; $val=base64_encode($val); ! $s="UPDATE lcSessions SET username =\"".$this->username."\", sessdata = \"".$val."\" WHERE sesskey = '".$sessid."'"; if ($this->username == "anonymous" ) { ! $s="UPDATE lcSessions SET sessdata = \"".$val."\" WHERE sesskey = '".$sessid."'"; } ! $queryWorked = $db->query($s); $updateWorked = $db->getAffectedRows(); if ($updateWorked < 0) { ! die('update did not work ' .$updateWorked); $e = ErrorStack::pullError('php'); --- 433,444 ---- $sessid = $this->_sessionKey; $val=base64_encode($val); ! $update="UPDATE lcSessions SET username =\"".$this->username."\", sessdata = \"".$val."\" WHERE sesskey = '".$sessid."'"; if ($this->username == "anonymous" ) { ! $update="UPDATE lcSessions SET sessdata = \"".$val."\" WHERE sesskey = '".$sessid."'"; } ! $queryWorked = $db->query($update); $updateWorked = $db->getAffectedRows(); if ($updateWorked < 0) { ! // die('update did not work ' .$updateWorked. "\n <br>".$s); $e = ErrorStack::pullError('php'); *************** *** 446,454 **** $queryWorked = $db->query($s); $e = ErrorStack::pullError('php'); ! $s="INSERT into lcSessions (username,sessdata,sesskey) values ('".$this->username."','$val','$sessid')"; ! if ($this->username == "anonymous" ) { ! $s="INSERT into lcSessions (sessdata,sesskey) values ('$val','$sessid')"; ! } $db->query($s); } return true; --- 446,463 ---- $queryWorked = $db->query($s); $e = ErrorStack::pullError('php'); ! ! //try the update again ! // could be duplicate key on username, or on session ID $db->query($s); + $queryWorked = $db->query($update); + $updateWorked = $db->getAffectedRows(); + if ($updateWorked < 0) { + $e = ErrorStack::pullError('php'); + $s="INSERT into lcSessions (username,sessdata,sesskey) values ('".$this->username."','$val','$sessid')"; + if ($this->username == "anonymous" ) { + $s="INSERT into lcSessions (sessdata,sesskey) values ('$val','$sessid')"; + } + $db->query($s); + } } return true; |
From: Mark K <har...@us...> - 2008-02-01 03:11:15
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/unitTest In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv20284/services/unitTest Modified Files: learningobjectTest.php Log Message: fixes to learning object tests. Index: learningobjectTest.php =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/unitTest/learningobjectTest.php,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** learningobjectTest.php 27 Sep 2007 20:11:36 -0000 1.3 --- learningobjectTest.php 1 Feb 2008 03:11:09 -0000 1.4 *************** *** 3,6 **** --- 3,7 ---- include(LIB_PATH.'lc_lob_content.php'); include(LIB_PATH.'lc_lob_class.php'); + include(LIB_PATH.'lc_lob_test.php'); class LearningObjectTest extends UnitTestCase { *************** *** 91,103 **** */ function testCopyARepoEntry() { $lob = new Lc_Lob_Content(); //setup a fake PKEY $lob->repoObj->lobRepoEntryId = 1; ! $classContent = $lob->useInClass('notify'); $e = ErrorStack::pullError('php'); //e might be an error saying that the repo doesn't have all its data. if ($e) { ! $this->fail(); } else { $this->assertTrue( is_object($classContent) ); --- 92,105 ---- */ function testCopyARepoEntry() { + $classId = 1; $lob = new Lc_Lob_Content(); //setup a fake PKEY $lob->repoObj->lobRepoEntryId = 1; ! $classContent = $lob->useInClass($classId,'notify'); $e = ErrorStack::pullError('php'); //e might be an error saying that the repo doesn't have all its data. if ($e) { ! $this->fail($e->message); } else { $this->assertTrue( is_object($classContent) ); |
From: Mark K <har...@us...> - 2008-02-01 03:11:15
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/login In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv20284/services/login Modified Files: main.lcp Log Message: fixes to learning object tests. Index: main.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/login/main.lcp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** main.lcp 8 Oct 2007 14:29:09 -0000 1.10 --- main.lcp 1 Feb 2008 03:11:09 -0000 1.11 *************** *** 118,122 **** } } - if ($lcUser->sessionvars['loginredir'] != '') { $this->presentor='redirectPresentation'; --- 118,121 ---- |
From: Mark K <har...@us...> - 2008-02-01 03:05:43
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/lib In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv17944/src/logicreate/lib Modified Files: pellet.php Log Message: Adding simple class materials service. Index: pellet.php =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/lib/pellet.php,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** pellet.php 26 Jan 2008 02:09:13 -0000 1.32 --- pellet.php 1 Feb 2008 03:05:38 -0000 1.33 *************** *** 576,580 **** lct('Activities') => '%classmgr/assignmentManage/', lct('FAQ') => '%classmgr/faq/', ! lct('Learning Objects') => '%lobrepo/myobj/', lct('Gradebook') => '%gradebook/', lct('Lessons') => '%classmgr/lessonManager/', --- 576,580 ---- lct('Activities') => '%classmgr/assignmentManage/', lct('FAQ') => '%classmgr/faq/', ! lct('Classroom Material') => 'classMaterial/', lct('Gradebook') => '%gradebook/', lct('Lessons') => '%classmgr/lessonManager/', |
From: Mark K <har...@us...> - 2008-02-01 03:05:42
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/classmgr In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv17944/src/logicreate/services/classmgr Added Files: classMaterial.lcp Log Message: Adding simple class materials service. --- NEW FILE: classMaterial.lcp --- <?php /** * */ include_once(LIB_PATH.'datagrid.php'); include_once(LIB_PATH."SiteForms.php"); include_once(LIB_PATH."classAssignmentObj.php"); include_once(LIB_PATH."ClassGradebookEntries.php"); include_once(LIB_PATH."ClassGradebook.php"); include_once(LIB_PATH."ClassGradebookVal.php"); include_once(LIB_PATH.'lc_lesson.php'); include_once(LIB_PATH.'lc_lesson_sequence.php'); include_once(LIB_PATH.'lc_lob.php'); include_once(LIB_PATH.'lc_lob_class.php'); class classMaterial extends FacultyService { var $presentor = 'htmlPresentation'; var $inactivelinks = array( 'Classroom Material' ); var $applinks = array(); var $sectionTitle = "Classroom Materials"; /** * show a list of available GBEs to insert this assignment into */ function showEntriesListRun(&$db,&$u,&$lc,&$t) { $lc->templateName = 'assignmentManage_pushtoGradebook'; // get assignment object $assignmentObj = classAssignmentObj::_getFromDB($lc->getvars['id_class_assignments'], 'id_class_assignments', 'id_classes='.$u->activeClassTaught->id_classes); // ok lets give a list, it's our view time viewing this //we don't want people pushing assignments into assessment entries... // grades will get all screwed up include_once(LIB_PATH.'ClassGradebookEntries.php'); $gradebook_entries_obj = ClassGradebookEntriesPeer::doSelect('id_classes='.$assignmentObj->id_classes. ' AND assessment_id = 0 AND assignment_id = 0 ORDER BY id_class_gradebook_categories ASC, title ASC'); if ( is_array($gradebook_entries_obj) ) { $t['table'] .= '<table border="0" align="center"><tr><th>Code / Entry Name</th><td> </td></tr>'; foreach($gradebook_entries_obj as $object) { $t['table'] .= '<tr><td><a href="'.modurl('assignmentManage/event=pushtoGradebook/id_class_assignments='.$assignmentObj->id_class_assignments.'/id_class_gradebook_entries='.$object->get('idClassGradebookEntries')).'">'; $t['table'] .= '['.$object->get('gradebookCode').'] '. $object->get('title').'</td>'; $t['table'] .= '<td><- click the entry to publish there</td></tr>'; } $t['table'] .= '</table>'; } } /** * do the actual pushing */ function pushtoGradebookRun(&$db,&$u,&$lc,&$t) { include_once(LIB_PATH.'ClassGradebookVal.php'); include_once(LIB_PATH.'ClassGradebookEntries.php'); // get assignment object $assignmentObj = classAssignmentObj::_getFromDB($lc->getvars['id_class_assignments'], 'id_class_assignments', 'id_classes='.$u->activeClassTaught->id_classes); $t['assignmentObj'] = $assignmentObj; $entryObj = ClassGradebookEntries::load( array('id_class_gradebook_entries'=>$lc->getvars['id_class_gradebook_entries'], 'id_classes'=>$u->activeClassTaught->id_classes, 'assignment_id'=>'0','assessment_id'=>'0') ); //if this was loaded, but has no assignment id, set the id and save it if ( is_object($entryObj) && (!$entryObj->assignmentId || !$entryObj->dateDue || !$entryObj->assessmentId) ) { $entryObj->assignmentId = $assignmentObj->id_class_assignments; $entryObj->dateDue = $assignmentObj->dueDate; $entryObj->save(); } else { //they clicked a link with an id that they don't own $this->presentor = 'errorMessage'; $t['message'] = "You don't own the gradebook entry #".$lc->getvars['id_class_gradebook_entries']." or it is already attached to another assignment or assessment."; $t['details'] = "Go back and select another gradebook entry. If you think you've gotten this message in error, contact the helpdesk."; $t['details'] .= "<br/>Assignment ID = ".$entryObj->assignmentId." - Assessment ID = ".$entryObj->assessmentId; return; } //need both assignment and entry permission to update if ($assignmentObj->id_classes && $entryObj->idClassGradebookEntries) { // __FIXME__ try to get a GBE, if there's one that relates via GBE's assignment_id field, then // go in this next block // pushing if ((int)$lc->getvars['id_class_gradebook_entries'] > 0) { $lc->getvars['id_class_gradebook_entries'] = (int)$lc->getvars['id_class_gradebook_entries']; // making it an int // lets add user's grades to the VAL of this entry //__FIXME__ not really a fix me but a notice // all inactive students will still have grades pushed to the gradebook // is this okay? should be because they can't get access to the GB anyway // getting class list w/ grades $sql = ' SELECT A.*, B.id_classes FROM class_assignments_grades as A INNER JOIN class_assignments as B ON A.id_class_assignments = B.id_class_assignments WHERE A.id_class_assignments='.$assignmentObj->id_class_assignments.' '; $db->query($sql); $db3 = DB::getHandle(); while ($db->nextRecord()) { // doing a swap off.. remove one, then readd it $sql = ' DELETE FROM class_gradebook_val WHERE ( id_class_gradebook_entries='.$lc->getvars['id_class_gradebook_entries'].' AND id_classes='.$assignmentObj->id_classes.' AND username=\''.$db->record['id_student'].'\') '; $db3->query($sql); $gradebook_val_obj = new ClassGradebookVal(); $gradebook_val_obj->set('username', $db->record['id_student']); $gradebook_val_obj->set('score', $db->record['grade']); $gradebook_val_obj->set('comments', $db->record['comments']); $gradebook_val_obj->set('idClasses', $db->record['id_classes']); $gradebook_val_obj->set('idClassGradebookEntries', $lc->getvars['id_class_gradebook_entries']); $gradebook_val_obj->save(); // I can't stop someone from entering these in multiple times right now //echo 'I am updating: '. $db->record['id_student']. '<br>'; } $this->run($db, $u, $lc, $t); return; } } else { $this->presentor = 'errorMessage'; $t['message'] = 'We are sorry to report that we could not locate the class this assignment belongs to, please try again!'; $t['details'] = 'You may not be the owner of this assignment or gradebook entry.'; return; } } /** * must push to class_gradebook_vals if there is a GBE associated with this */ function gradeStudentRun(&$db,&$u,&$lc,&$t) { $lc->getvars['id_class_assignments'] = (int)$lc->getvars['id_class_assignments']; $lc->getvars['student'] = trim($lc->getvars['student']); $lc->getvars['student'] = addslashes(stripslashes( $lc->getvars['student'])); $username = addslashes(stripslashes( $lc->getvars['student'])); $db->query('SELECT pkey from lcUsers where username="'.$lc->getvars['student'].'"'); $db->nextRecord(); $db->freeResult(); $studentId = $db->record['pkey']; $activityId = intval($lc->postvars['seqId']); $db->query('SELECT A.class_lesson_sequence_id FROM class_lesson_sequence A WHERE A.class_lesson_sequence_id = '.$activityId.' AND A.class_id = '.$u->activeClassTaught->id_classes); if (! $db->nextRecord() ) { $this->presentor = 'errorMessage'; $t['message'] = "You don't have permission to alter grades for this assignment"; $t['details'] = $lc->getvars['seqId'] . " is not an assignment ID that is owned by you or your current class."; return; } //__FIXME__ do one more security check on the student via 2 tables // not really usefull, someone wants to grade a student for a class that it's not in... // won't affect anything // this is a good query to find duplicates, just gotta make sure the student and assigment // belong to this current teacher! $sql = ' SELECT id_class_assignments_grades, grade, comments FROM class_assignments_grades WHERE (id_class_assignments='.$activityId.' AND id_student=\''.$username.'\') '; if ($lc->postvars['submit'] == 'Update') { //need to do explicit next record to get duplicate grades $db->query($sql); $db->nextRecord(); //this next block is in here for data cleanup, you can remove next semester // MAK 10-02-2003 if ( $db->getNumRows() > 1 ) { $db->query('DELETE FROM class_assignments_grades WHERE (id_class_assignments='.$activityId.' AND id_student=\''.$username.'\')'); $db->record['id_class_assignments_grades'] = 0; } if ((int)$db->record['id_class_assignments_grades'] > 0) { $sql = ' UPDATE class_assignments_grades SET grade='. number_format($lc->postvars['grade'], 2). ' , comments=\''. str_replace("'", '\'\'', stripslashes($lc->postvars['teachercomments'])). '\' WHERE id_class_assignments_grades='.$db->record['id_class_assignments_grades']; $db->query($sql); } else { $sql = ' INSERT INTO class_assignments_grades SET id_class_assignments='.(int)$lc->postvars['seqId'].', comments=\''. str_replace("'", '\'\'', stripslashes($lc->postvars['teachercomments'])). '\', grade='. number_format($lc->postvars['grade'], 2). ', id_student=\''.$username.'\' '; $db->query($sql); } //assignment_grades has been updated, let's find an associated GBE, if there is one we will push a new GBV $entryObj = ClassGradebookEntries::load( array('class_lesson_sequence_id'=>$activityId, 'id_classes'=>$u->activeClassTaught->id_classes) ); if ( is_object($entryObj) ) { $gbvObj = ClassGradebookVal::load( array('id_class_gradebook_entries'=>$entryObj->idClassGradebookEntries, 'student_id'=>$studentId) ); if (!is_object($gbvObj) ) { $gbvObj = new ClassGradebookVal(); $gbvObj->set('idClassGradebookEntries',$entryObj->idClassGradebookEntries); $gbvObj->set('idClasses',$u->activeClassTaught->id_classes); $gbvObj->set('studentId',$studentId); } $gbvObj->set('comments',$lc->postvars['teachercomments']); $gbvObj->set('score',$lc->postvars['grade']); $gbvObj->save(); } } $this->presentor = 'redirectPresentation'; $t['url'] = appurl('classmgr/assignmentManage/event=viewAssignment/id='.$activityId); return; } /** * Show a list of material in a datagrid * * Input data: * Output data: list of courses */ function run(&$db,&$u,&$lc,&$t) { $class_id = $u->activeClassTaught->id_classes; $datagrid = new DataGrid($this->module,$this->serviceName); $datagrid->sql = ' SELECT A.lob_title, C.title, A.lob_class_repo_id, B.class_lesson_sequence_id FROM class_lesson_sequence AS B LEFT JOIN lob_class_repo AS A ON A.lob_class_repo_id = B.lob_class_repo_id LEFT JOIN class_lessons AS C ON B.lesson_id = C.id_class_lessons WHERE A.class_id = '.$u->activeClassTaught->id_classes.' AND A.lob_type = "content" ORDER BY B.due_offset ASC'; $datagrid->countsql = ' SELECT count(*) as totalcount FROM class_lesson_sequence AS B LEFT JOIN lob_class_repo AS A ON A.lob_class_repo_id = B.lob_class_repo_id LEFT JOIN class_lessons AS C ON B.lesson_id = C.id_class_lessons WHERE A.class_id = '.$u->activeClassTaught->id_classes.' AND A.lob_type = "content"'; $datagrid->ignore = array('lob_class_repo_id', 'lob_guid', 'class_lesson_sequence_id'); $datagrid->headers = array( 'lob_title' => 'Content', 'title' => 'Lesson', 'links' => ' ' ); $datagrid->setCellWidth('links', '10%'); $datagrid->getRows(); $datagrid->class = 'datagrid'; //put all items with no due date at the end $datagrid->orderby = 'noDueDate ASC, dueDate'; if ( $lc->getvars['dgorder'] == 'title' ) { $datagrid->orderby = 'title'; } //show the one to many relationship of lessons in one column // using LessonRenderer // also, correct the checkbox selection state with a one to // many lookup /* $sql = "SELECT A.lob_class_repo_id, A.lesson_id, B.title FROM class_lesson_sequence AS A LEFT JOIN class_lessons AS B ON A.lesson_id = B.id_class_lessons WHERE B.id_classes = ".$class_id." ORDER BY B.title"; $db->query($sql); global $classmgr_itemsToTitles; $classmgr_itemsToTitles = array(); while ($db->nextRecord()) { $classmgr_itemsToTitles[$db->record['lob_class_repo_id']][] = $db->record['title']; } */ //collapse the double array into one string //Also, N'JECT data into the datagrid's internal memory so that it // becomes exposed to the internal column eval() statements foreach($classmgr_itemsToTitles as $k=>$v) { $classmgr_itemsToTitles[$k] = implode(" <br/>", $v); } // $datagrid->postpendCallbackColumn('DG_classmgr_injectLessonTitles', 'lesson_titles'); // $datagrid->postpendCallbackColumn('DG_classmgr_assignmentActions', 'links'); $t['table'] = $datagrid->toHTML(); $this->inactivelinks[] = 'List Activities'; $lc->templateName='assignmentManage_main'; } function viewAssignmentRun(&$db,&$u,&$lc,&$t) { include_once(LIB_PATH.'ClassGradebookEntries.php'); //load the assignment $classSeqId = intval($lc->getvars['id']); $classId = $u->activeClassTaught->id_classes; //get the lesson ID from the class_lesson_sequence object $seqItem = ClassLessonSequence::load( intval($lc->getvars['id']) ); $t['sequenceId'] = intval($lc->getvars['id']); $lessonId = $seqItem->lessonId; $lessonSequence = new LC_LessonSequence($lessonId,$classId); $lessonSequence->loadItems(); $lesson = new LC_Lesson($lessonId); $t['lessonTitle'] = $lesson->getTitle(); $activityLob = $lessonSequence->fetchObject($classSeqId); $t['startDate'] = $lessonSequence->getStartDate($lesson,$classSeqId); $t['dueDate'] = $lessonSequence->getDueDate($lesson,$classSeqId); $t['activity'] = $activityLob; // mgk 4/17/05 // per davidw/markk if (!facultyOnlyAuth($lc,$u)) { $lc->templateName = "assignmentManage_viewAssignment_observer"; return; } // load up a GBE to see if it has a gradebook entry, if not we need to instruct the teacher to // publish one last time, then it will save the relationship $entryObj = ClassGradebookEntries::load( array('class_lesson_sequence_id'=>$classSeqId) ); if ( is_object($entryObj) ) { $t['entryCode'] = $entryObj->gradebookCode; $t['entryLinked'] = true; } else { $t['entryCode'] = '<i>Not linked to a gradebook entry yet</i>'; $t['entryLinked'] = false; } // first view is listing all students in a particular assignment w/ assignment information to show $lc->templateName='assignmentManage_viewAssignment_one'; // give me a class list $sql = ' SELECT A.student_id, C.firstname, C.lastname, C.username FROM class_enrollment AS A INNER JOIN lcUsers AS B ON A.student_id = B.pkey INNER JOIN profile AS C ON B.username = C.username WHERE A.class_id='.$u->activeClassTaught->id_classes.' AND A.active=1 ORDER BY C.lastname ASC '; $db->query($sql); while ($db->nextRecord()) { $a_student_list[$db->record['student_id']] = $db->record; // $a_student_list[] = $db->record; } // I hate to do this but damn... This is soooooo inefficent.. but how often is something going to use this? foreach($a_student_list as $k=>$student) { // getting grade //don't need this, i added it to the join up above $sql = ' SELECT A.* FROM class_assignments_grades as A LEFT JOIN lcUsers AS B on B.username = A.id_student WHERE B.pkey=\''.$student['student_id'].'\' AND A.id_class_assignments='.$classSeqId.' '; $db->queryOne($sql); //*/ $a_student_list[$k]['grade'] = $db->record['grade']; $sql = 'SELECT COUNT(id_class_assignments) as completed, dateTurnin FROM class_assignments_turnin AS A LEFT JOIN lcUsers AS B on B.username = A.id_student WHERE id_class_assignments = '.$classSeqId.' AND B.pkey=\''.$student['student_id'].'\' GROUP BY id_class_assignments'; $db->queryOne($sql); $a_student_list[$k]['datecompleted'] = (($db->record['dateTurnin'] != null) ? date('F j Y g:i a',strtotime($db->record['dateTurnin'])) : ''); $a_student_list[$k]['completed'] = $db->record['completed']; ++$c; } $t['student_list'] = $a_student_list; //debug($t['student_list']); // get a class list and status applied to assignment // grab assign // connect assign to class // connect classs_section with classid (sectionNubmer=sectionNumber to class_section // then class_section.studentid to profile for names // get assignment text $db2 = DB::getHandle(); $db2->RESULT_TYPE = MYSQL_ASSOC; /* $sql = 'SELECT a.assign_text FROM class_assignments_turnin as a INNER JOIN class_assignments AS b ON a.id_class_assignments = b.id_class_assignments WHERE assign_type=0 AND b.id_classes='. $u->activeClassTaught->id_classes. ' AND a.id_class_assignments='. $lc->getvars['id_class_assignments'].' AND a.id_student=\''. $lc->getvars['student'].'\''; $db2->queryOne($sql); //debug($db2->record); $t['turnin'] = $db2->record; */ } function viewSubmitRun(&$db,&$u,&$lc,&$t) { include_once(LIB_PATH.'ClassGradebookEntries.php'); //load the assignment $classSeqId = intval($lc->getvars['id']); $classId = $u->activeClassTaught->id_classes; //get the lesson ID from the class_lesson_sequence object $seqItem = ClassLessonSequence::load( intval($lc->getvars['id']) ); $t['sequenceId'] = intval($lc->getvars['id']); $lessonId = $seqItem->lessonId; $lessonSequence = new LC_LessonSequence($lessonId,$classId); $lessonSequence->loadItems(); $lesson = new LC_Lesson($lessonId); $t['lessonTitle'] = $lesson->getTitle(); $activityLob = $lessonSequence->fetchObject($classSeqId); $t['startDate'] = $lessonSequence->getStartDate($lesson,$classSeqId); $t['dueDate'] = $lessonSequence->getDueDate($lesson,$classSeqId); $t['activity'] = $activityLob; // load up a GBE to see if it has a gradebook entry, if not we need to instruct the teacher to // publish one last time, then it will save the relationship $entryObj = ClassGradebookEntries::load( array('class_lesson_sequence_id'=>$classSeqId) ); if ( is_object($entryObj) ) { $t['entryCode'] = $entryObj->gradebookCode; $t['entryLinked'] = true; } else { $t['entryCode'] = '<i>Not linked to a gradebook entry yet</i>'; $t['entryLinked'] = false; } $lc->templateName = 'assignmentManage_viewSubmit'; $t['id_class_assignments'] = $lc->getvars['id_class_assignments']; $t['student'] = $lc->getvars['student']; // find student information (verification kinda thing, plus.. i need there info!) $sql = ' SELECT id_class_assignments_grades, grade, comments FROM class_assignments_grades WHERE (id_class_assignments='.(int)$lc->getvars['id_class_assignments'].' AND id_student=\''.$lc->getvars['student'].'\') '; $db->query($sql); $db->nextRecord(); //cleanup bad data, assume two duplicate records, combine highest score // with longest comment. Should fix the data problems that we have if ( $db->getNumRows() > 1){ $record1 = $db->record; $db->nextRecord(); $record2 = $db->record; if ( strlen($record1['coments']) > strlen($record2['comments']) ) { $db->record['comments'] = $record1['comments']; } else { $db->record['comments'] = $record2['comments']; } if ( $record1['grade'] > $record2['grade'] ) { $db->record['grade'] = $record1['grade']; } else { $db->record['grade'] = $record2['grade']; } } // original code before this data fixing patch $t['student_grade_info'] = $db->record; // get current attachments for this assignment for this student (FILES ONLY) $studentId = addslashes($lc->getvars['student']); $t['studentId'] = $studentId; $t['attachments'] = $this->getAssignmentsByType($t['activity']->lobSub->responseTypeId, $studentId, $u->activeClassTaught->id_classes, $t['sequenceId'] ); $t['audioFiles'] = $this->getAssignmentsByType(6, $studentId, $u->activeClassTaught->id_classes, $t['sequenceId'] ); if (count($t['audioFiles']) > 0 ) { $t['hasAudio'] = true; $t['audioData'] = base64_encode(file_get_contents(CONTENT_PATH.'uploads/'.$audioFiles[0]['assign_file_name'])); } } function getFileRun($db,&$u,&$lc,&$t) { $sql = ' SELECT class_assignments_turnin.id_class_assignments_turnin, class_assignments_turnin.assign_file_name, class_assignments_turnin.assign_file_size, class_assignments_turnin.assign_file_mime, class_assignments_turnin.dateTurnin, class_assignments_turnin.assign_file_blob FROM class_assignments_turnin INNER JOIN class_lesson_sequence AS B ON class_assignments_turnin.id_class_assignments=B.class_lesson_sequence_id WHERE 1=1 AND class_assignments_turnin.id_class_assignments_turnin='.(int)$lc->getvars['turnin'].' AND id_student=\''. $lc->getvars['student'].'\' AND (assign_type=1 OR assign_type=6) AND B.class_id='. $u->activeClassTaught->id_classes. ' AND class_assignments_turnin.id_class_assignments='. $lc->getvars['id'].' '; $db->RESULT_TYPE = MYSQL_ASSOC; $db->queryOne($sql); ob_end_clean(); header("Cache-control: private"); header("Content-type: ".trim($db->record['assign_file_mime'])); header("Content-Disposition: attachment; filename=".trim($lc->getvars['student'].'_'.$u->activeClassTaught->courseFamilyNumber.'_'.$db->record['assign_file_name'])); $data = $db->record['assign_file_blob']; /* if ( strlen($db->record['assign_file_blob']) > 80) { $data = base64_decode($db->record['assign_file_blob']); } else { $data = implode("",file(CONTENT_PATH."/uploads/".$db->record['assign_file_blob'])); } */ header("Content-length: ".strlen($data)); echo $data; exit(); } function getAssignmentsByType($typeId,$username,$classId,$assignmentId) { $db = DB::getHandle(); $sql = ' SELECT class_assignments_turnin.id_class_assignments_turnin, class_assignments_turnin.assign_file_name, class_assignments_turnin.assign_file_size, class_assignments_turnin.assign_file_mime, class_assignments_turnin.dateTurnin FROM class_assignments_turnin INNER JOIN class_lesson_sequence AS B ON class_assignments_turnin.id_class_assignments=B.class_lesson_sequence_id WHERE id_student=\''. $username.'\' AND assign_type='.$typeId.' AND B.class_id='. $classId. ' AND class_assignments_turnin.id_class_assignments='. $assignmentId.' '; $db->RESULT_TYPE = MYSQL_ASSOC; $db->query($sql); $ret = array(); while ($db->nextRecord()) { $ret[] = $db->record; } return $ret; } } /** * works with datagrid to generate data for column 'Lesson Titles' */ /* function DG_classmgr_injectLessonTitles($row, &$ret) { global $classmgr_itemsToTitles; $ret = $classmgr_itemsToTitles[$row['lob_class_repo_id']]; } */ /** * works with datagrid to generate data for column action links */ function DG_classmgr_assignmentActions($row, &$ret) { $ret = ' <ul style="margin:0px;padding-left:15px"> <li><a href="'.appurl("classmgr/assignmentManage/event=viewAssignment/id=".$row['class_lesson_sequence_id']."/").'">Grade</a></li> <li><a href="'.appurl("classmgr/assignmentManage/event=deleteAssignment/id=".$row['id_class_assignments']."/").'" onclick="if (confirm(\'Are you SURE you want to delete this assignment?\')) { return true; } else { return false; }">Delete</a></li> </ul>'; } ?> |
From: Mark K <har...@us...> - 2008-02-01 03:05:42
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/classmgr/templates In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv17944/src/logicreate/services/classmgr/templates Modified Files: display_main.html Log Message: Adding simple class materials service. Index: display_main.html =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/classmgr/templates/display_main.html,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** display_main.html 2 Nov 2007 21:34:29 -0000 1.16 --- display_main.html 1 Feb 2008 03:05:38 -0000 1.17 *************** *** 36,40 **** </div> <ol style="font-size:130%"> ! <li><a href="<?=appurl('lobrepo/myobj');?>"><?=lct('Content')?></a></li> <li><a href="<?=modurl('lessonManager');?>"><?=lct('Lessons')?></a></li> --- 36,40 ---- </div> <ol style="font-size:130%"> ! <li><a href="<?=modurl('classMaterial');?>"><?=lct('Classroom Materials')?></a></li> <li><a href="<?=modurl('lessonManager');?>"><?=lct('Lessons')?></a></li> |
From: Mark K <har...@us...> - 2008-01-31 20:50:29
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/classmgr In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv32751 Modified Files: orientations.lcp Log Message: PHP5 strict error. Index: orientations.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/classmgr/orientations.lcp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** orientations.lcp 8 Oct 2007 14:21:07 -0000 1.3 --- orientations.lcp 31 Jan 2008 20:50:23 -0000 1.4 *************** *** 43,48 **** var $sectionTitle = 'Orientation Scheduling'; - var $inactivelinks = array(); - var $applinks = array('View schedule'=>'orientations/'); --- 43,46 ---- |
From: Mark K <har...@us...> - 2008-01-26 21:35:50
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/classroom In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv22333 Modified Files: assignments.lcp Log Message: Pass repo id to print view. Index: assignments.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/classroom/assignments.lcp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** assignments.lcp 2 Nov 2007 21:54:39 -0000 1.15 --- assignments.lcp 26 Jan 2008 21:35:45 -0000 1.16 *************** *** 166,169 **** --- 166,170 ---- $sequence = $lessonSequence->getSequence($classSeqId); $lesson = new LC_Lesson($lessonId); + $t['lessonId'] = $lessonId; $t['startDate'] = $lessonSequence->getStartDate($lesson, $classSeqId); $t['dueDate'] = $lessonSequence->getDueDate($lesson, $classSeqId); |
From: Mark K <har...@us...> - 2008-01-26 21:35:50
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/classroom/templates In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv22333/templates Modified Files: assignments_view.html Log Message: Pass repo id to print view. Index: assignments_view.html =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/classroom/templates/assignments_view.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** assignments_view.html 3 Oct 2007 02:09:01 -0000 1.6 --- assignments_view.html 26 Jan 2008 21:35:45 -0000 1.7 *************** *** 2,8 **** <?=$t['msg'];?> - <?= - debug($t['sequence']); - ?> <TABLE width="100%"> <tr> --- 2,5 ---- *************** *** 33,37 **** <br> ! <a target="_blank" href="<?=modurl('assignments/event=view/print=yes/id='.$t['assignment']['id_class_assignments']);?>">Click here for printer friendly version</a> </td> --- 30,34 ---- <br> ! <a target="_blank" href="<?=modurl('assignments/event=view/print=yes/id='.$t['activity']->repoObj->lobRepoEntryId);?>/l=<?=$t['lessonId'];?>">Click here for printer friendly version</a> </td> |
From: Mark K <har...@us...> - 2008-01-26 21:29:48
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/welcome In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv20379 Modified Files: catalog.lcp Log Message: only show active courses from the course catalog. Index: catalog.lcp =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/welcome/catalog.lcp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** catalog.lcp 12 May 2007 18:54:49 -0000 1.1 --- catalog.lcp 26 Jan 2008 21:29:40 -0000 1.2 *************** *** 134,138 **** "WS"=>'Women\'s Studies', ); ! return $courses; } } --- 134,146 ---- "WS"=>'Women\'s Studies', ); ! $db = DB::getHandle(); ! // echo ('SELECT * FROM courses WHERE courseFamily IN ("'.implode('","', array_keys($courses)).'")'); ! $db->query('SELECT * FROM courses WHERE courseFamily IN ("'.implode('","', array_keys($courses)).'")'); ! $availCourses = array(); ! ! while ($db->nextRecord()) { ! $availCourses[ $db->record['courseFamily'] ] = $courses[ $db->record['courseFamily'] ]; ! } ! return $availCourses; } } |
From: Mark K <har...@us...> - 2008-01-26 21:29:48
|
Update of /cvsroot/logicampus/logicampus/src/logicreate/services/welcome/templates In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv20379/templates Modified Files: welcome_main.html Log Message: only show active courses from the course catalog. Index: welcome_main.html =================================================================== RCS file: /cvsroot/logicampus/logicampus/src/logicreate/services/welcome/templates/welcome_main.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** welcome_main.html 12 May 2007 19:01:09 -0000 1.3 --- welcome_main.html 26 Jan 2008 21:29:40 -0000 1.4 *************** *** 6,9 **** --- 6,12 ---- + <? + if (strlen($t['motd'])) { + ?> <table align="right" cellpadding="2" cellspacing="1" style="border: 1px solid silver;" width="250"> <tr> *************** *** 17,23 **** </table> ! <br/> <h4>Browse our course catalog</h4> <a href="<?= appurl('welcome/catalog');?>">Start browsing</a> --- 20,40 ---- </table> ! <?php ! } ! ?> <br/> <h4>Browse our course catalog</h4> <a href="<?= appurl('welcome/catalog');?>">Start browsing</a> + + <br/> + <br/> + + <h4>View your current classes</h4> + <a href="<?= appurl('classroom');?>">Classroom Portal</a> + + <br/> + <br/> + + <h4>Change your profile</h4> + <a href="<?= appurl('users/editProfile');?>">Edit profile</a> |