Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Почему var name=null определяется как тип string?

Лучший ответ:
Потому что объявляемая вами переменная name - глобальная, применительно к клиентскому javascript'у это означает, что она окажется свойством объекта window, у которого - сюрприз, сюрприз - свойство name уже есть, и, как нам тут подсказывают, его значения могут быть только строками:window.name will convert all values to their string representations by using the toString method.

Худший ответ:
Как написали выше, если объявлять через var, то вы изменяете в window.name. Чтобы такого не было, объявляйте через let
let
var
PS закладывайте себе, что переменная должна иметь только один тип. В дальнейшем это вам очень сильно поможет
Вопрос: Как отменить SetInterval?

Лучший ответ:
Можно вынести переменную с id таймера за пределы функции, тогда при вызове clearTimeout будет доступна актуальная ссылка. Но удобнее и корректнее хранить id таймера в замыкании, таким образом, код можно будет использовать много раз. 
let el = document.getElementById('a');

function func(){
  let timeId;
  
  const handleScroll = () => {
    let scrollPos = window.pageYOffset;
    document.getElementById('z').innerHTML = scrollPos;
    if(scrollPos > 600) {
      if(!el.classList.contains('timer')) {
        el.classList.add('timer');

        let b = 60;
        timeId = setInterval(() => {
          b--;
          el.innerHTML=b;
          if(b == 0){
            el.classList.remove('timer');
            clearInterval(timeId);
            alert('Отлично!');
          }
        }, 1000);
      }  
    } else {
      console.warn('stop');
      clearInterval(timeId);
    }
  }
  window.addEventListener('scroll', handleScroll); 
}

func();

Худший ответ:
Вынес определение переменной за функцию и все заработало.
Странно, что перед тем как здесь писать, я это проверил и не работало.
Но ночь была темной, наверно что-то не так делал.
Решение простое, но никто не подсказал.
snippet
Вопрос: Как использовать виртуальную машину Bochs?

Лучший ответ:
Зачем тут какая-то инструкция?
Там же ясно видно что она не грузится по причине отсутствия загрузочного диска (образа)
И есть кнопки А, В и CD куда очевидно нужно подключить образ.

Тут официальные образы:
Disk Images with Pre-installed Systems

Здесь официальная документация:
Bochs User Manual

А вообще выглядит как какое то поделие из 90-х, хех)
Есть же VirtualBox и VMWare

Худший ответ:
Так же как и любую другую. Соскучились по msdos? :)

У Вас нет загрузочного образа - машине не с чего грузиться. И это английским по белому написано на экране.
Вопрос: Почему при вызове ф-ции пишет is not a function?

Лучший ответ:
load2 - должен быть в methods: {
  load2() {
    console.log('load2')
  }
}

Худший ответ:
Может потому что load2 нету в экземпляре vue? Вам нужно только понять что сделать что бы она появилась
Вопрос: Как тестировать методы работающие с приватными или защищенными полями?

Лучший ответ:
1. Не верно. Вы будете использовать GetWorkers, но тестировать AddWorker. На GetWorkers можете написать отдельный тест.
PS: Тестировать приватные поля плохая практика. Тестировать нужно ожидаемое поведение доступного из вне метода, т.е. публичные. Тестировать внутреннюю реализацию не нужно, нужно тестировать то, что она даст на выходе.

Худший ответ:
Не стоит использовать CLR, C# и компьютер.
Вы должны использовать только AddWorker.
Делайте это на бумаге. Авторучкой. С чернильницей.
Вопрос: Как узнать какие запросы отправляются из приложения на android?

Лучший ответ:
В дополнении к ответу Сергей Горностаев:Если приложение поддерживает прокси (системный или у него есть свои настройки) - прописываем туда Fiddler и смотрим запросы. Если они идут по https - то надо будет еще добавить сертификат на устройство или сломать их проверку. Может кто добавит как это сделать.Если не поддерживает - заворачиваем трафик на комп с помощью Cain & Abel и смотрим любым снифером. TLS тоже можно ломать при тех же условиях что и выше. Но в фиддлере смотреть приятнее.

Худший ответ:
Запустить приложение в эмуляторе, а рядом запустить tcpdump.
Вопрос: Исключение. Что это значит?

Лучший ответ:
Значит ты залез в область памяти, которая тобой не выделена.

