• Локальное тестовое окружение или удаленное?

    neluzhin
    @neluzhin Автор вопроса
    DevMan: спасибо за ответ. Как я понял из этого всего, мое КПД в зависимости от окружения не будет сильно различаться, если файлы при сохранении будут пушиться на удаленный тестовый сервер.

    Но мне сильно импонирует мысль о том, что удаленный сервер один раз настроил и забыл, и можно будет безболезненно использовать на всех ПК.
  • Локальное тестовое окружение или удаленное?

    neluzhin
    @neluzhin Автор вопроса
    Скажите, пожалуйста, а какие преимущества у локального сервера перед удаленным? Если вдруг доведется работать над проектом, над которым уже работает какая-то команда, на меня не будут смотреть как на идиота, если я буду тестировать все не на локальной машине, а на своем VPS/дедике?
  • Локальное тестовое окружение или удаленное?

    neluzhin
    @neluzhin Автор вопроса
    Алексей Уколов: допустим, есть задача прикрутить новый функционал к уже существующему работающему сайту. И вместо того, чтобы сразу прикручивать этот функционал непосредственно к сайту, который посещают пользователи, для начала проверить его работоспособность нужно в тестовом окружении, в котором находится точно такой же сайт, который посещать можете только вы. Если вдруг полезут какие-то ошибки или проблемы во время разработки дополнительного функционала, то таким образом пользователей это не заденет.
  • Как убедиться, что пользователь пригласил друзей в приложение?

    neluzhin
    @neluzhin
    Комментатор выше прав. Заставлять пользователя делать социальные взаимодействия нельзя (то бишь ограничивать функционал). Можно только поощрять пользователя (делать скидки на услуги, например).
  • Что может содержать в себе одна из главных функций jquery $();?

    neluzhin
    @neluzhin
    Артур Черешнюк:

    Спасибо, уже более ясно. Но почему тогда $() называют jquery функцией если это jquery объект?

    Функции jQuery возвращают данные типа "объект", которые называют jQuery-объектом. Что такое "возвращают данные"? Это когда функция на своём месте оставляет какие-то данные. Например, есть функция Math.ceil(), которая округляет числа с плавающей точкой в большую сторону. Допустим, можно написать вот так:

    alert('У Маши было чуть больше ' + Math.ceil(18.2) + ' рублей. ')

    Представьте на месте функции в данном примере число 18 - так это и работает. Вот так же jQuery-функции на месте себя и оставляют так называемые jQuery-объекты. $() - это функция, которая возвращает jQuery-объект. Понятненько?

    Т.е. $(div) эта запись это jquery объект который хранит в себе селектор?

    Не совсем. $('div') (не забывайте про кавычки) - это функция, которая принимает в качестве аргумента строку в виде селектора и которая возвращает jQuery-объект.

    А в данном случаи $(touch) это jquery объект который хранит в себе переменную которая хранит в себе строковое значение(селектор?)

    В приведенном вами выше примере $(touch) - это функция, которая принимает в качестве аргумента переменную. Переменная является jQuery-объектом, который вернулся функцией, принявшей в качестве аргумента строку-селектор.

    // Вот это ...
    var touch = $('#touch-menu');
    $(touch).on('click', function(e) {/* ... */});
    
    // ... тоже самое, что и это ...
    $($('#touch-menu')).on('click', function(e) {/* ... */});


    Можно как то посмотреть через диспетчер задач во что интерпретируется данная запись $(div)?

    Вы можете просто написать что-то типа такого:

    console.log($('div'))
  • Что может содержать в себе одна из главных функций jquery $();?

    neluzhin
    @neluzhin
    Артур Черешнюк: в приведенном вами примере touch - это переменная, содержащая в себе jQuery-объект $('#touch-menu'). То есть приведенную там запись можно прочитать так:

    $($('#touch-menu')).on('click', function(e){
    Вы слегка не понимаете, что такое типы данных в JavaScript. "Переменная" - это не тип данных, но переменная может содержать в себе любое значение: строки (например, селекторы типа "#id"), числа, функции, объекты (в т.ч. DOM-объекты, jQuery-объекты) и другие менее распространенные типы данных. document и window - это всё тоже переменные типа "объект".
  • Почему не в области видимости переменные в функциях?

    neluzhin
    @neluzhin
    Евгений Кульбеда: тогда пересматривайте архитектуру сайта. Например, начните использовать схему MVC.
  • Как правильно работать с методом auth.logout?

    neluzhin
    @neluzhin
    Проблема, случайно, не в том, что вы потеряли кавычку после auth.logout?
  • Можно отправлять сообщения пользователям Vk через сайт php?

    neluzhin
    @neluzhin
    Mister8891: Сталкивался с такой же проблемой. К аккаунту просто привяжите номер мобильного телефона.
  • Анимация FLAT Design(material design)?

    neluzhin
    @neluzhin
    Карл Кремень: вы, конечно, правы. Тему для Бутсрапа "материальной" назвать можно только через силу, но по сравнению с Материалайзом она хотя бы не через жопу сделана.

    А скругленные кнопки, к слову, очень даже практикуются. Не понимаю, что вас в них так удивило.
  • Как оставить запись на стене группы Вконтакте от лица авторизованного пользователя средствами API VK?

    neluzhin
    @neluzhin
    EVOSandru6: я не разработчик мобильных приложений, но скажу: называется эта технология WebView.
  • Анимация FLAT Design(material design)?

    neluzhin
    @neluzhin
    Максим Студитских: Материалайз настолько сырой, словно это не релизная, а альфа-версия. Для сайтов с обильным использованием различных компонентов использовать его я не рекомендую. Если хочется Bootstrap-like css-фреймворк, то лучше натяните материальную тему на третий Бутстрап или посмотрите в сторону других проектов, которые вам тут подсказали.
  • VK api, не загружается фото на сервер?

    neluzhin
    @neluzhin
    rena-nip: попробуйте отловить ошибки cURL'а. Вам надо модифицировать ваш код примерно так: dumpz.org/2345160/ (я добавил код на 23-25 и 29-31 строках).
  • VK api, не загружается фото на сервер?

    neluzhin
    @neluzhin
    Единственное, что важно: этот код минималистичен. Там не отлавливаются ошибки и нежданчики от VK API, поэтому вам придется его доработать и, по хорошему, написать свой простенький класс для работы с VK API.
  • VK api, не загружается фото на сервер?

    neluzhin
    @neluzhin
    rena-nip: я создал для вас рабочий gist с полностью рабочим примером: https://gist.github.com/terron-kun/ce8b9c3363640a4...
  • Как оставить запись на стене группы Вконтакте от лица авторизованного пользователя средствами API VK?

    neluzhin
    @neluzhin
    EVOSandru6: попробуйте провести авторизацию через Authorization Code Flow. После такой авторизации вы получите токен, которым сможете пользоваться на стороне сервера. Чтобы токен не истекал, попробуйте передать в параметре scope при получении токена право offline.
  • Как оставить запись на стене группы Вконтакте от лица авторизованного пользователя средствами API VK?

    neluzhin
    @neluzhin
    EVOSandru6: ну давайте представим, что вы создали какой-то клиент под Android, который работает с VK API. Допустим, мессенджер. Что вы в первую очередь делаете? Правильно! Авторизацию; в идеале - авторизацию с правом доступа offline, чтобы токен не истёк. Вы в своем приложении открываете WebView со страницей получения токена, а там ВК просит пользователя ввести свои авторизационные данные. После авторизации пользователя спрашивают, дает ли он согласие на то, чтобы ваше приложение обрабатывало его персональные данные. Если он соглашается, то в адресной строке этого самого WebView появляется токен, который вы уже магией разработки приложений под Android и вытаскиваете. Почему такое нельзя повторить в веб-разработке? Да банально потому, что в веб-разработке нет такой магии, которая позволила бы вам вытащить этот самый токен из адресной строки другого окна, в котором открыт вообще не ваш сайт. Соответственно, о реализации авторизации в standalone-приложении при разработке сайта можно забыть.

    Но что делать владельцу веб-сайта в таком случае? Начать пользоваться системой Open API ВКонтакте. Это такой JavaScript SDK, с помощью которого вы сможете обращаться к методам VK API через JavaScript. Этим SDK могут пользоваться только приложения типа "веб-сайт" и, возможно, iFrame. Напрямую делать обращения к VK API через AJAX не получится из-за CORS, поэтому только Open API. Также вы сможете работать с API и с бэкэнда (читайте в конце ответа).

    Но что же делать, если прям очень сильно хочется работать с сообщениями и записями на стене юзеров через сайт? Варианта два:

    1. Создайте браузерное расширение и просите пользователя установить его. В этом расширении сделайте авторизацию пользователя в вашем standalone-приложении и этим же расширением вытягивайте токен из адресной строки браузера. Браузерные расширения благо могут обходить CORS и взаимодействовать со всеми окнами браузера. Дальше отправляйте токен на свой сервер и работайте с ним через PHP или вообще как душе угодно.

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

    Ссылка на получения токена для standalone-приложения выглядит так, если что:
    http://api.vk.com/oauth/authorize?client_id=123456&scope=wall,photos,docs,offline,ads,video,audio&response_type=token&v=5.49

    client_id - ID вашего приложения, scope - права доступа, response_type - всегда token, v - версия API, redirect_uri указывать не нужно. Но если вы укажете его, то пользователя перенаправит на ваш сайт, и вы сможете получить из адресной строки браузера заветный токен, только вот права у этого токена будут такие же, как у обычного приложения типа "веб-сайт".
  • Какой алгоритм проверки наличия новых постов в группе в VK?

    neluzhin
    @neluzhin
    Антон Середний: не забудьте, что закрепленный пост в выдаче метода wall.get будет первым, соответственно с появлением новых записей в группе его ID будет меньше остальных.