Задать вопрос
  • Можно ли как-то упаковать java программу в exe, чтобы запускать ее на системе без JRE?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Чтобы запаковать в exe - launch4j
    если у вас приложение использует JavaFX, то там есть возможность создания артефакта exe

    Что касается запуска приложения без jre (не знаю, нужно ли jre, если запускать из exe - я пока изучаю java), но встречал такую статью - https://eax.me/java-without-jvm/
    т.е можно запаковать jvm тоже... хотелось бы услышать мнение экспертов
    Ответ написан
    Комментировать
  • Как исправить ошибку PHP "Cannot modify header information - headers already sent by"?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Что самое интересное - такая проблема у меня тоже встречалась и как показывает опыт может быть она по разным причинам....
    Чтобы устранить ее попробуйте следующие варианты:
    1) наличие лишних символов (которые вы уже проверили)
    2) наличие пробела (в самом начале)
    3) поврежденные или недостающие файлы темы (синхронизируйте при помощи Total commander и посмотрите, что отличается или чего не хватает).
    Обычно, такая проблема наблюдается, если вы скачали обнуленную тему или плагин бесплатно, а горе "хакеры" поставляли кучу обфусцированного рнр кода в файлы темы... Посмотрите в header.php или в файл, которые он может вызывать. Посмотрите в functions.php Просканируйте плагином Wordfence и Theme Check и проверьте тему на наличие ошибок и вредоносного кода... Проверьте корректность подключения header & footer.php. Попробуйте обновить тему до актуальной версии. Попробуйте поочередно отключать плагины и смотрите, пропадет ли проблема (иногда проблема может быть имено в плагинах). Проверьте файл wp-config.php
    Ответ написан
    1 комментарий
  • Как добавлять в Contact Form 7 в select новые значения option?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    А зачем вы так сильно паритесь. Не легче ли создать контактную форму через ACF и добавляйте туда кучу options, как пожелаете))
    В конце этой статьи есть пункт Contact Form, которая работает через wp_mail()
    https://www.advancedcustomfields.com/resources/usi...
    Ответ написан
    Комментировать
  • Какой слайдер лучше, slick или flickity?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Я использую slick, flexslider2 & owl carousel...
    Ответ написан
  • Как Добавить поле в таблицу wp_posts?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Установите плагин ACF. Создайте необходимые кастомные поля. Если мне память не изменяет, то он добавит их в таблицу wp_postmeta
    Ответ написан
  • Как и чем вы защищаете свои WordPress-сайты - плагины, решения?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    1) Wordfence
    2) Надежный хостинг
    3) Cleantalk для защиты от СПАМа или Akismet
    4) Clearfy
    5) Если устанавливаете обнуленные плагины, то тщательно изучайте их содержимое (частая проблема, которая встречается)
    Ответ написан
    3 комментария
  • Как восстановить работоспособность админки WP?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Подозреваю, что проблема не в админке, а скорее в БД.
    На всякий случай сделайте следующее:
    1) скачайте ту же версию ВП и синхронизируйте ВП через Тотал коммандер. Если есть недостающие файлы, то залейте их туда.
    2) скорее всего у вас при переносе сайта БД была повреждена или импортирована неполностью из-за чего ваш "админ" потерял эти права и не видит кнопку "Обновить" и другие его привилегии. Инструкция по восстановлению прав - https://wordpress.stackexchange.com/questions/4094...
    Ответ написан
    6 комментариев
  • Как изменить вид уведомлений в плагине Contact Form 7?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Вдруг, информация по ссылке будет полезной -
    https://contactform7.com/customizing-validation-er...
    Ответ написан
    Комментировать
  • Как вывести сообщения с БД на страницу Contact Form 7?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Создайте шаблон страницы, а потом при помощи WP_Query, если это кастомный пост или при помощи wpdb извлеките данные из БД. Пройдитесь циклом и добавьте данные.
    А для удобства, вообще я бы рекомендовал использовать:
    1) кастомный тип записи + кастомные поля (плагин ACF)
    2) А дальше при помощи WP_Query выводите отзывы и все...
    Ответ написан
    Комментировать
  • Какой плагин лучший? ACF, CMB2, Pods, MetaBox?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Лично я, преимущественно, использую ACF Pro. А вообще я выбирал бы между ACF Pro или Carbon Fields. До сих пор не наблюдал серьезных проблем с ACF.
    Ответ написан
    Комментировать
  • Как вывести метки на яндекс карту взяв адреса из кастомных полей записей?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Нечто похожее нам приходилось реализовать для одного клиента.
    Единственное отличие - метка добавляется не из катомных записей, а на конкретной странице, на которой при помощи ACF Repeater созданы кастомные поля.
    Краткая инструкция:
    1) Создайте поле ACF Repeater + 2 кастомных поля Широта и Долгота и выведите на странице
    2) При помощи яндекс карт (https://yandex.ru/maps/) клиент находит координаты объекта и прописывает его через repeater в кастомные поля Широта и Долгота.
    3) Создайте шаблон (скопируйте page.php) и назначьте его для созданной вами страницы.
    Пример подобного шаблона:
    В данном коде присутствует лишний код. Но думаю, что вы найдете необходимые участки...
    Пример шаблона
    <div class="container content-page">
    		<div class="page-content">
    			<div class="row">
    				<div class="content col-md-12">
    					<div id="customMap" class="YMaps" style="width:100%;height:400px;">
    					</div>
    					<?php if( have_rows('example_mebel') ): ?>
    						<?php $yamap = [];?>
    						<?php while( have_rows('example_mebel') ): the_row(); ?>
    							<!-- baloon content -->
    							<?php $example_title = get_sub_field('example_title') ?>
    							<?php $example_address = get_sub_field('example_address') ?>
    							<?php $example_phone = get_sub_field('example_phone') ?>
    							<?php $example_time = get_sub_field('example_time') ?>
    							<?php 
    
    	$example_placemark_type = array
    	("twirl#darkgreenStretchyIcon","twirl#greenStretchyIcon"); 
    
    								// $example_placemark_type = array("twirl#redIcon", "twirl#darkblueIcon", "twirl#pinkIcon", "twirl#darkorangeIcon", "twirl#violetIcon"); 
    							?>
    							<!-- baloon content -->
    							<?php $tempID = get_sub_field( 'example_id'); ?>
    							<?php $cityName = get_sub_field( 'example_city'); ?>
    							<?php if( have_rows('example_places') ): while( have_rows('example_places') ): the_row();  ?>
    								<?php $example_longitude = get_sub_field( 'example_longitude'); ?>
    								<?php $example_lattitude = get_sub_field( 'example_lattitude'); ?>
    								
    							
    							<!---->
    
    							<?php
    								array_push
    								(
    									$yamap,
    									[
    										"lat" => $example_lattitude,
    										"lon" => $example_longitude,
    										"header" => $example_title,
    										"address" => $example_address,
    										"time" => $example_time,
    										"footer" => $example_phone,
    										"placemark" => $example_placemark_type[array_rand($example_placemark_type)],
    										"id" => $tempID,
    										"city" => $cityName
    									]
    								);
    
    							?>
    								<?php endwhile; endif; ?>
    						<?php endwhile; ?>
    					<?php endif; ?>
    				</div>
    				<div style="padding: 10px 0 !important; clear: both;"></div>
    				<div class="content col-md-12">
    					<?php if( have_rows('example_mebel') ): ?>
    						<div class="example_accordion">
    							<div class="panel-group" id="accordion">
    
    						<?php while( have_rows('example_mebel') ): the_row(); ?>
    							
    							<!--example_places-->
    								<!-- begin object -->
    								
    										<!-- ** -->
    										<?php if ($example_title = get_sub_field('example_title')) { ?>
    											<?php ($example_id = get_sub_field('example_id')); ?>
    										
    
    										 
    											<div class="panel panel-default">
    											  <div class="panel-heading">
    												<h4 class="panel-title">
    												  <a data-toggle="collapse" data-parent="#accordion" href="#<?php echo $example_id ?>"><?php echo $example_title ?><?php if ($example_city = get_sub_field('example_city')) { ?><span style="float:right;"><?php echo $example_city  ?></span><?php } ?></a>
    												</h4>
    											  </div>
    											  <div id="<?php echo $example_id ?>" class="panel-collapse collapse">
    												<div class="panel-body">
    													<?php if ($example_address = get_sub_field('example_address')) { ?>
    														<div class="faq_answer"><span class="fa fa-map-marker"><?php echo $example_address ?></span></div>
    													<?php } ?>
    													<?php if ($example_time = get_sub_field('example_time')) { ?>
    														<div class="faq_answer"><span class="fa fa-clock-o"><?php echo $example_time ?></span></div>
    													<?php } ?>
    													<?php if ($example_phone = get_sub_field('example_phone')) { ?>
    														<div class="faq_answer"><span class="fa fa-phone"><?php echo $example_phone ?></span></div>
    													<?php } ?>
    													<?php if ($example_mail = get_sub_field('example_mail')) { ?>
    														<div class="faq_answer"><span class="fa fa-at"><?php echo $example_mail ?></span></div>
    													<?php } ?>
    													<div class="gallery">
    														<?php $images = get_sub_field('example_gallery');
    															if( $images ): ?>
    																<ul>
    																	<?php foreach( $images as $image ): ?>
    																		<li>
    																			<a href="<?php echo $image['url']; ?>">
    																				 <img src="<?php echo $image['sizes']['thumbnail']; ?>" alt="<?php echo $image['alt']; ?>" />
    																			</a>
    																		</li>
    																	<?php endforeach; ?>
    																</ul>
    														<?php endif; ?>
    													</div>
    												</div>
    												<div class="panel-footer">
    													
    												</div>
    											  </div>
    											</div>
    										  
    										<?php } ?>
    								
    								<!-- end object -->
    						<?php endwhile; ?>
    							</div>
    						</div>
    					<?php endif; ?>
    				</div>
    			</div><!-- end row-fluid -->
    		</div>
    	</div><!-- end container -->
    <?php echo "<script type=\"text/javascript\"> var points=".json_encode($yamap, true)."</script>" ?>;


    4) Далее подключите 2 скрипта для данной страницы:
    function register_scripts_map() {
    		wp_register_script('custom', get_stylesheet_directory_uri() .
    			'/js/custom.js');
    		wp_enqueue_script('custom');	
    		wp_register_script("yMapJS", "https://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU");
    		wp_enqueue_script("yMapJS");
    }
    
    add_action('wp_enqueue_scripts', 'register_scripts_map');

    5) Содержимое скрипта custom.js
    custom скрипт
    var zoom = 16,
        // mapCenter = [55.709992,37.654287];
        // mapCenter = [points[0].lat, points[0].lon],
        referenceCity = ['Москва', 'Санкт-Петербург'],
        mapAlwaysReady = false;    
    var customMap,
        mapCenter;
    function showCurrentPlace(event)
    {
        event.preventDefault();
        var currentSelectedItem = jQuery(this).find('a').attr('href').substr(1),
        currentSelectedPoint = 
            points.filter(function(item){return item.id == currentSelectedItem;})[0];
        if(mapAlwaysReady)
        {        
            customMap.setCenter([currentSelectedPoint.lat, currentSelectedPoint.lon]);
            customMap.setZoom(zoom);
        }    
        console.table(currentSelectedPoint);
    }
    
    function getMinMax(sourceArray, field)
    {
        var maxPrice = Math.max.apply(Math, sourceArray.map(function(item){return item[field];})),
            minPrice = Math.min.apply(Math, sourceArray.map(function(item){return item[field];})) 
        return {max: maxPrice, min: minPrice};
    }
    function mapReady()
    {   
        customMap = new ymaps.Map('customMap', 
        {
            center: mapCenter,
            zoom: zoom
        });
    
        points.forEach(function(item)
        {
            customMap.geoObjects.add
            (
                new ymaps.Placemark
                (
                    [item.lat, item.lon], 
                    {
                        iconContent: item.header, 
                        balloonContentHeader: item.header, 
                        balloonContentBody: 
                            item.address + 
                            '<br>' +
                            item.time
                            , 
                        balloonContentFooter: item.footer
                    },
                    {
                        preset: item.placemark //"twirl#pinkStretchyIcon"
                    }
                )
            );    
        });
        mapAlwaysReady = true;    
        var tempBounds = points.reduce
        (
            function(prev, cur)
            {       
                // return referenceCity.filter(function(itemCity)
                // {
                //     return itemCity == cur.city;
                // }).length > 0 ? prev.concat({lat: cur.lat, lon: cur.lon}) : prev; 
                return prev.concat({lat: cur.lat, lon: cur.lon});
            }, 
            []
        ),
        referenceBounds = 
        {
            lats: getMinMax(tempBounds, 'lat'),
            longs: getMinMax(tempBounds, 'lon'),
        };
        customMap.setBounds
        (
            [
                [referenceBounds.lats.min, referenceBounds.longs.min], 
                [referenceBounds.lats.max, referenceBounds.longs.max]
            ]
        );
    }

    Конечный результат - https://massimomebel.com/gde-kupit
    Конечно же вам придется переделать скрипт, чтобы собирать метки из кастомных записей, а не со страницы. Но в целом идея похожа.
    Если вас устроит идея добавления маркеров на основе Google Maps, то тут подробная инструкция об интеграции с CPT https://wpbeaches.com/create-multiple-marker-map-f...
    Ответ написан
    4 комментария
  • Какие вы знаете плагины для WordPress на которые стоит равняться при разработки своего собственного плагина?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Плагины и темы, которые продаются на themeforest & codecanyon обычно, написаны хорошо. Можете равняться на них....
    Ответ написан
    Комментировать
  • Какой плагин Вы используете для оптимизации изображений на WordPress-сайте?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Я использую EWWW Image Optimization. Но больше предпочитаю оптимизировать картинки локально при помощи jpegoptim || jpegtran со своими настройками. Гугл после jpegoptim не жалуется) А вот, если использовать EWWW Image Optimization платную версию, то сжимает очень хорошо. Не люблю WP Smush - не увидел разницы между платной и бесплатной... + если отключить, то картинки остаются не оптимизированными...
    Ответ написан
    2 комментария
  • Как добавлять данные в custom post type из contact form 7?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Если хотите решить вопрос простым способом, то используйте плагин ACF. а конкретно acf_form()
    https://www.advancedcustomfields.com/resources/usi...
    https://www.advancedcustomfields.com/resources/acf...

    Пример реализации - test5.md7.info/add-testimonial
    Ответ написан
    Комментировать
  • Какой есть плагин Wordpress чтоб данные с формы "Оставить отзыв" отображались в админке?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Было бы неплохо уточнить чем, именно создана форма "Оставить отзыв".
    Если это плагин Contact Form 7 -
    https://wordpress.org/plugins/contact-form-cfdb7/
    https://wordpress.org/plugins/cf7-database/

    Если это плагин ACF -
    то надо создать кастомный тип записи (или скорее всего он у вас уже есть) и этот тип записи "отзывы" будет отображаться в админке. В общем, задайте вопрос поточнее..
    Ответ написан
    Комментировать
  • Как подключить кастомные стили woocommerce?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    А зачем править этот файл.
    1) добавляйте стили в style.css самой темы. Чтобы перезаписать стили добавляйте !important
    2) Можно полностью отключить дефолтные стили вукомерца и написать самому.
    add_filter( 'woocommerce_enqueue_styles', '__return_empty_array' );

    Подробная инструкция - https://docs.woocommerce.com/document/disable-the-...
    И наконец, не забудьте добавить
    <body <?php body_class(); ?>>
    к тегу body, так как вукомерц использует стили
    Ответ написан
    Комментировать
  • Не видно характеристики товаров woocommerce?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    А вариант - с массовым обновлением (быстрое редактирвоание) помогает? Можно выбирать записи по 100-200 шт. Изменить и Обновить рпи массовом редактировании))) Если не лень : )
    Ответ написан
    Комментировать
  • Можно ли выводить фото из wordpress на страницу без wp?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Могу примерно сказать, что необходимо сделать...
    Если вы реализуете все это дело средствами рнр, то можно поработать с БД через PDO например. Выберите из БД тип записи attachment а дальше выбирайте записи, которые содержат в себе нужный вам alt. Не знаю сработает ли wpdb, вместо PDO в случае с ВП и рнр, но можете попробовать.

    А дальше создайте слайдер Flexslider2 || Slick Slider || Owl Carousel.
    Получив ссылки на изображения циклом загрузите их в слайдер... как-то так. Должно сработать
    Ответ написан
  • Как "автоматизировать" выполнение скрипта java?

    azerphoenix
    @azerphoenix Автор вопроса, куратор тега Java
    Java Software Engineer
    Ссылка на полезный ресурс, где я нашел решение -
    seleniumsimplified.com/post/2016-01-14-can-i-use-s...
    Ответ написан
    Комментировать