Худший ответ:
Это значит: вы «сломали» память. Как правило, разыменованием «висячего» указателя или вылетом за пределы массива.
Вопрос: HTML/CSS Что почитать?

Лучший ответ:
Вместо чтения книжек делайте практику.
Придумайте задачу (внешний вид странички), и реализуйте это на html/css, пользуясь гуглом и справочником.
Читать книжки без практики - в основном бесполезно. Книжки полезно почитать уже после того, как поработали с технологией, понатыкались и порешали проблемы, после того как в голове у вас есть хотя бы понимание, как сейчас работает ваша страничка. Тогда то, что в книжке будет ложиться на вспаханную почву.

Худший ответ:
Кит Грант "CSS для профи"
Вопрос: Можно ли узнать насколько нагружена память устройства?

Лучший ответ:
При использовании "бесконечного скролла" многие почему-то делают только скролл вниз, а про верх забывают. Это архитектурная ошибка. Должно быть как - порцию нового подгрузили, порцию старого выгрузили. В обе стороны. И тогда никаких проблем с затупами не возникнет никогда. От слова совсем.

Худший ответ:
Нет
Делайте сразу так, чтоб не тупило
Вопрос: Почему многие разработчики отказались от Grunt и перешли на Gulp?

Лучший ответ:
А просто набрать вопрос в гугле? На эту тему много древних статей, потому что и галп сейчас уже устаревает, почитайте про webpack или parceljs
www.creative-seo.ru/blog/grunt-vs-gulp

А на вопрос зачем? Началось все с CI/CD а закончилось унификацией процесса.
В вашем случае вы завязываетесь на конфигурацию IDE, а что делать если над проектом работает много людей?

Худший ответ:
С grunt на gulp перешли потому что он умел параллелить таски и за счет этого был быстрее.

Сборку ассетов через IDE не используют по ряду причин:

Это не работает на CI/CD
Не все используют одну и ту же IDE
Даже если используют, настраивать это каждому члену команды -- потеря времени. Конфиг таск-раннера пишется один раз на всех, и если пайплайн сборки поменяется, изменять его надо только один раз.


Сейчас не актуален ни тот, ни другой -- смотрите в сторону webpack, parcel и rollup.
Вопрос: Как заработать школо-программисту?

Лучший ответ:
Делайте лабораторные для студентов или школьников.

Худший ответ:
Чувак научись хотя бы контакты оставлять в профиле если не в почте иначе работа тебя никогда не найдет, и останешься навсегда сказочным
Вопрос: Ребят, не могу понять, какую пользу (прибыль) получают разработчики Sass gulp и т.д?

Лучший ответ:
Да какие нафиг признание, рейтинг, удовольствие???
Серьезно?
Люди решают свои задачи и выкладывают решения в открытый доступ.
В первую очередь "решают свои задачи" с помощью созданных инструментов, а уж во вторую всё остальное...

Худший ответ:
Признание другими разработчиками, что ты крут и что то можешь, а уже потом какая то выгода (конференции, консультации, получение финансирования от крупных организаций (Google, Yahoo, IBM и т.д.)).
Вопрос: Bitrix api Как добавить торговых предложений к товару?

Лучший ответ:
Для этого нужно иметь два инфоблока: товары и торговые предложения, инфа по настройке тут https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
Рабочий пример:CModule::IncludeModule('iblock');
CModule::IncludeModule('sale');

$ciBlockElement = new CIBlockElement;

// Добавляем товар-родитель, у которго будут торг. предложения
$product_id = $ciBlockElement->Add(
    array(
        'IBLOCK_ID' => 13, // IBLOCK товаров
        'NAME' => "Товар 1",
        "ACTIVE" => "Y",
        // Прочие параметры товара
    )
);
// проверка на ошибки
if (!empty($ciBlockElement->LAST_ERROR)) {
    echo "Ошибка добавления товара: ". $ciBlockElement->LAST_ERROR;
    die();
}
// добавляем нужное кол-во торговых предложений
$arLoadProductArray = array(
    "IBLOCK_ID"      => 14, // IBLOCK торговых предложений
    "NAME"           => "Торговое предложение 1",
    "ACTIVE"         => "Y",
    'PROPERTY_VALUES' => array(
        'CML2_LINK' => $product_id, // Свойство типа "Привязка к товарам (SKU)", связываем торг. предложение с товаром
    )
    // Прочие параметры товара 
);
$product_offer_id = $ciBlockElement->Add($arLoadProductArray);
// проверка на ошибки
if (!empty($ciBlockElement->LAST_ERROR)) {
    echo "Ошибка добавления торгового предложения: ". $ciBlockElement->LAST_ERROR;
    die();
}
// Добавляем параметры к торг. предложению
CCatalogProduct::Add(
    array(
        "ID" => $product_offer_id,
        "QUANTITY" => 9999
    )
);
// Добавляем цены к торг. предложению
CPrice::Add(
    array(
        "CURRENCY" => "RUB",
        "PRICE" => 999,
        "CATALOG_GROUP_ID" => 1,
        "PRODUCT_ID" => $product_offer_id,
    )
);

