2014 — Web-coding

LoadeR 27 ноября 2014

Если в базе MYSQL поле имеет формат DATE , то данные в нем храняться в формате 0000-00-00 (т.е год - месяц - день).
И, когда выводишь в скрипте это на экран, то не всегда удобно читать например 2014-11-27 , а хочется видеть
27-11-2014. Следующая простенькая функция решает эту проблему

<?php
    //На вход подаем $fromMysqlDate - что считалось из базы
function convertDate($fromMysqlDate){
 $date = strtotime($fromMysqlDate);//Конвертируем дату в Unix формат
 $date = date('d-m-Y',$date); //Извлекаем из формата Unix дату в нужном нам виде
  return $date;
            }
?>

Еще проще этот вопрос можно решить прямо в запросе в базу, используя функцию DATE_FORMAT в Mysql.

Запрос будет таким ( в данном случае таблица называется sc_orders а поле дыты - order_time)

модификаторы %d %m %y можно менять местами как и менять символы между ними "-" на свои, например "/" или ":"

    SELECT DATE_FORMAT(`order_time`, '%d-%m-%Y') FROM `sc_orders` ;

Кому как нравиться ......

Теги: PHP

LoadeR 17 ноября 2014

Иногда, при импорте через phpMyAdmin в базу данных MySql дампа относительно большого размера, случается проблема timeout. Бывает,что манипуляции с увеличением размера принимаемых сервером данных и таймаутом не помогают. Часто, выходом из этого (без разбиения процедуры импорта на части), является импорт прямо через демон Mysql:

Если мы в windows и текущий пользователь User_main и файл dump_file.sql

лежит в C:\Documents and Settings\User_main, тогда делаем так :


Пуск -> Выполнить -> cmd ->

C:\Documents and Settings\User_main>
mysql -u имя_пользователя -pПАРОЛЬ имя_базы < dump_file.sql

путь до dump_file.sql нужно указывать полный(физический путь), например: D:/data/dump_file.sql

При работе с удаленным сервером все примерно тоже с небольшой вариацией (тут описана конфигурация хостинга с отдельным физическим сервером Mysql). Сначала через Putty соединяемся с сервером хостинга по SSH, затем конектимся к серверу mysql:

mysql -u (username) -p(password) -D (base_name) -h (host);

При удачном соединении видим что-то типа этого

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.5.15 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

затем, находясь в командном интропритаторе mysql просим, вывести список баз командой show databases:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| base1              |
| base2              |
| my_base            |
| base3              |
+--------------------+
5 rows in set (0.00 sec)

Далее выбираем нужную командой use (в нашем случае my_base), видим подтверждение, что база выбрана - вторая строка Database changed, и импортируем в нее файл dump.sql командой source. Файл я предварительно закинул по ftp в корень сервера, поэтому тут пример без пути до него

mysql> use my_base;
Database changed
mysql>source dump.sql;

Такие манипуляции вынудило меня делать upgrade одной таблицы в базе, размер дампа которой стал 5,7 Mb и содержала она порядка 25 000 строк. Стандартный хостинговский php-Myadmin c этим уже "не справлялся"

Теги: Mysql

LoadeR 10 ноября 2014

Продолжаем исследовать новый shop-script5...

{$wa_url} - указывает на корень

{$wa_app_static_url} - указывает на путь приложения, в "котором" мы сейчас находимся, т.е если надо

вызвать какую-то например картинку в папке img плагина магазина то путь к ней будет таким

    {$wa_app_static_url}plugins/имя_плагина/img/picture.jpg

{wa_backend_url} - каталог админки

Теги: shop-script 6

LoadeR 7 ноября 2014

В скриптах магазина (shop) движка WEBASYST вексии 3.0 есть несколько констант smarty, указывающие на основные каталоги :


1. {$smarty.const.CONF_FULL_SHOP_URL} - указывает на корень магазина с папками

DATA DBLIST HELP I2 INCLUDES INSTALLER KERNEL LOGIN PUBLISHED SHOP SYSTEM TMP

путь до папки PUBLISHED например надо указать так {$smarty.const.CONF_FULL_SHOP_URL}published/

2. {$smarty.const.URL_JS} - указывает на папку JS по пути

PUBLISHED/SC/HTML/SCRIPTS/JS

если внутри нее поместить еще одну папку - например jquery, надо путь указать так:

{$smarty.const.URL_JS}/jquery/

3.{$smarty.const.URL_ROOT}

4.{$smarty.const.URL_CSS}

5.

Теги: WEBASYST 3.0

LoadeR 9 октября 2014

