1

(3 відповідей, залишених у PHP)

Поки чекав відповіді, розв'язав проблему самотужки  :)

Просто додав ще один масив $composition_list, у який вношу значення із циклу foreach із перевіркою на наявність ідентичного значення у масиві — якщо запис вже існує, то вдруге він у масив не додається.

foreach ($files as $file) {
    $compositions = $file->compositions;
    $composition_list = array();
    foreach ($compositions as $composition) {
        if(!in_array($composition, $composition_list)) {
            $composition_list[] = $composition;
        }
    }
}

UPD. Наразі доданий масив не приносить користі. Всередині циклу він кожного разу перезаписується, а якщо винести його назовні, то дані все одно дублюються. Тож я ще в пошуках та в надії на допомогу...

UPD2. Створив ще один цикл, в одному перевіряю наявність дубльованих id, в інший записую готовий результат (оскільки з одним масивом php попереджував мене, що я намагаюся об'єкт перетворити на рядок).

$files = $category->files;
$composition_ids = array();
$composition_list = array();
foreach ($files as $file) {
    $compositions = $file->compositions;
    foreach ($compositions as $composition) {
        if(!in_array($composition->id, $composition_ids)) {
            $composition_ids[] = $composition->id;
            $composition_list[] = $composition;
        }
    }
}

Готовий масив для використання у blade - composition_list.

Тепер ніби все працює, але щось мені здається, що прикол зі створенням двох додаткових масивів — великі незручні граблі, які можна замінити елегантнішим варіантом. Наразі залишаю, як є, але сподіваюся, що тут хтось щось та й підкаже з часом.

2

(3 відповідей, залишених у PHP)

Всім привіт! З горем навпіл я розібрався із залежностями Eloquent, але, як показує практика, не до кінця.

Словом, є отака структура даних: https://ibb.co/0G61301

Таблиці files і compositions, а також таблиці files і categories зв'язані між собою методом many-to-many за допомогою pivot-таблиць.

Що потрібно: вивести усі композиції вибраної категорії. Я це пробую зробити отак:

public function showCategory($slug)
    {
        $category = Category::where('slug', $slug)->first();
        $files = $category->files;
        foreach ($files as $file) {
            $compositions = $file->compositions;
            foreach ($compositions as $composition) {
                echo $composition->name . '<br />';
            }
        }
    }

Проблема в тому, що якщо кілька різних файлів прив'язані до однієї композиції, то в переліку ця композиція показується кілька разів. Я вже пробував видалити дублі за допомогою PHP-функції array_unique(), але тоді викидає помилку:

array_unique() expects parameter 1 to be array, object given

Переважно я стараюся сам розв'язати проблему, але в даному випадку я застряг уже на кілька днів, тому прошу допомоги. Наперед вдячний за будь-які відповіді!

Трохи поґуґливши, я знайшов цікавий варіант, який використовує хук для функції media_send_to_editor.

Докладно я розписав тут: https://ivaniura.org.ua/web/wordpress/y … wordpress.

А якщо коротко, то ось код, який дає стовідсоткову відповідь на моє запитання (вставляти у файл functions.php із папки шаблона):

function replace_pdf_link( $html, $id ) {
        $attachment = get_post( $id );
        $mime_type = $attachment->post_mime_type;
 
        if ( $mime_type == 'application/pdf' ) {
            $src = wp_get_attachment_url( $id );
            $html = '[pdfviewer]'. $src .'[/pdfviewer]';
        }
        return $html;
}
add_filter('media_send_to_editor', 'replace_pdf_link', 20, 3);

Потрібно заливати на сайт багато PDF-файлів, для чого був встановлений плагін PDF Viewer, який працює із шорткодами [pdfviewer][/pdfviewer].

Коли я вставляю PDF як посилання на медіафайл, то генерується звичайне посилання:

<a href="http://link.com/file.pdf">Title</a>

Що потрібно дописати у functions.php, щоб посилання автоматично обрамлювалися шорткодом, приблизно отак:

[pdfviewer]http://link.com/file.pdf[/pdfviewer]

Допоможіть, будь ласка!

5

(2 відповідей, залишених у HTML та CSS)

ostap34PHP написав:

Почистіть кеш браузера

А до чого тут кеш? Я перевіряю зміни у новоствореному css.

6

(2 відповідей, залишених у HTML та CSS)

Привіт усім! Маю проблему. Налаштував Bootstrap 4 по інструкції, розібрався з компілятором, усе гарно працює, але...

https://v4-alpha.getbootstrap.com/getti … d/options/

Написано конкретно: потрібні змінні скопіювати з _variables.scss у _custom.scss, а там уже міняти значення. Перекидаю значення

$blue:   #0275d8 !default;

міняю колір, забираю !default:

$blue:   #f00;

перевіряю у файлі .css - жодних змін (перевіряю на кольорі основних посилань). Коли це ж значення поміняти у _variables.scss, все коректно міняється.

А щоб працювало у _custom.scss, потрібно дописувати усі змінні:

$blue: #f00;
$brand-primary: $blue;
$link-color: $brand-primary;

Я чогось не розумію? Для чого тоді файл _custom.scss, якщо в ньому потрібно прописувати кожен крок, а в _variables.scss достатньо переписати одну змінну?

7

(6 відповідей, залишених у HTML та CSS)

Розумію, але таке було поставлене завдання...

8

(6 відповідей, залишених у HTML та CSS)

Трішки не те, але близько. Не поспав півночі, але дійшло таки до мене: можна обернути весь вміст у ще один блок div, і задати йому overflow: hidden та мінімальну ширину, до якої не буде обрізатися вміст, в даному випадку 600 пікс.

Ось приклад: https://jsfiddle.net/rv9gk013/

9

(6 відповідей, залишених у HTML та CSS)

При overflow-x: hidden половина червоного блока за замовчуванням прихована, а треба, щоб вона приховувалася без смуги прокрутки лише, коли зменшується ширина перегляду.

От дивіться: в даному прикладі при ширині області перегляду 700 пікс ще видно обидва елементи повністю, а при меншій ширині, наприклад, 650 пікс, уже з'являється смуга прокрутки. А потрібно, щоб вона з'являлася лише коли ширина буде меншою 600 пікс, тобто ширини основного блока.

10

(6 відповідей, залишених у HTML та CSS)

Є ось такий приклад коду:

HTML

<div class="main">
</div>
<div class="bottom1">
<div class="bottom">
</div>
</div>

CSS

.main {
  position: relative;
  margin: 0 auto -100px;
  width: 600px;
  height: 2000px;
  background: green;
}
.bottom1 {
  position: relative;
  margin: 0 auto;
  width: 600px;
}
.bottom {
  position: relative;
  width: 200px;
  height: 100px;
  background: red;
  left: 500px;
}

Ось здублював на JSFiddle: https://jsfiddle.net/sa08cf8b/

Потрібно зробити так, щоб при зменшенні ширини огляду червоний блок внизу просто поступово зникав у правому краю, а смуга прокрутки з'являлася лише тоді, коли ширина менша 600 пікс, тобто вже зачіпає зелений основний блок.

Є ідеї?

11

(12 відповідей, залишених у HTML та CSS)

В тому й нюанс – я стараюся все зробити в самому шаблоні, без прикручування плагінів. Хоча, на думку навели, пошукаю підходящий плагін і спробую витягти з нього інформацію. Щиро дякую, і вибачте, якщо мої запитання звучать смішно – то не є моя основна робота, швидше хобі, тому я тут ще зовсім початківець %)