Худший ответ:
Если что методом CCatalogProduct::add добавляются параметры товара к элементу каталога.
Сам элемент каталога добавляется методом CIBlockElement::Add
А торговое предложение можно добавить указав в методе CIBlockElement::Add в массиве $arFields в ключе "PROPERTY_VALUES" свойство, по которому привязаны каталог и торговые предложенияCIBlockElement::Add(
    [
        'IBLOCK_ID' => 2, // инфоблок с торговыми предложениями
        'PROPERTY_VALUES' => [
            'CML2_LINK' => 12, // id товара, для которого торговые предложения
        ],
        ...
    ]
)
Вопрос: Как правильно работать с сессиями в reactjs?

Лучший ответ:
Вашему фронтендщику стоит посоветовать сначала изучить как это делается а потом огород городить. 
но судя по тому что вы вместо него это выясняете, его все устраивает а вас - нет.
Так конечно никто не делает, есть понятия аутентификации и авторизации, сессия устанавливается после аутентификации (пользователь подтверждает что он - это он) и потом этот пользователь авторизуется с каким-то правами и в сессию каким-нибудь подходящим образом ставятся атрибуты авторизации, в простейшем случае - роль пользователя (админ/юзер). Эти атрибуты фронт может запросить у бэка отдельным запросом или получить в ответе на /login. 
Не очень понятно что значит "запрос для входа пользователя" и "запрос для входа менеджера" - 
у вас предполагается что пользователь будет нажимать на разные кнопки "войти как менеджер" и "войти как пользователь" или что?
Нормально так:
Кнопка для логина - одна.
запрос аутентификации - один.
сервер отвечает ошибкой или успешным ответом. Сама сессия ставится кукой, эта кука по хорошему должна быть httpOnly и из js кода не доступна. С ней работает исключительно бэкенд и так как хочет. 
Аппа из ответа сервера (в body) либо сделав отдельный запрос (типа /currentUser) понимает что это за пользователь - менеджер или обычный и сохраняет это куда-то себе. В случае реакта это с большой вероятностью стор. Можно в localStorage чтобы при перезагрузке читать сразу оттуда. 
Дальше аппа просто смотрит в стор в нужные моменты чтобы понять что пользователю показывать что нет.
Все права на запросы бекенд разруливает на основе сессионной куки которая приходит с каждым запросом автоматически. То есть сессии как таковой фронт вообще никак не касается - его дело - вызывать login/logout, получить от бэка инфу о текущем юзере и правильно обрабатывать 401. 
Можно сделать и более сложные варианты - без куки, с каким-нибудь токенами и прочим, но скорее всего вашему фронтэндщику еще рано.

Худший ответ:
Необходимости разделять сессии на клиенте нет.
Для определения роли обычно используют соответствующее поле в объекте данных пользователя.
Вопрос: Как сделать чтобы блоки не переносились?

Лучший ответ:
Ну как бы вам сказать. Размер блоков — это одно. Их уместить в строку просто. Сложнее уместить шрифт, который не адаптивен по своей сути.
Но есть один метод:
https://css-tricks.com/snippets/css/fluid-typography/
Нужно будет скопировать сниппет, задать нужные параметры методом пробы.

Худший ответ:
.editor-item ul {
  margin: 0;
  padding: 0;
  display: flex;
  width: 100%;
  overflow: hidden;
  white-space: nowrap; /* переносить слова? */
}

