Программирование сайтов
Stebenkov
12 Окт в 07:07

Как сделать телефон кликабельным?

Дано:

<div class="tel">8 (800) 000-00-00</div>

Код должен быть таким:

<a href="tel:88000000000">8 (800) 000-00-00</a>

Если нет возможности изменить код, то можно сделать так:

var tel_element = $('.tel');
var tel_str = tel_element.text();
var tel_number = tel_str.replace(/[^+\d]+/g, "");
tel_element.html('<a href="tel:' + tel_number + '">' + tel_str + '</a>');
Stebenkov
19 Май в 07:09

Представления в базе данных MySQL

Например, удобно сделать для поиска по нескольким таблицам.

CREATE OR REPLACE VIEW tbl_view_search AS
SELECT CONCAT('post_', id) AS id, id AS source_id, text, CONCAT('/', url) AS url, title, logo AS img, NULL AS price FROM posts UNION 
SELECT CONCAT('product_', id) AS id, id AS source_id, text, CONCAT('/path/to/', url) AS url, title, img, price FROM products;
Stebenkov
15 Янв в 23:11

Замена пароля Drupal 6

$host = 'localhost'; // адрес сервера 
$database = 'dbname'; // имя базы данных
$user = 'username'; // имя пользователя
$password = 'parol'; // пароль
 
// подключаемся к серверу
$link = mysqli_connect($host, $user, $password, $database) 
    or die("Ошибка " . mysqli_error($link));
 
// выполняем операции с базой данных
$query ="UPDATE users SET pass = MD5('newparol') WHERE uid = 1";
$result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link)); 
if($result)
{
    echo "Выполнение запроса прошло успешно";
}
 
// закрываем подключение
mysqli_close($link);
Stebenkov
1 Дек в 21:08

Микроразметка мероприятий

<html>
<head>
<title>The Adventures of Kira and Morrison</title>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "The Adventures of Kira and Morrison",
  "startDate": "2025-07-21T19:00",
  "endDate": "2025-07-21T23:00",
  "location": {
    "@type": "Place",
    "name": "Snickerpark Stadium",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "100 West Snickerpark Dr",
      "addressLocality": "Snickertown",
      "postalCode": "19019",
      "addressRegion": "PA",
      "addressCountry": "US"
    }
  },
  "image": [
    "https://example.com/photos/1x1/photo.jpg",
    "https://example.com/photos/4x3/photo.jpg",
    "https://example.com/photos/16x9/photo.jpg"
   ],
  "description": "The Adventures of Kira and Morrison is coming to Snickertown in a can’t miss performance.",
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/event_offer/12345_201803180430",
    "price": "30",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "validFrom": "2024-05-21T12:00"
  },
  "performer": {
    "@type": "PerformingGroup",
    "name": "Kira and Morrison"
  }
}
</script>
</head>
<body>    
</body>
</html>
  
Stebenkov
26 Сен в 23:29

Подводный камень WordPress

Оказалось, что в категориях WordPress нельзя вывести форму комментариев. Такая задача обычно не стоит, однако вот понадобилось. Если категория представляет собой направление, требующее обсуждения или отзывов, было бы удобно использовать встроенную систему комментариев. Что же я нагуглил? Варианты решения проблемы:

  1. Написать собственную систему комментариев для категорий;
  2. Использовать страницы вместо категорий. 

Для своего сайта я бы использовал второй вариант. Но что если человек заказал изготовление сайта? Очень неудобный вариант.

Stebenkov
2 Фев в 23:06

Нужные SQL запросы

Поиск и замена подстроки в таблице table поля field:

UPDATE table SET field = REPLACE(field, 'старая строка', 'новая строка');
Stebenkov
21 Ноя в 12:10

Настройка Docker4Drupal для Drupal 7

Выделим папку под проект ~/docker/drupal7

Скачаем последний релиз Docker4Drupal и распакуем файлы в эту папку

Отредактируем файл .env

PROJECT_NAME=drupal7
PROJECT_BASE_URL=drupal7.localhost

...

PHP_TAG=5.6-dev-4.9.1

...

NGINX_VHOST_PRESET=drupal7

Отредактируем в файле docker-compose.yml в разделах php и nginx:

 volumes:
- ./:/var/www/html

Раскомментрировать весь раздел pma, если нужен PhpMyAdmin. По надобности, другие разделы.

Удалить файл docker-compose.overwrite.yml.

Закачаем файлы Drupal 7 в эту же папку проекта.

Запускаем контейнеры из docker-compose.yml:

$ cd~/docker/drupal7
$ docker-compose up -d

Если нужно исправить конфигурацию, после правок перезапускаем контейнеры:

$ docker-compose stop
$ docker-compose up -d

Данные базы, если не менять:

Хост: mariadb
База, пользователь и пароль: drupal

Адрес PMA: http://pma.drupal7.localhost:8000
Адрес сайта: http://drupal7.localhost:8000