Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Управляйте маятником, чтобы построить самую высокую (и устойчивую) башню из падающих сверху постов. Следите за временем на каждый бросок по полоске справа: если она закончится, пост упадет мимо башни.

Башня

Аркады, Строительство, На ловкость

Играть

Топ прошлой недели

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
78
huyakhuyak
7 лет назад
Web-технологии

Научу программировать #1 Системы контроля версий. Git⁠⁠

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

Глава 1. Системы контроля версий.

1.1 Что это такое?

1.2 Накуа надо, и так все работает

1.3 Как работает внутри

1.4 А как работать

1.5 Работа в команде

1.6 Домашка


1.1 Что такое системы контроля версий?

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



Вообще системы контроля версий 2-х типов:

a) Централизованные

б) Распределенные.


Централизованные.


Давайте поговорим о том, в чем разница.

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

В централизованных системах весь код хранит центральный сервер (бла-бла-бла). Доступ имеют все разработчики ПО. Минусы такого подхода, что у разработчика нет своего репозитория, а если сервак сломается, упадет, сгороит (нужное подчеркнуть). То ни у кого не останется полной рабочей версии ПО. Обмен происходит также, ка ки децентрализовванных.


В настоящее время уже не особо популярны, поэтому подробно останавливаться не будем, дабы не забивать голову. Кому интересно может погуглить инфы много, например: SVN

Децентрализованные

Вот тут уже гораздо интересней - остановимся подробней во второй части. Пока краткое описание, как работает.

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

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


Коротко рассмотрели, давайте подробней теперь на децентральзованных.

1.2 Накуа надо и как работает


Всем знакома ситуация:

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

----------------------------

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

Папки конечно могут называться по разному. Например: "правил дизайн" и т.д.

В папке "Изменения Васи" поменялся файл index.php и т.д.

можно решить таким способом данную проблему:

Вася пишет исправлял файл

...

...

и т.д.


Петя пишет исправлял файл

...

...

и т.д.


Так вот, представьте что у Вас работает над проектом так человек 20-ть, как быстро показать заказчику проект со всеми изменениями?


Правильно подумали, открывает файл и начинаем копировать файлы с изменениями в папку "Рабочая версия". Вам ничего не кажется странным? :) пишите в комменты что думаете о таком подходе.


И у нас вдруг возникает ситуация, что Вася и Петя редактировали один файл.


Что будем делать?

Если честно я хз, как решать подобное, но срок релиза отложился до решения проблемы.

По головке не погладят точно.


Вот тут и приходит на помощь наш репозиторий.

Буду рассматривать git, материалы приведенные мной это книга по git

link to book:

https://git-scm.com/book/ru/v1/

и так поехали.

Я не буду рассматривать установку на свой ПК сервера git


Некоторые моменты, я специально буду опускать, они простые и чаще всего находятся в материале, на которые я привожу ссылки. Они появятся в виде вопросов к концу главы или раздела.

И так мы уже знаем, что наш git - это СКВ.

Как же он устроен и почему на сегодня он лидер в данной области?


Неужели весь код хранится на сервере, каждый файлик.


Это и так и не так.

Во первых все изменения происходят у Вас локально. Т.е. сервер не знает, что вы там наделали. Инфа приходит есму после, того как Вы ее туда отправили.


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


Получается вот такая картина:

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

Давайте рассмотрим подробнее что тут отображено:


Version - история изменений (коммитов)

A, B, C - файлы.


Наверное у Вас возникли вопросы, че за **но одни пунктиром, другие нет.


Так в этом и заключается версионность. Сам git не сохраняет полный файл к себе каждый раз, когда вы сохраняете состояние. Он сохраняет только изменения, измененных файлов. Если файл не менялся, то будет просто (условно) сказано (фактически ссылка на файл), файл без изменений.


Получается, что мы можем видеть что конкретно в какой строке поменялось в файле.

Удалилось или добавилось. При этом достаточно компактно.


На сим давайте закончим. Основа задана, далее по линку. А мы поедем дальше.

Самое важное.

Состояния файлов в гит. Это действительно важно, без этого не понять как работает система контроля версий.


и так, есть три состояния:

а) подготовленный - будет включен в репозиторий при commit

б) измененный - изменили файл

в) зафиксированный - зафиксировали, значит отправили с локальный репозиторий (помните где он да?)


Как видно у нас есть файл Petya.txt. Git видит его и сообщает нам о том, что данный файл не добавлен у нас в отслеживание изменений. сейчас у файла нет ни одного из трех состояний.


Их называют не отслеживаемые файлы. Ну само вытекает как бы из этого.

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

Теперь добавим файл в отслеживание.

(Команды пока я опускаю, мы к ним еще придем.)

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

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

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

Теперь файл зафиксировали в нашем локальном репозитории. Состояние №3, при отправке на сервер от будет отправлен.


А теперь давайте сделаем состояние №2. Напишем внутри файла строку:

Petya the Best. Как видно на картинке ниже git отметил наш файл как измененный

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование
Фухххх.......  Ну что же. Передохните пол часика, пусть материал уляжется. И продолжим. Статья получается огромной.

----------------------------------------------------------------------------------------------


Отдохнули, налили чай. Едем дальше.


И так, что надо сделать, чтобы начать работу.


Далее и на протяжении почти всех постов я буду использовать git для работы, пожалуйста отнеситесь серьезно к этому посту.


Для начала давайте поставим необходимые программы для работы.


Linux: ссылка на мануал по установке
Windows: http://msysgit.github.com/


Для тех кто использует Windows, разработчики git написали:

"Пожалуйста, используйте Git только из командой оболочки, входящей в состав msysGit, потому что так вы сможете запускать сложные команды, приведённые в примерах в настоящей книге. Командная оболочка Windows использует иной синтаксис, из-за чего примеры в ней могут работать некорректно."

После того, как установили приложение приступим уже к практической части.

Когда учили автора статьи использовать технологии командной разработки у нас было 2 дня теории и 4 дня практики, нам дали целый сервер на 20-ть человек и мы делали с ним все что хотели в рамках заданий. Именно поэтому я стараюсь сделать упор именно на практически часть в рамках всего курса. Ну если можно так сказать (:

Фактически у нас есть два способа создать репозиторий. Рассмотрим.


1. Склонировать готовый, (допустим на работе уже давно создано)

2. Создать новый локально.


И так способ 1-й.

Идем на bitbucket.org (github и др.)

регистрируемся, там есть кнопка создать репозиторий, (останавливаться не буду, в сети полно материалов как это сделать).


на ПК создаем каталог в котором будет находится копия нашего ПО, склонированного с сервера. Пишем команду:


git clone https://bitbucket.org/bla-bla-lba (в созданном репозитории на bitbucket уже есть ссылка на проект).


Мы должны в нашей папке увидеть проект, название папки = название проекта.

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование
Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

Жмем создать. Все наш репозиторий на bitbucket создан.

Можем приступать к работе. Внизу на странице у нас две ссылки:

У меня уже есть проект
Я начинаю полностью с нуля

Сейчас мы выберем, я начинаю проект с нуля:

git clone https://nibbler-ws@bitbucket.org/nibbler-ws/testing-repository.git

получаем ссылку на клонирование нашего проекта к себе на ПК.


Я советовал бы всем кто начинает программировать или кто уже умеет, пользоваться консолью.

Теперь открываем консоль и понеслась.

1. Выбираем папку куда будем клонировать наш пустой (пока) репозиторий.

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

Собственно моя папка куда мы будем производить сие действие.

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

Оп, наш репозиторий готов. Теперь у нас есть два репозитория, один на нашем сервер, второй на нашем ПК.


И так репозиторий готов, приступим к работе с файлами. Правда для начала давайте пробежимся коротко по GUI приложениям для git:

GitKraken - на мой взгляд просто красивый :) Эта сволоч платная, но красивая.

Есть и free-план

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

