1. Go to this page and download the library: Download kukux/digital-signature library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Kukux\DigitalSignature\Contracts\Signable;
use Kukux\DigitalSignature\Traits\HasSignatures;
class Contract extends Model implements Signable
{
use HasSignatures;
public function getSignableTitle(): string { return $this->title; }
public function getSignablePdfPath(): string { return $this->pdf_path; }
public function getSignableId(): int|string { return $this->id; }
}
use Kukux\DigitalSignature\Filament\Actions\SignDocumentAction;
use Kukux\DigitalSignature\Filament\Columns\SignatureColumn;
class ContractResource extends Resource
{
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('title'),
SignatureColumn::make('signature')->thumbSize(80, 32),
])
->actions([
SignDocumentAction::make()
->stampAt(page: 1, x: 100, y: 650, w: 200, h: 80),
]);
}
}
SignaturePlugin::make()
->navigationGroup('Documents')
->navigationIcon('heroicon-o-pencil-square')
->navigationSort(10)
->navigationLabel('Document Signatures')
// Disable the resource entirely (bring your own):
SignaturePlugin::make()->withoutResource()
class AccomplishmentReport extends Model implements Signable
{
use HasPdfTemplate, HasSignatories;
protected string $signaturePdfTemplate = 'accomplishment-report';
public function preparedBy(): BelongsTo { return $this->belongsTo(User::class, 'prepared_by_id'); }
public function attestedBy(): BelongsTo { return $this->belongsTo(User::class, 'attested_by_id'); }
public function notedBy(): BelongsTo { return $this->belongsTo(User::class, 'noted_by_id'); }
}
// In your resource
SignatoryPanel::make('signatories'); // who signs, and where they're up to
RequestSignaturesAction::make(); // freeze the PDF and ask them