Hallo,
ein sehr gelungenes Tool muss ich sagen. Wie wäre es eine Mitgliedausweisfunktion zu integrieren die PDF ausgibt. (http://fpdf.org/) Und die Listendruckvorschau mit PDF erzeugen wäre auch nicht schlecht. Aber sonst ein sehr gut gelungenes Tool.
Mitgliedsausweise drucken...
-
- Beiträge: 2
- Registriert: 18. Jun 2008, 14:10
-
- Beiträge: 2
- Registriert: 18. Jun 2008, 14:10
So mal ein Test für eine Druckfunktion...
So ich hab mal eine Mitgliedsausweisfunktion integriert... allerdings reichen meine Kenntnisse nicht ganz um es als plugin anzubieten... ich schicke mal einen screenshot und den code für die die es interessiert... den aufruf der datei habe ich in die profil.php integriert (weiß leider nicht wie es als plugin geht...)
Ihr benötigt noch die mem_image.php die ist im netz zu finden...
Ausweis.php
Ihr benötigt noch die mem_image.php die ist im netz zu finden...
Ausweis.php
Code: Alles auswählen
<?php
define('FPDF_FONTPATH','/usr/local/fpdf/font/');
require('/usr/local/fpdf/fpdf.php');
require('mem_image.php');
// Pfad des Plugins ermitteln
$plugin_folder_pos = strpos(__FILE__, "adm_plugins") + 11;
$plugin_file_pos = strpos(__FILE__, "ausweis.php");
$plugin_folder = substr(__FILE__, $plugin_folder_pos+1, $plugin_file_pos-$plugin_folder_pos-2);
if(!defined('PLUGIN_PATH'))
{
define('PLUGIN_PATH', substr(__FILE__, 0, $plugin_folder_pos));
}
require_once(PLUGIN_PATH. "/../adm_program/system/common.php");
//aktuellen User holen
$a_user_id = $_GET['user_id'];
////////////////////////////////////////////////////////////////////
// DB auf Admidio setzen, da evtl. noch andere DBs beim User laufen
$g_db->setCurrentDB();
////////////////////////////////////////////////////////////////////
//Daten Für User Afragen////////////////////////////////////////////
//Nachname
$sql = "SELECT `usd_value`
FROM `adm_user_data`
WHERE `usd_usr_id` = $a_user_id
AND `usd_usf_id` = 1";
$result_name = $g_db->query($sql);
$name = mysql_fetch_row($result_name);
//Vorname///////////////////////////////////////////////////////////////////////
$sql = "SELECT `usd_value`
FROM `adm_user_data`
WHERE `usd_usr_id` = $a_user_id
AND `usd_usf_id` = 2";
$result_vorname = $g_db->query($sql);
$vorname = mysql_fetch_row($result_vorname);
//Mitgliedsnummer auslesen//////////////////////////////////////////////////////
$sql = "SELECT `usd_value`
FROM `adm_user_data`
WHERE `usd_usr_id` = $a_user_id
AND `usd_usf_id` = 23";
$result_mnr = $g_db->query($sql);
$result_mnr = mysql_fetch_row($result_mnr);
$mnr = $result_mnr[0];
//Geburtstag auslesen///////////////////////////////////////////////////////////
$sql = "SELECT `usd_value`
FROM `adm_user_data`
WHERE `usd_usr_id` = $a_user_id
AND `usd_usf_id` = 10";
$result_geb = $g_db->query($sql);
$geb = mysql_fetch_row($result_geb);
$gebDatum = $geb[0];
//Foto aus der Datenbank lesen und ausgeben/////////////////////////////////////
$sql = "SELECT `usr_photo`
FROM `adm_users`
WHERE `usr_id` = $a_user_id";
$photos = $g_db->query($sql);
$ph = mysql_fetch_row($photos);
$photo = $ph[0];
//Wenn etwas fehlt dann abrechen////////////////////////////////////////////////
if($photo==null or $gebDatum==null or $mnr==null){
echo "daten unvollständig... ausweis drucken nicht möglich !!!!!!!!!!!!";
return;
}
//Alle Daten aus Datenbank holen/////////////////////////////////////
$sql = "SELECT (SELECT usf_name from adm_user_fields where usd_usf_id=usf_id), usd_value
FROM `adm_user_data`
WHERE usd_usr_id = $a_user_id";
$allDataResult = $g_db->query($sql);
////////////////////////////////////////////////////////////////////////////////
//uft8 convertieren
$name_dec = utf8_decode($name[0]);
$vorname_dec = utf8_decode($vorname[0]);
//Geburtsdatum formatieren
$gebDatum = date("d.m.Y",strtotime($gebDatum));
//Ausweis drucken
class Mitglied extends MEM_IMAGE{
function print_Ausweis($x,$y,$_name,$_vorname,$_mnr,$_geb){
global $photo;
$this->Rect($x+8,$y+8,83,50,'D');
$this->SetXY($x+10,$y+10.5);
$this->SetTextColor(34, 139, 34);
$this->SetFont('Times','B',14);
$this->Cell(80,7,'SC 1903 Weimar e.V.',0,2,'L');
$this->SetDrawColor(255, 215, 0);
$this->SetLineWidth(0.5);
$this->Line($x+12, $y+18, $x+55, $y+18);
$this->Ln(2.5);
$this->SetFont('Times','B',13.5);
$this->SetX($x+12);
$this->Cell(32,7,'Mitgliedskarte',0);
$this->SetTextColor(0,0,0);
$this->SetFont('Times','B',13.5);
$this->Cell(10,7,$_mnr);
$this->Ln(6);
$this->SetTextColor(0,0,0);
$this->SetFont('Arial','',4.5);
$this->SetX($x+12);
$this->Cell(10,7,"Name");
$this->Ln(3.1);
$this->SetTextColor(0,0,0);
$this->SetFont('Arial','',11);
$this->SetX($x+12);
$this->Cell(10,7,$_name);
$this->Ln(3.8);
$this->SetTextColor(0,0,0);
$this->SetFont('Arial','',4.5);
$this->SetX($x+12);
$this->Cell(10,7,"Vorname");
$this->Ln(3.1);
$this->SetTextColor(0,0,0);
$this->SetFont('Arial','',11);
$this->SetX($x+12);
$this->Cell(18,7,$_vorname);
$this->Ln(3.8);
$this->SetTextColor(0,0,0);
$this->SetFont('Arial','',4.5);
$this->SetX($x+12);
$this->Cell(10,7,"Geburtssatum");
$this->Ln(3.1);
$this->SetTextColor(0,0,0);
$this->SetFont('Arial','B',10);
$this->SetX($x+12);
$this->Cell(10,7,$_geb);
$this->Ln(7);
$this->SetTextColor(0,0,0);
$this->SetFont('Arial','',7);
$this->SetX($x+12);
$this->Cell(18,7,'Der Vorstand');
//from Mem_Image()
$this->Image('var://photo', $x+61, $y+12, 26, 34, 'JPEG');
$this->SetDrawColor(0, 0, 0);
$this->SetLineWidth(0.2);
$this->Rect($x+61,$y+12,26,34);
$this->Image('sc_stempel_1.png', $x+53, $y+38,15,'PNG');
$this->Image('unterschrift_praesident.png', $x+33, $y+45,18,'PNG');
//////////////////////////////////////////////////////////////////////////////
}
function print_Karteikarte($_allDataResult,$_mnr){
$this->Rect(20,15,180,270,'D');
$this->SetXY(27,24);
$this->SetTextColor(0,0,0);
$this->SetFont('Arial','B',16);
$this->Cell(55,7,'Mitgliedskarteikarte',0);
$this->Cell(0,7,$_mnr);
$this->SetFont('Times','B',16);
$this->SetFont('Times','',15);
while ($zeile = mysql_fetch_array($_allDataResult))
{
$this->SetXY(27,40+($i*10));
if ($zeile[0]=="Geburtstag"){
$this->Cell(50,7,utf8_decode($zeile[0]));
$this->Cell(20,7,utf8_decode(date("d.m.Y",strtotime($zeile[1]))));
}
else if ($zeile[0]=="Eintrittsdatum"){
$this->Cell(50,7,utf8_decode($zeile[0]));
$this->Cell(20,7,utf8_decode(date("d.m.Y",strtotime($zeile[1]))));
}
else {
$this->Cell(50,7,utf8_decode($zeile[0]));
$this->Cell(20,7,utf8_decode($zeile[1]));
}
$i++;
}
$this->Image('var://photo', 145, 40, 45, 0, 'JPEG');
}
}
$pdf=new Mitglied();
$pdf->SetDisplayMode('fullpage');
$pdf->AddPage();
$pdf->print_Karteikarte($allDataResult,$mnr);
$pdf->AddPage();
$pdf->SetXY(20,15);
$pdf->SetFont('Times','B',14);
$pdf->Cell(0,0,'Mitgliederausweis:');
$pdf->print_Ausweis(15,20,$name_dec,$vorname_dec,$mnr,$gebDatum);
$pdf->Output();
?>
für viele andere ... ich habe mir einfach einen Seriendruck in Word gemacht. Entweder ziehe ich mir die Daten via CSV oder ich Importiere die Daten einfach in eine Lokale MySQL Datenbank und greife auf diese dann zu.fasse hat geschrieben:Hi James-Dean,
ich werde mir das bei Gelegenheit mal genauer anschauen. So eine Funktion wäre sicherlich sinnvoll und würde gut in unser Programm passen.
Vielen Dank schon mal für den Code.
Gruß
Fasse
Geht wunderbar !!!
Bis dann
Andree
Andree