В остальном можно обойтись консолью, так как я работаю в основном на  Ubuntu/Mac то клиентов могу назвать еще пару, но можно просто погуглить.

Ладно передохнули, начнем. Создаем файл в нашей папке Petya.txt

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование
touch и прочие мной используемые команды ищите пожалуйста в интернете, они просты, а Вы сразу подучите консоль.

и так мы сделали клон репозитория ранее, перешли в папку, создали файл Petya.txt и попросили git показать статус (назовем это так). В данном случае git говорит нам, что видит наш файл, но он его не отслеживает. Что это значит, а это значит что ничего, что мы там напишем не попадет на наш сервер. Давайте попробуем зафиксировать наши изменения.

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

Нам сказали, что парень какого? У тебя нихрена не добавлено, давай работай. И показал, что есть файлы которые просто не отслеживает. Снова :) Мы всегда будем их видеть.


Ну давайте скажем следить ему за файлом.

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

Странно, но нам ничего не сказали. Конечно зачем :) мы уже просто и так добавили файл

Но если сейчас запросить статус увидим, такую картину:

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

Ага мы получили искомое состояние, файл отслеживается. Отлично. Теперь хочу внести ясность.

То что файл отслеживается, не означает, что все абсолютно все изменения Вы можете вернуть. Вот нифига подобного :) вы можете вернуть только изменения, которые были зафиксированы в состоянии вашего репозитория. Наглядно это выглядит так:


А: ( Строка ХАХАХ ) фиксируем изменения | ( Строка ХАХАХ ) -> ( Строка ХАХАХ2 ) -> ( Строка ХАХАХ123 ) -> ( Строка ХАХАХ Кхе-Кхе ) фиксируем изменения.

В конечном итоге у нас будут в репозитории файл в двух состояний:

А: ( Строка ХАХАХ ) -> ( Строка ХАХАХ Кхе-Кхе ).

Надеюсь это понятно. Едем дальше. Сделаем первый коммит теперь (фиксация изменений).

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

нам сообщили, что наш файл зафиксирован. 1 файл изменен, строк добавилось 0, удалено 0.

и хэш. Клево правда :)

Посмотрим лог (история фиксаций):

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

Отлично, давайте разберем, что у нас получилось:

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

автор - собственно кто создал коммит.

Дата

И список файлов, которые были изменены.

теперь отправим наши изменения на сервер. Мы помним уже, что наш файл был добавлен и зафиксирован, теперь чтобы все разработчики его увидели нам надо сделать push (или отправить на наш сервер).


Для этого делаем git push.

Научу программировать #1 Системы контроля версий. Git PHP, Junior PHP developer, Длиннопост, Самообразование, Самообучение, Программирование, Web-программирование

У меня остался последний блок который я могу добавить :) мать его да у меня статья не влезла полностью первая, надо что-то думать :)


Читая Ваши комментарии и просматривая ссылки наткнулся на такой комментарий от пикабушника.

"Вот ты пишешь, что твои посты в горячем нахер не нужны. B я только на 30 лекции на тебя наткнулся." Пруф по ссылке

