Integrate the tool Sir Trevor JS in a Laravel 4/5 project.
For Laravel 5, use the branch 2.0 :
"caouecs/sirtrevorjs": "2.0.x-dev"
and"thujohn/twitter": "2.0.x-dev"
This package is available through Packagist
and Composer
.
- add to your composer.json
"caouecs/sirtrevorjs": "dev-master"
at your own risk - or add to your composer.json
"caouecs/sirtrevorjs": "~1.4"
for stable version - or run
composer require caouecs/sirtrevorjs
- or you can use Package Installer, Laravel-SirTrevorJS has a valid provides.json file. After installation of Package Installer, just run
php artisan package:install caouecs/sirtrevorjs
; the lists of providers and aliases will be up-to-date.
In your app/config/app.php
, add in aliases :
'SirTrevorJs' => 'Caouecs\Sirtrevorjs\SirTrevorJs',
'STConverter' => 'Caouecs\Sirtrevorjs\SirTrevorJsConverter'
If you want to use routing, controllers, views directly in your project, in your app/config/app.php
, add "Caouecs\Sirtrevorjs\SirtrevorjsServiceProvider"
to your list of providers.
To get tweets, this project uses twitter-l4, so you must have a valid developer account of Twitter and add config file of twitter-l4 :
php artisan config:publish thujohn/twitter
and add "Thujohn\Twitter\TwitterServiceProvider"
to your list of providers in your app/config/app.php
.
Next, you must migrate config :
php artisan config:publish caouecs/sirtrevorjs
After installation, the config file is located at app/config/packages/caouecs/sirtrevorjs/sir-trevor-js.php.
You can define :
- the path for image upload
- the route for upload image
- the route for tweet
- the path of Sir Trevor files
- the list of block types
- the language
- the paths for Eventable.js and Underscore.js
- the view
- configuration for blocks
- soundcloud
- gettyimages
- etc...
For stylesheets :
SirTrevorJs::stylesheets()
For scripts, in your Blade files :
SirTrevorJs::scripts()
Function to fix a problem with image block when you add a new image :
$text = SirTrevorJs::transformText($text);
Get first image in text with findImage
method :
string SirTrevorJS::findImage(string $text);
In return, you have url of image or empty string.
Get all elements in text, in specified blocktype with find
method :
mixed SirTrevorJS::find(string $text, string $blocktype [, string $output = "json"])
In return, you can have :
- array, if you choose "array" for $output
- json, if you choose "json" for $output
- false, if the script doesn't find an occurence of blocktype
This class proposes two things :
- upload image where you want
- get tweets
This project proposes a system for upload image, nothing to configure, just the directory_upload
value in config file.
"directory_upload" => "img/uploads"
The uploader is in SirTrevorJsController class, and the project has a route.php file for it.
Route::any("/sirtrevorjs/upload", array("uses" => "SirTrevorJsController@upload"));
This project proposes a system to get tweets. I use twitter-l4 project.
The installation of twitter-l4 is done by Composer, but you need to configure it ( see Instructions).
The tweet converter is in SirTrevorJsController class, and the project has a route.php file for it.
Route::any("/sirtrevorjs/tweet", array("uses" => "SirTrevorJsController@tweet"));
Convert text from Sir Trevor Js to html :
$convert = new STConverter();
$convert->toHtml($text)
Or via SirTrevorJS class :
{{ SirTrevorJs::render($text) }}
For the moment, the code can convert :
- blockquote / quote
- embedly card
- facebook post
- getty images
- heading
- image
- basic version
- version with caption
- issuu
- sketchfab
- slideshare
- soundcloud
- spotify
- text with Markdown
- tweet
- unordered list
- video
- aol
- canal plus
- daily mail uk
- dailymotion
- france tv
- global news
- livestream
- metacafe
- metatube
- nbc bay area
- nhl
- ooyala
- redtube
- ustream (live and recorded)
- veoh
- vevo
- vimeo
- vine
- wat
- yahoo
- youtube
- zoomin.tv
- video with caption