• Python для чайников, где взять материалы?

    trudogolik
    @trudogolik
    саморазвитие, личностный рост
    Совершенно случайно наткнулся на эти лекции. Учитель как говорится "от Бога", интерпретирует прямо на ходу.
    В итоге уже больше половины посмотрел, этим наверное и определяется преподавательское мастерство.
    Приятно и интересно слушать. Не пожалеете!
    Ссылка на плейлист youtube Алгоритмы на Python 3.
    Ответ написан
  • Выбор постов через hasMany по передаваемой метке в url?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    class Tags extends ActiveRecord
    {
        public function getPages()
        {
             return $this->hasMany(Statjiblog::className(), ['id' => 'post_id'])->viaTable('{{%statjiblogtags}}', ['tag_id' => 'id']);
        }
    }


    public function actionPage($slug){
      $model = Tags::find()->andWhere(['slug'=>$slug])->one();
      foreach($model->pages as $page){
          echo $page->title;
      }
    }

    Ну или с другой строны, через join;
    Ответ написан
  • Обрезка изображения в worpdress?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    В настройках медиа выставляете так
    5md0yylFvVkROm.jpg
    +
    Убираете из темы все add_image_size()
    Движок перестает генерировать тонны миниатюр
    Затем подключаете https://github.com/bfintal/bfi_thumb
    и меняете вывод миниатюр в теме на
    the_post_thumbnail( array( ххх, ххх, 'bfi_thumb' => true ) );

    profit!!!
    Теперь кропает только нужный размер и только в нужном месте.
    Ответ написан
  • Что с файлом archive-product.php в woocommerce?

    @max3wq
    Скорее всего у Вас самописная тема (вместо archive-product.php тянет файл page.php), чтобы заработал archive-product.php, необходимо в functions.php вставить код чтобы обьявить поддержку в теме:

    <?php
    add_action( 'after_setup_theme', 'woocommerce_support' );
    function woocommerce_support() {
        add_theme_support( 'woocommerce' );
    } ?>


    Потом создать в корне темы файл woocommerce.php под ваш шаблон, с содержимым к примеру:

    <?php
    /**
     * Шаблон обычной страницы (page.php)
     * @package WordPress
     */
    get_header(); // подключаем header.php ?>
    <section>
    	<div class="container">
    		<div class="row">
    		<?php get_sidebar(); // подключаем sidebar.php ?>
    			<div class="<?php content_class_by_sidebar(); // функция подставит класс в зависимости от того есть ли сайдбар, лежит в functions.php ?>">
    				<?php woocommerce_breadcrumb(); ?>
    				<?php woocommerce_content(); ?>
    			</div>
    
    		</div>
    	</div>
    </section>
    <?php get_footer(); // подключаем footer.php ?>


    Потом уже в папке с темой папку woocommerce, в нее скинуть archive-product.php и в нем уже будут приниматся все ваши изменения.
    Ответ написан
  • Git + боевой и тестовый сервер, как тестировать выполненную работу и выстроить рабочий процесс?

    DJZT
    @DJZT
    Laravel - code for you
    Прочитайте ещё про git flow. А по сути один вариант такой.
    Сделайте master ветку - как ветку основного боевого сервера. Вторую ветку dev - ветка сервера для тестирования. дальше делайте для каждого таска отдельную ветку. По окончании работы над таском делаете слияние в ветку dev. После того, как вы насобирали и оттестировали некоторое кол-во правок и задач, можете смержить master с dev веткой.
    Ответ написан
  • Как узнать id категории находясь в ней вне цикла?

    cesnokov
    @cesnokov
    <head>&nbsp;</head>
    WordPress:
    global $post;
    $categories = get_the_category();
    foreach($categories as $category) {
          echo $category->cat_ID;
    }


    WooCommerce:
    global $product; //Если не объявлен ранее. Не уверен в необходимости.
    global $post;
    $categories = get_the_terms( $post->ID, 'product_cat' );
    foreach ($categories as $category) {
        echo $category->term_id; //Может быть в нескольких категориях
    }
    Ответ написан
  • Как добавлять кнопку при клике только один раз?

    Stalker_RED
    @Stalker_RED
    Просто добавьте проверку, создавали ли вы эти кнопки уже или нет.
    if (кнопок_еще_нет) {
      добавить
    }
    Ответ написан
  • Для чего нужен apache на бэкенде?

    Stalker_RED
    @Stalker_RED
    Если у вас уже есть nginx + php-fpm, и не нужны какие-то специфичные для апача модули, то и апач вам не нужен.

    Около двадцати лет апач был и остается самым распространенным веб-сервером в интернете. В последнее время он постепенно уступает место nginx'у, но все еще существует огромное количество проектов, для которых проще поставить nginx дополнительным слоем, чем полностью отказаться от apache.
    Ответ написан
  • Как правильно выбрать "эталонную" модель MVC и .htaccess для сайта?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    не использовать apache и вопрос автоматически перестанет быть акутальным про htaccess.
    Для этого надо перестать пользоваться шаредами за 50 рублей, и перейти на впски за 50 рублей.

    Насколько существенны различия размещения точки входа в структуре каталогов сайта?

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

    be_a_dancer
    @be_a_dancer
    Middle Backend/Fullstack Developer
    Котеров. PHP7 в подлиннике. Идеальный учебник-справочник-руководство по PHP в том объеме, который нужен полноценному разработчику. Лежит в бумажном варианте рядом с компьютером, обращаюсь ради консультаций.
    Там есть все. От особенностей работы протокола, основ бд, до каких-то маленьких, но крайне важных особенностей применения некоторых методов.
    Ответ написан
  • Как идет процесс разработки Laravel + Angular?

    @cluberr
    Laravel - по факту только ходит в базу достает данные и отдает их в JSON или добавляет их в базу при запросе на определенный в роутах URL - это все называется REST IP,
    из Angular по заданным событиям Events через HttpClient шлются запросы на нужные URL бэкенда , получают от Laravel данные в JSON и инджектят в компоненты из которых состоит страница.

    То есть у вас на сервере с определенным ip, которому прописан в dns адрес site.ru, на 80 порту лежит фронтенд , который отдает главную страницу при запросе на site.ru из Angular (это просто html страница с Javascript) а потом javascript шлет запросы на бекенд который может работать на этом сервере на другом порту или в любом месте , главное знать ip и порт куда слать запросы
    Ответ написан
  • Несколько вопросов к толковым разработчикам относительно mvc и php?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    M — модели… если упростить — это просто проекция вашего хранилища данных (будь то ORM/ODM или обычные файлы) на объекты. И все… Бизнес логику они содержать не должны. Так же модель никак не должна знать как именно она будет сохраняться в хранилище, ибо тогда при смене хранилища начнутся приключения. В этом смысле концепция AR в том виде, в котором она реализована в Yii мне не нравится. Какой-то класс CActiveRecord который знает кучу всего о том что и как он будет сохранять, и от него надо наследовать нашу простенькую модельку содержащую в себе всего пару полей. Опять же есть разные реализации паттерна ActiveRecord, хотя мне больше по душе DataMapper (например Doctrine), при котором у вас есть отдельный компонент, знающий о том что и куда пихать. Логика по выборкам в этом случае выносится в репозитории, эдакие менеджеры записей. Плюсы этого способа — очень легко в системе заменить тип хранилища, расширять и поддерживать за счет слабой связанности компонентов. Контроллеры знают только о том что есть репозитории, которые имеют для каждой записи свой интерфейс (аля getPendingPayments()), и они не знают откуда эти модели выходят, из базы, висят в памяти или еще чего.

    V — тут все просто… шаблоны призваны отвязать представление от логики работы с данными, что бы изменение первого не вызывало редактирование какого-то сервиса/контроллера.

    C — тут сложнее. Есть две концепции, толстые и тонкие контроллеры. Последние наиболее распространены, и включают в себя два слоя: сами контроллеры и сервисный слой. Контроллеры разруливают какое действие нужно произвести с данными в зависимости от пришедших параметров, прав пользователя и т.д. Они же разруливают ситуации когда нету исхомых данных, различные ошибки и т.д. Вся бизнес логика же выносится в сервисный слой. Сервисы должны минимально знать о контексте использования и заниматься только тем, для чего они были написанны. Скажем, сервис валидации данных ничего не должен знать о сервисе для обработки платежей, или о правах доступа и т.д. Ему на вход приходят данные, и он их проверяет по правилам, описанным для этой модели.

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

    Так же при работе с сервисами очень помогает использование контейнера зависимостей. Благо готовых реализаций (как простых, как Pimple так и сложных, как например DiC в Symfony2 или Zend2) достаточно много.

    p.s. Мое мнение не претендует на истину. Если кто-то увидел что-то в таком подходе что-то не корректное, буду рад если укажите.
    Ответ написан
  • Актуальная документация по symfony на русском?

    GTRxShock
    @GTRxShock
    Full-stack developer (Symfony, Angular)
    Как заметили выше, сначала ООП и базовые концепции. Чтобы было понятно на деле, для чего вообще нужны фреймворки и какую задачу они выполняют. Рекомендую книгу Мэт Зандстра - PHP: объекты, шаблоны и методики программирования (желательно в бумажном варианте) + www.phptherightway.com (есть русская версия, но вроде не совсем актуальная, хотя для первого ознакомления сойдет)

    По симфони вот гайд по созданию блога: tutorial.symblog.co.uk но он на английском. Русская версия была, но видно у автора иссяк энтузиазм :) Если с английским совсем трудно - могу поискать бекап русской версии. Когда-то сохранял, на всякий случай)

    p.s. Английский язык тоже обязателен. А то дальше простенького приложения копнуть не сможете в итоге.
    Ответ написан
  • Стандартный поиск - не вытягивает таксономии?

    opium
    @opium
    Просто люблю качественно работать
    Увы придется написать свою реализацию поиска
    Ответ написан
  • Как позиционируют блоки сегодня?

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

    Элементарная сетка из блоков:
    IE10+ => flexbox
    IE9- => float + clearfix
    IE9- и разная высота блоков в строке (картинка + 1-2 стоки текста под ней) => inline-block
    в какой-то ситуации тут даже display: table будет иметь право на жизнь

    "Прилипающее" при прокрутке меню:
    position: fixed
    position: absolute + js
    position: sticky + js fallback

    Кнопка с иконкой и текстом:
    inline-block + vertical-align: middle для обоих элементов
    position: absolute для иконки и padding для кнопки
    display: flex для кнопки

    Ну и т.д.

    Учитесь решать конкретные задачи и искать для конкретных задач лучший способ.

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

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

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

    Получается следующая идея.

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

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

    Это позволяет быстро разметить страницу и реализовать адаптив, а так же не изобретать классы вроде header-left, footer-right в каждом блоке.
    Ответ написан
  • Почему не работает свойство transition?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    transition на display не работает, а на height надо задавать точную высоту, а не auto. так что либо делай через js. либо оперируй через max-height. сначала 0, потом 1000px к примеру

    https://jsfiddle.net/b0dxdou9/1/
    Ответ написан
  • Есть ли преимущество Java над Python для веб-приложения?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Преимущество лишь в том, на каком языке умеешь хорошо писать ты и если есть то команда.
    Ответ написан