public function rules()
{
return [
[['phone', 'phone_other'], 'required', 'when' => function($model) {
return (!$model->phone && !$model->phone_other);
},'whenClient' => 'function(){return false;}',
/*'whenClient' => 'function (attr, value) {
return $("#MODEL-phone").val() == "" && $("#MODEL-phone_other").val() == "";
}', 'message' => 'Заполните "Телефон" или "Доп. Телефон"'*/],
//...
];
}
//Сохранение последовательности выбора
$('#id_select2').on('select2:select', function(e){
var id = e.params.data.id;
var option = $(e.target).children('[value="'+id+'"]');
option.detach();
$(e.target).append(option).change();
});
php composer.phar require la-haute-societe/yii2-save-relations-behavior "*"
class Post extends yii\db\ActiveRecord
{
public function behaviors()
{
return [
'saveRelations' => [
'class' => SaveRelationsBehavior::class,
'relations' => [
'author',
],
],
];
}
}
Setting read-only property
=)$post->author = Author::findOne(2);
$('.btn').click();
$('a')[0].click();
setTimeout(function(){
$('.btn').click();
}, 1000);
$(function () {
$('form').submit(function () {
$('#loader').show();
$.ajax({
url: $(this).attr('action'),
data: $(this).serialize(),
dataType: 'binary',
xhrFields: {
'responseType': 'blob'
},
success: function(data, status, xhr) {
$('#loader').hide();
// if(data.type.indexOf('text/html') != -1){//Если вместо файла получили страницу с ошибкой
// var reader = new FileReader();
// reader.readAsText(data);
// reader.onload = function() {alert(reader.result);};
// return;
// }
var link = document.createElement('a'),
filename = 'file.xlsx';
// if(xhr.getResponseHeader('Content-Disposition')){//имя файла
// filename = xhr.getResponseHeader('Content-Disposition');
// filename=filename.match(/filename="(.*?)"/)[1];
// filename=decodeURIComponent(escape(filename));
// }
link.href = URL.createObjectURL(data);
link.download = filename;
link.click();
}
});
return false;
});
});
Uncaught DOMException: Failed to read the 'responseText' property from 'XMLHttpRequest': The value is only accessible if the object's 'responseType' is '' or 'text' (was 'blob').
$file = \Yii::getAlias('@webroot/archive'.microtime().'.zip');
$zip = new \ZipArchive();
$zip->open($file, \ZIPARCHIVE::CREATE);
$zip->addFile("index.php");//добавляем файлы в архив
$zip->close();
if (file_exists($file)) {
\Yii::$app->response->sendFile($file, 'archive.zip');
ignore_user_abort(true);//удаление временного файла
if (connection_aborted()) unlink($file);
register_shutdown_function('unlink', $file);
}
$file = \Yii::getAlias('@webroot/archive'.microtime().'.zip');
$zip = new \ZipArchive();
$zip->open($file, \ZIPARCHIVE::CREATE);
$zip->addFile("index.php");//добавляем файлы в архив
$zip->close();
if (file_exists($file)) {
\Yii::$app->response->sendFile($file, 'archive.zip');
ignore_user_abort(true);//удаление временного файла
if (connection_aborted()) unlink($file);
register_shutdown_function('unlink', $file);
}
remove_menu_page('wpcf7'); //если адрес вида admin.php?page=wpcf7
remove_menu_page('themes.php');//если адрес вида themes.php
remove_submenu_page('index.php', 'update-core.php');//(подменю) обновления
function remove_menus(){
remove_menu_page('themes.php');//если адрес вида themes.php
remove_submenu_page('index.php', 'update-core.php');//(подменю) обновления
}
add_action( 'admin_menu', 'remove_menus');
add_action( 'admin_init', 'debug_admin_menu1' ); function debug_admin_menu1() {echo "<pre>";print_r($GLOBALS['menu']);for($i=1;$i<30;$i++){echo"<br>";}print_r($GLOBALS['submenu']);echo "</pre>";die();}
[27] => Array
(
[0] => Contact Form 7 <-- Название пункта меню
[1] => wpcf7_read_contact_forms
[2] => wpcf7 <-- НУЖНАЯ НАМ СТРОКА!!! (имеет индекс [2])
[3] => Contact Form 7
[4] => menu-top toplevel_page_wpcf7 menu-top-last
[5] => toplevel_page_wpcf7
[6] => dashicons-email
)
$.ajax({
'success': function(data){
var targets = [
'#container1',
'#container2'
];
$.each(targets, function (ind, t) {
$(t).html($(data).find(t).html());
});
}
});
$.pjax.reload({container: "#container1", async:false});
$.pjax.reload({container: "#container2", async:false});
$.ajax({
'success': function(data){
var targets = [
'#container1',
'#container2'
];
$.each(targets, function (ind, t) {
$(t).html($(data).find(t).html());
});
}
});
$.pjax.reload({container: "#container1", async:false});
$.pjax.reload({container: "#container2", async:false});
free -h
$.scrollTo($('#some_point'), 500);
$.scrollTo($('#some_point'), 500, {'offset':-100});
$("body").on('click', '[href*="#"]', function(e){
$.scrollTo($(this.hash), 500);
});
php composer.phar require bower-asset/font-awesome
namespace app\assets;
use yii\web\AssetBundle;
class FontAwesomeAsset extends AssetBundle
{
public $sourcePath = '@bower/font-awesome';
public $css = [
'css/all.min.css',
];
}
\app\assets\FontAwesomeAsset::register($this);
class AppAsset extends AssetBundle
{
...
public $depends = [
'app\assets\FontAwesomeAsset',
...
];
}
public $jsOptions = [
'position' => \yii\web\View::POS_HEAD,
];