Skip to content

Commit

Permalink
add embed codes
Browse files Browse the repository at this point in the history
  • Loading branch information
bastihilger committed Aug 16, 2021
1 parent d2ec55e commit 1acdc8a
Show file tree
Hide file tree
Showing 8 changed files with 793 additions and 305 deletions.
1,007 changes: 707 additions & 300 deletions composer.lock

Large diffs are not rendered by default.

37 changes: 37 additions & 0 deletions database/migrations/2021_08_16_000000_add_embed_code_to_works.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
$prefix = config('nova-cms-portfolio.db_prefix');

Schema::table($prefix.'works', function (Blueprint $table) {
$table->mediumText('embed_code')->nullable();
$table->string('embed_code_ratio')->nullable();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
$prefix = config('nova-cms-portfolio.db_prefix');

Schema::table($prefix.'works', function (Blueprint $table) {
$table->dropColumn('embed_code');
$table->dropColumn('embed_code_ratio');
});
}
};
2 changes: 2 additions & 0 deletions resources/lang/nova-cms-portfolio/de/works.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

return [
'caption' => 'Caption',
'embed_code' => 'Embed Code (Youtube, Vimeo etc.)',
'embed_code_ratio' => 'Seitenverhältnis Embed Code (z.B. "16:9")',
'is_artist_discipline_image' => 'Repräsentiert Künstler in Disziplin',
'is_artist_portfolio_image' => 'Ist Künstler-Portfolio-Bild',
'represents_artist_in_discipline_category' => 'Repräsentiert Künstler in Kategorie',
Expand Down
2 changes: 2 additions & 0 deletions resources/lang/nova-cms-portfolio/en/works.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

return [
'caption' => 'caption',
'embed_code' => 'embed code (Youtube, Vimeo etc.)',
'embed_code_ratio' => 'embed code ratio (f.e "16:9")',
'is_artist_discipline_image' => 'represents artist in discipline',
'is_artist_portfolio_image' => 'is artist portfolio image',
'represents_artist_in_discipline_category' => 'represents artist in category',
Expand Down
21 changes: 21 additions & 0 deletions src/Models/Work.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,25 @@ public function buildSortQuery()
{
return static::query()->where('slideshow_id', $this->slideshow_id);
}

public function embedRatio()
{
$defaultRatio = (9 / 16) * 100;

if (! $this->embed_code_ratio) {
return $defaultRatio;
}

$arr = explode(':', $this->embed_code_ratio);

if (count($arr) < 2) {
return $defaultRatio;
}

$width = intval($arr[0]) ?: 16;

$height = intval($arr[1]) ?: 9;

return ($height / $width) * 100;
}
}
15 changes: 12 additions & 3 deletions src/Nova/Category.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,27 @@

namespace Kraenkvisuell\NovaCmsPortfolio\Nova;

use Laravel\Nova\Resource;
use Illuminate\Http\Request;
use Kraenkvisuell\NovaCmsPortfolio\Nova\Resource;
use Laravel\Nova\Fields\Text;
use Laravel\Nova\Http\Requests\NovaRequest;

class Category extends Resource
{
public static $model = \Kraenkvisuell\NovaCmsPortfolio\Models\Category::class;

public static $sortable = false;
// public static $sortable = false;

public static $searchable = false;
public static function orderBy()
{
return [
'title->'.app()->getLocale() => 'asc',
];
}

//public static $searchable = false;

public static $perPageOptions = [100, 200];

public function title()
{
Expand Down
7 changes: 5 additions & 2 deletions src/Nova/Resource.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace Kraenkvisuell\NovaCmsPortfolio\Nova;

use Laravel\Nova\Http\Requests\NovaRequest;
use Laravel\Nova\Resource as NovaResource;

abstract class Resource extends NovaResource
Expand All @@ -12,7 +11,11 @@ protected static function applyOrderings($query, array $orderings)
if (empty($orderings) && property_exists(static::class, 'orderBy')) {
$orderings = static::$orderBy;
}


if (empty($orderings) && method_exists(static::class, 'orderBy')) {
$orderings = static::orderBy();
}

return parent::applyOrderings($query, $orderings);
}
}
7 changes: 7 additions & 0 deletions src/Nova/Work.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use Laravel\Nova\Fields\Select;
use Laravel\Nova\Fields\Stack;
use Laravel\Nova\Fields\Text;
use Laravel\Nova\Fields\Textarea;
use Laravel\Nova\Http\Requests\NovaRequest;
use Laravel\Nova\Resource;
use OptimistDigital\NovaSortable\Traits\HasSortableRows;
Expand Down Expand Up @@ -92,6 +93,12 @@ public function fields(Request $request)
})->asHtml(),
]),

Textarea::make(__('nova-cms-portfolio::works.embed_code'), 'embed_code')
->onlyOnForms(),

Text::make(__('nova-cms-portfolio::works.embed_code_ratio'), 'embed_code_ratio')
->onlyOnForms(),

Text::make(__('nova-cms::pages.title'), 'title')
->onlyOnForms(),

Expand Down

0 comments on commit 1acdc8a

Please sign in to comment.