}
$c->save();
- $storage = storage_path('themes/' . $e->theme_id . '/');
- if (!file_exists($storage)) {
- mkdir($storage, 0777, true);
- }
$s = $this->_unserialize($e->parametres);
}
$f = $c->getField($k);
if ($f instanceof Files) {
- if ($data) {
- $file = $oldRoot . $data;
- if (file_exists($file)) {
- $copy = $storage . $data;
- if (!file_exists($copy)) {
- copy($file, $copy);
- }
- try {
- $c->addMediaToField($k, $copy);
- } catch (\Exception $e) {
- echo $copy . "\n";
- }
- }
- }
+ $c->_handleWS2File($f, $data, $oldRoot);
} else {
if ($f instanceof Color) {
-
+ $data = FluidbookTheme::_colorToWS3($data);
}
$c->setAttribute($k, $data);
}
class CompanyCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
{
- use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
- use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
+ use \Cubist\Backpack\Magic\Operations\CreateOperation;
+ use \Cubist\Backpack\Magic\Operations\UpdateOperation;
use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
/*
- __('company')
- __('companies')
+ __('client')
+ __('clients')
*/
protected $_modelNamespace = 'App\Models\Company';
protected $_routeURL = 'company';
- protected $_singular = 'company';
- protected $_plural = 'companies';
+ protected $_singular = 'client';
+ protected $_plural = 'clients';
protected $_oneInstance= false;
}
--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+class FluidbookPublicationCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
+{
+ use \Cubist\Backpack\Magic\Operations\CreateOperation;
+ use \Cubist\Backpack\Magic\Operations\UpdateOperation;
+ use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
+ use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
+ use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
+
+
+
+ /*
+ __('publication')
+ __('publications')
+ */
+
+ protected $_modelNamespace = 'App\Models\FluidbookPublication';
+ protected $_routeURL = 'fluidbook-publication';
+ protected $_singular = 'publication';
+ protected $_plural = 'publications';
+ protected $_oneInstance= false;
+}
class FluidbookQuoteCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
{
- use \Cubist\Backpack\Http\Controllers\Operations\ShowOperation;
- use \App\Http\Controllers\Admin\Operations\FluidbookQuote\AssignOperation;
+ use \App\Http\Controllers\Admin\Operations\FluidbookQuote\AssignOperation;
use \App\Http\Controllers\Admin\Operations\FluidbookQuote\CreateFromWebsite;
use \App\Http\Controllers\Admin\Operations\FluidbookQuote\ConfirmAssignmentOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
- use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
+ use \Cubist\Backpack\Magic\Operations\UpdateOperation;
+ use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+class FluidbookThemeCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
+{
+ use \Cubist\Backpack\Magic\Operations\CreateOperation;
+ use \Cubist\Backpack\Magic\Operations\UpdateOperation;
+ use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
+ use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
+ use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
+ use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
+ use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
+ use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
+
+
+
+ /*
+ __('theme')
+ __('themes')
+ */
+
+ protected $_modelNamespace = 'App\Models\FluidbookTheme';
+ protected $_routeURL = 'fluidbook-theme';
+ protected $_singular = 'theme';
+ protected $_plural = 'themes';
+ protected $_oneInstance= false;
+}
class LocaleCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
{
- use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
+ use \Cubist\Backpack\Magic\Operations\CreateOperation;
+ use \Cubist\Backpack\Magic\Operations\UpdateOperation;
use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
class QuizCrudController extends \App\Http\Controllers\Admin\Base\QuizController
{
- use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
- use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
+ use \Cubist\Backpack\Magic\Operations\CreateOperation;
+ use \Cubist\Backpack\Magic\Operations\UpdateOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
class QuizatttemptCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
{
- use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
+ use \Cubist\Backpack\Magic\Operations\CreateOperation;
+ use \Cubist\Backpack\Magic\Operations\UpdateOperation;
use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
class QuiztranslationCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
{
- use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
+ use \Cubist\Backpack\Magic\Operations\CreateOperation;
+ use \Cubist\Backpack\Magic\Operations\UpdateOperation;
use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
class SettingsCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
{
- use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
+ use \Cubist\Backpack\Magic\Operations\CreateOperation;
+ use \Cubist\Backpack\Magic\Operations\UpdateOperation;
use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
class SignatureCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
{
- use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
- use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
+ use \Cubist\Backpack\Magic\Operations\CreateOperation;
+ use \Cubist\Backpack\Magic\Operations\UpdateOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
class ToolboxTranslateCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
{
- use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
+ use \Cubist\Backpack\Magic\Operations\CreateOperation;
+ use \Cubist\Backpack\Magic\Operations\UpdateOperation;
use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
class UsersCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
{
use \Cubedesigners\UserDatabase\Operations\LoginasOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
- use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
- use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
+ use \Cubedesigners\UserDatabase\Operations\CreateFromCompany;
+ use \Cubist\Backpack\Magic\Operations\CreateOperation;
+ use \Cubist\Backpack\Magic\Operations\UpdateOperation;
use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
/*
- __('user')
- __('users')
+ __('utilisateur')
+ __('utilisateurs')
*/
protected $_modelNamespace = 'App\Models\User';
protected $_routeURL = 'users';
- protected $_singular = 'user';
- protected $_plural = 'users';
+ protected $_singular = 'utilisateur';
+ protected $_plural = 'utilisateurs';
protected $_oneInstance= false;
}
protected static $_colorToWS2Cache = [];
protected static $_colorAlphaToWS2Cache = [];
+ protected $_oldRoot = '/home/extranet/www/fluidbook/';
public function setFields()
{
parent::onAfterSave();
$this->updateWS2Table();
}
+
+ public function fromWS2($data)
+ {
+ $map = ['theme_id' => 'id',
+ 'nom' => 'name',
+ 'proprietaire' => 'owner',
+ 'date' => 'created_at',];
+
+ $ignore = ['extraXSpace', 'extraYSpace'];
+
+ $oldRoot = $this->_oldRoot . 'themes/' . $data->theme_id . '/';
+
+ foreach ($map as $old => $new) {
+ $v = $data->$old;
+ if ($old === 'date') {
+ $date = new \DateTime();
+ $date->setTimestamp($v);
+ $v = $date;
+ }
+ $this->setAttribute($new, $v);
+ }
+ $this->save();
+
+
+ $s = self::_unserialize($data->parametres);
+
+ foreach ($s->datas as $k => $v) {
+ if (in_array($k, $ignore)) {
+ continue;
+ }
+ $f = $this->getField($k);
+ if ($f instanceof Files) {
+ $this->_handleWS2File($f, $v, $oldRoot);
+ } else {
+ if ($f instanceof Color) {
+ $data = self::_colorToWS3($data);
+ }
+ $this->setAttribute($k, $v);
+ }
+ }
+ $this->save();
+ return $this;
+ }
+
+ public function getStorage()
+ {
+ $storage = storage_path('themes/' . $this->getAttribute('id') . '/');
+ if (!file_exists($storage)) {
+ mkdir($storage, 0777, true);
+ }
+ return $storage;
+ }
+
+ /**
+ * @param $field Files
+ * @param $data string
+ * @param $oldRoot string
+ */
+ public function _handleWS2File($field, $data, $oldRoot)
+ {
+ if ($data) {
+ $file = $oldRoot . $data;
+ if (file_exists($file)) {
+
+ $copy = $this->getStorage() . $data;
+ if (!file_exists($copy)) {
+ copy($file, $copy);
+ }
+ try {
+ $this->addMediaToField($field->getName(), $copy);
+ } catch (\Exception $e) {
+ echo $copy . "\n";
+ }
+ }
+ }
+ }
+
+ protected static function _unserialize($str)
+ {
+ $class = 'stdClass';
+ $str = preg_replace('/^O:\d+:"[^"]++"/', 'O:' . strlen($class) . ':"' . $class . '"', $str);
+ $str = str_replace("s:8:\"\0*\0datas\"", 's:5:"datas"', $str);
+ return unserialize($str);
+ }
}
<?php
Route::group([
- 'prefix' => config('backpack.base.route_prefix', 'admin'),
+ 'prefix' => config('backpack.base.route_prefix', 'admin'),
'middleware' => ['web', config('backpack.base.middleware_key', 'admin')],
- 'namespace' => 'App\Http\Controllers\Admin',
+ 'namespace' => 'App\Http\Controllers\Admin',
], function () { // custom admin routes
try {
- Route::crud('users', 'UsersCrudController');
- Route::crud('company', 'CompanyCrudController');
- Route::crud('fluidbook-quote', 'FluidbookQuoteCrudController');
- Route::crud('locale', 'LocaleCrudController');
- Route::crud('quiz', 'QuizCrudController');
- Route::crud('quizatttempt', 'QuizatttemptCrudController');
- Route::crud('quiztranslation', 'QuiztranslationCrudController');
- Route::crud('settings', 'SettingsCrudController');
- Route::crud('signature', 'SignatureCrudController');
- Route::crud('toolbox-translate', 'ToolboxTranslateCrudController');
- Route::crud('users', 'UsersCrudController');
- } catch(\Throwable $e) {
+ Route::crud('locale', 'LocaleCrudController');
+ Route::crud('settings', 'SettingsCrudController');
+ Route::crud('quiztranslation', 'QuiztranslationCrudController');
+ Route::crud('fluidbook-theme', 'FluidbookThemeCrudController');
+ Route::crud('fluidbook-quote', 'FluidbookQuoteCrudController');
+ Route::crud('quizatttempt', 'QuizatttemptCrudController');
+ Route::crud('toolbox-translate', 'ToolboxTranslateCrudController');
+ Route::crud('fluidbook-publication', 'FluidbookPublicationCrudController');
+ Route::crud('quiz', 'QuizCrudController');
+ Route::crud('signature', 'SignatureCrudController');
+ Route::crud('users', 'UsersCrudController');
+ Route::crud('company', 'CompanyCrudController');
+ Route::crud('users', 'UsersCrudController');
+ } catch (\Throwable $e) {
}
});
|
*/
-Artisan::command('inspire', function () {
- $this->comment(Inspiring::quote());
-})->describe('Display an inspiring quote');