Задать вопрос
  • Как подменить схему базы данных в Entity Hibernate?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Если я правильно понял, то у вас есть база, в которой есть 2 схемы. И в зависимости от профиля вы хотите переключать схемы?

    Я вижу тут пару вариантов:
    1) на уровне gradle || maven определить схемы.
    https://stackoverflow.com/questions/47240702/jpa-e...
    https://stackoverflow.com/questions/1149352/using-...
    <profiles>
        <profile>
          <id>production</id>
          <properties>
            <schema.name>production_schema_name</schema.name>
          </properties>
        </profile>
        <profile>
          <id>test</id>
          <properties>
            <schema.name>test_schema_name</schema.name>
          </properties>
        </profile>
    </profiles>

    2) использовать различные БД для разных профилей. Т.е. создать 2 БД по одной для каждого профиля.
    3) Создать 2 пакета (dev, prod) с сущностями, где для каждой из сущностей указывать:
    Для сущностей development
    @Table(name = "VALUES", schema = "DEV").
    Для сущностей production
    @Table(name = "VALUES", schema = "PROD").
    Ну и использовать аннотацию @Profile
    Ответ написан
    Комментировать
  • Как вывести страницы по нужному признаку из произвольного поля на другую страницу в вордпресс?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    $selector = array(
        "post_type"    => "page",
        "hierarchical" => 0,
      "meta_query" => array(
        array(
          "key" => "Ступени, кол-во",
          "value" => "1",
        )
      )
    );

    Тут я проблем никаких не вижу.
    Как вариант можете открыть БД и проверить точно ли для страниц у вас есть метаданные с key - Ступени, кол-во и со значением 1. Если все ок, то проверьте логику тут if ($page && $page->ID && $page->ID >= 0).
    Ответ написан
    Комментировать
  • Какие есть подобные темы для WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Куча тем, которые могут быть адаптированы под ваши задачи.
    Подберите тут что-нибудь подходящее под ваши задачи - https://themeforest.net/category/wordpress/ecommerce
    Ответ написан
    Комментировать
  • Возможно ли при вставке pdf на сайт, автоматически отображать его страницы как изображения?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Гуглить не пробовали?) Говорят, иногда помогает...
    https://stackoverflow.com/questions/31534746/creat...
    function process_pdf( $file ) {
    
        if( $file['type'] === 'application/pdf' ) {
    
            // Get the parent post ID, if there is one
            if( isset($_REQUEST['post_id']) ) {
                $post_id = $_REQUEST['post_id'];
    
                $filename = $file[ 'name' ];
                $filename_wo_extension = basename( $filename, ".pdf" );
    
                $im = new Imagick();
                $im->setResolution(300, 300);
                $im->readimage( $file[ 'tmp_name' ] ); 
                $pages = $im->getNumberImages();
    
                $attachments_array = array();
    
                // iterate over pages of the pdf file
                for($p = 1; $p <= $pages; $p++){
                    $im->setIteratorIndex( $p - 1 );
                    $im->setImageFormat('jpeg');
    
                    $filename_neu = $filename_wo_extension .'_'. $p .'.jpg';
    
                    // upload new image to wordpress
                    // https://codex.wordpress.org/Function_Reference/wp_insert_attachment
                    $upload_file = wp_upload_bits($filename_neu, null, $im);
                    if (!$upload_file['error']) {
    
                        $attachment = array(
                            'post_mime_type' => 'image/jpeg',
                            'post_title' => preg_replace( '/\.[^.]+$/', '', $filename_neu),
                            'post_content' => '',
                            'post_status' => 'inherit'
                        );
    
                        $attachment_id = wp_insert_attachment( $attachment, $upload_file['file'] );
    
                        if (!is_wp_error( $attachment_id )) {
                            require_once(ABSPATH . "wp-admin" . '/includes/image.php');
                            $attachment_data = wp_generate_attachment_metadata( $attachment_id, $upload_file['file'] );
                            wp_update_attachment_metadata( $attachment_id,  $attachment_data );
                            $attachments_array[] = $attachment_id;
                        }
                    }
                }
    
                // add new images to a gallery (advanced custom fields plugin)
                // http://www.advancedcustomfields.com/resources/update_field/
                update_field( 'field_55b0a473da995', $attachments_array, $post_id );
    
              $im->destroy();
           }
        }
    
        return $file;
    
    }
    
    add_filter('wp_handle_upload_prefilter', 'process_pdf' );


    https://wordpress.org/plugins/pdf-image-generator/
    Гугл, храни тебя!
    Ответ написан
    2 комментария
  • Как сохранять файлы на google диск с помощью Spring?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Здравствуйте!
    Не совсем понимаю, вы реализовали методы для работы с API Google Drive? Если нет, то для начала прочитайте документацию по работе с АПИ Гугл Диска.
    https://developers.google.com/drive/api/v3/about-sdk

    Вот, как надо реализовать загрузку файла на диск
    https://developers.google.com/drive/api/v3/manage-...

    Ну а дальше уже читайте...
    Ответ написан
    Комментировать
  • Как добавить данные с удалённого сервера в post запрос?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Есть post запрос который отправляет тело запроса. Данный запрос отправляется с помощью библиотеки Volley в Android studio!

    Не совсем понятно, что вы хотите сказать. Android Studio это среда разработки. Или под отправкой в AS вы подразумеваете, что они отображаются в консоли редактора?

    Я хочу что бы данные запроса то есть value в приложение поступали так же с удалённого сервера, для того что бы в любой момент можно было изменить эти значения

    Ну для начала поднять небольшой REST сервис на удаленном сервере, который и будет отправлять вам данные в json в приложение. По факту вам нужен backend
    Ответ написан
  • Spring Security не понимаю, как работает?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    А что если запрашиваемого пользователя не существует? Тогда что делать? как Spring-у сообщить что такого пользователя нет?

    Зачем Spring-y что-то сообщать? Если юзера нет, то будет выброшено исключение throws UsernameNotFoundException
    Или вас интересует что-то другое?
    Ответ написан
    4 комментария
  • Как выбрать направление развития, если все пытаются отговорить?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Java: знакомый джавист сказал забыть про джаву. Планка входа выше чем в любом другом ЯП, много фреймворков, много легаси. Очень сложно и займет немало времени.


    Ну конечно))) Зачем вашему знакомому новый конкурент в этой сфере... Шутка.
    А если серьезно, то для начала определитесь с тем, что именно вас интересует, front, back, mobile etc. А дальше уже выбирайте ЯП. front - js (react, vuiJS, angular), back - java, C#, ruby, python (Spring, Play, RoR, Flask, django), mobile (kotlin, java, swift) и т.д.

    За 1 год вы можете здорово подтянуть знания по java и пойти джуном. Например, за 6 мес. можно пройти курсы по java fundamentals & java enterprise.

    Ну и подтяните html, css, javascript, sql
    Ответ написан
    Комментировать
  • Есть ли способ менять порядок блоков сверстанных с ACF?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Если вам нужно именно через ACF, то используйте ACF Repeater.
    В шаблоне выводите цикл согласно документации.
    ACF Repeater поддерживает перетаксивание блоков местами.

    Если в секциях должен быть разный контент, то можно чуть поизвращаться и вложить ACF flexible content в ACF Repeater. Однако, предупрежу, что разработчики иногда обновляют плагины без полной проверки и иногда подобная структура слетает...
    Ответ написан
    Комментировать
  • Роль продавца на сайте в одном экземпляре, как следить с помощью плагина и какого?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Если принципиально нужна форма добавления товара на фронте, то можете попробовать создать форму при помощи acf_form (плагин ACF). Также установить плагин WP Recall для личного кабинета. Далее по id пользователя проверять и если это он, то показывать ему эту страницу с формой. Ну а дальше он уже добавит товар.
    Другой вариант, если у него есть доступ к админке (например, он редактор), то при помощи плагинов для этого пользователя отключить все ненужные ему ф-ции и оставить парочку (добавить товар, страницу, запись и т.д.)
    Ответ написан
    Комментировать
  • Как поменять тип столбца в postgresql через spring boot?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Здравствуйте!
    Вы можете задавать length. Например,
    @Column (length = 2000)
    private String message;

    https://www.baeldung.com/jpa-size-length-column-di...
    или
    Использовать аннотацию @Lob
    https://www.baeldung.com/hibernate-lob
    Ответ написан
    Комментировать
  • Как зайти во внутреннию сылку сайта и парсить от туда данные?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    public class readAllLinks {
    Названия классов должны начинаться с заглавной буквы. Прочитайте про name convention

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

    Вы просто открыли главную страницу сайта и выбрали ВСЕ ссылки (тег а).
    Elements links = doc.select("a");

    Теперь вопрос как мне переходить по всем ссылкам сайта и забирать только информацию товара?

    Я бы сделал следующим образом. Вместо того, чтобы собирать все ссылки, я бы собрал ссылки на разделы (категории).

    5f7f96bf48139905711369.png
    Вот, селектор
    #categories .sub-menu-item .sub-menu-link
    Далее собираете их в какой-нибудь List

    Далее итерируете по этому списку и переходите по ссылке, также как и здесь
    doc = Jsoup.connect(url).userAgent("Mozilla").get();

    вместо url будет ссылка из листа спарсенная из меню (картинка выше)

    Страница каталога товаров имеет пагинацию.
    Например, https://al-style.kz/catalog/mobilnye_telefony/
    5f7f97fc965ae322761133.png

    Смотрим, как работает пагинация
    https://al-style.kz/catalog/mobilnye_telefony/
    https://al-style.kz/catalog/mobilnye_telefony/?PAGEN_1=2
    ?PAGEN_1={pageNum}

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

    Далее на каждой странице находим блоки (карточки товара).
    Вот, селектор:
    .elements .element
    5f7f99505660f300295427.png

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

    Т.е. страницу самого товара - например, https://al-style.kz/catalog/mobilnye_telefony/mobi...

    Ну а дальше остается собрать данные при помощи в селекторов, сохранить в pojo (например, Product ) и экспортировать куда-нибудь.

    Для экспорта в xlsx можно использовать Apache POI
    Ответ написан
    2 комментария
  • Можно ли создать такой сайт на Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Можно ли создать сайт для вакансий на WordPress

    Да, можно. Есть куча плагинов.

    добавлять(за деньги) и смотреть вакансии

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

    вакансии отображаются на главной странице

    да, где угодно...

    сортировка вакансий по городам

    вроде, встречал в какой-то из плагинов...

    регистрация

    конечно, не без этого

    Вот, эти разработчики предлагают готовые решения (тема + плагины) для реализации подобных задач.
    Сайт вакансий
    https://www.appthemes.com/themes/jobroller/
    Сайт объявлений (Демо)
    https://www.appthemes.com/themes/classipress/
    Фриланс биржа
    https://www.appthemes.com/themes/taskerr/
    https://www.appthemes.com/themes/hirebee/
    Ответ написан
    Комментировать
  • Как посадить готовую верстку на wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Вопрос скорее должен звучать, так: "Как создать тему для WordPress из верстки?"
    Тут все зависит от бюджета проекта и ваших целей...

    Хотите продавать тему в дальнейшем на themeforest или бюджет проекта позволяет или же по желанию клиента (согласно ТЗ), то подключайте фреймворк. Например, redux
    https://ru.wordpress.org/plugins/redux-framework/

    Если хотите сделать все стандартно согласно кодексу ВП, то читайте про Theme Customization API
    https://codex.wordpress.org/Theme_Customization_API

    Ну а если нужно быстро и дешево, то плагины ACF Pro, Carbon Fields и т.д. помогут в этом

    Ну а основы разработки темы изучите тут:
    https://codex.wordpress.org/Theme_Development
    Ответ написан
    Комментировать
  • Как работать с файлами дочерней темы в Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    После того, как вы создали дочернюю тему, то вы можете скопировать нужные шаблоны из родительской и добавить их в дочернюю (с соблюдением вложенности). Например, если что-то лежит в определенной директории родительской темы, то нужно создать такую же директорию в дочерней.
    Если речь идет о шаблонах плагина Woocommerce, то их директории templates этого плагина шаблоны закидываем в созданную директорию woocommerce в дочерней теме и т.д.

    В сети куча статей на эту тему, но ни в одной нет нормального объяснения, что делать с файлами.

    В общем, в инете куча туториалов на самом деле.

    Если в родительской теме есть файл, НАПРИМЕР, tum.php с кодом чисто от темы и внесённым вручную кодом, надо скопировать этот файл, убрать из него код чисто от темы и положить в дочернюю?

    Вы копируете шаблон из родительской темы. Можете отредактировать нужные части, но например, вам и в дочерней теме нужен будет header & footer. Соответственно, get_header() get_footer() оставляем и т.д. Все зависит от шаблона и от темы...

    В загруженной мной дочерней есть всего два файла - style.css и functions.php - а с ними как быть? Копировать аналоги из родительской с заменой?

    Не нужно содержимое functions & style из родительской темы копировать. Они и так подхватятся. В дочерней вы можете наоборот при помози хука отключить какой-то функционал из род. темы и т.д.
    Ответ написан
    4 комментария
  • Почему пропали стили при переносе сайта Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Сделаю смелое предположение, что в БД вы вручную (автозаменой в блокноте) сменили урлы и импортировали, тем самым нарушили возможные сериализованные данные.
    Решение - импортировать БД и корректным образом обновить урлы, не вручную!
    Ответ написан
  • Как напимер работать с api вконтакте или другими сервисами использующими Basik Autentification?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Для работы с API других сайтов вы можете использовать RestTemplate.
    В статье описано, как с ним работать. Как слать POST GET и др. запросы. Как получать ответы и как этот ответ разобрать в pojo
    https://www.baeldung.com/rest-template

    Вот, например, реализованный метод для получения статуса сервиса hotelbeds
    public HttpStatus getStatus() {
            RestTemplate restTemplate = new RestTemplate();
            HttpEntity httpEntity = new HttpEntity(hotelbedsAuth.hotelsAuth());
            ResponseEntity<String> response = restTemplate.exchange(
                    hotelbedsProperties.getHotelBaseUrl()+"/status", HttpMethod.GET, httpEntity, String.class);
            return response.getStatusCode();
    }

    В общем, прочитайте про RestTemplate.

    Once the bearer token expires, you will have to use Basic Authorization again to obtain a new bearer token.

    Тут вы можете использовать CRON или аннотацию @Scheduled, чтобы по крону в заданный интервал времени запускать метод по обновлению токена

    https://www.baeldung.com/spring-scheduled-tasks
    Ответ написан
    1 комментарий
  • Как вывести продукты и количество каждого из них в заказе? Например: молоко купили 3 раза, сыр 1 раз. Как такое сделать?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Напишите для начала, что именно вы пробовали и что у вас не получилось.
    public class Main {
    public static void main(String[] args) {
    
    }
    }


    Ответ на этот вопрос схож с ответом на предыдущий ваш вопрос. Посмотрите на ответ предыдущего ответа. Сгенерируйте геттеры и сеттеры.
    Далее получаете массив продуктов, а далее итерируете по нему.
    Ответ написан
  • Как вывести вложенный массив по шаблону конструктора?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Вы забыли создать геттер для Student[] students Геттером получаете массив и циклом for итерируете по нему

    public class Group {
    
        private String name;
        private Student[] students;
    
        public Group(String name, Student[]students ) {
            this.name = name;
            this.students = students;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Student[] getStudents() {
            return students;
        }
    
        public void setStudents(Student[] students) {
            this.students = students;
        }
    
    }
    
    class Student {
    
        private String name;
        private int age;
    
        public Student(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "Student{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
        
    }
    
    class Test {
    
      public static void main(String[] args) {
    
          Group group1 = new Group("KIT-25", new Student[]{
                  new Student("Max", 20),
                  new Student("Misha", 21),
                  new Student("Vitya", 19),
                  new Student("Alyona", 20),
                  new Student("Ira", 19)
          });
    
          // Вариант №1
          for (Student student : group1.getStudents()) {
            System.out.println(student.getName());
          }
    
          // Вариант №2 (Stream API)
          Arrays.stream(group1.getStudents()).forEach(System.out::println);
    
      }
    
    }
    Ответ написан
    1 комментарий
  • Как в Spring из FilterChain отправить ModelAndView?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Думаю, что вот тут ответ на ваш вопрос -
    https://stackoverflow.com/questions/3616763/settin...
    В частности:
    i think this is not possible, because this is a servlet filter, which would be applied after the spring request mapper servlet was applied. so basically, the request mapper servlet thinks it is finished, and passes the request back to the servlet container.
    view names only work INSIDE of spring - outside of spring, in the servlet container, you will have to talk about urls, not view names.
    Ответ написан
    Комментировать