14 августа 2018 Нет комментариев
<a href="viber://add?number=792112345678"></a>
<a href="whatsapp://send?phone=+792112345678"></a>
Categories: Web Tags:
14 августа 2018 Нет комментариев
function correct_image_orientation($filename,$quality=100){
	if(function_exists('exif_read_data')){
		$exif=exif_read_data($filename);
		if($exif&&isset($exif['Orientation'])){
			$angles=array(3=>180,6=>270,8=>90);
			if(isset($angles[$exif['Orientation']])){
				$image=imagecreatefromjpeg($filename);
				$image=imagerotate($image,$angles[$exif['Orientation']],0);
				imagejpeg($image,$filename,$quality);
			}
		}
	}
}

Использование:

move_uploaded_file($file['tmp_name'],ROOT_DIR.IMAGES_PHOTOS_DIR.$fname);
correct_image_orientation(ROOT_DIR.IMAGES_PHOTOS_DIR.$fname);
Categories: PHP Tags:
parse_url($_SERVER['HTTP_REFERER'],PHP_URL_HOST)
Categories: PHP Tags:

Javascript:

ymaps.ready(init);
function init(){
	var groups=[
		{
			name:"Группа 1",
			style:"islands#blueCircleIcon",
			items:[
				{name:"Санкт-Петербург, Московский пр-т, д. 44"},
				{name:"Санкт-Петербург, ул. Байконурская, д. 14А, ТРК «Континент»"},
			]
		},
		{
			name:"Группа 2",
			style:"islands#greenCircleIcon",
			items:[
				{name:"Санкт-Петербург, Лиговский пр-т, д. 30А, ТРЦ «Галерея»"},
				{name:"Санкт-Петербург, Петергофское ш., д. 51, ТРЦ «Жемчужная Плаза»"},
			]
		},
	];
	var myMap=new ymaps.Map('map',{
		center:[59.939095,30.315868],
		zoom:10
	},{
		searchControlProvider:'yandex#search'
	}),
	menu=$('<div class="menu"></div>');
	for(var i=0,l=groups.length;i<l;i++){
		createMenuGroup(groups[i]);
	}
	function createMenuGroup(group){
		var menuItem=$('<div class="group"><p>'+group.name+'</p></div>'),
			collection=new ymaps.GeoObjectCollection(null,{preset:group.style}),
			submenu=$('<ul></ul>');
		myMap.geoObjects.add(collection);
		menuItem.append(submenu).appendTo(menu);
		for(var j=0,m=group.items.length;j<m;j++){
			createSubMenu(group.items[j],collection,submenu);
		}
	}
	function createSubMenu(item,collection,submenu){
		var submenuItem=$('<li><a href="#">'+item.name+'</a></li>');
		ymaps.geocode(item.name,{results:1}).then(function(res){
			var coords=res.geoObjects.get(0).geometry.getCoordinates();
			var placemark=new ymaps.Placemark(coords,{balloonContent:item.name});
			collection.add(placemark);
			submenuItem.appendTo(submenu).find('a').bind('click',function(){
				if(!placemark.balloon.isOpen()){
					placemark.balloon.open();
				}
				else{
					placemark.balloon.close();
				}
				return false;
			});
		});
	}
	menu.insertAfter($('#map'));
}

HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script>
<script>
	//js here
</script>
<div id="map" style="height:400px;"></div>
Categories: Javascript, Web Tags:

Для очистки /var/log/journal/
Удалить логи старше 10 дней:

journalctl --vacuum-time=10days

Оставить 1GB:

journalctl --vacuum-size=1G

Узнать сколько занимают логи:

journalctl --disk-usage

Также можно изменить конфигурацию в /etc/systemd/journald.conf

Categories: Unix Tags:

В случае, когда возникает ошибка Uncaught TypeError: a.indexOf is not a function при использовании последних версий Jquery, например в этом случае:

$(window).load(function(){
});

использовать:

$(window).on('load',function(){
});
Categories: Javascript Tags:

Когда видео автоматически не запускается в Chrome. Добавить параметр muted кроме autoplay. Сам параметр отключает звук, по этому не понятно как это связано, но это работает.
Полный пример:

<video preload="auto" autoplay="autoplay" loop="loop" muted="muted">
	<source src="/assets/video/video.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
	<source src="/assets/video/video.webm" type='video/webm; codecs="vp8, vorbis"'>
	<source src="/assets/video/video.ogv" type='video/ogg; codecs="theora, vorbis"'>
</video>
Categories: Web Tags: