• Как лучше, сделать всплывающие окна для Yii2?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Берешь фиксед блок на всю страницу размером делаешь его полупрозрачным черным
    Потом абсолют блок на всю страницу размером, не забываешь сделать overflow-y scroll
    В него вкладываешь блок с display table на всю страницу размером
    В него display table-cell с vertical-align middle на весь родитель размером
    В него вкладываешь inline-block белый шириной например 400 пикселов или там уже от размера экрана смотри - вот тебе белый фон

    Дальше добавляешь всей этой конструкции class "active" только при определенном условии - класс актив - показывает модалку

    Пишешь два скрипта - закрыть и показать, функции из них запихиваешь куда-нибудь в App.modals.fn.showModal() / hideModal()

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

    Какое готовое решение использовать? Ну которое делает это же, только само. Как узнать? Расколупать и посмотреть, попробовать то то и вон то. Остановится на том, что позволяет меньше работать.

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

    Ну только так получится. Быстрее не выйдет, ты можешь убедить директора, что быстрее не выйдет. Убедить компьютер написать код за тебя не получится. Убеждаются, к сожалению, только люди.
    Ответ написан
    2 комментария
  • Какую технологию/фреймворк выбрать для разработки небольшого веб-приложения?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Чей-то развод прокатил. У людей уже проблема не сделать, а даже выбрать.
    Я так скажу - без программиста лучше не работайте. Нанимайте самого дорогого и платите ему. Если у него не получится - вам уже никто не поможет. А пацану приятно.
    Ответ написан
    Комментировать
  • Как связать Vue.js с php?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Пользуют вот такой вариант:
    из php
    echo sprintf("<script>var json_data = '%s';</script>", json_encode($arr));

    иногда можно всунуть в виде тега в html какой-нибудь base64, чтобы потом из яваскрипта распознать. ну разные способы есть.
    Ответ написан
    2 комментария
  • Можно ли запустить php скрипт используя тег img или адресную строку, если он передаётся с header-ом "Content-Disposition: attachment"?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Можно мне еще раз другими словами объяснить, что именно ты хочешь сделать?
    Сервер всегда вешает заголовок attachment?
    И ты можешь закачивать?
    Закачай новый htaccess где будет прибит новый заголовок
    Или в самом скрипте укажи заголовок
    Скрипт это лишь способ выполнить команду серверу
    Если он вешает заголовок, то это значит где-то есть команда привесить заголовок.
    Давай поточнее
    Ответ написан
  • Как правильно наладить работу с фрилансерами в вопросе добавления товаров?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Безопасный способ по добавлению товаров
    а) взять кто шарит в БД
    б) заказать скрипт который из одной БД льет в другую и протестить его что работает
    в) даешь фрилансеру доступ в базу где есть один демо товар - у тебя есть образец SQL файла с одним товаром. Говоришь ему по образу и подобию добавить остальные, даешь доступ к пустой базе
    г) он заливает товары, ты запускаешь скрипт - товары появились? да. оплата. нет - ищите причину.

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

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Идеальный вариант не убивать старый, поскольку - если удалить страницы - рэнкинг будет постепенно падать.
    Единственное, что позволяет сохранить рэнкинг - это 301 редирект.
    Стоит вам сделать редирект на заглушку, как пользователи повально будут переходить на сайт и убегать с него - а это опять таки не хорошо, и индексация его по фразе "сайт закрыт" так себе идея.

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

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    В верхнем коде написано следующее:

    0. Базовый урл - наклонная черта
    1. Если URL - index.php - не трогать и обработать как есть
    2. Если такой файл, как требуется в URL отсутствует и такой директории нету - то оставить адрес как есть, но выдать пользователю файл index.php

    В нижнем коде написано

    1. Если URL целиком равен app в любом регистре и юзер агент - айфон - отправить на Аппстор
    2. Если URL целиком равен app в любом регистре и юзер агент - андроид - отправить на ГуглМаркет
    3. Если URL целиком равен app в нижнем регистре - перебросить его на новый хост

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

    Когда они вместе:
    1. Во втором коде не хватает [R] чтобы это были таки редиректы, хотя Хост вроде как все равно делает редирект
    2. Если ты поставишь код вордпресса сверху - то URL никогда не будет app, т.к. к моменту как разбор дойдет до переадресации на апсторы - урл будет уже index.php, а не /app - запердоль код вордпресса вниз
    3. Так же не забывай что htaccess работает по кругу. Когда заканчивается правило буквой [L] или же достигается конец документа - хтацесс пробегает все правила еще раз, чтобы убедится, что больше ни одного правила не подходит под то, что получилось. И только если ни одно правило не сработало - выдается результат, иначе процесс повторяется и снова еще один круг.
    Ответ написан
    1 комментарий
  • Правильный ли БЭМ?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Неправильный

    Минимум
    а1 .section-videos
    а2 .section-videos__slider
    а3 .section-videos__text
    а4 .section-videos__title

    Второй блок по желанию (в этом случае а3 и а4 не нужны, т.к. есть б2 и б3)
    б1 .section-video-slider
    б2 .section-video-slider__text
    б3 .section-video-slider__title
    Ответ написан
    Комментировать
  • Как правильно сделать с точки зрения БЭМ?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Бэм очень легко поясняется на аналогии "с котенком".
    Спроси двух разных людей о белом котенке - попроси их его вообразить и описать.
    Ты увидишь что их слова отличаются, т.к. разное воспитание у людей было.

    В Бэме примерно также. У тебя есть два блока - совершенно не важно кто они в иерархии и кто из них старше. Каждый DOM элемент ты можешь называть одним именем для одного блока и другим именем для другого.

    Вот пример - есть у тебя страница, на странице есть "футер" а в футере есть "слайдер".
    Это два разных "человека", которые могут назвать картинку слайдера своими собственными названиями.

    .footer__sliderimage.slider__image
    или чтобы еще более наглядно
    .footer__kakajatokartinka.slider__kartinkaslaida

    Я имел в виду, что сам первый месяц работы с БЭМом искал как правильно. Но не найдя ни одного толкового объяснятеля - все мутили только воду потому что не знали сами, для стандарта такая ситуация недопустима - внезапно обратил внимание на то что написал выше.

    Здесь самое главное - не связывать блоки между собой. Я имею в виду что в DOM дереве они конечно родитель и потомок. Но вот это связывание в иерархию потом создает путаницу и невозможность вставить один блок в другой. Отойди от мысли вложенности блоков друг в друга - здесь они все существуют как бы параллельно. Для слайдера - картинка - это "картинка слайда", а для футера это "картинка слайдера" или просто "какая-то картинка". Не связывай их в иерархию больше чем на один уровень (блок-элемент) и не приплетай в понимание БЭМа дерево DOM. В этом и есть секрет. Один элемент DOM дерева может быть:
    - элементом а1 для блока 1
    - элементом б1 для блока 2
    - блоком 3
    но вложенность все равно будет один уровень, даже если от блока до элемента несколько DOM-уровней. Блок может быть footer, а картинка слайдера от него еще в двух дивах и трех таблицах по глубине. И тем не менее это все равно один уровень вложенности. Ты просто манипулируешь своей собственной таблицей названий, забивая на чужие иерархии
    Ответ написан
    Комментировать
  • Какие книги почитать для начинающего веб прогера?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Для программирования тебе понадобятся:

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

    2. понять какие инструкции бывают в почти всех языках программирования, if/switch/for/while

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

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

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

    ** если ты хочешь научиться делать сразу 90% всех задач, которые тебе придется делать - вот тебе задача, которая достаточно сложна, сколько бы ты не работал программистом - калькулятор доставки товаров по всему миру с использованием апи служб доставки (нескольких). Честно у меня есть ощущение, что я знаю, как сделать что угодно, но сел за это - я понял что это тест на все знания, которые у меня есть

    Думаю, ты готов :)
    Ответ написан
    Комментировать
  • Ответственность за баги при нетривиальном поведении?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Для понимания:
    Бизнес-адвокаты-финансисты - это сферы которые __играют__ со словами "хорошо-плохо-правильно-неправильно"
    Программисты-инженеры-слесари - это сферы которые делают и у них есть только "работает-в-моменте/не-работает-в-моменте"
    Врачи-преподаватели - посередине, но современная тенденция они стараются побыстрее перейти в первую группу

    Чтобы тебе легче жилось, тебе придется ВОЗНЕНАВИДЕТЬ первую группу, а не полюбить её.
    Только так можно самому начать переходить в эту группу.

    Система сломана самим фактом наличия денег и не будет чиниться, т.к. более 50% имеющих ресурсы умеют в нее играть (даже 92%), а так им пришлось бы переучиваться. Не пытайся оправдаться и что-то доказать. "Пока ты оправдываешься - ты не ведешь переговоры" (с) Профессия бизнесмена-финансиста-адвоката в том чтобы любыми способами получить или сэкономить деньги. А поскольку именно адвокаты будут доказывать виновность-невиновность... то выиграет не тот, кто прав, а тот у кого больше финансов.

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

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

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

    Так что же получается - теперь если тебе плохо сделали, нужно молча стерпеть? Ответ - Да. Но не совсем. Тебе не нужно мстить за то что с тобой плохо обошлись. Тебе нужно заказывать строго там, где у тебя подготовлена поляна и тебе сделают хорошо, пусть и дороже. Вот основное правило. Ты заботишься о тех, кто на тебя работает. А они заботятся о тебе. Если ты видишь что они подставили тебя уже третий раз - поругай себя что не увидел этого раньше и уходи оттуда, под клятвой не возвращаться. Друзья-не_друзья не важно. Ты можешь увидеть, что тебе сделали херово и дать немного денег на исправление. Сверх того, что вы договаривались. Если он и со второго раза сделает херово - есть все основания уходить, а не начинать преследование. Вот где место принятия решения.

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

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

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

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

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

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Разумеется, с пониманием того, что когда вы заказываете в "it компании" скорее всего самих айтишников там целых... два. А остальные сотрудники будут включены в бюджет.

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

    Как только Вам станет что-нибудь нужно - с Вас попросят больше.
    А если не станет - попытаются от Вас спрыгнуть или кормить завтраками.
    Бизнес есть лицемерие и только)
    Ответ написан
  • Можно в JavaScript узнать по какому потомку объекта кликнули?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Ну так событие "клик" на элементе.
    А элемент предварительно впихни в массив потомков.
    Потом пройдись проверкой с тройным равно (this === $i) - вот ответ
    Ответ написан
  • Как отобразится 1 материал с максимальным id, а за ним 5 материалов с меньшими id в категории?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    id это не для тебя - это номер записи в системе.
    он используется для связи между двумя базами, обеспечивая уникальность записей.

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

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Я пользуюсь штукой под названием Timedoctor.
    День начинается в 00.00, заканчивается в 23.59.
    Когда я нажимаю показать неделю - считается время от понедельника 00.00 - 23.59 воскресенья. Если нет записей за период - пишется "извините, кажется вы в это время не работали".
    Ответ написан
    Комментировать
  • Как лучше реализовать многоязычность сайта, работающего без CMS, на голом HTML/CSS?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Самое сложное будет url реврайтинг - то есть автоматический выбор языка для чувака, у которого определенная страна. Сделать многоязычник без этого легко - основное выедание мозга именно в этом.
    То есть просто сделать страницы на разных языках с каноникалами не проблема.
    Проблема потом сделать умный роутер, который автоматически будет выбирать язык в зависимости от кучи условий и менять все ссылки на странице, понимая что адрес к странице по сути один, а языков много.

    Т.к. не всегда нужно копировать всю страницу чтобы отобразить ее на другом языке.
    Есть такая ерунда как отобразить страницу под определенную страну. Но многие статьи могут просто изменять один блок с контентом и все, а меню и вовсе - меняют только тексты ссылок, и зачем копировать шапку-подвал, чтобы потом не дай бог изменение - все, вешайся?
    Ответ написан
  • Angular 2 longpolling как посылать следующий запрос сразу после ответа?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    я может ошибаюсь но нода-модуль http.get() умеет делать коллбэки, если это родной модуль, в него нужно и сунуть второй запрос. в вашем случае происходит запрос, и обьект подключения... мапится?

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

    Я бы от этого плясал в попытке понять

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

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

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    На самом деле задача глубокая и очень сильно субьективная - типа как хочешь так и делай, вопрос безопасности безусловно всегда будет болеть.

    Вот мои зарисовки:
    https://vk.com/away.php?to=https%3A%2F%2Fdocs.goog...

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

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

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

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

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

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

    На деле там все просто - первый (приватный) принадлежит тебе и создается на твоем компе. С помощью него можно создать второй (т.е. публичный), который кому угодно отправить. Этот кто угодно добавляет его к себе в "белый список" и второе - добавляет его в папку к какому-то юзеру - чтобы связать логин с тобой - т.е. ты то можешь быть Гриха, а у него на компе ты gzhegow, и вот в папку gzhegow он кладет твой ключ, а потом еще в программку вносит что типа такому то ключу можно входить. После этого тот, у кого есть приватный может ходить туда, где его публичный в белом списке. В общем то все. Так делают связь например сервер-сервер - создали два приватных, на их базе два публичных, обменялись публичными - все работает - можно с одного сервера удаленно давать команду другому и им не нужна дибильная кнопка "разрешить подключение", которую должен нажать человек - серваки то небось один в Германии, другой в Камбодже.
    Ответ написан
    Комментировать
  • Авто сокращение ссылок?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Тут я бы начал с того, что разделил сущность опубликованных ссылок и страниц. Потому что если короткая ссылка будет указывать на короткую - ты прилетел (ситуация когда 1 короткая указывает на 2 короткую, а 2 короткая - назад на первую).

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

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

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    Ну так то движок это всего лишь система управления данными.
    Кому-то удобно видеть их в виде таблицы и управлять с помощью navicat
    Кому-то удобно представлять себе цепочку инфоблоков и платить битриксу деньги
    Кто-то делает обертку под гуглдокс

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

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

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

    Система управления (движок) - кому ты собрался упрощать работу?
    Хранить данные?
    Картинки имеют месторасположение и уникальное название в пределах этого расположения, что контроллируется операционкой.

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

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

    Минусы xls - большой xls файл долго читать
    Минусы csv - его неудобно открывать в экселе, а опенофис постоянно лагает при попытке что-нибудь скопировать и вообще тупое животное
    Минусы xml - без программиста правильно не составить
    Минусы json - некоторые его боятся, потому что он настолько прост, что его способны понять только программисты
    yaml - новее json-а, но опять же без мозгов не составить
    делать админку управления картинками - дорого и нахер нужно, разве что потешить самомнение

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

    Это будет проще сделать чтобы протестировать идею, чем писать фронтенд и долбаться тем что какая-то кнопка не работает, потом подрубать ангуляры, реакты и тонуть в этом всем.
    Ответ написан
    Комментировать