bir moodle eklentisi yapmak istiyorum. bu eklenti ile öğretmen sisteme bir pdf yükleyecek.
bu pdf den bir serbest araç ile soruları kare içerisine alarak soruyu işaretleyecek ve bu
sorunun A B C D E soru şıklarından doğru olanı işaretleyecek. bu statik bir pdf yi dinamik
pdf aracına dönüştürerek öğrenciye düz bir pdf olarak değil soru bazlı pdf olarak sunmak için bir eklenti olacak
<?php
defined('MOODLE_INTERNAL') || die();
// local_pdfregion ile ilgili ek fonksiyonlar buraya eklenebilir.
Sonuç
Bu örnek dosya yapısı ve kodlar, Moodle ortamında bir PDF’den belirli bir bölge seçilip bu verinin saklanması ve öğrenciye sadece o bölümün sunulması işlevinin temelini oluşturur. Gerçek uygulamada:
Dosya yönetimi: Yüklenen PDF’in Moodle dosya alanına kaydedilmesi, erişim izinleri ve URL oluşturma.
PDF kırpma: FPDI/TCPDF veya başka bir PDF işleme kütüphanesi entegrasyonu ile belirlenen koordinatlardan yeni bir PDF ya da görsel oluşturma.
Güvenlik: Dosya tipi, boyut kontrolleri ve kullanıcı yetkilendirmeleri gibi ek güvenlik önlemleri.
Geliştirme sürecinde Moodle dokümantasyonunu ve örnek eklentileri inceleyerek detayları ve ek özellikleri entegre edebilirsiniz. Herhangi bir sorunuz ya da daha fazla detay isterseniz yardımcı olmaya hazırım.
burada oluşturulan soruların (çerçevelerin) öğrenci tarafından işaretlenmesi
ve toplam soru sayısı ile doğru yanlış ve boş oranına göre her sınav için bir sonuç
kaydedilmesi ve yanlış cevaplar için yeniden bir sınav oluşturulması gibi eklentiler gerekecek
local/
└── pdfregion/
├── db/
│ ├── install.xml // Mevcut tabloya eklemeler yapılacak
├── lang/
│ └── tr/
│ └── local_pdfregion.php
├── classes/ (opsiyonel yardımcı sınıflar)
├── form.php // PDF yükleme ve bölge seçimi formu (öğretmen)
├── index.php // Öğretmen arayüzü
├── exam.php // Öğrencinin sınava girdiği sayfa
├── result.php // Sınav sonucu gösterimi
├── retake.php // Yanlış yapılan sorularla yeniden sınav
├── view.php // PDF kırpma işlemi (örnek)
├── lib.php // Yardımcı fonksiyonlar
└── version.php
)
Öncelikle, öğretmen tarafından oluşturulan “soru” bilgilerini içeren tabloya ek olarak sınav sonuçları ve öğrenci cevaplarını saklayacak iki tablo ekleyebilirsiniz.
Örnek:
Öğrencinin, sistemdeki tüm soruları (veya belirli bir sınav kapsamındaki soruları) göreceği, her soru için A, B, C, D, E seçeneklerini içeren basit bir sınav form örneği:
Sınavın özet sonuçlarını gösteren sayfa; toplam soru, doğru, yanlış ve boş sayısı görüntülenir. Yanlış yapılan sorular varsa yeniden sınava yönlendirme seçeneği sunulur.
5. Ek Notlar
PDF İşleme:
Öğretmen tarafından belirlenen alanların (çerçevelerin) kırpılması için FPDI/TCPDF, PDF.js veya komut satırı araçları (Ghostscript, ImageMagick) kullanılabilir. Örnekte crop_pdf_region() adlı dummy fonksiyon yer almakta; bunu gerçek PDF kırpma işlemleriyle değiştirmeniz gerekecek.
Güvenlik & Validasyon:
Dosya yükleme, form verisi işleme ve veritabanı işlemlerinde Moodle’ın API’lerini ve güvenlik kontrollerini kullanmayı ihmal etmeyin.
Kapsamlı Test:
Her iki arayüz (öğretmen ve öğrenci) için farklı senaryoları test etmek; özellikle sınav sonucu hesaplaması ve yeniden sınav oluşturma süreçlerinin doğru çalıştığından emin olmak önemlidir.
Bu örnek, Moodle ortamında dinamik olarak soruları belirleyip öğrenci cevaplarını kaydeden, sınav sonuçlarını hesaplayan ve yanlış yapılan sorularla yeniden sınav oluşturmayı sağlayan temel bir yapıyı sunmaktadır. İhtiyaçlarınıza göre bu yapıyı geliştirip, özelleştirebilirsiniz.
Aşağıdaki adımları izleyerek bu Moodle eklentisini yükleyebilirsiniz:
Dosya Yapısını Oluşturun:
Eklenti klasörünüzü, Moodle kurulumunuzun ana dizinindeki local klasörünün içine "pdfregion" adıyla yerleştirin. Yani dizin yapınız şöyle olmalı:
/path/to/moodle/local/pdfregion
Dosya ve İzin Kontrolleri:
Tüm dosyaların doğru şekilde kopyalandığından ve Moodle’ın dosya okuma/yazma izinlerine uygun olduğundan emin olun.
Yönetici Olarak Giriş Yapın:
Moodle yönetici hesabınızla oturum açın.
Güncelleme Bildirimini Kontrol Edin:
Yönetici panelinde (Site yönetimi > Bildirimler) Moodle, yeni eklenen eklentiyi fark edip otomatik olarak kurulum sürecini başlatacaktır. Bu aşamada veritabanı tabloları oluşturulacak ve gerekli yapılandırmalar yapılacaktır.
Upgrade.php Çalıştırma (Opsiyonel):
Eğer bildirim sayfasında otomatik başlatılmadıysa, komut satırında Moodle kök dizininde aşağıdaki komutu çalıştırarak da kurulumu tamamlayabilirsiniz:
Eklenti Ayarlarını ve Test İşlemlerini Yapın:
Kurulum tamamlandığında, eklenti ayarlarını kontrol edip, örnek sayfaları ziyaret ederek (örneğin, index.php, exam.php) işlevselliğin doğru çalıştığından emin olun.
Bu adımlarla eklentinizi Moodle ortamınıza yüklemiş olacaksınız. Herhangi bir hata veya eksiklik olması durumunda Moodle hata bildirimlerini kontrol ederek gerekli düzeltmeleri yapabilirsiniz.
pdf yüklendikten sonra öğretmen çizim aracı ile pdf üzerinde soruları işaretleyecek.
her işaretlediğinin üzerine A B C D E işaretleme aracını ekleyecek ve doğru şıkkı işaretleyecek.
bu öğretmen arayüzünde ancak öğrenci arayücünde bu işaret aracı boş olarcak ve öğrenci
doğru seçeneği işaretleyecek
Re: moodle eklenti deneme ai
Gönderilme zamanı: Çrş Şub 26, 2025 1:23 pm
gönderen muratca61
Aşağıda, eklentinizin öğretmen ve öğrenci arayüzünde nasıl çalışabileceğine dair örnek bir akış ve kod parçacıkları sunuyorum. Bu örnek, temel düzeyde bir uygulama mantığını göstermektedir. Gerçek uygulamada PDF dosya yönetimi, hata kontrolü ve gelişmiş kullanıcı arayüzü gibi detayları eklemeniz gerekecektir.
1. Genel Akış
Öğretmen Arayüzü
PDF Yükleme:
Öğretmen, PDF dosyasını Moodle dosya alanına yükler. (Bu işlem, daha önce oluşturduğunuz form ve dosya yükleme API’siyle yapılır.)
PDF Üzerinde Soru İşaretleme:
Yüklenen PDF, PDF.js gibi bir kütüphane ile görüntülenir.
Üzerine yerleştirilen bir HTML5 canvas (veya overlay div) sayesinde öğretmen, fare ile dikdörtgen çizerek (soru bölgesi belirleme) soruyu işaretler.
Doğru Cevabın Seçilmesi:
Öğretmen çizim tamamlandıktan sonra açılan küçük bir modal (veya form) aracılığıyla A, B, C, D, E seçeneklerinden doğru olanı belirler.
Bu bilgiler (dikdörtgenin koordinatları, boyutları, sayfa numarası, PDF dosyası adı, doğru şık) veritabanına kaydedilir.
Öğrenci Arayüzü
PDF Görüntüleme:
Öğrenci, yine PDF.js kullanılarak PDF’i görüntüler.
Soru Alanlarının Gösterimi:
Öğrenci arayüzünde, öğretmen tarafından belirlenen soru alanlarının üzerine, “boş” radyo butonları yerleştirilir.
Öğretmen tarafından önceden belirlenen doğru şık burada görünmez; öğrenci kendi seçimini yapar.
Cevap Gönderimi:
Öğrenci, her soruda doğru olduğunu düşündüğü seçeneği işaretleyip sınavı gönderir.
Cevaplar kaydedildikten sonra sonuç hesaplanır.
Bu örnekte, PDF.js ile PDF görüntülenir ve bir canvas üzerinde dikdörtgen çizme işlemi gerçekleştirilir. Dikdörtgen çizildikten sonra açılan modal ile doğru şık seçilir.
(Not: Bu örnek, sadece tek sayfa (örneğin, sayfa 1) için geçerlidir.)
Bu dosya, AJAX üzerinden gönderilen öğretmen verilerini veritabanına kaydeder.
(Not: Gerçek uygulamada verilerin doğrulanması, dosya yolu dinamikleştirilmesi ve güvenlik önlemleri eklenmelidir.)
Öğrenci arayüzünde PDF yine PDF.js ile görüntülenir. Veritabanından alınan soru bölgeleri (öğretmen tarafından işaretlenen) üzerine, boş radyo butonları yerleştirilir. Öğrenci, bu seçeneklerden doğru olduğunu düşündüğünü işaretler.
<?php
require_once('../../config.php');
require_login();
$questionid = required_param('questionid', PARAM_INT);
$answer = required_param('answer', PARAM_ALPHANUM);
// Burada cevabın kaydedilmesi, sınav sonuçlarının güncellenmesi vb. işlemler yapılmalı.
// Örneğin, DB tablosuna öğrencinin cevabını ekleyip, daha sonra sınav sonuç sayfasında değerlendirme yapılır.
redirect(new moodle_url('/local/pdfregion/student_view.php'), 'Cevabınız kaydedildi.');
3. Son Notlar
PDF İşleme:
Gerçek uygulamada, öğretmen ve öğrenci arayüzleri için PDF dosyasını dinamik olarak yükleyip, sayfa numarası, zoom, vs. gibi durumları da göz önünde bulundurmalısınız.
Veritabanı Entegrasyonu:
Öğretmen tarafından işaretlenen her soru bölgesinin koordinatları, sayfa numarası ve doğru cevap veritabanına kaydedilmeli; öğrenci arayüzü bu kayıtları kullanarak soruları dinamik olarak oluşturmalı.
Güvenlik ve Validasyon:
Hem dosya yükleme hem de form verilerinde gerekli validasyonları yapmayı unutmayın.
Gelişmiş UI:
Çizim ve modal işlemleri için daha gelişmiş JavaScript kütüphaneleri (ör. Fabric.js veya interaktif PDF.js eklentileri) kullanabilirsiniz.
Bu örnekler sayesinde, öğretmenin PDF üzerinde soru alanlarını çizip doğru şıkkı belirlediği ve öğrencinin aynı alanlar üzerinden boş seçenekleri doldurarak sınava girdiği bir yapıyı oluşturabilirsiniz. Geliştirme sürecinde Moodle dokümantasyonunu, PDF.js örneklerini ve ilgili JavaScript kütüphanelerinin örneklerini incelemeniz faydalı olacaktır.
Re: moodle eklenti deneme ai
Gönderilme zamanı: Çrş Şub 26, 2025 1:25 pm
gönderen muratca61
Aşağıda, öğretmen ve öğrenci arayüzleri, sınav, sonuç, yeniden sınav ve AJAX işlemleri gibi işlevleri içeren son haline uygun örnek dosya yapısını bulabilirsiniz:
local/
└── pdfregion/
├── db/
│ └── install.xml // Veritabanı tablolarının tanımlandığı dosya (soru, sınav, sonuç tabloları)
├── lang/
│ └── tr/
│ └── local_pdfregion.php // Dil dosyası (metin tanımlamaları)
├── teacher_view.php // Öğretmenin PDF üzerinde soru alanı çizip, doğru cevabı belirlediği arayüz
├── student_view.php // Öğrencinin PDF'i görüntüleyip, boş seçenekleri doldurduğu arayüz
├── exam.php // Sınav formu (toplu sınav uygulaması, eğer ayrı bir sınav yapısı kullanılacaksa)
├── result.php // Sınav sonuçlarının özetlendiği sayfa
├── retake.php // Yanlış yapılan sorularla yeniden sınav sayfası
├── save_region.php // AJAX üzerinden öğretmenin işaretlediği soru bölgesini kaydeden dosya
├── submit_answer.php // Öğrencinin cevabını kaydeden dosya
├── lib.php // Yardımcı fonksiyonlar (ortak işlemler burada toplanabilir)
└── version.php // Eklenti sürüm bilgileri ve bileşen adı tanımlaması
Açıklamalar:
db/install.xml:
PDF üzerindeki soru alanlarının koordinatları, doğru cevap bilgisi, sınav ve öğrenci cevaplarıyla ilgili veritabanı tablolarını oluşturur.
lang/tr/local_pdfregion.php:
Eklentiye ait sabit metinlerin (başlık, buton isimleri vb.) tanımlandığı dil dosyasıdır.
teacher_view.php:
Öğretmenin PDF'i yükleyip, PDF.js üzerinden görüntüleyerek çizim aracıyla soru alanı belirlemesini ve doğru şıkkı seçmesini sağlar.
student_view.php:
Öğrencinin, öğretmen tarafından işaretlenmiş soru alanlarını overlay (üstüne bindirme) olarak görüp, boş radyo butonları ile cevap vermesini sağlar.
exam.php, result.php, retake.php:
Öğrenci sınav işlemleri, sınav sonuçlarının hesaplanması ve yanlış yapılan sorularla yeniden sınava girmesi için ayrı dosyalar olarak yer alabilir.
(Kullanım senaryonuza göre bu dosyalar isteğe bağlı olarak düzenlenebilir.)
save_region.php:
Öğretmen arayüzünde çizilen dikdörtgenin koordinatları ve doğru şık bilgisini AJAX POST isteği ile alarak veritabanına kaydeder.
submit_answer.php:
Öğrenci, işaretlediği cevabı gönderdiğinde, ilgili soru için kaydı oluşturur. (Önceki sınav işleme yapısına entegre edilebilir.)
lib.php:
Ortak işlevler, yardımcı fonksiyonlar veya PDF işleme gibi ek modüller buraya eklenebilir.
version.php:
Eklenti versiyonu, uyumlu Moodle sürümü ve bileşen adının tanımlandığı dosyadır.
Bu yapı, geliştirmenin başlangıç aşamasında temel işlevselliği sunmak üzere tasarlanmıştır. İhtiyaçlarınıza göre ek dosyalar ekleyebilir, mevcut dosyalarda geliştirmeler yapabilir veya güvenlik, hata kontrolü gibi detayları entegre edebilirsiniz.