sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux

Как вы реализовываете однотипный листинг?

Доброго времени суток, имеется сайт у которого такие модули как форум, чат, личные сообщения и прочее имеют однотипный листинг, к примеру
<div class="listing">

    <div class="post">
        <div class="title">
            <div class="actions"></div>
            <div class="time"></div>
        </div>
        <div class="content"></div>
        <div class="bottom"></div>
    </div>

</div>

Хочу реализовать это так, что бы когда понадобится что то изменить в листинге, не пришлось колупать вюшки всех модулей.
Сам поступил так:
1. Создал общий шаблон для листинга который будет выступать в роли родителя
<div class="listing" ng-controller="ListingCtrl">
    @yield('content')
</div>

2. Вьюшка для конкретного модуля выглядит так
@extends('listing.listing')

@section('content')
    @each('forum.list', $categories, 'category')
@stop

3. В листинге forum.list уже подключаю шаблон постов передавая туда необходимые переменные
@include('listing.posts', [
    'title' => $category->name,
    'icon' => 'forum.category',
    'description' => $category->description,
    'url' => "./category.php?id={$category->id}",
])

4. И сам listing.posts
<div class="post clearfix icon time content"
    data-ng-controller="ListingPostCtrl"
    data-post-url="{{$url}}">
    <div class="post_head">
        <span class="post_icon">
            <img src="{{ App\App::icon($icon) }}" alt="">
        </span>
        <a class="post_title" href="{{$url}}">{{$title}}</a>
    </div>
    <div class="post_content">{{$description}}</div>
</div>

------------------
Теперь при необходимости достаточно отредактировать файл из шага 1 или 4 и разметка поменяется везде где это нужно. Цель достигнута, но что то подсказывает что это можно сделать проще. Кто то подобное реализовывал?
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 1
UksusoFF
@UksusoFF
Можно посмотреть как это сделано в популярных админках и/или datables.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы