Learn how to customize and modify Deeplancer
Customization Guide
Deeplancer is designed to be customizable. This guide covers common customization tasks without breaking core functionality.
Styling & Appearance
Changing Colors
Colors are managed through Tailwind CSS variables and theme settings.
Theme Settings:
- Go to Dashboard → Settings → Theme
- Select a color theme
- Customize via CSS variables
Custom CSS:
- Add custom CSS in Theme Settings
- Use
frontend_custom_head_code for styles
- Override component styles carefully
Modifying Components
Deep UI Components:
- Located in
resources/views/components/deep/
- Copy component to customize
- Maintain component structure
Example:
{{-- Customize button component --}}
<x-deep.button variant="primary">
Custom Button
</x-deep.button>
Logo & Branding
- Upload logos via Dashboard → Settings → General
- Favicon, light logo, dark logo
- Logos appear automatically in header
Adding Custom Pages
Create Livewire Component
- Create component class:
// app/Livewire/Main/Custom/CustomPageComponent.php
namespace App\Livewire\Main\Custom;
use Livewire\Component;
use Livewire\Attributes\Layout;
#[Layout('components.layouts.app')]
class CustomPageComponent extends Component
{
public function render()
{
return view('livewire.main.custom.custom-page');
}
}
- Create Blade view:
{{-- resources/views/livewire/main/custom/custom-page.blade.php --}}
<div>
<h1>Custom Page</h1>
{{-- Your content --}}
</div>
- Add route:
// routes/web.php
Route::get('/custom-page', CustomPageComponent::class)
->name('custom.page');
Modifying Existing Features
Extend Models
Add methods or relationships to models:
// app/Models/Gig.php
public function customMethod()
{
// Your custom logic
}
Override Components
- Copy component view
- Modify as needed
- Keep same component class name
- Update view path if needed
Add Custom Fields
Database:
- Create migration
- Add column to table
- Update model fillable
Forms:
- Add field to component
- Update validation rules
- Save in component method
Translation & Localization
Adding Translations
- Edit language files:
// lang/en/messages.php
return [
'custom_key' => 'Custom Text',
];
- Use in views:
{{ __('messages.custom_key') }}
Adding New Languages
- Copy
lang/en/ to lang/{code}/
- Translate all keys
- Update
config/app.php locale
Payment Integration
Adding Payment Gateway
- Create gateway component:
// app/Livewire/Admin/Payments/Gateways/Custom/CustomComponent.php
- Add configuration fields
- Implement payment processing
- Add to payment gateways list
Email Templates
Customizing Emails
- Email views in
resources/views/emails/
- Modify templates
- Use translation keys
- Test email sending
File Uploads
Custom Upload Locations
Files use Spatie Media Library:
- Collections defined in models
- Storage in
storage/app/public
- URLs via
getFirstMediaUrl()
Adding Upload Types
- Update model
registerMediaCollections()
- Add validation rules
- Handle in component
Best Practices
Do:
- Use translation keys
- Follow naming conventions
- Test changes thoroughly
- Keep backups
- Document customizations
Don't:
- Modify core files directly
- Hardcode text
- Break existing functionality
- Skip validation
- Ignore security
Troubleshooting
Changes not appearing:
- Clear cache:
php artisan cache:clear
- Rebuild assets:
npm run build
- Check file permissions
Styling issues:
- Clear browser cache
- Recompile Tailwind
- Check CSS specificity
Component errors:
- Check Livewire version
- Verify component structure
- Review error logs