Web Мастерская
Магический метод __call(): Вызов при недоступных методов
Магический метод
Мои два метода (
С решением этой задачи мне помог магический метод
...
__call() запускается при попытке обращения к несуществующему/недоступному методу:
public function __call($name, $arguments)
{
echo 'Метод: ' . $name . ' не найден.';
}Мои два метода (
installation и update) были похоже друг с другом, за исключением деталей, я решил их объединить, в один, при этом обращение к методам должно было остаться прежним:
$class->installation();
$class->update();С решением этой задачи мне помог магический метод
__call():
// Установка | Обновление
public function __call(string $name, array $arguments)
{
// Проверка: Если вызываемый метод не: installation, или не: update, то функция вернёт null
if (!in_array($name, ['installation', 'update']))
{
return null;
}
// Код функции
} // End: Установка | Обновление- Жалоба
Остановка текущего воспроизведения, при включении другого проигрывателя
Стояла задача: Поставить на паузу аудио проигрыватель, что играет в данный момент, при включении другого проигрывателя. Решение было найдено в интернете, выглядит чистый JS так:
jQuery выглядит так:
Опробовал. При динамическом добавлении проигрывателя, работает тоже....
// Остановка текущего аудио плеера, при включении другого
window.addEventListener('play', function(unit) {
if (window.playing && window.playing != unit.target) {
window.playing.pause();
};
window.playing = unit.target;
}, true); // End: Остановка текущего аудио плеера, при включении другогоjQuery выглядит так:
// Остановка текущего аудио плеера, при включении другого
$('audio').on('play', function() {
$('audio').not(this).each(function(index, audio) {
audio.pause();
});
}); // End: Остановка текущего аудио плеера, при включении другогоОпробовал. При динамическом добавлении проигрывателя, работает тоже....
Псевдокласс :hover в атрибуте style (CSS | HTML | JS)
Появилась задача изменить стиль элемента при наведении курсора и вернуть прежний стиль, когда курсор увели. Для решения этой задачи существует псевдокласс :hover, при помощи, которого можно решить задачу, но дело в том, что стиль элемента находится в атрибуте style элемента, например:
В него же необходимо вставить :hover, но делать этого конечно нельзя. Необходимо искать другой вариант решения, а вариантом вполне может быть - использование атрибутов событий: onMouseOver и onMouseOut:
Делаем так:
Готово. Задача решена, теперь цвет текста меняется при наведении курсора и возвращается в прежний цвет, когда курсор убегает....
<span style="color: #CCCCCC;">Текст</span>В него же необходимо вставить :hover, но делать этого конечно нельзя. Необходимо искать другой вариант решения, а вариантом вполне может быть - использование атрибутов событий: onMouseOver и onMouseOut:
- onMouseOver - Выполняется, при наведении курсора.
- onMouseOut - Выполняется, при выходи курсора за пределы элемента.
Делаем так:
<span style="color: #CCCCCC;"
onMouseOver="this.style.color = '#999999';"
onMouseOut="this.style.color = '#CCCCCC';">
Текст
</span>Готово. Задача решена, теперь цвет текста меняется при наведении курсора и возвращается в прежний цвет, когда курсор убегает....
JS: От модального окна дёргается страница
Есть у меня код, что выводит модальное окно, чтобы подтвердить или отклонить действие:
Как оказалось, после нажатия, на любою кнопку, в появившемся окошке, дёргается страница, стремительно прокручивается до самого верха.
Чтобы избавиться от дёргания страницы, внутрь условия
После чего дёргание исчезло....
document.addEventListener('click', function(unit) {
var detail = unit.target;
if (param == 'destruction') {
if (confirm(confirmProcessDeletion)) { // Модульное окно
// Код
};
};
// Другие задачи
});Как оказалось, после нажатия, на любою кнопку, в появившемся окошке, дёргается страница, стремительно прокручивается до самого верха.
Чтобы избавиться от дёргания страницы, внутрь условия
param == 'destruction', я добавил: unit.preventDefault();:
document.addEventListener('click', function(unit) {
var detail = unit.target;
if (param == 'destruction') {
if (confirm(confirmProcessDeletion)) { // Модульное окно
// Код
};
unit.preventDefault();
};
// Другие задачи
});После чего дёргание исчезло....
PHP: Цикл в две колонки | В два столбика
Работая над одним приложением, потребовалось перечислить элементы массива в две колонки (Столбика):

Для решения этой задачи, у меня было два варианта. Первый:
И CSS к шаблону:
И второй:
Я выбрал первый вариант. Он мне показался лучшем, чем второй....

Для решения этой задачи, у меня было два варианта. Первый:
<?php foreach ($characteristics as $characteristic): ?>
<div class="feature">
<?php echo $this->lang()->phrase($characteristic['name']); ?>: <strong><?php echo $characteristic['info']; ?></strong>
</div>
<?php endforeach; ?>И CSS к шаблону:
.feature {
display: inline-block;
width: 48%;
}И второй:
<?php foreach ($characteristics as $key => $characteristic): ?>
<?php if ($key % 2): ?>
<div style="float: right;">
<?php else: ?>
<div style="float: left;">
<?php endif; ?>
<?php echo $this->lang()->phrase($characteristic['name']); ?>: <strong><?php echo $characteristic['info']; ?></strong>
</div>
<?php endforeach; ?>Я выбрал первый вариант. Он мне показался лучшем, чем второй....
