пример на странице интересного дизайн продукта для маковки
-webkit-mask-position: 0 0;
-webkit-mask-size: 100% 100%;
-webkit-mask-image: linear-gradient(90deg, hsla(0, 0%, 0%, 0), hsla(0, 0%, 0%, .2) 50%, hsla(0, 0%, 0%, .8) 80%, hsla(0, 0%, 0%, 1) 100%);
прекрепляю сам файлик
FirePHP.class.php и
ссылку на расширение для chrome
Как думаете, для чего нужен такой дебагер, если можно написать свой и чтоб js писал в консоль?,
а нужен
FirePHP например для ajax запросов в json формате и firephp не ломает ответ сервера и вообще не участвует в теле ответа запроса, так же, firephp не оставляет в html следов дебага, которые могут восприниматься поисковиками или элементарно ломать верстку, в общем всем советую для определенного круга задач
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/templates/.default/FirePHP.class.php');
$firephp = FirePHP::getInstance(true);
$options = array(
'maxObjectDepth' => 15,
'maxArrayDepth' => 15,
'maxDepth' => 15,
'useNativeJsonEncode' => true,
'includeLineNumbers' => true
);
$firephp->setOptions($options);
@font-face {
font-family: 'robotolight';
src: url('../fonts/roboto-light-webfont.eot');
src: url('../fonts/roboto-light-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/roboto-light-webfont.woff') format('woff'),
url('../fonts/roboto-light-webfont.ttf') format('truetype'),
url('../fonts/roboto-light-webfont.svg#robotolight') format('svg');
font-weight: normal;
font-style: normal;
}
$strEmail = COption::GetOptionString('main','email_from');
var validator_list_top_form = $("#top-feedback-form").validate({
errorPlacement: function(error, element) {
error.prependTo(element.parent(".one-field-top-form-wrapper").find('.error-label-wrapper'));
},
errorClass: "error-form-field",
rules:{
top_name:{
required: true,
minlength: 1,
maxlength: 100
},
top_phone:{
required: true,
digits: true,
minlength: 5,
maxlength: 11
}
},
messages:{
top_name:{
required: "Это поле обязательно для заполнения",
minlength: "Минимальная длина поля 1 символ",
maxlength: "Максимальное число символов - 100"
},
top_phone:{
required: "Это поле обязательно для заполнения",
digits: "Требуется ввести числовое значение",
minlength: "Минимальная длина телефона 5 символов",
maxlength: "Максимальная длина телефона 11 символов"
}
}
});
$('#top-feedback-form').submit(function(){
if(validator_list.errorList.length==0){
var property = new Object();
property.trigger_name = 'feedback-message';
property.name = $('#top-feedback-form input[name="name"]').val();
property.phone = $('#top-feedback-form input[name="phone"]').val();
var request = $.post(
"/bitrix/templates/.default/ajax-answers/mail-sender.php",
{
"trigger_name" : property.trigger_name,
"name" : property.name,
"phone" : property.phone
},
function(msg){
console.log(msg);
if(msg.error==false){
$.fancybox.open({
height : 50,
autoSize : false,
content : '<div class="server-error-message" >'+msg.error_message+'</div>',
maxWidth : 250,
maxHeight : 10
});
}
else if (msg.error==true){
$.fancybox( '<div class="server-error-message" style="color: red">'+msg.error_message+'</div>' );
}
},
"json"
);
request.fail(function(jqXHR, textStatus) {
alert( "Request failed: " + textStatus );
});
}
return false;
});
preg_replace('/<a(.*)>|<\/a>/sU','',$text)