Скачиваний:
0
Добавлен:
23.04.2025
Размер:
211 Кб
Скачать

9-ámeliy sabaq. Belgili tapsırma ushın keńeytpe blokınıń specifikaciyası hám proektin islep shıǵıw.

Jumıstıń maqseti

Bul ámeliy jumıstıń maqseti - Moodle sistemasında tapsırmalardı bahalaw hám qadaǵalaw processin jaqsılaw ushın keńeytpe blogın jobalastırıw, programmalastırıw hám engiziw. Blok oqıtıwshıǵa studentlerdiń tapsırmalardı orınlaw barısın tez ańlap alıwǵa, al studentlerge óz progressin kóriwge múmkinshilik beredi.

Ámeliy bólim

1. Moodle keńeytpe blokların tayarlaw ortasın ornatıw

Birinshi adım - Moodle sistemasın lokal kompyuterinizde ornatıw hám onı keńeytpe islep shıǵıw ushın konfiguraciyalaw.

1.XAMPP, WAMP yaki MAMP sıyaqlı veb-server paketlerin ornatıń.

2.Moodlediń eń sońǵı versiyasın júklep alıń hám onı veb-server papkasına ornalastırıń.

3.Moodledi ornatıw procedurasın orınlań.

4.Administrator sıpatında sistemaǵa kiriń hám islep shıǵıwshı rejimin qosıń (Sayt administrirlew > Sırtqı kórinisi > Islep shıǵıwshı rejimi).

2.Keńeytpe blokınıń strukturasın jaratıw

1.Moodledıń blocks papkasında task_progress atlı jańa papka jaratıń.

2.Tómendegi strukturanı jaratıń:

blocks/task_progress/

├── block_task_progress.php ├── db/

└── access.php ├── lang/

└── en/

└── block_task_progress.php ├── version.php

└── styles.css

3. Tiykarǵı blok klassın islep shıǵıw

block_task_progress.php faylında tiykarǵı blok klassın jaratıń:

<?php

class block_task_progress extends block_base {

public function init() {

$this->title = get_string('pluginname', 'block_task_progress');

}

public function get_content() { global $COURSE, $DB, $USER;

if ($this->content !== null) { return $this->content;

}

$this->content = new stdClass; $this->content->text = ''; $this->content->footer = '';

// Kurste belgilengen tapsırmalardı alıw $assignments = $DB->get_records('assign',

array('course' => $COURSE->id));

if (empty($assignments)) { $this->content->text =

get_string('noassignments', 'block_task_progress'); return $this->content;

}

$table = new html_table(); $table->head = array(

get_string('assignment', 'block_task_progress'),

get_string('duedate', 'block_task_progress'),

get_string('status', 'block_task_progress')

);

foreach ($assignments as $assignment) { $cm =

get_coursemodule_from_instance('assign', $assignment- >id, $COURSE->id);

$submission = $DB- >get_record('assign_submission', array(

'assignment' => $assignment->id, 'userid' => $USER->id,

'status' => 'submitted'

));

$status = $submission ? get_string('submitted', 'block_task_progress') : get_string('notsubmitted', 'block_task_progress');

$duedate = $assignment->duedate ? userdate($assignment->duedate) : get_string('noduedate', 'block_task_progress');

$table->data[] = array( html_writer::link(new

moodle_url('/mod/assign/view.php', array('id' => $cm- >id)), $assignment->name),

$duedate, $status

);

}

$this->content->text = html_writer::table($table);

return $this->content;

}

public function applicable_formats() { return array(

'site' => true, 'course' => true, 'my' => true

);

}

public function instance_allow_multiple() { return false;

}

}

4. Til faylın qosıw

lang/en/block_task_progress.php faylın jaratıń:

<?php

$string['pluginname'] = 'Task Progress'; $string['task_progress'] = 'Task Progress'; $string['task_progress:addinstance'] = 'Add a new Task Progress block'; $string['task_progress:myaddinstance'] = 'Add a new Task Progress block to Dashboard';

$string['noassignments'] = 'No assignments in this course';

$string['assignment'] = 'Assignment'; $string['duedate'] = 'Due date'; $string['status'] = 'Status'; $string['submitted'] = 'Submitted'; $string['notsubmitted'] = 'Not submitted'; $string['noduedate'] = 'No due date';

5. Ruqsatlardı konfiguraciyalaw

db/access.php faylın jaratıń:

<?php

$capabilities = array( 'block/task_progress:myaddinstance' => array(

'captype' => 'write', 'contextlevel' => CONTEXT_SYSTEM, 'archetypes' => array(

'user' => CAP_ALLOW

), 'clonepermissionsfrom' =>

'moodle/my:manageblocks'

),

'block/task_progress:addinstance' => array( 'riskbitmask' => RISK_SPAM | RISK_XSS, 'captype' => 'write',

'contextlevel' => CONTEXT_BLOCK, 'archetypes' => array(

'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW

), 'clonepermissionsfrom' =>

'moodle/site:manageblocks'

),

);

6. Versiya faylın qosıw

version.php faylın jaratıń:

<?php

defined('MOODLE_INTERNAL') || die();

$plugin->component = 'block_task_progress'; $plugin->version = 2023051200;

$plugin->requires = 2022112800; // Moodle 4.1 $plugin->maturity = MATURITY_STABLE; $plugin->release = 'v1.0';

7. Stil faylın qosıw

styles.css faylın jaratıń:

.block_task_progress .submitted { color: green;

font-weight: bold;

}

.block_task_progress .notsubmitted { color: red;

}

.block_task_progress table { width: 100%;

}

.block_task_progress table td { padding: 5px;

}

8.Bloktı ornatıw hám testlew

1.Moodle administrator paneline ótip, "Xabarlandırıwlar" bólimine barıń (Sayt administrirlew > Xabarlandırıwlar).

2.Jańa blogımız avtomatik túrde anıqlanıp, ornatıw ushın tayarlanǵan boladı.

3."Plaginlerdi tekseriw" bóliminde bloktı ornatıw ushın túymeni basıń.

4.Ornatıw processi tamamlanǵannan keyin, kurs betine ótip, bloktı qosıń (Redaktorlawdı qosıw > Blok qosıw > Task Progress).

5.Bloktiń isin teksherip kóriń - kurstaǵı tapsırmalar haqqında maǵlıwmat durıs kórsetilgen be?

9.Keńeytpe funkcionallıqtı qosıw

Keńeytpe blogımızǵa qosımsha funkciyalardı qosıw:

1.block_task_progress.php faylındaǵı get_content() metodına tómendegi kodlardı qosıń:

//Statistika sekciyasın qosıw

$totalAssignments = count($assignments); $submittedCount = 0;

foreach ($assignments as $assignment) {

$submission = $DB->get_record('assign_submission', array(

'assignment' => $assignment->id, 'userid' => $USER->id,

'status' => 'submitted'

));

if ($submission) { $submittedCount++;

}

}

$progress = ($totalAssignments > 0) ? round(($submittedCount / $totalAssignments) * 100) : 0;

// Progress indikatorın qosıw $this->content->text .= html_writer::tag('h4', get_string('progress', 'block_task_progress')); $progressbar = html_writer::tag('div',

html_writer::tag('div', $progress . '%', array('style' => 'width: ' . $progress . '%;')),

array('class' => 'progress-bar')

);

$this->content->text .= $progressbar; $this->content->text .= html_writer::tag('p', get_string('progressinfo', 'block_task_progress',

array('submitted' => $submittedCount, 'total' => $totalAssignments)));

2. lang/en/block_task_progress.php faylına jańa qatarlardı qosıń:

$string['progress'] = 'Your Progress'; $string['progressinfo'] = 'Submitted: {$a- >submitted}/{$a->total}';

3. styles.css faylına progress indikatorınıń stilin qosıń:

.progress-bar { width: 100%;

background-color: #e0e0e0; border-radius: 5px; margin: 10px 0;

}

.progress-bar div { height: 20px;

background-color: #4CAF50; border-radius: 5px; text-align: center; color: white; font-weight: bold;

}

ÁMELIY TAPSÍRMALAR

Tapsırma 1: Keńeytpe blok strukturasın jaratıw

Óz jumıs papkańızda blocks/task_tracker dep atalatuǵın papka hám onıń ishinde barlıq kerekli fayllardı jaratıń. Blok "Tapsırma Trekeri" dep atalsın.

Tapsırma 2: Tiykarǵı funkciyalar islep shıǵıw

block_task_tracker.php faylında tiykarǵı kod jazıń. Blok kurstaǵı barlıq tapsırmalardı kórsetsin, hár tapsırma ushın atın, tapsırıw múddetin hám tapsırıldı ma yamasa tapsırılmadı ma ekenligin kórsetsin.

Tapsırma 3: Qosımsha funkciyalar qosıw

Tapsırmalar arasında oqıtıwshı tárepinen bahalanǵan tapsırmalardı kórsetetuǵın funkciya qosıń. Bul ushın get_content() metodına qosımsha kod jazıń.

Tapsırma 4: Bloktı testlew

Islep shıqqan blogıńızdı lokal Moodle sistemańızda ornatıń hám testleń. Testi ushın kursta bir neshe tapsırma jaratıp, olardıń birewin tapsırıń.

Tapsırma 5: Keńeytpeniń dokumentaciyasın jazıw

Blok haqqında qısqasha dokumentaciya jazıń. Bul dokumentaciyada bloktıń ne isleytuǵını, onı qalay qollanıw hám onıń artıqmashılıqları haqqında maǵlıwmat bolsın.

Tapsırma 6: Bloktıń keńeytpesin islep shıǵıw

Bloktı keńeytip, tek bahalanǵan tapsırmalardı kórsetetuǵın yaki tek tapsırılmaǵan tapsırmalardı kórsetetuǵın funkciya qosıń.

Tapsırma 7: Blok sazlamaların qosıw

Blokta qosımsha sazlamalar jaratıń. Máselen, kurs administratorı qaysı tapsırmalar tiplerin kórsetiw kerek ekenligin tańlay alatuǵın bolsın.

Соседние файлы в предмете Архитектура вычислительный машин и систем