<?php
/**
* Updated: Mohammad M. AlBanna
* Website: MBanna.info
*/
// MySQL server and database
$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = 'pass';
$dbname = 'name';
$tables = '*';
// Call the core function
backup_tables($dbhost, $dbuser, $dbpass, $dbname, $tables);
// Core function
function backup_tables($host, $user, $pass, $dbname, $tables = '*') {
$link = mysqli_connect($host, $user, $pass, $dbname);
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit;
}
mysqli_query($link, "SET NAMES 'utf8'");
// Get all of the tables
if ($tables == '*') {
$tables = array();
$result = mysqli_query($link, 'SHOW TABLES');
while ($row = mysqli_fetch_row($result)) {
$tables[] = $row[0];
}
} else {
$tables = is_array($tables) ? $tables : explode(',', $tables);
}
$return = '';
// Cycle through tables
foreach ($tables as $table) {
$result = mysqli_query($link, 'SELECT * FROM ' . $table);
$num_fields = mysqli_num_fields($result);
$num_rows = mysqli_num_rows($result);
$return .= 'DROP TABLE IF EXISTS ' . $table . ';';
$row2 = mysqli_fetch_row(mysqli_query($link, 'SHOW CREATE TABLE ' . $table));
$return .= "\n\n" . $row2[1] . ";\n\n";
$counter = 1;
// Over tables
for ($i = 0; $i < $num_fields; $i++) {
// Over rows
while ($row = mysqli_fetch_row($result)) {
if ($counter == 1) {
$return .= 'INSERT INTO ' . $table . ' VALUES(';
} else {
$return .= '(';
}
// Over fields
for ($j = 0; $j < $num_fields; $j++) {
if (isset($row[$j])) {
$row[$j] = mysqli_real_escape_string($link, $row[$j]);
$row[$j] = str_replace("\n", "\\n", $row[$j]);
$return .= '"' . $row[$j] . '"';
} else {
$return .= '""';
}
if ($j < ($num_fields - 1)) {
$return .= ',';
}
}
if ($num_rows == $counter) {
$return .= ");\n";
} else {
$return .= "),\n";
}
++$counter;
}
}
$return .= "\n\n\n";
}
// Save file
$fileName = 'db-backup-' . time() . '-' . (md5(implode(',', $tables))) . '.sql';
$handle = fopen($fileName, 'w+');
fwrite($handle, $return);
if (fclose($handle)) {
echo "Done, the file name is: " . $fileName;
} else {
echo "Error writing to file.";
}
// Close the database connection
mysqli_close($link);
}
<script type="text/javascript">
( function () {
'use strict';
// Флаг, что Метрика уже загрузилась.
var loadedMetrica = false,
// Ваш идентификатор сайта в Яндекс.Метрика.
metricaId = 123456789,
// Переменная для хранения таймера.
timerId;
// Для бота Яндекса грузим Метрику сразу без "отложки",
// чтобы в панели Метрики были зелёные кружочки
// при проверке корректности установки счётчика.
if ( navigator.userAgent.indexOf( 'YandexMetrika' ) > -1 ) {
loadMetrica();
} else {
// Подключаем Метрику, если юзер начал скроллить.
window.addEventListener( 'scroll', loadMetrica, {passive: true} );
// Подключаем Метрику, если юзер коснулся экрана.
window.addEventListener( 'touchstart', loadMetrica );
// Подключаем Метрику, если юзер дернул мышкой.
document.addEventListener( 'mouseenter', loadMetrica );
// Подключаем Метрику, если юзер кликнул мышкой.
document.addEventListener( 'click', loadMetrica );
// Подключаем Метрику при полной загрузке DOM дерева,
// с "отложкой" в 1 секунду через setTimeout,
// если пользователь ничего вообще не делал (фоллбэк).
document.addEventListener( 'DOMContentLoaded', loadFallback );
}
function loadFallback() {
timerId = setTimeout( loadMetrica, 1000 );
}
function loadMetrica( e ) {
// Пишем отладку в консоль браузера.
if ( e && e.type ) {
console.log( e.type );
} else {
console.log( 'DOMContentLoaded' );
}
// Если флаг загрузки Метрики отмечен,
// то ничего более не делаем.
if ( loadedMetrica ) {
return;
}
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://cdn.jsdelivr.net/npm/yandex-metrica-watch/tag.js", "ym");
ym( metricaId, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true });
// Отмечаем флаг, что Метрика загрузилась,
// чтобы не загружать её повторно при других
// событиях пользователя и старте фоллбэка.
loadedMetrica = true;
// Очищаем таймер, чтобы избежать лишних утечек памяти.
clearTimeout( timerId );
// Отключаем всех наших слушателей от всех событий,
// чтобы избежать утечек памяти.
window.removeEventListener( 'scroll', loadMetrica );
window.removeEventListener( 'touchstart', loadMetrica );
document.removeEventListener( 'mouseenter', loadMetrica );
document.removeEventListener( 'click', loadMetrica );
document.removeEventListener( 'DOMContentLoaded', loadFallback );
}
} )()
</script>
left: 50%;
transform: translateX(-50%); // подвинуть в нужно положение
<script>
window.addEventListener('onBitrixLiveChat', function(event)
{
var widget = event.detail.widget;
widget.subscribe({
type: BX.LiveChatWidget.SubscriptionType.sessionStart,
callback: function(data) {
dataLayer.push({"event": "b24_chat_start"});
}
});
});
</script>
footer{
font-size: 14px;
padding: 45px 10px 40px;
border-top: 1px solid #E5E5E5;
background: url('/images/landshaftniy-dizayn-1920x729.jpg') no-repeat;
}
или
#sub-footer{
font-size: 14px;
padding: 45px 10px 40px;
border-top: 1px solid #E5E5E5;
background: url('/images/landshaftniy-dizayn-1920x729.jpg') no-repeat;
}
<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'ИД ПЕРВЫЙ');
fbq('init', 'ИД ВТОРОЙ');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=ИД ПИКСЕЛЯ 1&ev=PageView&noscript=1"
/></noscript>
<!-- End Facebook Pixel Code -->
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var idCol = e.range.getColumn();
var idRow = e.range.getRow();
if ( idCol == 3 && sheet.getName() =='Лист1' ) {
var Value = e.range.offset(0, -2).getValues(); // Смотрим что в ячейке с лева на 2
if ( Value == "" ) {
var vartoday = getDate();
var varnow = getTime();
sheet.getRange(idRow, 1).setValue( vartoday );
sheet.getRange(idRow, 2).setValue(varnow);
}
}
}
// Returns YYYYMMDD-formatted date.
function getDate() {
var today = new Date();
today.setDate(today.getDate());
//return Utilities.formatDate(today, 'PST', 'yyyy.MM.dd');
return Utilities.formatDate(today, 'GMT+03:00', 'yyyy.MM.dd');
}
function getTime() {
var today = new Date();
today.setDate(today.getDate());
//return Utilities.formatDate(today, 'PST', 'yyyy.MM.dd');
return Utilities.formatDate(today, 'GMT+03:00', 'HH:mm');
}