Недавно столкнулся с такой проблемкой: изменились адреса товаров ( после обновления с очисткой базы )

было типа http://www.site.ru/index.php?categoryID=860

стало http://www.site.ru/index.php?categoryID=990

Потребовался 301 редирект со старой на новую, так-как были закуплены ссылки.

Обычный Redirect 301 http://www."старый адрес" на http://www."новый авдресс" не работает и всякие вариации тоже,

так как страница не обычная *.html , а динамическая. Подумав, нашел решение, может кому пригодится, чтобы не тратить время =) .

Пишем в .htaccess

RewriteEngine On
RewriteCond %{QUERY_STRING} ^categoryID=860$ 
RewriteRule ^index\.php /index.php?categoryID=990 [L,R=301]
Теги: APACHE

LoadeR 27 сентября 2014

С помощью Jquery можно легко сделать неактивной, а затем включить, кнопку подтверждения (отправки) формы. Сделать это можно с помощью метода attr обьекта, который нам вернет селектор Jquery $(" "). Например есть кнопка подтверждения отправки формы

<input type="submit" value="Сохранить" />
$(":submit").attr("disabled",true); // запрещаем кнопку
$(":submit").attr("disabled",false);// разрещаем кнопку
Теги: jquery

LoadeR 24 сентября 2014

При вызове такого обьекта ( в качестве "selector" естественно пишем нужный нам элемент DOM)

$("selector").keypress(function(event){ var str = event.key;});

мы привязываем событие нажатия клавиши - keypress к нужному нам элемету DOM, возвращаемому

селектором jquery, и в переменной str сохраниться символ (НЕ КОД !!!) нажатой клавиши,

что мы можем увидеть дописав alert(str); в эту функцию. Окончательный код будет выглядеть так:

$("selector").keypress(function(event){ var str = event.key; alert(str);})

Если Мы хотим увидеть не символ, а код нажатой клавиши, то надо написать так:

$("selector").keypress(function(eventObject){var str = eventObject.which;
alert(str);
});
Теги: jquery

LoadeR 14 сентября 2014

В данном случае мы вызываем свойство offsetWidth и offsetHeight прямо внутри тегов <div>( или любых других тегов) привязывая событие клика по ним к вызову алерта. Естественно, так как мы находимся "внутри" дива, то обращаемся к его свойствам через this. Скопируйте этот код и сохраните в файл size.html - при его запуске в браузере увидете два дива, по клику на них в алерт выводится их размер

<html>
<head>
</head>
<body>
<div style = "width:200px;height:200px;background:green"
onclick="alert('Размер элемента:' + this.offsetWidth +'x'+ this.offsetHeight)">
</div>
<div style = "width:300px;height:200px;background:maroon"
onclick="alert('Размер элемента:' + this.offsetWidth +'x'+ this.offsetHeight)">
</div>
</body>
</html>

Если есть желание измерить размер своих элементов DOM, просто вставте "внутрь" тэгов вызов скрипта : onclick="alert('Размер элемента:' + this.offsetWidth +'x'+ this.offsetHeight)" и по клику по элементу, увидете в алерте его размер

Теги: javascript

LoadeR 14 сентября 2014

Этот коротенький пост написал для памятки, иногда надо быстро что-то заархивировать, не вспоминая ключи

folder/  tar -czvf folder_1.tar.gz folder_1/

tar -czvf shop_phoneback_plugin.tar.gz phoneback/

Теги: APACHE

LoadeR 12 сентября 2014

1. У обьекта screen есть полезные свойства width - ширина экрана в пикселях и height - высота. Если мы создадим такой html файл, и запустим его в браузере, то на экране увидим текущее разрешение монитора

<html/>
    <head>
    <script type="text/javascript">
        var x_monitor = screen.width;
        var y_monitor = screen.height;
document.write('Сейчас разрешение Вашего монитора:'+x_monitor+' x '+screen.height);
    </script>
    </head>
    <body>
<br />При запуске этого файла в тело документа выводится разрешение экрана 
    </body>
</html>

Я, например, использовал это свойство для замены одной картинки на другую в одном из div-ов, при ширине экрана меньше чем 1280px ( например IPAD c 1024px), код Js был такой:

    if(screen.width <= 1280)    {
    $("#divID").css("background","root/folder1/folder2/image_1024.png");
                            }
    //тут используется Jquery
    // без Jquery можно так :
    if(screen.width <= 1280)    {
document.getElementById("divID").style.backgroundImage = 
"url(root/folder1/folder2/image_1024.png)";
                            }
Теги: javascript