• Как реализовать ссылку с номер whatsapp на сайте?

    @Beelime
    Шеринг с выбором группы (абонента)
    <a href="whatsapp://send?text=<?php echo urlencode( '<TEXT>' ); ?>"
       data-action="share/whatsapp/share">WhatsApp</a>

    Текст, передаваемый в ссылку, должен быть url-кодирован. В примере для этого использована функция urlencode

    Шеринг конкретному абоненту
    <a href="whatsapp://send?text=<?php echo urlencode( '<TEXT>' ); ?>&abid=<?php echo absint( '<ABID>' ); ?>"
       data-action="share/whatsapp/share">WhatsApp</a>

    Где плейсхолдер < ABID > — это идентификатор абонента.
    Ответ написан
    2 комментария
  • Каким образом можно определять номер по цифровому следу?

    Sanasol
    @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    Началось всё с того что стали палить страницы ВК при входе на сайт. Благодаря косякам ВК.
    Оттуда тянули "досье".
    Постепенно в ВК закручивали гайки, последний раз года 2-3 закрутили так сильно что это умерло или почти умерло.
    Может и придумали обход очередной, но я тогда не осилил и забил, уже был не сильно нужно.

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

    Либо по уже старой собранной базе пробивают если могут и показываю вам инфу. У меня в базе например 3+ миллиона профилей ВК собранных таким образом, думаю что есть какой-то % успеха если пытаться вычислить по ней посетителей любых сайтов.

    Резюмируя вышесказанное:
    Способы есть, разной степени паршивости, но всё напрямую зависит от способа сбора инфы и количества трафика проходящего через сервис.
    Но тексты конечно максимально убеждающие что вообще всех посетителей соберут конечно враньё.
    В лучшие времена опознавались данные 25-60% посетителей от трафика сайта. Сейчас скорее всего в разы меньше.
    Ответ написан
    Комментировать
  • Можно ли разобраться в ООП в ходе изучения YII2?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Можно, я как раз так и делаю... НО:
    • учитывай др практики (я смотрю и на Симфони и на Ларавел)
    • как сам понял -- теорию изучай, кстати на Yii2 круто объясняет Елисеев, рассказывает как делать сервисный слой, строить доменный слой, делать модульную структуру, низкую связанность,

      тк если не смотреть на хорошие практики, то Yii2 может завести к плохому коду, так он устроен
    Ответ написан
    Комментировать
  • Можно ли разобраться в ООП в ходе изучения YII2?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Да как сказать Yii - это ящик с гаечными ключами. Можно ли по ящику понять - зачем ключи? Ну можно, если долго ключи использовать как пишут разработчики - то и поймешь со временем, но есть риск провалится в "делаю как сказали, почему - не знаю".

    Коли про ООП вопрос: разработчикам нужно было писать меньше повторяющегося кода, чтобы не менять одно и то же по 10 раз. Давай по-порядку.

    Представь ассоциативный массив (ключ-значение).
    Теперь представь функцию, любую, пусть будет abs() - число по модулю.
    А теперь забрось эту функцию в свой массив на место какого-нибудь ключа, то есть у тебя как будто получится $array["abs"], где лежит сама функция.

    В чем отличие функции от других данных? Данные ты можешь записать, а можешь считать. А функцию ты еще и выполнить можешь. Таким образом когда ты ее вкинул в массив, у тебя лежит не функция там, а ее заготовка, под выполнение. И ты можешь ее вызвать но уже не как abs(), а как $arr['abs']() - что будет выглядеть одинаково (под капотом все сложнее, но пока забей, оно тебе не надо)

    А теперь представь что у тебя есть десять таких массивов $arr. И что, в каждый теперь совать функцию, которую ты только что запихнул в первый? Нет, зачем. Для этого существуют "классы" - которые описывают внешний вид будущего "массива".

    Таким образом ООП это когда ты сначала описываешь внешний вид массива, а потом создаешь вот эти "улучшенные массивы" по описанному виду. Но это только малая часть всего движа.

    Тут есть тема - взять тип массива (класс), и на его основе сделать другой класс, чтобы не переписывать сначала.
    Тут есть тема - создать свой собственный тип данных и проверять его при передаче из функции в функцию.
    Есть тема - что ты можешь помимо типа массива задать еще более высокую степень организации "требования к типу массивов" - то есть интефейс - "все описанные типы массива должны иметь такой-то метод и такие то свойства, если нет - пнуть разраба, что он дурак"...

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

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

    Об ООП стоит думать как средство уменьшения числа кода. Если у тебя к примеру два поставщика и два разных файла выгрузки, а действия в них одни и те же - можно прибегнуть к ООП, сделав тип "Поставщик" и описав в нем - что он умеет делать над своими "экземплярами-объектами-улучшенными_массивами" и тд.

    Прежде чем считать, что ты не сможешь без ООП тебе нужно понять, что любая вещь МОЖЕТ быть сделана без ООП. Просто количество путаницы если ты бросишь этот код и вернешься к нему через месяц и уже не помнишь что где и когда - будет больше. Классы создают некую описательную структуру того, что происходит и оттого часто в крупных проектах писать на ООП длиннее дольше и тяжелее, чем без ООП.

    То есть штуку разрабатывали чтобы писать меньше, а на деле для понимания все переменные в верблюде пишут, и в итоге кода еще больше становится, но он типа "понятный". А потом они будут перебирать дорогих сотрудников, потому что дешевые этот понятный код не могут писать, тобто ребята копошаться в своих головах, а деньги приносят продажи потом. Не попадись в такую ловушку.

    ООП тебе понадобится, когда у тебя возникнет очень отчетливое чувство что "блин, вот язык этот какое дерьмо, мне так задрало вот эту штуку каждый раз заново писать, почему они сразу этого не сделали?" - вот тогда тебе надо заняться ООП, и тогда его будет легко понять.

    Я не про то, что типа "еще рано" и тд. Я про то, что есть куча вещей в которое можно отдать время, более интересных и полезных, чем погружаться с башкой в эту муть, которая на деле кроме чувства мнимого превосходства тебе ничего не даст. Просто делай как удобно, и только когда решишь своим массивам задавать поведение - типа "при присвоении ключа в поле `name` автоматически создать поле `code` с таким-то содержимым" - вот тогда реально можешь повкуривать что тут еще можно мутить.
    Ответ написан
    23 комментария
  • Актуально ли создать свое фроненд/дизайн агенство в 2019-2020?

    i__dmitry
    @i__dmitry
    Weaving a web
    Те, кто говорит, что "рынок перенасыщен" и "создавать свою студию в 2к20 - тупая затея", неправы. Просто потому что рынок вообще никогда не бывает перенасыщен, всегда можно найти своего покупателя, если грамотно продавать. И здесь мы подходим к вопросу о плохом понимании рынка. Это то, с чего стоит начинать. Проанализируйте рынок локально (по месту предполагаемой работы) и глобально. Оцените конкурентов, их сильные стороны. Подумайте, что вы можете предложить конечному пользователю. Подумайте, как будете предлагать, как будете искать клиентов. Чем ваше предложение будет выделяться на фоне предложений конкурентов. В общем, всё это банальные вещи, но это именно то, с чего стоит начинать.
    По существу вопроса (стоит ли в 2019-2020) отвечу, что стоит, если точно понимаете, что и как будете делать. Все остальное не имеет значения, потому что спрос на эти услуги устойчиво растёт.
    Ответ написан
    1 комментарий
  • Как вывести экземпляр класса в представлении ModX?

    i__dmitry
    @i__dmitry
    Weaving a web
    Сниппет сам по себе не интерактивен, он выполняется как кусок сырого PHP-кода. Поэтому самой простой реализацией будет что-то вроде такого:
    switch ($action) {
        case 'firstAction' :
            $class->firstMethod();
            break;
        case 'secondAction' :
            $class->secondMethod();
            break;
    }


    А затем в нужном месте шаблона вызывается сниппет с переданным параметром:
    [[!yourSnippet? &action = 'firstAction']]
    Или Fenom:
    {'!yourSnippet' | snippet : ['action' => 'firstAction']}
    Ответ написан
    1 комментарий
  • Что может заказчик спросить у меня за сайт который не дал конверсию?

    Ну так логично, что дома всем не нужны. Может, просто в регионе 116 все себе дома уже построили и нужно подождать? А то аудитория узкая. Вот, два страждущих дом нашлось, уже хорошо для такой узкой ниши.
    Ответ написан
    Комментировать
  • Почасовая работа: уволить фрилансера или оставить и провести разъяснительные беседы?

    ненавижу почасовую систему оплаты. я сам работаю например в госучреждении, айтишником соответственно, если точнее - програмист (хоть и не системный, но все же). кадровикам абсолютно насрать на то что я даю на выходе, им начхать на результат - и если я опаздываю на полтора часа, а потом сижу до вечера - то это по сути минус полтора часа от зп и при этом никаких плюсов к зп от того что я сижу еще после окончания рабочей смены - при этом я могу остаться в ночь "работать" а сам сидеть пиво пить в кабинете - и мне это зачтется как то что я "вышел поработать". это наглухо бредовая схема, но еще более бредовая схема у Вас. и судя по вашим комментариям вы возможно компетентны как кадровик российского типа (не европейского явно), но ничего не смыслите в том что такое программист и как они работают. Наши кадровики на полном серьезе считают что если я не тарабаню пальцами 8 часов подряд в клавиатуру код - значит я говно и ничего не смыслю. Мысли о том что мне нужно подумать и вообще хороший программист больше думает, меньше пишет - у них нет и быть не может. Если лезете в процесс разработки с точки зрения организации рабочего процесса - поработайте программистом сами.
    Ответ написан
    Комментировать
  • Что может заказчик спросить у меня за сайт который не дал конверсию?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    братан, все х*ево
    чууть чуууть спасает рендер дома, это процентов 10
    в остальном - или расчет на братков из 90х, если остались, им, может, мило таки объявы видеть, или школьник
    кто пригласит школьника?

    при том что деньги есть, видео есть, карты есть, живые фото объектов есть - скажи, чтобы выгнал маркетолога нафиг и нанял, кто умеет ловить на три клика, или хотя бы на пять

    ты понимаешь, что просто белый лист с запросом телефона и надписью "любой дом, все бесплатно, кроме работ и материалов" даст выше конверсию?
    Ответ написан
    Комментировать
  • Что может заказчик спросить у меня за сайт который не дал конверсию?

    @McBernar
    10 000 рублей в недвижке и нет звонков? Он бы еще на 1000 рублей пожаловался.

    Вполне возможно, что он мог спустить эти 10 тысяч в унитаз, включив все то дерьмо, что предлагает директ. Возможно, объявление не попадает в ЦА совершенно. Возможно, в вопросах недвижки/проектов домов хвост продаж длится неделями, а то и месяцами. И еще тысяча других возможно.

    Верните клиента на землю — в наше время создание сайта не дает ничего, кроме работающего сайта. Привлечение лидов — огромная, затратная и сложная область, которая занимает 99,9% времени и денег во всем жизненном цикле сайта.

    Если бы можно было заплатить 35 000 и получить кучу лидов — я бы уже давно стал миллиардером. Извините.
    Ответ написан
    Комментировать
  • Что может заказчик спросить у меня за сайт который не дал конверсию?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    В мобильной версии навигация по меню недоступна, блоки не раскрываются,
    В десктопе тоже лажа, все пляшет, аккордеон "играет" без аккордиониста, открывается / закрывается при любом движении.
    При переключении из мобильного в десктоп меню дублируется.
    Мета дескрипшн и кейвордс нет.
    Конечные элементы "ПРОЕКТЫ ДОМОВ" - отдельные проекты, не имеют своих страниц, только попап.

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

    Это за 5 минут что видно, плюс дизайн конца 2000х...

    UPD: обратный звонок - маркетинговый козырь - засунут в такую ж***, что я вообще его нашел только случайно...
    По рекламе, 1 человек прошел квиз и оставил данные
    я его вообще не нашел...
    Ответ написан
  • Что может заказчик спросить у меня за сайт который не дал конверсию?

    @sidni
    Php Developer
    Ну СЕО такая магическая штука, где если ты не шаришь, а это наверно 90% всех специалистов, то тут шансы 50/50 либо будет конверсия либо нет.
    В любом случае надо проводить работу над ошибками, возможно где-то шел слив бюджета компаний, к примеру выбран более широкий регион или выбраны слишком "жирные запросы", где люди искали построить баню но допустим своими руками и т. д.
    Да и вообще тема строительства это давно избитая тема и просто так (дешево и без смс) попасть в топ быстро не удасться.
    Нужно учесть сам сервис клиента, я допустим часто имел дело с "перекупами" у которых нет ни рабочих, склада, только менеджер и курьер и у них постоянно, то менеджер "курить ушел", то "курьер занят", что такое онлайн-чат даже не знают, что он есть на сайте.
    В Вашем случае если Вы знаете в чем проблема, то можете договориться и дать еще один шанс если нет то можете смело ругаться аргументируя жестким рынком, конкуренцией, повышением качества и/или снижением стоимости на свои услуги и расставаться, поскольку я так понял все договоренности были устными, то врядтли будут какие либо юридические преследования.
    Ответ написан
    Комментировать
  • Не отображает в Yii2 ActiveForm. В чем проблема?

    slo_nik
    @slo_nik Куратор тега Yii
    Доброй ночи.
    Внимательней надо было смотреть примеры в документации)))
    <?= $form->field($model,'title')->textInput()?>

    p.s. И начинать надо с <?php, а не с <?
    Ответ написан
    2 комментария
  • Как реализовать это через css?

    potapchino
    @potapchino
    Надеюсь дальше сами додумаете
    Ответ написан
    Комментировать
  • Как сделать чтоб войти в админку мог только один админ(yii2)?

    coderisimo
    @coderisimo
    попробуйте сделать без RBAC , используя вот этот механизм :

    https://yiiframework.com.ua/ru/doc/guide/2/securit...

    public function behaviors()
        {
            return [
                'access' => [
                    'class' => AccessControl::className(),
                    'rules' => [
                        [
                            'allow' => $this->isAdmin(), // это функция которая должна  возвращать true  для юзера с id = 1 , описываете ее в этом же контроллере
                        ],
    
                    ],
                ],
               
            ];
        }
    Ответ написан
    Комментировать
  • Зачем нужен ActiveQuery в Yii2?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Если быть более, конкретным, зачем нужна эта опция, при генерации модели через Gii?

    Чтобы вы могли добавить свои кастомные методы или переопределить родные (all(), one() и другие, короче переопределить родной ActiveQuery и изменить на свои абстракции)

    Вот пример контроллера:
    actual() -- такого метода нет в ORM, а мне нужен, ну вот хочу так пользоваться:
    $trainings = Training::find()->actual($date);

    ActiveQuery

    Ну раз нужен -- добавляем такой метод
    class TrainingQuery extends \yii\db\ActiveQuery
    {
        public function actual($date)
        {
            return
                $this->alias('t')
                ->joinWith(['lesson l' => function($q){
                    $q->joinWith('studio s');
                }])
                ->andWhere(['l.active' => 1])
                ->andWhere(['s.active' => 1])
                ->andWhere(['t.date' => $date])
                ->all();
        }
    }

    Сущность

    В сущности перенацеливаем родной find() на мой кастомный
    class Training extends \yii\db\ActiveRecord
    {
    ...
    public static function find()
        {
            return new \mynamespace\entities\query\TrainingQuery(get_called_class());
        }

    Ответ написан
    3 комментария
  • Почему не работает Systemctl?

    martin74ua
    @martin74ua
    Linux administrator
    rpm --setperms -a
    спасет отца русской демократии
    Ответ написан
    Комментировать
  • Как генерировать числа с линейно заданной вероятностью?

    @Alexander1705
    Поделите фашу функцию на площадь под ней и получите плотность вероятности, возьмите интеграл плотности (не сложно для линейной функции) и получите функцию распределения.
    Постройте функцию обратную функции распределения, сгенерируйте число равномерно распределённое от 0 до 1 и вычислите значение полученной функции.
    Ответ написан
    2 комментария
  • Yii2 как создать форму с удалением/добавлением полей через админку?

    qonand
    @qonand
    Software Engineer
    Структура базы:
    1. Таблица questionary насколько я понимаю хранит вопросы а данные анкеты, поэтому ее лучше переименовать, например в questions. По структуре таблицы - все норм
    2. Таблица questionary_item - опять таки что у Вас в ней храниться? Варианты ответа на вопрос. По этому ее опять таки лучше переименовать например в answers_variants. По структуре этой таблицы так же все нормально, но не надо в ней хранить null для полей ввода... У Вас эта таблица должна хранить ТОЛЬКО варианты ответов, если вопрос не подразумевает возможности выбора из вариантов - тогда не надо хранить никаких NULL

    Логика и валидации: Есть такая штука как динамическая модель, она позволяет формировать ее структуру в процессе выполнения приложения. Разберитесь с ней и вопрос как организовать логику и валидацию отпадет

    Верстка: ну тут все просто нужно использовать стандартный ActiveForm и формировать его поле с помощью цикла по атрибутам динамической модели
    Ответ написан
    Комментировать
  • Как проверить содержит ли переменная любое значение из массива?

    @MaksPaverov
    $arr = array('141241241', '5463263', '124124124', '4254512');
    if (in_array("$id", $arr)) {
        echo "Найден ID - ".$id."<br>";
    }
    Ответ написан
    Комментировать