Exemple #1
0
<?php

/**
 * @author Matthew McNaney <mcnaney at gmail dot com>
 */
if (Current_User::isLogged()) {
    $key = Key::getCurrent(true);
    if ($key) {
        $qr_func = function ($key_id, $size) {
            $qr = new QR($key_id);
            $qr->setSize($size);
            $image = $qr->get();
            return '<a download="QR-image.png" href="' . $qr->image . '">' . $qr->get() . '</a>';
        };
        $tpl_vars['small'] = $qr_func($key->id, 5);
        $tpl_vars['medium'] = $qr_func($key->id, 6);
        $tpl_vars['large'] = $qr_func($key->id, 8);
        $tpl_vars['xlarge'] = $qr_func($key->id, 12);
        $tpl = new \Template($tpl_vars);
        $tpl->setModuleTemplate('qr', 'modal.html');
        $content = $tpl->get();
        $modal = new Modal('qr-modal', $content, 'QR Codes (click to download)');
        $modal->sizeLarge();
        Layout::add($modal->get());
        MiniAdmin::add('qr', '<a data-toggle="modal" data-target="#qr-modal" class="pointer">Show QR codes</a>');
    }
}
Exemple #2
0
 public function anggota($id)
 {
     // data sekolah
     $sekolah = Sekolah::data();
     $logo_sekolah = $sekolah->logo ?: 'blank.png';
     $nama_sekolah = $sekolah->nama;
     $alamat_sekolah = $sekolah->alamat;
     // data siswa
     $siswa = Siswa::set($id);
     $foto_siswa = $siswa->foto ?: 'blank.png';
     $nis_siswa = $siswa->nis;
     $nama_siswa = $siswa->nama;
     $kelas_siswa = $siswa->kelas;
     $telp_siswa = $siswa->telp ?: '-';
     $alamat_siswa = $siswa->alamat ?: '-';
     // path font
     $helvetica = public_path() . '/font/helvetica.ttf';
     $calibri = public_path() . '/font/calibri.ttf';
     // canvas
     $canvas = Image::canvas(325, 205);
     // logo sekolah
     $logo = Image::make(public_path() . '/foto/sekolah/' . $logo_sekolah)->resize(null, 38, true);
     $canvas->insert($logo, 5, 5, 'top-left');
     // header nama
     $header_nama = imagettfbbox(10, 0, $helvetica, $nama_sekolah);
     $lebar_header_nama = abs($header_nama[2] - $header_nama[0]);
     $canvas->text($nama_sekolah, 350 / 2 - $lebar_header_nama / 2, 15, 10, '333', 0, $helvetica);
     // nama kartu
     $nama_kartu = imagettfbbox(10, 0, $helvetica, 'KARTU ANGGOTA PERPUSTAKAAN');
     $lebar_nama_kartu = abs($nama_kartu[2] - $nama_kartu[0]);
     $canvas->text('KARTU ANGGOTA PERPUSTAKAAN', 350 / 2 - $lebar_nama_kartu / 2, 30, 10, '333', 0, $helvetica);
     // header alamat
     $header_alamat = imagettfbbox(8, 0, $calibri, $alamat_sekolah);
     $lebar_header_alamat = abs($header_alamat[2] - $header_alamat[0]);
     $canvas->text($alamat_sekolah, 350 / 2 - $lebar_header_alamat / 2, 42, 8, '000', 0, $calibri);
     // garis
     $canvas->line('333', 5, 46, 315, 46);
     // nis
     $canvas->text('N I S', 5, 60, 8, '000', 0, $calibri);
     $canvas->text(': ' . $nis_siswa, 40, 60, 8, '000', 0, $calibri);
     // nama
     $canvas->text('Nama', 5, 73, 8, '000', 0, $calibri);
     $canvas->text(': ' . $nama_siswa, 40, 73, 8, '000', 0, $calibri);
     // kelas
     $canvas->text('Kelas', 5, 86, 8, '000', 0, $calibri);
     $canvas->text(': ' . $kelas_siswa, 40, 86, 8, '000', 0, $calibri);
     // telp
     $canvas->text('Telp', 5, 99, 8, '000', 0, $calibri);
     $canvas->text(': ' . $telp_siswa, 40, 99, 8, '000', 0, $calibri);
     // alamat
     $canvas->text('Alamat', 5, 112, 8, '000', 0, $calibri);
     $canvas->text(': ' . $alamat_siswa, 40, 112, 8, '000', 0, $calibri);
     // foto
     $foto = Image::make(public_path() . '/foto/siswa/' . $foto_siswa)->resize(null, 80, true);
     $canvas->insert($foto, 5, 5, 'bottom-left');
     // qrcode
     $path_qr = public_path() . '/qrcode/' . $siswa->nis . '.png';
     // belum ada qrcode
     if (!File::exists($path_qr)) {
         $qr = new QR();
         $qr->setText($nama_siswa);
         $qr->setSize(80);
         $qr->setPadding(0);
         $qr->save($path_qr);
         $qr_code = $path_qr;
         // ada qrcode
     } else {
         $qr_code = Image::make($path_qr)->resize(null, 80, true);
     }
     $canvas->insert($qr_code, 5, 5, 'bottom-right');
     // simpan
     $canvas->save(public_path() . '/anggota/' . $nis_siswa . '.png', 100);
     // gambar
     $gambar = asset('anggota/' . $nis_siswa . '.png');
     return View::make('modal.anggota', compact('siswa', 'gambar'));
 }