try {
    // путь к картинке, которая либо есть на деве, либо её нужно загрузить с прода на дев
    $src = $image['src'];
    // адрес прода, откуда будем скачивать картинки
    $externalDomain = 'https://example.com';
    $root = \Bitrix\Main\Application::getDocumentRoot();
    $filePath = $root . $src;
    // если картинки нет на деве
    if (!file_exists($filePath)) {
        $fileExternalLink = $externalDomain . $src;
        // то скачиваем её один раз
        $fileExternalContent = file_get_contents($fileExternalLink);
        if (!empty($fileExternalContent)) {
            // и сохраняем себе
            \Bitrix\Main\IO\File::putFileContents($filePath, $fileExternalContent);
        }
    }
} catch (\Exception $e) {
    ShowError($e->getMessage());
}
        
                    
            AMP страницы
AMP (Accelerated Mobile Pages) это по сути тоже самое, что и Турбо-страницы от Яндекса, только с отличиями в реализации.
технология позволяет создавать лёгкие версии страниц, которые открываются быстро даже при медленном подключении к интернету
Если для Турбо-страниц мы выгружаем rss со своим контентом, и дальше Яндекс сам хостит наши страницы, то в AMP мы делаем у себя на сайте AMP-версии нужных страниц (html страницы в определённом формате), или даже целую AMP-версию сайта (получается что-то вроде отдельной мобильной версии), или даже делаем только AMP-сайт без обычной версии.
AMP-страницы работают и без Google и вроде как не зависят от него.
На AMP-странице нельзя использовать свои js скрипты, но можно использовать готовые js плагины от AMP (типа боковой панели меню или для слайдера и прочего).
Ловим событие перед сохранением заказа OnSaleOrderBeforeSaved и устанавливаем нужное значение свойства:
Поиск файлов по маске и содержимому
find . -type f -name '*.php' -exec grep -l 'catalog.xlsx' {} \;
        
                    
            Получить csv строку из массива
function arrayToCsv(array $data): string
{
    $fh = fopen('php://temp', 'rw');
    fputcsv($fh, array_keys(current($data)), ';');
    foreach ($data as $row) {
        $row = array_map(
            function ($value) {
                return mb_convert_encoding($value, 'windows-1251', 'utf-8');
            },
            $row
        );
        fputcsv($fh, $row, ';');
    }
    rewind($fh);
    $csv = stream_get_contents($fh);
    fclose($fh);
    return $csv;
}
Формат подходит для excel.
visually-hidden
.visually-hidden {
    position: absolute !important;
    clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
    clip: rect(1px, 1px, 1px, 1px);
    padding:0 !important;
    border:0 !important;
    height: 1px !important; 
    width: 1px !important; 
    overflow: hidden;
}
        
                    
            Мои bitrix сертификаты
Экзамен 1 и 2 успешно сданы.
ShowViewContent в bitrix
Чтобы передать данные, например, из шаблона компонента в шаблон сайта можно воспользоваться функционалом отложенных функций.
ShowViewContent это обычная отложенная функция такая же как и SetTitle или SetPageProperty.
Поэтому вывод контента с помощью ShowViewContent может быть выше по коду, чем передача самого контента с помощью AddViewContent или с помощью SetViewTarget + EndViewTarget.
Передаём контент в буферизируемую область:
$APPLICATION->AddViewContent('myContentBlockName', '<p>Hello</p>');
И указываем где нужно выводить содержимое этой буферизируемой области, но только в некешируемой части, например в шаблоне сайта:
Как создать ключ с помощью php?
// генерируем ключ
$keyResource = openssl_pkey_new([
    'private_key_bits' => 2048,
    'private_key_type' => OPENSSL_KEYTYPE_RSA,
]);
echo gettype($keyResource) . PHP_EOL; // resource
// получаем приватный ключ
openssl_pkey_export(
    $keyResource,
    $privateKey
);
echo $privateKey;
// -----BEGIN PRIVATE KEY-----
// MIIEvgIBADANBgkqhkiG9w0BAQEF...
// ...
// -----END PRIVATE KEY-----
// сохраняем приватный ключ в файл
file_put_contents(
    'php-private-key.pem', 
    $privateKey
);
// получаем публичный ключ
$publicKey = openssl_pkey_get_details($keyResource);
echo $publicKey['key'];
// -----BEGIN PUBLIC KEY-----
// MIIBIjANBgkqhkiG9w0BAQEFAAO...
// ...
// -----END PUBLIC KEY-----
// сохраняем публичный ключ в файл
file_put_contents(
    'php-public-key.pem',
    $publicKey['key']
);
        
                    
            Основные команды composer
composer require vendor/package
Скачивает и устанавливает пакет, добавляет записи в файлы composer.json и composer.lock.
composer install
Если файла composer.lock ещё нет, то install создаст на основе composer.json новый composer.lock, и дальше скачает и установит зависимости (а так же удалит лишние, если такие есть) по данным из свежего composer.lock.
Если файл composer.lock уже есть, то install скачает и установит зависимости (а так же удалит лишние) по данным из composer.lock, а файл composer.json будет проигнорирован.
composer update
Обновит версии пакетов и обновит файл composer.lock.
Страницы
- « первая
 - ‹ предыдущая
 - 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 - 9
 - следующая ›
 - последняя »