Changeset 610821
- Timestamp:
- 10/11/2012 12:40:32 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
buddypress-courseware-certificate/trunk/courseware-certificate.php
r610819 r610821 30 30 31 31 /** 32 * Main Courseware-certificate Class32 * Courseware Certificate Class 33 33 */ 34 34 class CoursewareCertificate { … … 53 53 54 54 $group_assignments = BPSP_Assignments::has_assignments( $group_id ); 55 $grades = array();56 55 57 56 $completed = true; … … 63 62 } 64 63 65 $grades[] = BPSP_Gradebook::load_grade_by_user_id(66 $group_assignment->ID, $response->post_author67 );68 69 64 $responded = get_post_meta( $group_assignment->ID, 'responded_author' ); 70 65 if ( !in_array( $response->post_author, $responded ) ) { … … 74 69 75 70 if ( $completed && $passed ) { 76 self::generate_certificate( $response->post_author, $group_id , $grades);71 self::generate_certificate( $response->post_author, $group_id ); 77 72 } 78 73 } 79 74 80 75 /** 81 * Generate and email the certificate76 * Generates the pdf 82 77 */ 83 function generate_certificate( $user_id, $group_id, $grades ) { 84 $group = groups_get_group( array( 'group_id' => $group_id ) ); 85 $user = get_users( array( 'include' => $user_id ) ); 86 var_dump( 87 $user, 88 $group, 89 $grades 78 function save_pdf( $svg, $user ) { 79 $tmp_pdf = sys_get_temp_dir() . '/certificate.pdf'; 80 $pdf = new TCPDF( PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false ); 81 82 $pdf->SetCreator( PDF_CREATOR ); 83 $pdf->SetAuthor( 'BuddyPress Courseware' ); 84 $pdf->SetTitle( 'Certificate for ' . $user->display_name ); 85 86 $pdf->SetMargins( 0, 0, 0 ); 87 $pdf->SetHeaderMargin(0); 88 $pdf->SetFooterMargin(0); 89 $pdf->AddPage(); 90 $pdf->ImageSVG( 91 $file=$svg, 92 $x=0, 93 $y=0, 94 $w='', 95 $h='', 96 $link='', 97 $align='', 98 $palign='', 99 $border=0, 100 $fitonpage=false 90 101 ); 91 die(); 92 // TODO: generate certificate in png/pdf 102 $pdf->Output( $tmp_pdf, 'F' ); 103 104 return $tmp_pdf; 93 105 } 94 106 107 /** 108 * Parses the svg file 109 */ 110 function prepare_pdf( $user, $group ) { 111 $original_svg = get_stylesheet_directory() . '/certificate.svg'; 112 113 if ( !file_exists( $original_svg ) ) { 114 $original_svg = dirname( __FILE__ ) . '/svg/certificate.svg'; 115 } 116 117 $tmp_svg = sys_get_temp_dir() . '/certificate.svg'; 118 119 $svg = file_get_contents( $original_svg ); 120 121 $svg = str_replace( 'USER_FULL_NAME', $user->display_name, $svg ); 122 $svg = str_replace( 'GROUP_FULL_NAME', $group->name, $svg ); 123 $svg = str_replace( 'GROUP_DESCRIPTION', $group->description, $svg ); 124 $svg = str_replace( 'GROUP_URL', get_site_url(), $svg ); 125 $svg = str_replace( 'FULL_DATE', bpsp_get_date( date('Y-m-d H:i:s' ) ), $svg ); 126 127 file_put_contents( $tmp_svg, $svg ); 128 129 return self::save_pdf( $tmp_svg, $user ); 130 } 131 132 /** 133 * Emails the certificate 134 */ 135 function email_certificate( $email, $pdf ) { 136 wp_mail( $email, 'BuddyPress Courseware Certificate', '', '', array( $pdf ) ); 137 } 138 139 /** 140 * Generates the certificate 141 */ 142 function generate_certificate( $user_id, $group_id ) { 143 $group = groups_get_group( array( 'group_id' => $group_id ) ); 144 $user = reset( get_users( array( 'include' => $user_id ) ) ); 145 146 $certificate = self::prepare_pdf( $user, $group ); 147 if ( self::email_certificate( $user->user_email, $certificate ) ) { 148 unlink( $certificate ); 149 unlink( str_replace( '.pdf', '.svg', $certificate ) ); 150 } 151 } 95 152 } 96 153 CoursewareCertificate::init();
Note: See TracChangeset
for help on using the changeset viewer.