Я вот даже не знаю, просить как-то неудобно Вас. А люди мучаются :(


ПЫ.СЫ. вторая часть тоже готова уже, просто все не влезло. Скоро надеюсь смогу публиковать двумя частями. Завтра тогда домашка блин.

Показать полностью 21
[моё] PHP Junior PHP developer Длиннопост Самообразование Самообучение Программирование Web-программирование
32
22
huyakhuyak
7 лет назад

Научу программировать #0.1⁠⁠

Почитал комментарии к посту, да и время было подумать над тем, с чего действительно надо начать.


Мнения аудитории оказались обсолютно разные, кто-то просит node, js, ruby.

Сразу могу сказать, каждая технология рождена под конкретные задачи.


Нет разницы в одном, это стиле написания кода, архитектуре, и проектировании.

Сам синтаксис может быть абсолютно разным, со строгой типизацией или нет, с форматированием или нет, это не так важно, главное как Вы мыслите.


Сразу скажу, для тех кто подписался, изначально будем разбирать основы: php, mysql, систем контроля версий.

Далее мы будем рассматривать сразу framework's. Не будет CMS: wordpress, joomla и т.д.


Сразу скажу, тем кто с 0-ля. Будет тяжко, темп будет не простой, усваивать надо будет быстро, да и по паре часов готовьтесь уделять вечерами. Могу сказать одно спустя время порадуетесь за себя, и то, что Вы сделали.


По подаче материала.

Так как я пишу впервые (не считать 3 поста), то думаю уроки будут выглядеть так:

1. Теория насколько позволит пикабу. Буду стараться с картинками и объяснением "накуа".

2. Домашка - на домашку отводить буду 4-6 дней, 1 день на разбор домашки, ответы по которой буду публиковать в виде поста.

3. Видеоконференция - ну это редкость, будет, имхо пока проблема со временем, но постараюсь.


Самое главное первоначально, что надо научиться - хранить контроли версий ваших файлов, вот именно с этого и начнем.



Собственно следующая глава будет им и посвящена.

разберем: Зачем? Как? Почему? и главный вопрос: "какого и так все норм, пишу так годами".


ПЫ.СЫ.

По выходам материала, постараюсь каждую неделю. Все будет зависеть от загруженности на работе и сложности материала.


ПЫ.СЫ.2

Блин не думал, что за сутки наберу больше 200 подписчиков, теперь главное не обосраться :) перед Вами :) а то аж стыдно будет :)


Телеграмм чат. - https://t.me/huyakhuyak

Научу программировать #0.1 Web-программирование, Самообразование, Самообучение, Программирование, PHP, Junior PHP developer
Показать полностью 1
[моё] Web-программирование Самообразование Самообучение Программирование PHP Junior PHP developer
45
38
Fiddlestiks
Fiddlestiks
7 лет назад
Скриншоты комментов

*Остроумный заголовок*⁠⁠

*Остроумный заголовок* PHP, Программирование, Комментарии, Спор, Скриншот коменатриев
*Остроумный заголовок* PHP, Программирование, Комментарии, Спор, Скриншот коменатриев

*ссылка на комментарий*

#comment_105793509

Показать полностью 2
PHP Программирование Комментарии Спор Скриншот коменатриев
3
29
garik108
garik108
7 лет назад
Web-технологии

Когда кто-то пошутил про PHP⁠⁠

Когда кто-то пошутил про PHP
[моё] PHP Админ
10
4
garik108
garik108
7 лет назад

Итишник⁠⁠

Итишник
[моё] PHP Php7 IT Интернет Пхп Программист Программирование Web
2
Nep.solo
7 лет назад

Фриланс⁠⁠

Есть ли смысл идти на фриланс с "опытом" работы на php, java c#, html, css?
Фриланс Программирование PHP CSS HTML Текст
20
garik108
garik108
7 лет назад

Развитие языков программирования⁠⁠

Развитие языков программирования PHP, Javascript, Java, Python, C++, Программист, Программирование
Показать полностью 1
[моё] PHP Javascript Java Python C++ Программист Программирование
19
bigyellowstar
bigyellowstar
7 лет назад

Bitrix Ищу помощь ! Отображение складов при наличии товара⁠⁠

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

Bitrix Ищу помощь ! Отображение складов при наличии товара Web-программирование, Вопрос, Компьютерная помощь, Длиннопост, Cyberforum, 1c-bitrix, PHP

<div class="row">

<div class="col-xs-12">

<div class="tovar-tabs">

<div class="tovar-tabs-cont">

<div class="tovar-tabs__tab active" data-id="1">Наличие в магазинах</div>

<div class="tovar-tabs__tab" data-id="2">Отзывы</div>

<?if($component->arResult['CML2_MANUFACTURER']):?>

<div class="tovar-tabs__tab" data-id="3">Производитель</div>

<?endif;?>

</div>

<div class="tovar-tabs__main-cont">

