• Как наличие одинаковых элементов в сортируемой последовательности влияет на быструю сортировку?

    Mrrl
    @Mrrl
    Заводчик кардиганов
    Смотря как писать сортировку - здесь всё зависит от мелких деталей.
    Если не помнить, что элементы могут быть одинаковыми, легко свалиться в O(n^2).
    Можно написать так, что число сравнений не изменится, но одинаковые элементы будут вхолостую переставляться друг с другом.
    Можно на каждом шагу бояться, что могут встретиться одинаковые элементы, и делить массив на три части - меньше опорного, равные ему и большие его. Тогда при большом количестве одинаковых элементов будет работать быстро, но когда одинаковых элементов нет - то число сравнений будет в 1.6 раза больше.
    Можно при разделении смотреть, был ли хоть один элемент равен опорному, и отделять равные только если был. Тогда будет плохо, когда каждый элемент встречается ровно два раза.
    Есть и другие способы. И всё это будет quicksort. Если всё написать правильно, то чем больше одинаковых элементов, тем быстрее будет сортировка.
    Ответ написан
    1 комментарий
  • Убрать отображение вариативных цен woocommerce?

    MikeKosulin
    @MikeKosulin
    add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
    function custom_variation_price( $price, $product ) {
         $price = '';
         $price .= woocommerce_price($product->get_price());
         return $price;
    }
    Ответ написан
    2 комментария
  • Целесообразно ли использовать Angular 4 на классическом PHP сайте, а не в роли SPA?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Оставьте сайт (как он есть сейчас) на обычном PHP и отдельно создайте подгружаемые раздельно библиотеки обработчиков унифицированных блоков на нативном JS (без всяких JS-библиотек , типа jquery и подобных).

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

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

    PS: Не нужно создавать трудности там, где их можно избежать.
    Ответ написан
    3 комментария
  • Как заблокировать в htaccess доступ к сайту для определенных стран?

    morihaos
    @morihaos
    На 99% вопросов уже есть ответы в инетке...
    Привет,
    По зонам .ru, .ua и т.п. блокировки не делают в стандартной поставке apache, только по IP-адресам сетей.
    Это делается директивами:
    Order Allow, Deny
    Deny All
    Allow ip.address.russia.net1
    Allow ip.address.russia.net2

    Но для этого надо перечислить все IP сетей России и Украины, а они хоть и не часто, но все-таки меняются.

    Поэтому, такие блокировки делаются с помощью модуля mod_geoip. Наберите в Яндексе "apache mod_geo" и вам накидает кучу ссылок, как это сделать на веб-сервере.
    Ответ написан
    Комментировать
  • WordPress: как получить результат деления MySQL запроса, используя значения доп.полей?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    как то так
    SELECT 
    (SELECT `meta_value` FROM `wp_postmeta` WHERE `post_id` = 159 AND `meta_key` = 'price') 
    / 
    (SELECT `meta_value` FROM `wp_postmeta` WHERE `post_id` = 159 AND `meta_key` = 'area')
     FROM `wp_postmeta` 
    LIMIT 0,1
    Ответ написан
    1 комментарий
  • Как сделать спойлер jquery (для нескольких элементов на странице) так чтобы кнопка "раскрыть" исчезала если текста мало?

    @AndreyMyagkov
    1) не click, a on('click'...)
    2) всю лапшу заменить на slideToggle
    3) что бы спрятать кнопку - проверяй объем текста по кол-ву символов или проверяй высоту блока с текстом, если слишком высокий блок - уменьшаешь его высоту и выводишь кнопку
    Ответ написан
    Комментировать
  • Как реализовать региональность сайта в WordPress?

    goodee
    @goodee Автор вопроса
    начинающий веб-разработчик
    Повозился немного и решил проблему.
    Сначала проблема с одинаковыми слагами страниц в WordPress:
    Все до смешного просто, создаем страницы, а у нужных выбираем "Родительский элемент".
    Например:
    site.ru/moskva/article
    site.ru/kazan/article
    где moskva и kazan - это родительские страницы соотвественно двух разных страниц article.
    С этим всё просто и понятно.

    Далее я создал "произвольные поля" у страниц городов - "tel" и "address".
    В functions.php темы WordPress добавил следующие строчки:
    // узнаем самый первый родительский элемент (страницу города)
    function parent_postID() {
    	global $post;
    	$postID = $post->ID;
    	if ($post->post_parent) {
    		$anc = get_post_ancestors($postID);
    		$root = count($anc)-1;
    		$parentID = $anc[$root];
    	} else {
    		$parentID = $postID;
    	}
    	return $parentID;
    }
    
    // узнаем самую корневую страницу
    function show_gorod() {
    	global $post;
    	$postID = $post->ID;
    	$parentID = parent_postID();
    	if (!is_front_page() and ($parentID or $postID)) {
    		$city_name = get_the_title($parentID);
    		$city_link = get_the_permalink($parentID);
    		$city_class = 'gorod';
    		$city_string = '<a class="'.$city_class.'" href="'.$city_link.'">'.$city_name.'</a>';
    	} else {
    		$city_name = 'Выберите город:';
    		$city_class = 'gorod small';
    		$city_string = '<p class="'.$city_class.'">'.$city_name.'</p>';
    	}
    
    	return $city_string;
    }

    После чего на любой дочерней странице и странице города отображалась информация записанная в родительской странице.
    Достаточно было указать в шаблоне <?php echo show_gorod() ?>
    и выводилась нужная информация.

    Так что всем спасибо за ответы-советы *sarcasm*.
    Ответ написан
    Комментировать
  • Мульти-города на CMS Wordpress?

    secsite
    @secsite
    Безопасные и быстрые сайты
    Вариант1. Сеть + плаги для сквозной авторизации.

    Вариант 2. Города - это отдельные "рубрики" произвольного типа записей + плаг для выноса их на поддомен.

    Это самые простые, и наверняка не единственные варианты, но легко не будет даже с этими - это точно.
    Ответ написан
    3 комментария