.editor-item ul li{
  overflow: hidden;
  list-style: none;
  display: inline-block;
  padding: 10px;
}
https://codepen.io/AngReload/pen/JwRemO?editors=1100
Разумеется, при ширине меньше 350px текст не вмещается и обрезается.
Вопрос: Как округлить число в LARAVEL Eloquent Model?

Лучший ответ:
Можно написать мутатор в модели, который будет округлять число

Худший ответ:
У модели прописать мутатор, который при присвоении аттрибуту модели значения, будет мутировать(изменять) это значение.
public function setCountAttribute($value)
    {
        $this->attributes['count'] = round($value, 2);
    }

https://laravel.com/docs/7.x/eloquent-mutators#def...
Вопрос: Зачем верстать вначале мобилку?

Лучший ответ:
В чем плюсы такого подхода к верстке?
Плюсов нет. Это палка о двух концах, либо стили переопределяются в одном порядке, либо в другом. На выходе будем иметь следующее: при mobile first на мобилках будет минимум переопределений, на десктопе - максимум. При desktop first на оборот. Это влияет только на скорость первичного рендера элемента.

Если же хочется настоящей оптимизации, то не должно быть переопределений стилей. Это значит надо писать часть стилей, которые постоянные как обычно. Стили которые меняются, писать только для определенных брейкпоинтов, и делать это по умному, чтоб ничего не переопределялось.
При таком подходе не будет иметь никакого значения для какой платформы ты в первую очередь пишешь код. Все будет одинаково оптимизировано.

Худший ответ:
Вы делаете один файл со стилями main-styles.css. В нем вся верстка сайта как для мобилок.
Отдельно делаете файл desktop-styles.css в котором переопределяете главные стили чтобы адаптировать верстку под широкие экраны. Затем сервер для мобильных отдаёт только один файл, а для десктопов — два. Десктоп загружает больше трафика, но на нем как правило и скорость сети выше. 
Как то так.
Вопрос: Как исправить ссылки в Joomla + dj-classifieds?

Лучший ответ:
В связке с DJ Classifieds — только если через пункты меню можно формировать структуру URL-адресов. Это проблема именно компонента DJ Classifieds.

Худший ответ:
За формирование адресной структуры отвечает components\com_djclassifieds\router.php
Присваивать категориям пункты меню + плагин Direct Alias (но учтите что это дополнительные редиректы 301).
Вопрос: Лагают программы от Adobe на macbook 2015?

Лучший ответ:
Никак, это же Adobe.

Худший ответ:
1.Попробуйте оптимизировать систему (по теме полно видео).
2.Оптимизируйте сами программы (так же полно видео)
3.Если 1 и 2 не поможет попробуйте переустановить систему. А еще лучше установить более старую версию (High Sierra), Mojave довольно сильно грузит систему и жрет оперативку по сравнению с прошлыми версиями.
4.В крайнем случае попробуйте использовать внешнюю видеокарту.
 А вообще программы Adobe очень плохо оптимизированы, из-за чего даже казалось-бы простенькая программа на не самой слабой машине лагает дико. Подумайте над использованием аналогов от других компаний, в идеале от Apple, Вам с этим повезло на Mac OS полно такого софта (большинства нет на Windows). К примеру: Photoshop на Pixelmator (GIMP, Krita, Pixlr, Paint.NET), Illustrator на Sketch (Inkscape, Vectr, Affinity Designer, Gravit Designer), Lightroom на Capture One Pro (DarkTable, DxO PhotoLab, Raw Therapee, Darktable), Premiere Pro на Final Cut Pro (Shotcut, OpenShot, DaVinci Resolve), InDesign на Scribus. Удачи.
Вопрос: Telegram или Vk?

Лучший ответ:
Напишите своё приложение. Будет вам вгновенное уведомление. Ни один сервис не гарантирует мгновенной доставки, только факт доставки в случае доступности получателя

Худший ответ:
Фигачить и туда, и туда, куда быстрее дойдёт - там быстрее и прочитаете.
Вопрос: Машинное обучение, что нужно знать в математике?

Лучший ответ:
Ребята, вы что совсем "того". Я понимаю, задать вопрос в Гуугл -  это сверхтрудная задача, требующая невероятных умственных усилий и полного напряжения сил. Но просто просмотреть сам Тостер,  ну хотя-бы всего-лишь за последние 3 (ТРИ !!!) дня, даже не неделю, Что и на это ума-разума не выросло?
Литература или какие-нибудь курсы математики для машинного обучения? -  задан 7 марта.
Что нужно изучать для глубокого анализа данных? - задан 8 марта.
Был курс, но не могу найти его снова, по питону и машин леарнинг? - задан 9 марта.
Это что, полная деградация Тостера как площадки для повышения квалификации  и превращение его в площадку для лентяев и школьников-недоучек?

А по теме уже писал. Если человек при свободном доступе к интернет не способен самостоятельно найти ответ на такой элементарнейший вопрос -  делать ему в области  такой мозгоемкой отрасли как машинное обучение - нечего. Ну или в лучшем случае - рано.

Худший ответ:
Вроде бы умные книжки читаете, а поиск так и не осилили. На тостере (или как он сейчас) десяток подобных тем, уже не раз мусолили.
Вопрос: Как сделать csrf защиту для api запросов?

Лучший ответ:
CSRF тут не при чем. Он сделан не антиспама ради
Антиспам - надеюсь вы выделили это слово выше.

Худший ответ:
Может пропускать кросдоменные запросы только с того домена на котором фронт крутится? Если не подходит то сделать такой посредник только для маршрута формы
Вопрос: Нормальная сборка ПК?

Лучший ответ:
1. NVMe определённо стоит брать. По поводу конкретных моделей - всё хорошо расписано в теме https://forums.overclockers.ru/viewtopic.php?f=24&...
2. ОЗУ - смотрите из списка рекомендованных к материнке (www.gigabyte.ru/products/page/mb/b450_aorus_mrev_1... У вас 4 слота и максимум 64 гб, т.е. лучше взять не 2х8 а 1х16 или 2х16, чтобы в будущем можно было легко нарастить до максималки. Моё мнение - 16гб сейчас это минимум для разработки. 32гб - должно хватить на ближайшие пару лет.
3. Стандартного кулера хватит. Если нужна тишина или будет разгон - посмотрите в сторону тихих или мощных аналогов.

Худший ответ:
Хотелось бы больше конкретных вариантов SSD и ОЗУ
Вопрос: В случае, если произвольное поле ACF не заполнено, то показать значение другого произвольного поля — как сделать?

Лучший ответ:
<?php 
$email = get_field('email') ? get_field('email') : get_field('email2') ;
if(!empty($email)):
 ?>
<div>Электронная почта: <?= $email; ?></div>
<?php endif; ?>

Худший ответ:
<?php 
$email = get_field('email') ? get_field('email') : get_field('email2') ;
if(!empty($email)):
 ?>
<div>Электронная почта: <?= $email; ?></div>
<?php endif; ?>
Вопрос: Какой существует аналог подбора слов яндекс-директа для английского сегмента кроме адвордс?

Лучший ответ:
https://seoprofy.ua/blog/prodvizhenie-sajtov/engli...
Гуглите товарищ

Худший ответ:
Можете попробовать генератор ключевых слов от ahrefs: https://ahrefs.com/ru/keyword-generator
Вопрос: Лучшее решение повесить обработчик на событие?

Лучший ответ:
Все, что находится в теле функции Example будет выполняться каждый render. Отличие второго способа лишь в том, что он содержит дополнительные операции. Причем, создание хандлера через билдер, в данном случае, абсолютно бессмысленная операция. Подобные приемы уместны если этот билдер где-то переиспользуется и определен за пределами компонента.
Если хандлер передается в другой React компонент, то имеет смысл использовать хук useCallback. В вашем случае в этом нет смысла, так как хандлер передается в нативный элемент.

Худший ответ:
Кем "не рекомендуется"?
Чтобы решать проблему нужно убедиться что есть проблема и четко сформулировать ее.
Если вы решаете проблему что код не подходит под какие-то рекомендации, то это одно, а если вы решаете проблемы с памятью во время выполнения приложения это совсем другое.
 Во втором случае у вас на руках должны быть данные полученные в результате анализа того как ваше приложение работает.
Подавляющее большинство render функций вызывается на самом деле достаточно редко чтобы это имело значение.
Вопрос: Почему не устанавливается npm на новый проект?

Лучший ответ:
можно потому что надо прочитать как работает командаnpm init

Худший ответ:
Команда npm init инициализирует новый проект и создает файл package.json. Если же нужно установить все модули из этого файла то нужно набрать npm install, если нужно установить какой то еще модуль которого нет в package.json то нужно выполнить npm i --save НАЗВАНИЕ_МОДУЛЯ .
Вопрос: Как оптимизировать базу данных MySQL (innoDB)?

Лучший ответ:

Включить логирование медленных запросов MySQL, после чего оптимизировать, добавить индексы.
Обратить внимание на то, что индексы могут приводить и к падению производительности, так что неиспользуемые лучше удалять.
Убедиться, что не просто индексы проставлены, а проставлены правильно.
Включить логирование atop на несколько дней, чтобы была возможность понаблюдать, что происходить в системе, когда "начинает виснуть всё". Может быть, вообще не в MySQL дело?
В Laravel запросы делаются к базе с помощью Active Record - бывает так, что вместо JOIN в базу летит гора запросов циклом - это не оптимально.
Как уже выше писали, нужно использовать кеширование - это ощутимо снизит нагрузку.


Худший ответ:
Вопрос закрыт, проблема была в конфигурации MySQL, как я и предполагал, а не в индексах, или построении запросов. 
Изменили под наш конфиг машины данные параметры MySQL:
1) max_allowed_packet увеличили (до 64мб)
2) key_buffer_size увеличен (до 64мб)
3) innodb_buffer_pool_size значительно уменьшен (до 4гб)
4) max_connections значительно увеличены (до 10000)
5) query_cache_size увеличен (до 16мб)
А также добавили и включили файл подкачки, но он пока не задействован, т.е конфиг сделал главное дело.
Вопрос: Какой язык программирования лучше выбрать в качестве первого для backend — разработки: Haskell или JS + Node.js?

Лучший ответ:
Ключ к ответу это причина, по которой вообще Хаскель оказался в списке рядом с JS.
Если, как писали выше, "для души", то почему бы и нет.
Если на работе новый проект и надо что-то взять на бэк - всё внимание на бюджет новизны. Может оказаться как то, что даже со знакомыми инструментами в дедлайн еле укладываетесь, так и то, что на руках прекрасный момент сделать себе задел навыков и инструментов на будущее.

Худший ответ:
Дмитрий Сошников ратует за C# + F#.
Вопрос: Почему лагает сайт на мобильном устройстве?

Лучший ответ:
У меня есть машина, мне надо её починить. Она плохо едет. А вроде бы и не так уж плохо. Всё зависит от дороги!
Вроде бы все колёса на месте, когда я проверял, но я точно не знаю. Был какой-то звук, когда ехал, он звучал как-то так: «Пукх» (примерно). Какая модель машины — тоже не знаю. Да и вообще, я вам её не покажу. Может быть проблема в руле, а может быть из-за насоса. Какого именно — не знаю. 
P. S. Даже не думайте, машину я вам показывать не стану.

Худший ответ:
Открой диспетчер задач хрома и посмотри нагрузку на ЦП. У меня показывает 20% из 8 ядер. А причина тому в канвисе со снежинками (#particles-js). Если его удалить, то нагрузка падает до 0%
Вопрос: Стоит ли пойти в компьтюетрную академию? Стоит ли оно этого?

Лучший ответ:
Я за самообучение. Тем более, если уже есть некий бекграунд и базовое представление о том, как работает веб(полагаю), а это, наверное, самое сложное - получить это представление. Дальше углубление, которое в любом случае, будет реализовано посредством личного практического опыта.
Ну а так, похвально в столь юном возрасте осознавать дальнейшую деятельность, если, конечно, это не является результатом чьего-либо влияния, а вызвано исключено личным интересом. Успехов могу только пожелать.

Худший ответ:
Нет, не стоит.
Зря потраченное время и деньги.
Вопрос: Как запросить номера телефона в viber api?

Лучший ответ:
Для тех кто периодически сюда попадает по тому же вопросу
1. Суппорт вайбера ответил что данный функционал не доступен в desktop клиенте
2. Для мобильных клиентов нужно указывать min_api_version 3 или выше что бы заработало

Худший ответ:
от обыного меню отличается 3мя строками

+1 в меню $data['min_api_version'] = 3;

и заменяем две в конкретной кнопке
  $getphone['ActionType']="share-phone";
  $getphone['ActionBody']="phone";