<div class="tovar-tabs__main active" data-id="1">

<?$frame = $this->createFrame()->begin("");?>

<?$APPLICATION->IncludeComponent(

"bitrix:news.list",

"shops",


array(

"PRODUCT_STORES_DATA" => $component->arResult["PRODUCT_STORES_DATA"],

"PRODUCT_PRICES_DATA" => $component->arResult['PRODUCT_PRICES_DATA'],

"ACTIVE_DATE_FORMAT" => "d.m.Y",

"ADD_SECTIONS_CHAIN" => "N",

"AJAX_MODE" => "N",

"AJAX_OPTION_ADDITIONAL" => "",

"AJAX_OPTION_HISTORY" => "N",

"AJAX_OPTION_JUMP" => "N",

"AJAX_OPTION_STYLE" => "Y",

"CACHE_FILTER" => "N",

"CACHE_GROUPS" => "Y",

"CACHE_TIME" => "36000000",

"CACHE_TYPE" => "A",

"CHECK_DATES" => "Y",

"DETAIL_URL" => "",

"DISPLAY_BOTTOM_PAGER" => "N",

"DISPLAY_DATE" => "Y",

"DISPLAY_NAME" => "Y",

"DISPLAY_PICTURE" => "Y",

"DISPLAY_PREVIEW_TEXT" => "Y",

"DISPLAY_TOP_PAGER" => "N",

"FIELD_CODE" => array(),

"FILTER_NAME" => "",

"HIDE_LINK_WHEN_NO_DETAIL" => "y",

"IBLOCK_ID" => "11",

"IBLOCK_TYPE" => "shops",

"INCLUDE_IBLOCK_INTO_CHAIN" => "N",

"INCLUDE_SUBSECTIONS" => "N",

"NEWS_COUNT" => "999",

"PAGER_DESC_NUMBERING" => "N",

"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",

"PAGER_SHOW_ALL" => "N",

"PAGER_SHOW_ALWAYS" => "N",

"PAGER_TEMPLATE" => ".default",

"PAGER_TITLE" => "Новости",

"PARENT_SECTION" => "",

"PARENT_SECTION_CODE" => "",

"PREVIEW_TRUNCATE_LEN" => "",

"PROPERTY_CODE" => array(

"PRODUCT_STORES_DATA",

"LON",

"LAT",

"STORE_ID",

),

"SET_STATUS_404" => "N",

"SET_TITLE" => "N",

"SORT_BY1" => "SORT",

"SORT_BY2" => "SORT",

"SORT_ORDER1" => "ASC",

"SORT_ORDER2" => "ASC"

)

);?>

<?$frame->end();?>

</div>

Шаблон shop вообще такой:

<?

if (count($arResult["ITEMS"]) < 1)

return;


$rand = rand();

?>


<div class="shops shops--<?=$rand?>" id="shops">

<fo rm action="#">

<div class="shops-location">

<div class="shops-location__select">

<div class="bordered-select bordered-select--shops">

<select v-model="selectedRegionId" class="bordered-select__select bordered-select__select--selectize">

<option value="" >Выберите регион</option>

<option v-for="region in regions" :value="region.ID" >{{ region.NAME }}</option>

</select>

</div>

</div>

<div class="shops-location__select">

<div class="bordered-select bordered-select--shops">

<select v-model="selectedCityId" class="bordered-select__select bordered-select__select--selectize">

<option value="" >Выберите город</option>

<option v-if="selectedRegion" v-for="city in _.filter(cities, { IBLOCK_SECTION_ID : selectedRegion.ID, })" :value="city.ID" >{{ city.NAME }}</option>

</select>

</div>

</div>

</div>

<div class="shops-sort">

<div v-if="view == 'list'" class="shops-sort__input-cont shops-sort__input-cont--alf">

<input v-model="sortMethod" value="alf" type="radio" class="shops-sort__input" id="sort-1-<?=$rand?>" name="shops-sort">

<label for="sort-1-<?=$rand?>" class="shops-sort__label">

