• Как выровнять блок по центру снизу?

    @f_u_s_s
    Любопытный кодер
    Тут вот так
    .offers .text{
    	color: gray;
    	font-size: 6pt;
    	background-color: white;
      height: 68%;
    }

    а тут вот так
    .offers .price{
    	width: 100px;
      margin: 0 auto;
    }


    Попробуйте)
    Ответ написан
    1 комментарий
  • Как добавлять описания к загружаемым фотографиям в альбом VK?

    @f_u_s_s Автор вопроса
    Любопытный кодер
    В общем при загрузке пачкой - никак. Реализовал примерно так:
    при выборе изображений каждое добавляется в массив JS, затем по клику начинает работать рекурсивный таймер, который отправляет ajax запрос на PHP скрипт. После ответа от PHP, если все успешно - из массива удаляется это изображение и посылается следующее. И так, пока массив не кончится. Накладываются ограничения VK API на количество обращений в секунду, но ничего другого на ум не пришло.
    Код JS:
    function sendForm(items, group_id, album_id)
    	{
    
    			function ajaxQuery()
    			{
    				$.ajax({ 
    				            type: 'POST',   
    				            url: 'loader.php',    
    				            data: 'action=loadPhoto&group_id='+group_id+'&album_id='+album_id+'&items='+items.splice(0, qps),
    				            success: function(result){   
    				            	if (result == 'ok') {
    				              		item_selected = items.length;
    				              		checked.html(item_selected);
    				              		alert(result+" : "+loaded);
    				              	}
    				              	else
    				              		alert(result);
    				            }
    				    	});
    			}
    
    		$('body').append('<div class="loading">');
    		//осторожно - РЕКУРСИЯ
    		var timerId = setTimeout(function tick() {
    			if(items.length>0){
    				$.when(ajaxQuery()).done(function(){timerId = setTimeout(tick, 1200);});	//вот тут
    			}
    			else
    			{
    				clearTimeout(timerId);
    				alert("Выбранные товары загружены!");
    				loadItems(1);
    				loadPagesCount();
    				$('div.loading').remove();
    			}
    		}, 0);
    	}


    код файла loader.php
    require_once './functions.php';
    $func = new functions;
    
    if($_POST['action'] == 'loadPhoto' && !empty($_POST['group_id']) && !empty($_POST['album_id']) && !empty($_POST['items']))
    {
    	$images = explode(",", $_POST['items']);
    	for ($i=0; $i < count($images); $i++) { 
    		$photo_load = $func->uploadImages($images[$i], $_POST['group_id'], $_POST['album_id']);
    		if($photo_load)
    			$result = true;
    		else
    			$result = false;
    	}
    
    	if($result)
    		echo "ok";
    	else
    	{
    		echo "ERROR:";
    		print_r($photo_load);
    	}
    }


    функция uploadImages в классе functions.php:
    public static function uploadImages($file, $group_id, $album_id)
        {
    
            //Получаем сервер для загрузки изображения
            $params = array(
                'group_id'  =>   $group_id,
                'album_id'  =>   $album_id
                );
            $api_res = self::queryApi("photos.getUploadServer", $params);
    
            try
            {
                if($api_res)
                {
                    $server = $api_res->response->upload_url;
                    $post = array();
    
                        $query = self::$connection->query("SELECT * FROM `product`, `product_price` WHERE `product`.`product_id`='".$file."' AND `product_price`.`product_id`='".$file."';");
                        if($query)
                        {
                            while($row = $query->fetch_assoc())
                            {
                                if(!empty($row['product_full_image'])){
                                    if(file_exists(config::$full_path.'images/shop/product/'.$row['product_full_image'])){
                                        $img = $row['product_full_image'];
                                    }else{
                                        $img = 'no-image.jpg';
                                    }
                                }else if(!empty($row['product_thumb_image']))
                                {
                                    if(file_exists(config::$full_path.'images/shop/product/'.$row['product_thumb_image'])){
                                        $img = $row['product_thumb_image'];
                                    }else{
                                        $img = 'no-image.jpg';
                                    }
                                }else{
                                    $img = 'no-image.jpg'; 
                                }
    
                                $product_desc = $row['product_desc'];
                                $product_price = $row['product_price'];
    
                                //PHP 5.5+ use 'new CURLFile()' PHP 5.4- use @file_path
                                //$post['file1'] = new CURLFile(config::$full_path.'images/shop/product/'.$img);
                                $post['file1'] = '@'.config::$full_path.'images/shop/product/'.$img;
                            }
                        }else
                            throw new Exception("Ошибка при запросе в базу данных. Error: ".self::$connection->error, 1);
    
    
                    if($ch = curl_init($server))
                    {
                        curl_setopt($ch, CURLOPT_POST, true);
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                        curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
                        $json = json_decode(curl_exec($ch));
                        curl_close($ch);
    
                        $params_save = array(
                                'server'    =>  $json->server,
                                'photos_list'   =>  $json->photos_list,
                                'album_id'  =>  $album_id,
                                'hash'  =>  $json->hash,
                                'group_id'   =>  $group_id,
                                'caption'   =>  $product_desc.' Цена: '. $product_price . 'руб.'
                            );
    
                        $photo_save = self::queryApi('photos.save', $params_save);
    
                        if($photo_save)
                        {
                            return $photo_save;
                        }
                        else throw new Exception("При сохранении фотографий в альбом произошла ошибка.", 1);
                    }
                    else throw new Exception("Ошибка инициализации cURL", 1);
                }
                else throw new Exception("При обращении к API photos.getUploadServer произошла ошибка.", 1);
            }catch(Exception $e){
                echo $e->getMessage();
                return false;
            }
        }


    Надеюсь, что мой способ поможет кому-нибудь )

    ЗЫ: в моем случае передавались ID товаров в БД, по которым затем вытаскивалось изображение.
    Ответ написан
    Комментировать
  • Проблемы с Sublime text 3.Почему Sublime text не транслируется параллельно с браузером?

    @f_u_s_s
    Любопытный кодер
    как вариант, в хроме/опере ctrl+shift+i -> Network -> поставить галку Disable cache
    в мозиле что-то подобное тоже есть, но где не скажу.
    Ответ написан
    Комментировать
  • Подcкажите плагин для создания сетки (коллажа) из изображений-миниатюр?

    @f_u_s_s
    Любопытный кодер
    Посмотрите masonry. Он и и как плагин для многих фрэймворков, типа jQuery и т.п. и как самостоятельный скрипт работать может.
    Ответ написан
    Комментировать
  • Почему не разворачивается меню при клике на ссылку "Каталог продукции" - бургер?

    @f_u_s_s
    Любопытный кодер
    Попробуйте так:
    $(touch).click(function(e){
        e.preventDefault();
        menu.slideToggle();
      });
    Ответ написан
  • Как правильно составить запрос Mysql?

    @f_u_s_s
    Любопытный кодер
    Не уверен, но примерно как-то так:
    "SELECT `records`.*, `records_users`.* FROM `records`, `records_users` WHERE `records_users`.`user_id` = <USER_ID> AND `records`.`value` = <VALUE>;
    Ответ написан
    Комментировать
  • Обязательно ли указывать адрес отправителя в php скрипте отправки на почту?

    @f_u_s_s
    Любопытный кодер
    Лучше использовать SMTP-отправку. Письма отправленные функция PHP mail() с большой вероятностью попадут в спам, либо вообще не дойдут, т.к. почтовый сервис может их отлавливать. К тому же не все хостеры вообще включают эту функцию на своих серверах.

    Самый распространенный и действенный способ (да и проверенный) - PHPMailer. Вот тут можете посмотреть как работать с этой штукой
    Ответ написан
    Комментировать
  • Как понять данное задание из методички?

    @f_u_s_s
    Любопытный кодер
    ну допустим имеется двухмерный массив, вида:
    1  2  3
    4  5  6 
    7  8  9


    j - номер строки, k - номер столбца.
    по условию тебе нужно найти... Так полагаю z - это минимальное значение в массиве, хотя могу ошибаться.
    Я так понимаю)
    Ответ написан
    Комментировать
  • Как сделать открытие внешней ссылки в всплывающем окне?

    @f_u_s_s
    Любопытный кодер
    Если нужно прям вот именно окно браузера отдельное, то как-то так например:
    <!DOCTYPE html>
    <html lang="ru">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
    
      <script>
        function setOnclick(a) {
        a.setAttribute("onclick","popupWin = window.open(this.href,'contacts','width=820px,height=700px,top=50,left=200px,toolbar=0, location=0, directories=0, menubar=0, scrollbars=0, resizable=0, status=0'); popupWin.focus(); return false");
        }
    
        function externalLinks() {
        var links = document.getElementsByTagName("a");
          for (i=0; i<links.length; i++) {
            if (links[i].getAttribute("href") && links[i].getAttribute("rel") == "external") {
              setOnclick(links[i])
            }
          }
        }
        window.onload = externalLinks;
      </script>
    </head>
    <body>
    <a rel="external" href='file.html'>ТЫК</a>
    </body>
    </html>


    А если модальное окно - то например fancybox можно использовать.
    Ответ написан
    1 комментарий
  • Как добавить строку в массив?

    @f_u_s_s
    Любопытный кодер
    если несколько элементов - то
    array_push($array, 'string1', 'string2', ... , 'stringN');

    Если элемент один - то лучше использовать конструкцию
    array[] = 'string';
    пошустрее работать будет
    Ответ написан
    Комментировать