<?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>'); } }
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')); }