Массив учетных записей с различными цветными фонами - PullRequest
1 голос
/ 12 октября 2019

У меня есть веб-приложение CakePHP, которое имеет следующий код в верхней части страницы:

<section class="content">

<style>.center {text-align: center;}</style>
  <!-- Small boxes (Stat box) -->

    <div class="row normaluserdash">
    <?php 
    $colors = array('', 'green','aqua','purple','orange');
    foreach( $user->accounts as $account ) {
    ?>

        <div class="normaluserdash col-xl-3 col-md-4 col-sm-6 col-12">

                            <!-- Card -->
                            <div class="card text-white bg-info">

                                <!-- Card Header -->
                                <h4 class="card-header text-white"><?=$account->title?></h4>
                                <!-- /card header -->

                                <!-- Card Body -->
                                <div class="card-body">

                                    <!-- Card Title-->
                                    <h2 class="card-title text-white center"><?=$this->Format->currency($account->balance)?></h2>
                                    <!-- Card Title-->

                                </div>
                                <!-- /card body -->

                                <!-- Card Footer -->

                                <!-- /card footer -->

                            </div>
                            <!-- /card -->

        </div>
    <?php } ?>

    </div>

приведенный выше код отображает остатки на счетах для 4 из остатков на счетах для пользователя, начиная с кода вышедублируется 4 раза. Прямо сейчас, цвет для всех 4 из вышеупомянутых блоков является синим. Я хотел бы сделать что-то, где я отображаю разные цвета для каждого из них и подаю его в классы CSS. Затем я могу сделать таблицу стилей CSS, которая имеет раскраску для всех 4 цветов. Я хочу, чтобы цвета отличались от всех 4 блоков, но я хочу, чтобы они оставались такими же после обновления. Генерация случайных чисел с помощью JS не работает, пока никто не предложит.

Заранее благодарим за любую помощь, которую вы можете оказать. Если вам интересно, веб-сайт https://bank.northwatchbank.com, и вы можете зарегистрироваться, чтобы просмотреть его. Короче говоря, это фальшивый банк, чтобы связываться с мошенниками.

РЕДАКТИРОВАТЬ ИСПРАВЛЕНО:

    <?php 
    function getCalorBykey($key, $colors){
         $colors_count = count($colors);
        // get reminder
        $reminder =  ($key)%$colors_count;
        return $colors[$reminder];
    }

    $colors = array('info','warning','danger','success');
    foreach( $user->accounts as $key => $account ) {
    ?>

        <div class="normaluserdash col-xl-3 col-md-4 col-sm-6 col-12">

            <!-- Card -->
            <div class="card text-white bg-info card-<?= getCalorBykey($key, $colors) ?>">


                                <!-- Card Header -->
                                <h4 class="card-header text-white"><?=$account->title?></h4>
                                <!-- /card header -->

                                <!-- Card Body -->
                                <div class="card-body">

                                    <!-- Card Title-->
                                    <h2 class="card-title text-white center"><?=$this->Format->currency($account->balance)?></h2>
                                    <!-- Card Title-->

                                </div>
                                <!-- /card body -->

                                <!-- Card Footer -->

                                <!-- /card footer -->

                            </div>
                            <!-- /card -->

        </div>
    <?php } ?>

    </div>

спасибо Jasco за помощь, мне нужно было лишь незначительно изменить ваш код, чтобыработай с моей темой!

1 Ответ

2 голосов
/ 12 октября 2019

Вот одна идея. Вы должны посчитать свои цвета и получить напоминание, основанное на вашем ключе, и с напоминанием вы можете получить цвет из ваших $ цветов. если сальдо счета превышает ваши цвета, функция будет повторять последовательность действий.

function getCalorBykey($key, $colors){
    $colors_count = count($colors);
    // get reminder
    $reminder =  ($key)%$colors_count;
    return $colors[$reminder];
}

в вашем шаблоне вы можете использовать его следующим образом:

 <div class="row normaluserdash">
    <?php 
    function getCalorBykey($key, $colors){
         $colors_count = count($colors);
        // get reminder
        $reminder =  ($key)%$colors_count;
        return $colors[$reminder];
    }

    $colors = array('default', 'green','aqua','purple','orange');
    foreach( $user->accounts as $key => $account ) {
    ?>

        <div class="normaluserdash col-xl-3 col-md-4 col-sm-6 col-12">

            <!-- Card -->
            <div class="card text-white bg-info card-<?= getCalorBykey($key, $colors) ?>">
...
...