Задать вопрос
  • Вставка изображений в png шаблон по параметрам Wordpress?

    Что-то вроде водяного знака, но только наоборот?

    Почему наоборот? Ровно так же, если я правильно Вас понял.
    Для водяного знака:
    1) берётся исходное изображение,
    2) берётся изображение с водяным знаком,
    3) второе накладывается поверх первого,
    4) результат сохраняется

    В вашем случае:
    0) пользователи отсылают форму с файлом фотографии и какими-то текстовыми полями (например, ФИО)
    1) берётся изображение-шаблон пустого бейджа,
    2) берётся изображение из присланной формы,
    3) второе накладывается поверх первого,
    4) также поверх пишется текст из текстовых полей,
    5) результат сохраняется.

    Это можно сделать средствами GD.
    Ответ написан
    Комментировать
  • Как настроить ошибку 404 не выводится ошибка в headers?

    Нет, достаточно допилить шаблон компонента каталога. Сейчас, полагаю, на неправильный URL открывается корень каталога? Если так, то достаточно в странице sections.php добавить свой код
    Ответ написан
  • Как почистить базу sql?

    С учётом:
    Честно, с SQL не работаю и не понимаю. Или только ждать тех.поддержку?

    ждать техподдержку - самое разумное решение. Любое вмешательство приведёт к тому, что ответственность за состояние системы полностью перейдёт на Вас. Может, там что-то уже повреждено, а Вы без понятия.
    Ответ написан
    Комментировать
  • Как убрать знак / в всех ссылках в тексте?

    <?php
    $content = preg_replace('#(href=['"][^'"]*)/(?='|")#', '$1', $content);

    Только с относительной ссылкой на главную ( href="/" ) будет проблема
    Ответ написан
    1 комментарий
  • Почему нет свойства в $arResult?

    потому что в аргументах CIBlockElement::GetList() надо указывать не 'PROPERTY_JOB_TITLE_VALUE' , а 'PROPERTY_JOB_TITLE'. А вот в результате будет 'PROPERTY_JOB_TITLE_VALUE' и ещё пачка мусора
    Ответ написан
  • Как получить название пользовательского поля Битрикс по его коду?

    Если есть id поля, то всё легко:
    <?php
    use Bitrix\Main\UserFieldTable;
    
    $id = 1;
    $res = UserFieldTable::getFieldData($id);
    print_r($res);

    Если только символьный код, то чуть сложнее:
    <?php
    use Bitrix\Main\UserFieldTable;
    $fieldName = 'UF_CRM_1728545307';
    $res = UserFieldTable::getList([
        'select' => array_merge(['*'], UserFieldTable::getLabelsSelect()),
        'filter' => [
            '=FIELD_NAME' => $fieldName,
        ],
        'limit' => 1,
        'runtime' => [
            UserFieldTable::getLabelsReference(null, 'ru'),
        ]
    ])->fetchRow();
    print_r($res);
    Ответ написан
    Комментировать
  • Как сделать так, чтобы поисковик отображал страницу поиска по сайту (ниже приведу примеры Дзена и Тиктока)?

    У меня такого не происходит:
    1. Зашёл на дзен.ру,
    2. вбил ту поисковую фразу,
    3. меня перекинуло на обычную поисковую выдачу Яндекса,
    4. где-то в выдаче была ссылка на одну страницу Дзена.

    Но вообще, как понимаю, это делается несложно:
    1. мониторите wordstat или как-то иначе собираете релевантные сайту поисковые запросы
    2. сопоставляете эти запросы со страницами сайта, сохраняете это сопоставление.
    3. при выводе страницы в форму поиска на сайте выводите сопоставленный поисковый запрос


    Не уверен, насколько положительно это воспримет SEO оптимизатор - лишние вхождения ключей на страницу.
    Ответ написан
  • Как вывести баннер товара в шапку сайта?

    Судя по $arResult, показанный код где-то в template.php шаблона компонента для вывода баннера. Не надо так.
    вместо этого в шаблоне компонента делаете так:
    <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    $this->SetViewTarget("banner-head");
    if (!empty($arResult['PICTURE'])){
        echo CFile::GetPath($arResult['PICTURE']);
    }

    (это весь код шаблона)
    а в header.php сайта пишете:
    <?$APPLICATION->IncludeComponent(/* вызов компонента для баннера */);?>
    <?php
    $picture = trim($APPLICATION->GetViewContent('banner-head'));
    if (!empty($picture)): 
    // и дальше как было
    <?php

    Должно получиться.

    Пихать $APPLICATION->ShowTitle() внутрь шаблона компонента вообще дурная идея. С хлебными крошками, вероятно, то же самое, потому что это особенный компонент, и шаблон у него особенный.
    Ответ написан
  • Как убрать отступы в коде?

    два варианта:
    1)_ просто всё прижать влево:
    <?php
    $chunk = '
      <url>
      <loc>'.$site.'/look/'.$sitemap['tag'].'</loc>
      <lastmod>'.date('Y-m-d').'T'.date('h:i:s+01:00').'</lastmod>
      <priority>0.8</priority>
      </url>
      ';
    $data[] = preg_replace('/^\s+</m', '<', trim($chunk));


    2) вытянуть всё в строку:
    <?php
    $data[] = preg_replace('/>\s+</ms', '><', trim($chunk));

    Эти регулярки только для данного случая! ( потому что никаких значимых пробелов в сайтмапе быть не должно)

    Несколько замечаний:
    1) показывать код скриншотом неэтично (я про готовый сайтмап). Здесь его можно было запихнуть в тег code (кнопка в панельке) с типом XML
    2) если не используете числовые индексы, то вместо mysql_fetch_array() берите mysql_fetch_assoc()
    3) mysql_* функции - древность, используйте хотя бы mysqli ( как объект, конечно же)
    Ответ написан
    Комментировать
  • Как передать значение из компонента в result_modifier шаблона, где компонент вызывается?

    не очень подробно описано, поэтому остаётся гадать. Я предполагаю 2 варианта:
    1) попроще: где-то вызов компонента С1, в шаблоне которого упомянутый result_modifier.php . Затем, ниже первого вызова, идёт вызов компонента С2, от которого нужны данные.
    Тогда просто перенесите вызов компонента С2 выше вызова С1 и оберните:
    <?php
    ob_start();
    $APPLICATION->IncludeComponent( "C2" ...);
    $APPLICATION->AddViewContent("view2",  ob_get_clean() );
    // там, где компонент был раньше, ставите:
    $APPLICATION->ShowViewContent("view2");

    Соответственно, в component_epilog.php компонента С2 засовываете нужные значения в $APPLICATION->SetPageProperty() или просто в $GLOBALS

    2) Посложнее: компонент С2 вызывается в template.php того же шаблона, которому принадлежит result_modifier.php. Тогда в result_modifier.php будет:
    <?php
    $arResult['PROPERTIES']['TABS'][] = array(
        'CODE' => 'FAQ',
        'TITLE' => 'Вопросы о товаре #COUNT#', // Отображаем количество вопросов
        'VALUE' => 'FAQ_FORM' // Временное значение
    );
    , а в template.php выше вывода вкладок:
    <?php
    $this->SetViewTarget("view2");
    $APPLICATION->IncludeComponent( "C2" ...);
    $this->EndViewTarget();
    // передача значения - аналогично первому варианту. Допустим, через $GLOBALS
    // где-то ниже при выводе заголовка таба
    $tab['TITLE'] = str_replace('#COUNT#', $GLOBALS['count'], $tab['TITLE']);
    // и ещё ниже, где был компонент:
    ?>
    <?$APPLICATION->ShowViewContent("view2")?>
    Ответ написан
    Комментировать
  • Стоит ли изучать MongoDB в 2024?

    Моё скромное мнение: учите Postgres. Монга нее столько хорошая, сколько хайповая.
    Докер решает такие 2 проблемы ( с точки зрения разработчика ПО):
    1) "я не готов вникать, как этот софт ставить и настраивать, дайте мне такое, чтобы запустилось и работало"
    2) "я не хочу загаживать свою систему кучей разнообразного софта"

    Если уж смотреть на российские БД, то я бы глянул на Tarantool и ClickHouse
    Ответ написан
    1 комментарий
  • Как вытащить данные из формы в дополнительных настройках пользовательского поля?

    Дисклаймер: давно копался в этом ужасе, могу ошибаться.

    есть 2 ситуации:
    1) Вы только добавляете новое поле Вашего типа к какому-то объекту (допустим, USER). Вот когда Вы на форме добавления выбираете "Тип данных ..." и страница обновляется, только тогда срабатывает метод GetSettingsHTML()
    2) Вы уже сохранили поле, оно получило ID. Тогда то, что было задано в дополнительных настройках, будет в массиве по ключу SETTINGS поля. Пример кода:
    <?php
    $arUserField = CUserTypeEntity::GetByID(316); // 316 - это ID поля в моём случае, его тип - "связь с HL блоком"
    var_export($arUserField);
    Ответ написан
  • Как в битрикс в поиске добавить Найдено совпадений?

    Только делать свой компонент, плюс расширять класс CSearchTitle , посмотрите на метод
    Ответ написан
    Комментировать
  • Как решить проблему с дублированием при ajax?

    а Вы не пробовали убрать этот инлайновый скрипт в script.js шаблона? Я считаю, что у Вас в data прилетает этот javascript, исполняется, и становится 2 обработчика $(document).on('click', '.load_more',..) , на следующей подгрузке три и так далее. Это можно увидеть в DevTools - посмотрев, сколько ajax запросов порождает нажатие кнопки
    Ответ написан
    Комментировать
  • Почему сайт загружается быстрее без плагина для кэширования?

    почему PageSpeed Insights показывает обратное?

    На эту часть ответить легко. PageSpeed Insights оценивает по формальным признакам, ожидая, что внедрением рекомендаций занимается человек, и человек делает это с умом.
    А плагин позволяет так же формально подгонять результат под оценку - переносить javascript в конец, склеивать css в один файл. Но, по факту, от этих автоматических действий ситуация лучше не становится.

    Замедление может быть от того, что регулярки ( я предполагаю, что там всё на регулярках), которыми оперирует плагин, тяжёлые.
    Ответ написан
    Комментировать
  • Как правильно использовать python скрипт через PHP backend?

    Если этот python скрипт можно запустить из шелла, то используйте shell_exec(), или backtick operator, или ещё что-нибудь ( в конце страниц онлайн мануала есть секция "See also" )
    Ответ написан
    Комментировать
  • Настройка поддоменов, как?

    на уровне .htaccess уже поздно что-то делать. Это настраивается на уровне VirtualHost: в ServerName пишете основной домен, в ServerAlias поддомены ( можно указать wildcard , в документации есть пример ).
    Необязательно делать именно так, но это самый простой и читабельный вариант.
    Ответ написан
    Комментировать
  • Как вставить переменную из js в template.php и обновить страницу?

    Вам надо добавить селекту имя и как-то сабмитить форму с селектом (на выбор есть GET и POST). Соответственно, в скрипте значение выбранного города будет в одном из значений в массиве $_GET или в массиве $_POST .

    P.S. Правильно пишется "city". Учите английский, в будущем пригодится.
    Ответ написан
    Комментировать
  • Почему возникает ошибка .htaccess со знаком $ (конец строги)?

    Ломается вот из-за этой конструкции:
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php

    Если её убрать, то всё работает.
    С ней сообщение в логе:
    AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

    Собственно, частью про 'LogLevel debug' я и рекомендую Вас воспользоваться для удовлетворения любопытства
    Ответ написан
    Комментировать