Добавление класса CSS в качестве переменной для цикла PHP - PullRequest
0 голосов
/ 03 марта 2020

У меня есть функция PHP, которая принимает таблицу, которая была отфильтрована с использованием гравитационного потока. Эта функция проходит по каждой строке таблицы. Я хочу изменить стиль этой таблицы. У меня есть специфицированный c CSS класс, который я хочу использовать для стиля таблицы. Этот класс "tr-shadow". Я бы применил этот класс CSS к каждой строке таблицы. У меня есть переменная $ style, которая используется для CSS. Как добавить класс CSS в виде строки для переменной $ style, чтобы таблица могла распечатываться с CSS из этого класса? Вот код ниже.

'' '

public function single_row_columns( $item ) {

list( $columns, $hidden ) = $this->get_column_info();

    foreach ( $columns as $column_name => $column_display_name ) {
        $class = "class='$column_name column-$column_name'";

        $style = "class='tr-shadow'";
        if ( in_array( $column_name, $hidden ) ) {
            $style = "class='tr-shadow'";
        }

        $data_label = ( ! empty( $column_display_name ) ) ? " data-label='$column_display_name'" : '';

        $attributes = "$class$style$data_label";

        if ( 'cb' == $column_name ) {
            echo '<th data-label="' . esc_html__( 'Select', 'gravityflow' ) . '" scope="row" class="check-column">';
            echo $this->column_cb( $item );
            echo '</th>';
        } elseif ( method_exists( $this, 'column_' . $column_name ) ) {
            echo "<td $attributes>";
            echo call_user_func( array( $this, 'column_' . $column_name ), $item );
            echo '</td>';
        } else {
            echo "<td $attributes>";
            echo $this->column_default( $item, $column_name );
            echo '</td>';
        }
    }
}

' '' Как видите, я уже пытался добавить "$ style =" class = 'tr-shadow ". Однако , это не добавляет никакого стиля к таблицам. Я предполагаю, что я неправильно форматирую переменную $ style так, чтобы класс css был узнаваем. Как я могу использовать переменную $ style для успешного вывода css класс для каждой строки таблицы.

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

Ваша переменная $style снова включает атрибут style, что приведет к чему-то вроде:

class="column_name column-bar class=' ... 

, что недопустимо.

Я бы порекомендовал изменить ваш код примерно так:

public function single_row_columns( $item ) {

list( $columns, $hidden ) = $this->get_column_info();

    foreach ( $columns as $column_name => $column_display_name ) {
        $class = "$column_name column-$column_name";

        $class .= " tr-shadow";
        if ( in_array( $column_name, $hidden ) ) {
            $class .= " tr-shadow";
        }

        $data_label = ( ! empty( $column_display_name ) ) ? " data-label='$column_display_name'" : '';

        $attributes = "$data_label";

        if ( 'cb' == $column_name ) {
            echo '<th data-label="' . esc_html__( 'Select', 'gravityflow' ) . '" scope="row" class="check-column">';
            echo $this->column_cb( $item );
            echo '</th>';
        } elseif ( method_exists( $this, 'column_' . $column_name ) ) {
            echo "<td class=\"$class\" $attributes>";
            echo call_user_func( array( $this, 'column_' . $column_name ), $item );
            echo '</td>';
        } else {
            echo "<td class=\"$class\" $attributes>";
            echo $this->column_default( $item, $column_name );
            echo '</td>';
        }
    }
}

Кроме того, похоже, что класс всегда tr-shadow независимо от того, что вы делаете.

0 голосов
/ 03 марта 2020

В этом фрагменте кода вы устанавливаете классы:

$class = "class='$column_name column-$column_name'";

$style = "class='tr-shadow'";

И затем объединяете его в одну строку:

$attributes = "$class$style$data_label";

Так что, я думаю, ваш второй класс игнорируется.

...