По алфавиту

</label>

</div>

<div v-if="view == 'list'" class="shops-sort__input-cont shops-sort__input-cont--dist">

<input v-model="sortMethod" value="dist" type="radio" class="shops-sort__input" id="sort-2-<?=$rand?>" name="shops-sort">

<label for="sort-2-<?=$rand?>" class="shops-sort__label">

По удаленности

</label>

</div>

</div>



<!--

<div class="shops-checks">

<div class="shops__checks checkbox--shops">

<input @Change="rewriteMap()" v-model="zoo" type="checkbox" class="checkbox__input" id="check-2-<?=$rand?>">

<label for="check-2-<?=$rand?>" class="checkbox__label">

С зоотоварами

</label>

</div>

<div class="shops__checks checkbox--shops">

<input @Change="rewriteMap()" v-model="favorite" type="checkbox" class="checkbox__input" id="check-1-<?=$rand?>">

<label for="check-1-<?=$rand?>" class="checkbox__label">

Любимые магазины

</label>

</div>

</div>

-->

<div class="shops-filter">

<div class="bordered-input

bordered-input--shops shops-filter__address">

<input v-model="search" placeholder="Введите адрес" type="text" class="bordered-input__input bordered-input__input--shops">

</div>

<div class="shops-filter__view">

<div class="shops-filter__view-cont">

<input v-model="view" value="map" type="radio" class="shops-filter__view-radio" name="view" id="filter-radio-1-<?=$rand?>">

<label for="filter-radio-1-<?=$rand?>" class="shops-filter__view-label">

Карта

</label>

</div>

<div class="shops-filter__view-cont">

<input v-model="view" value="list" type="radio" class="shops-filter__view-radio" name="view" id="filter-radio-2-<?=$rand?>">

<label for="filter-radio-2-<?=$rand?>" class="shops-filter__view-label">

Список

</label>

</div>

</div>

</div>

</form>

<div class="shops-cont">

<!--<div v-if="!filteredItems.length" class="shops__empty">Магазины не найдены </div>-->

<ul v-if="view == 'list'" id="list" class="shops__address-list">

<li v-for="shop in filteredItems" class="shops__address-el" >

<input v-model="selectedShopId" :id="'shop_'+shop.id+'-<?=$rand?>'" type="radio" :value="shop.id" class="shops__address-radio" name="selectedShops">

<label :for="'shop_'+shop.id+'-<?=$rand?>'" class="shops__address-label">

<address class="shops__address-address" >

{{ shop.address }}

</address>

<div class="shops__address-label-right-cont">

<div class="shops__address-label-time">

{{ shop.time }}

</div>

<div v-if="shop.distance" class="shops__address-label-dist">

{{ m_to_k(shop.distance) }}

</div>

<div v-if="shop.amount" class="shops__address-label-count">{{ shop.amount }} шт.</div>

<div v-if="shop.price" class="shops__address-label-price">{{ shop.price }} руб.</div>

</div>

<div style="clear:both"></div>

</label>

<span @click="favoritesToggle(shop);" :class="['favorite' , shop.isFavorite ? 'added' : '',]" ></span>

</li>

</ul>

<div v-else-if="view == 'map'" class="shops-map" >

<div id="map"></div>

</div>

</div>

<div v-if="filteredItems.length" class="shops-list-controls">

<a @click="selectShop()" >Выбрать</a>

</div>

<sc ript type="text/javascript">

if (typeof('vmShopsInit') != 'undefined') {

vmShopsInit('.shops--<?=$rand?>', {

items : <?=json_encode($arResult['ITEMS_JSON'])?>,

regions :<?=json_encode($arResult['REGIONS'])?>,

cities : <?=json_encode($arResult['CITIES'])?>,

});

}

</sc ript>

</div>

///// Спасите от голодной смерти, что почитать где косяк?

Показать полностью 1
Web-программирование Вопрос Компьютерная помощь Длиннопост Cyberforum 1c-bitrix PHP
38
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии