designpond/newsletter

Newsletter building tool for UniNE websites

dev-master / 1.0.x-dev 2018-08-07 06:22 UTC

README

Newsletter interface builder and send via mailjet api

!!! WARNING work in progress this is a specific package for specific content !!!

Install

Via Composer

$ composer require designpond/newsletter

Require

"intervention/image": "dev-master",
"inlinestyle/inlinestyle": "1.*",
"maatwebsite/excel": "~2.0.0",
"mailjet/mailjet-apiv3-php": "^1.1"

Usage

This package is used with Laravel 5.2 adn Mailjet API v3 Created for multiple websites of La Faculté de droit de l'Université de Neuchâtel. The content is meant to be used with arrets, analyse, categories and multi sites

Configuration

  • Publish with php artisan vendor:publish

    Required

    • Assets --tag=assets
    • Migrations --tag=migrations
    • Seeders --tag=seeds

    Optionnal

    • Views --tag=views
    • Master layout --tag=layouts
    • Config --tag=config
  • In newsletter.php define building blocs to use if you enable "groupe" you have to enable "arret", both go with another!

  • Define the models and files/images paths.

  • Add Mailjet credentials to your .env file

  • Migrate tables and seed types with php artisan db:seed --class=TypeSeeder

Usage simple

If you want routes with prefix set it in env.js in newsletter/js

Master layout dependencies

Javascript and css

  • jquery.js v2.2
  • jquery-ui.js v1.11
  • bootstrap.css v3
  • bootstrap.js v3

Elements to add

In the head

@if(isset($isNewsletter))
    @include('newsletter::Style.main', ['campagne' => isset($campagne) ? : null])
    @include('newsletter::Style.redactor')
@endif

Before end of the body

@include('newsletter::Script.config')
     
@if(isset($isNewsletter))
    @include('newsletter::Script.date')
    @include('newsletter::Script.redactor')
    @include('newsletter::Script.angular')
    @include('newsletter::Script.datatables')
    @include('newsletter::Script.main')
@endif

You have to implement upload routes for wysiwyg redactor.js

Route::post('uploadRedactor', 'UploadController@uploadRedactor');
Route::post('uploadJS', 'UploadController@uploadJS');
Route::get('imageJson/{id?}', ['uses' => 'UploadController@imageJson']);
Route::get('fileJson/{id?}', ['uses' => 'UploadController@fileJson']);

Usage with Arrets and Categories

You have to Implement ajax routes:

Route::get('arret/{id}', 'ArretController@simple'); // build.js
Route::get('arrets/{id?}',     'ArretController@arrets'); // build.js
Route::get('categories/{id?}', 'CategorieController@categories'); // utils.js

And configure the path to you routes for angular`in newsletter/js/env.js

// Admin url
window.__env.adminUrl = 'http://dev.local/admin/';
// Base url
window.__env.ajaxUrl = 'http://dev.local/admin/ajax/';

Navigation menu items

  • Newsletters list: build/newsletter
  • Subscribers: build/subscriber
  • Import subscribers: build/import
  • External email lists: build/liste

Change log

Please see CHANGELOG for more information what has changed recently.

Security

If you discover any security related issues, please email cindy.leschaud@gmail.com instead of using the issue tracker.

Credits

Cindy Leschaud

License

The MIT License (MIT). Please see License File for more information.