• Как вызвать метод в jquery plugin?

    rdifb0
    @rdifb0
    Программист, реалист
    Первое что пришло в голову jsfiddle.net/86LCk/2
    Ответ написан
    Комментировать
  • Что такое slug в разработке?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Чаще всего, как уже написали, встречается в URL, но все же его значение чуть более шире - slug это уникальная строка идентификатор, понятная человеку (в отличие от ID) и содержащая только "безопасные" символы:
    - 0-9
    - a-z (общепринято - в нижнем регистре)
    - символ -
    - иногда еще символ _
    Могут использоваться не только в URL для понятности, но и, например, в запросах к БД (в первую очередь - на уровне АПИ) - ведь
    SELECT * FROM pages WHERE category="some-slug"
    более понятно, чем
    SELECT * FROM pages WHERE category=126.
    На уровне API это выглядит как
    get_pages_in_category( 'some-slug' )
    или
    $object->get_pages_in_category( 'some-slug' ).
    В общем, это человеко-понятный уникальный идентификатор.
    Ответ написан
    1 комментарий
  • Динамическое добавление полей в форме?

    taliban
    @taliban
    php программист
    Простейший вариант:
    Делаем шаблончик нужного хтмл но как значение переменной
    var tpl = "
    <div>\
        <input name='name[%%num%%]'>\
        <input name='name[%%num%%]'>\
        <input name='name[%%num%%]'>\
    </div>\
    ";

    При нажатии на кнопку добавления новой строки просто заменяете в переменной %%num%% на счетчик++
    var currentTpl = tpl.replace(/%%num%%/g, counter++)
    и вставляете после текущих полей
    Ответ написан
    3 комментария
  • Как сделать товары с разными характеристиками и ценой?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Такой вид товарного предложения называется "вариативное товарное предложение".

    1. Создаётся унифицированный товар, как дополнительный подраздел в нужной категории товаров и, желательно, помечается флагом "унифицированный товар".
    2. Создаются все доступные к приобретению варианты сочетаний, как отдельные товарные предложения.
    3. В скобках наименования указываем все параметры попарно через двоеточие с разделением точки с запятой.
    Пример: Портативный SSD (объем:128Gb;цвет:красный)
    4. Затем, в эту категорию помещаются все созданные сочетания товарных предложений.
    5. При отображении товара из категории "унифицированный товар" (или, если есть в наименовании товара двоеточие в скобках) - определяем, что товар - вариативный.
    6. Если это так - делаем выборку, предварительно исключив скобки (или проще: все товары этой категории) из БД.
    7. Если таких товаров несколько - отображаем варианты для выбора.
    8. При изменении одного из вариативных параметров пользователем - меняем товар через ajax (или полностью перегружаем страницу, что хуже...)

    Еще раз, повторюсь: если пометить категорию в п.1 не представляется возможным, можно просто ориентироваться на скобки и двоеточие, и создавать селекторы по этим признакам.

    ----------

    Если делаете с нуля, всё просто:
    1. Добавляете к разделу флаговое поле в БД: "вариативный товар"
    2. Добавляете отдельную таблицу вариативных характеристик, в которой присутствуют связки:
    ID раздела "вариативный товар", ID одной характеристики товара, тип поля (лучше ID поля и доп.таблицу, канешн, но не так критично, если вариантов не много)
    3. Если товаров из нужного вариативного раздела с такими характеристиками у нас несколько - отображаем выбор параметров.
    4. см. п.8 (из предыдущего раздела)
    Ответ написан
    9 комментариев
  • Как организовать структуру таблиц в БД?

    greabock
    @greabock
    Могу
    Правильная организация:
    goods
    айди, артикул, ... , и прочие данные общие для всех товаров с данным артикулом (например бренд или айди бренда (если бренды хранятся в отдельной таблице); возможно, ссылка на основное изображение).
    В общем, здесь описан непосредственно сам продукт, как таковой.

    goods_variants
    айди_варианта, айди_товара, опции товара, остаток.
    Здесь все сочетания возможных опций для товара, с определенным айди. А так же возможная уникальная информация для конкретных параметров (возможно, информация о том, что товар акционный - допустим скидка 50% на супер большие размеры - здесь айди акции или что-то такое).
    Например, если опции - это размер и цвет, то таблица в этом случае:
    айди, размер, цвет, остаток, и еще что-то уникальное для данного варианта товара (ссылка на изображение, если цвет отличается, к примеру).
    Само собой, сочетание полей айди+размер+цвет должно быть уникальным, во избежание дублей.

    Если возможных опций для товара слишком много (а возможно даже отсутствие одних опций и присутствие других), то нужно подумать об организации отдельной таблицы опций товаров, но это тема для отдельной дискуссии.
    Ответ написан
    6 комментариев
  • Распространяется ли налоговый патент на SEO?

    @boss_lexa
    https://www.buhonline.ru/forum/index?g=posts&t=520578

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

    смотрите оквэд 2 от 2018 года

    все что не будет относится к деятельности по патенту проводите по УСН
    Ответ написан
    2 комментария
  • В каком формате отдавать на верстку макеты Affinity Designer?

    roamn
    @roamn
    Front-end developer
    К сожалению на сегодняшний день выдать какой либо удобный верстальщику формат из Affinity Designer невозможно. Помимо не очень качественного экспорта в psd, Affinity еще и растрирует все шрифты при экспорте в этот формат, что делает работу верстальщика еще сложнее.
    Пока Affinity Designer не получит поддержку в таких пакетах как Avocode или Zeplin, говорить о каком-то удобном обеим сторонам формате коммуникации не приходится.
    Я сам front-end developer, но попутно занимаюсь и дизайном. Покупал в 2017 году Affinity Designer для работы, но после того как обнаружил растрирование шрифтов при экспорте в psd, вернул деньги обратно.
    Реквест на корректный экспорт шрифтов весит на форуме уже несколько лет, 3-4 года точно.

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

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

    Кароч изи все делается, но яя плохо помню как

    1) Загугли как отключить apache внутри macOS, потому что я не помню команды. После этого, вроде как, надо мак перезапустить.
    2) Надо прописать в hosts url, который ты зарезервируешь под свой проект
    cd62f8d8ca3a4984b16127a19204eeef.png

    3) Надо в mamp/conf/apache/httpd.conf найти строку
    Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
    и раскомментировать
    4) Записываешь в файл mamp/conf/apache/extra/httpd-vhosts.conf вот такие вещи:
    15a72d623b9940db9c7dc45e9bbd1161.png
    Вторая строка означает путь до index-файла (корень твоего проекта)
    Третья строка URL (который указывал в hosts), по которому будешь обращаться к проекту

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

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Про GitHub.

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

    2) Создал себе на Гитхабе две дополнительные организации внутри своего аккаунта.
    - «paulradzkov-forks» — для форков чужих проектов.
    - «paulradzkov-heaven» — кладбище для старых проектов, куда перемещаются все неактуальные проекты.
    Эти две дополнительные организации позволяют очистить основной аккаунт от мусора. В нем теперь только несколько актуальных проектов, в которых легко ориентироваться.

    3) Перемещаю все старые проекты из Дропбокса на Гитхаб в «paulradzkov-heaven». Проектов много, это долго, но освободилось уже несколько гигов (т.к. там кроме кода psd-исходники, архивы с инсталляторами и прочее). Место в облаках заканчивается, а на Гитхабе — резиновое.
    Это кладбище уже пригодилось, когда у меня попросили поискать исходники проекта, над которым я работал 3 или 4 года назад, а я через минуту ответил им ссылкой на нужный репозиторий. Не пришлось никуда лезть, распаковывать, искать, запаковывать, отправлять почтой или закачивать в облако.
    Повторюсь, что на Гитхабе классный поиск по исходникам: если нужно посмотреть, как что-то сделал в старом проекте, но не помнишь в каком — можно довольно быстро найти искомое без возни с архивами.

    Итого.
    Код должен лежать на Гитхабе.
    В том числе старые проекты.
    Используйте организации, чтобы рассортировать проекты, если их много.
    Порядок там, где у каждой вещи есть своё место. Придумайте себе правила порядка заранее и соблюдайте их, чтобы не тратить время на ликвидацию беспорядка.
    Ответ написан
    10 комментариев
  • Как убрать повторяющиеся слэши в .htaccess?

    @ShamblerR
    Дааю сразу все поскольку в свое время задолбало для каждого проекта делать все заново, по этому сейчас просто вставляю кусок и все.
    ############################################################################
    #### Cтандартный .htaccess для проектов студии Клондайк, версия 2.3     ####
    ############################################################################
    RewriteEngine On
       #  Директива включает редиректы.
    RewriteBase / 
       # Без директивы (.*) = /$1 будет /var/wwww/site/web/$1  с директивой  = /$1
    Options +FollowSymLinks
       # Разрешает переход по символическим ссылкам.
    
    ############################################################################
    #### Перенаправляем протокол https на http                              ####
    ############################################################################
    RewriteCond %{HTTPS} on
       # Проверяем наличие https в URL.
    RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI}
       # Перенаправляем протокол на http.
    
    ############################################################################
    #### Выбор основного зеркала (или с www или без www)                    ####
    ############################################################################
       # 1. Редирект с www на без www. (раскоментировать директивы пункта 1)
    #RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
       # Проверяем, содержит ли домен www (в начале URL).
    #RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
       # Перенаправляем URL на домен без www.
    ####
       # 2. Редирект без www на www. (раскоментировать директивы пункта 2)
    #RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
       # Проверяем, не содержит ли домен www (в начале URL).
    #RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
       # Перенаправляем URL на домен c www.
    
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL                              ####
    ############################################################################
    RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
       # Проверяем, повторяется ли слеш (//) более двух раз.
    RewriteRule . %1/%2 [R=301,L]
       # Исключаем все лишние слеши.
    
    ############################################################################
    #### Убираем слеши в конце URL для статических файлов (содержит точку)  ####
    ############################################################################
    RewriteCond %{REQUEST_URI} \..+$  
       # Если файл содержит точку.
    RewriteCond %{REQUEST_FILENAME} !-d   
       # И это не директория.
    RewriteCond %{REQUEST_FILENAME} -f
       # Является файлом.
    RewriteCond %{REQUEST_URI} ^(.+)/$      
       # И в конце URL есть слеш.
    RewriteRule ^(.+)/$ /$1 [R=301,L]     
       # Исключить слеш.
    
    ############################################################################
    #### Добавляем слеш(/), если его нет, и это не файл.                    ####
    ############################################################################
    RewriteCond %{REQUEST_URI} !(.*)/$
       # Если слеша в конце нет.
    RewriteCond %{REQUEST_FILENAME} !-f
       # Не является файлом.
    RewriteCond %{REQUEST_URI} !\..+$
       # В URL нет точки (файл).
    RewriteRule ^(.*)$ $1/ [L,R=301]
       # Добавляем слеш в конце.
    
    ############################################################################
    #### Убираем index.php, если он есть в конце URL                        ####
    ############################################################################
    RewriteCond %{REQUEST_METHOD} =GET
       # Выявляем GET запрос в URL (не POST).
    RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
       # URL cодержит index.php в конце.
    RewriteRule ^(.*)$ %1/ [R=301,L]
       # Удалить index.php из URL.
    
    ############################################################################
    #### Конец общей части, далее следует собственные директивы .htaccess   ####
    ############################################################################
    Ответ написан
    5 комментариев
  • Какой способ подключения CSS и JS лучше?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    По идеи должны быть 2 директории, одна для разработчика, другая для пользователя, т.е продакшн версия.
    Лучше всего использовать препроцессоры, делать файловую структуру, подключая через import все файлы в один и компилировать его в продакшн версию.
    К странице в идеале подключать один минимизированный файл со стилями и также файл со скриптами.

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

    PS. Для компиляции, сборки и т.д лучше использовать сборщики для автоматизации, например тот же gulp
    Ответ написан
    Комментировать
  • CSS em rem % вопросы по относительным еденицам - что лучше...и как?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Ankhena W достаточно подробно все описала, но кое-что следует уточнить.

    1. Проценты и em это всё-таки разные единицы измерения. Для каких-то свойств они ведут себя одинаково (в частности font-size), для каких-то - по-разному. Например, при задании line-height процент высчитывается от размера шрифта текущего элемента, а em от размера шрифта родителя.

    2. То же самое. Зависит от свойства, к которому применяется.

    3. Можно использовать (и используют), но не всегда это нужно. Допустим, элемент small должен быть всегда меньше на 25% где бы он не находился. Чем писать правила на все случаи его появления в верстке, проще написать одно правило - font-size: 0.75em;

    4. Неточность у автора. body наследует не настройки браузера, а свойства рутового элемента html, который как раз и задается настройками браузера (по умолчанию).

    5. Отступы в em удобно задавать при описании типографики, но не блоков. Например, для заголовков, параграфов и т.п. Вообще, если описывать всю типографику относительными единицами, ее легко, буквально в пару правил, адаптировать под разные экраны.

    И по всему остальному: истины нет. Неожиданно, да? Тем не менее это похоже на правду. Всё зависит от конкретных обстоятельств. Где-то удобнее использовать одно, где-то другое. И прекрасно, что CSS дает нам такую возможность.
    Ответ написан
    2 комментария
  • Как вернуть ярлычки листов в LibreOffice Calc?

    gen1s
    @gen1s
    Попробуйте потянуть горизонтальный скроллбар (прямо над полем Найти) слева. Быть может, он просто растянулся и перекрыл ярлычки.
    http://forum.openoffice.org/en/forum/viewtopic.php?t=45237#p209203
    Ответ написан
    Комментировать