https://www.mediawiki.org/wiki/Special:Code/MediaWiki/113342

Revision: 113342
Author:   jeroendedauw
Date:     2012-03-08 01:50:44 +0000 (Thu, 08 Mar 2012)
Log Message:
-----------
work on logging - added logging of student article adittion

Modified Paths:
--------------
    trunk/extensions/EducationProgram/EducationProgram.i18n.php
    trunk/extensions/EducationProgram/EducationProgram.php
    trunk/extensions/EducationProgram/actions/EPAddArticleAction.php
    trunk/extensions/EducationProgram/includes/EPCourse.php
    trunk/extensions/EducationProgram/includes/EPLogFormatter.php

Modified: trunk/extensions/EducationProgram/EducationProgram.i18n.php
===================================================================
--- trunk/extensions/EducationProgram/EducationProgram.i18n.php 2012-03-08 
01:14:44 UTC (rev 113341)
+++ trunk/extensions/EducationProgram/EducationProgram.i18n.php 2012-03-08 
01:50:44 UTC (rev 113342)
@@ -70,6 +70,7 @@
        'log-name-online' => 'Education Program Online Ambassador log',
        'log-name-campus' => 'Education Program Campus Ambassador log',
        'log-name-instructor' => 'Education Program instructor log',
+       'log-name-eparticle' => 'Education Program article log',
 
        'log-header-institution' => 'These events track the changes that are 
made to Education Program institutions.',
        'log-header-course' => 'These events track the changes that are made to 
Education Program courses.',
@@ -117,6 +118,8 @@
        'logentry-student-selfadd' => '$1 enrolled in course $3',
        'logentry-student-selfremove' => '$1 disenrolled from course $3',
 
+       'logentry-eparticle-add' => '$1 added article $4 to 
{{GENDER:$2|his|her}} list of articles at course $3',
+
        // Preferences
        'prefs-education' => 'Education',
        'ep-prefs-showtoplink' => 'Show a link to [[Special:MyCourses|your 
courses]] at the top of every page.',

Modified: trunk/extensions/EducationProgram/EducationProgram.php
===================================================================
--- trunk/extensions/EducationProgram/EducationProgram.php      2012-03-08 
01:14:44 UTC (rev 113341)
+++ trunk/extensions/EducationProgram/EducationProgram.php      2012-03-08 
01:50:44 UTC (rev 113342)
@@ -88,6 +88,8 @@
 $wgAutoloadClasses['EPCoursePager']                            = dirname( 
__FILE__ ) . '/includes/EPCoursePager.php';
 $wgAutoloadClasses['EPInstructor']                                     = 
dirname( __FILE__ ) . '/includes/EPInstructor.php';
 $wgAutoloadClasses['EPLogFormatter']                           = dirname( 
__FILE__ ) . '/includes/EPLogFormatter.php';
+$wgAutoloadClasses['EPRoleChangeFormatter']            = dirname( __FILE__ ) . 
'/includes/EPLogFormatter.php';
+$wgAutoloadClasses['EPArticleFormatter']                       = dirname( 
__FILE__ ) . '/includes/EPLogFormatter.php';
 $wgAutoloadClasses['EPOrg']                                            = 
dirname( __FILE__ ) . '/includes/EPOrg.php';
 $wgAutoloadClasses['EPOrgPager']                                       = 
dirname( __FILE__ ) . '/includes/EPOrgPager.php';
 $wgAutoloadClasses['EPPager']                                          = 
dirname( __FILE__ ) . '/includes/EPPager.php';
@@ -209,10 +211,23 @@
 
 $wgLogActionsHandlers['institution/*'] = 'EPLogFormatter';
 $wgLogActionsHandlers['course/*'] = 'EPLogFormatter';
-$wgLogActionsHandlers['student/*'] = 'EPLogFormatter';
-$wgLogActionsHandlers['online/*'] = 'EPLogFormatter';
-$wgLogActionsHandlers['campus/*'] = 'EPLogFormatter';
-$wgLogActionsHandlers['instructor/*'] = 'EPLogFormatter';
+$wgLogActionsHandlers['student/selfadd'] = 'EPLogFormatter';
+$wgLogActionsHandlers['student/selfremove'] = 'EPLogFormatter';
+$wgLogActionsHandlers['student/add'] = 'EPRoleChangeFormatter';
+$wgLogActionsHandlers['student/remove'] = 'EPRoleChangeFormatter';
+$wgLogActionsHandlers['online/selfadd'] = 'EPLogFormatter';
+$wgLogActionsHandlers['online/selfremove'] = 'EPLogFormatter';
+$wgLogActionsHandlers['online/add'] = 'EPRoleChangeFormatter';
+$wgLogActionsHandlers['online/remove'] = 'EPRoleChangeFormatter';
+$wgLogActionsHandlers['campus/selfadd'] = 'EPLogFormatter';
+$wgLogActionsHandlers['campus/selfremove'] = 'EPLogFormatter';
+$wgLogActionsHandlers['campus/add'] = 'EPRoleChangeFormatter';
+$wgLogActionsHandlers['campus/remove'] = 'EPRoleChangeFormatter';
+$wgLogActionsHandlers['instructor/selfadd'] = 'EPLogFormatter';
+$wgLogActionsHandlers['instructor/selfremove'] = 'EPLogFormatter';
+$wgLogActionsHandlers['instructor/add'] = 'EPRoleChangeFormatter';
+$wgLogActionsHandlers['instructor/remove'] = 'EPRoleChangeFormatter';
+$wgLogActionsHandlers['eparticle/*'] = 'EPArticleFormatter';
 
 // Rights
 $wgAvailableRights[] = 'ep-org';                       // Manage orgs

Modified: trunk/extensions/EducationProgram/actions/EPAddArticleAction.php
===================================================================
--- trunk/extensions/EducationProgram/actions/EPAddArticleAction.php    
2012-03-08 01:14:44 UTC (rev 113341)
+++ trunk/extensions/EducationProgram/actions/EPAddArticleAction.php    
2012-03-08 01:50:44 UTC (rev 113342)
@@ -36,7 +36,7 @@
 
                if ( $user->matchEditToken( $req->getText( 'token' ), $salt ) 
&& !is_null( $title ) && $title->getArticleID() !== 0 ) {
                        $course = EPCourses::singleton()->selectRow(
-                               array( 'students' ),
+                               array( 'students', 'name' ),
                                array( 'id' => $req->getInt( 'course-id' ) )
                        );
 
@@ -51,7 +51,15 @@
                                        $article = 
EPArticles::singleton()->newFromArray( $articleData, true );
 
                                        if ( $article->save() ) {
-                                               // TODO: log
+                                               EPUtils::log( array(
+                                                       'type' => 'eparticle',
+                                                       'subtype' => 'add',
+                                                       'user' => 
$this->getUser(),
+                                                       'title' => 
$course->getTitle(),
+                                                       'parameters' => array(
+                                                               
'4::articlename' => $title->getFullText(),
+                                                       ),
+                                               ) );
                                        }
                                }
                        }

Modified: trunk/extensions/EducationProgram/includes/EPCourse.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPCourse.php     2012-03-08 
01:14:44 UTC (rev 113341)
+++ trunk/extensions/EducationProgram/includes/EPCourse.php     2012-03-08 
01:50:44 UTC (rev 113342)
@@ -693,11 +693,14 @@
                        'type' => $role,
                        'subtype' => $action,
                        'title' => $this->getTitle(),
-                       'parameters' => array(
+               );
+
+               if ( in_array( $action, array( 'add', 'remove' ) ) ) {
+                       $info['parameters'] = array(
                                '4::usercount' => count( $names ),
                                '5::users' => $names
-                       ),
-               );
+                       );
+               }
 
                if ( $message !== '' ) {
                        $info['comment'] = $message;

Modified: trunk/extensions/EducationProgram/includes/EPLogFormatter.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPLogFormatter.php       
2012-03-08 01:14:44 UTC (rev 113341)
+++ trunk/extensions/EducationProgram/includes/EPLogFormatter.php       
2012-03-08 01:50:44 UTC (rev 113342)
@@ -39,6 +39,10 @@
                return $link;
        }
 
+}
+
+class EPRoleChangeFormatter extends EPLogFormatter {
+
        /**
         * (non-PHPdoc)
         * @see LogFormatter::extractParameters()
@@ -47,10 +51,31 @@
                $params = parent::extractParameters();
 
                if ( !empty( $params ) ) {
-                       $params[4] = $this->context->getLanguage()->listToText( 
(array)$params[4] );
+                       $lang = $this->context->getLanguage();
+
+                       $params[3] = $lang->formatNum( $params[3] );
+                       $params[4] = $lang->listToText( (array)$params[4] );
                }
 
                return $params;
        }
-       
+
 }
+
+class EPArticleFormatter extends EPLogFormatter {
+
+       /**
+        * (non-PHPdoc)
+        * @see LogFormatter::extractParameters()
+        */
+       protected function extractParameters() {
+               $params = parent::extractParameters();
+
+               if ( !empty( $params ) ) {
+                       $params[3] = Message::rawParam( Linker::link( 
Title::newFromText( $params[3] ) ) );
+               }
+
+               return $params;
+       }
+
+}
\ No newline at end of file


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to