12

(12 відповідей, залишених у HTML та CSS)

Чесно – ні :) Почав копати в сторону Imagick, поки-що безрезультатно, пізніше ще посиджу. Якщо є вбудовані можливості Wordpress для даної операції, і Ви про них знаєте, то натякніть, хоча б, будь ласка...

13

(12 відповідей, залишених у HTML та CSS)

Приблизним уривком коду зможете навести на думку? А то думка зрозуміла, а спосіб її реалізації годі віднайти у мозку :)

14

(12 відповідей, залишених у HTML та CSS)

Наприклад, http://test.ivaniura.org.ua/soft/linux/ … ok-u-linux
Погортайте скроллом, а я за той час увімкну filter: blur, і побачите різницю.

15

(12 відповідей, залишених у HTML та CSS)

Мова йде про головні зображення для Wordpress у статтях. Кожне зображення оптимізоване (http://optimizilla.com) і має розмір 1200х630, зверху статті йде один примірник зображення, а інший має служити розмитим повноекранним фоном. Якщо просто ставити фон, то все ок, а якщо розмити фільтром, то навіть скролл іде ривками.

Мені потрібно зробити розмитим повноекранне фонове зображення, але вищезгаданий фільтр призводить до того, що весь сайт починає сильно "гальмувати".

Чи є якісь альтернативні методи розмивання зображення без зайвого гальма?