Сервисное обслуживание Kyocera 2550

km2050Ну громко сказано конечно. А точнее мне понадобилось войти в сервисное меню и заставить «подкачать» тонер в бункер принудительно.

  • на правой клавиатуре набираем цифрами 10871087
  • вводим 130  в режиме обслуживания — команда «наполнить бункер тонером»
  • ждем примерно 9 минут
  • вводим 001 для выхода из режима обслуживания

Получение данных из Active Directory посредством PHP

Сам за себя лучше всего расскажет мой кусок кода. Все сдобрено максимально большим количеством комментариев. По формату построения LDAP запросов полезно почитать вот этот мануал. Ничего толковее к сожалению найти не смог.

Вот результат:

Снимок-12Вот код:

$ldap_user='gribov.p';
$ldap_pass='ргшкуцудцс';
$filter = "(telephonenumber=*9657400222*)";   // устанавливаем фильтр выборки из AD
//(company=*Русский Север*)
$attr=array("displayname","useruid2","title","telephonenumber","department","mail","jpegphoto","homephone"); // устанавливаем какие поля нам нужно получить из AD

// устанавливаем соединение с ldap сервером
$ldap_con = ldap_connect($cfg->ldap) or die("Could not connect to LDAP server.");
echo "-Соеденяюсь с LDAP сервером: OK</br>";

// Устанавливаем флажки протокола
ldap_set_option($ldap_con, LDAP_OPT_PROTOCOL_VERSION, 3);  // AD Windows 2003 и выше
ldap_set_option($ldap_con, LDAP_OPT_REFERRALS, 0);         //Определяет, следовать ли автоматически рефералам, возвращенным сервером LDAP. Зачем нужно - не понятно

// авторизуемся в AD
$dn="$cfg->domain1\\$ldap_user";
$ldapbind = ldap_bind($ldap_con, $dn, $ldap_pass) or die("LDAP bind failed...");
echo "-Авторизуюсь на LDAP сервере: OK</br>";

// Пытаемся чтото получить из AD
$base_dn = "DC=$cfg->domain1, DC=$cfg->domain2";  
$search=ldap_search($ldap_con, $base_dn, $filter,$attr);  // Ищем эти поля, получаем ссылку на результат
$number_returned = ldap_count_entries($ldap_con,$search); // Получаем количество записей
echo "-Получаю записи из AD: $number_returned</br>";
$info = ldap_get_entries($ldap_con, $search);             // получаем результат в переменную $info

// дальше парсим полученный массив
// Результирующий массив с пользователями из AD
// "displayname","useruid2","title","telephonenumber","department","mail","jpegphoto","homephone"
  for ($i=0; $i<$info["count"]; $i++) {             
        $res=$info[$i];
        $m_name=$res["displayname"];
        echo "Имя: $m_name[0]</br>";
        $m_tab=$res["useruid2"];
        echo "Табельный: $m_tab[0]</br>";        
        $m_title=$res["title"];
        echo "Должность: $m_title[0]</br>";        
        $m_tel=$res["telephonenumber"];
        echo "Телефон: $m_tel[0]</br>";        
        $m_dep=$res["department"];
        echo "Департамент: $m_dep[0]</br>";        
        $m_mail=$res["mail"];
        echo "Email: $m_mail[0]</br>";        
        $m_photo=$res["jpegphoto"];
        $m_hometel=$res["homephone"];
        echo "Дом.тел: $m_hometel[0]</br>";               
        file_put_contents('img.jpg',$m_photo[0]);
        echo "<img src='img.jpg'>";                       
         echo "<hr>";       

    };

zend framework 2, Yii и иже с ними.

Сегодня почти весь день ушел на то чтобы познакомится с этими фреймворками. Изначально хотел 3-ю версию «Учет ТМЦ в организации» попробовать написать с использованием одного из этих средств. Пока негатив. Слишком много телодвижений для получения простейших результатов. Плюс чувствую пришлось бы изобретать такие-же «велосипеды» что  используются сейчас у меня в предыдущей версии. Т.е. код явно бы не упростился, а выгоды от использования данного решения получил бы минимальные. Завтра подумаю над фреймворком ExtJs.

Кроссбраузерное подключение шрифтов в html и css

Пришлось помучатся сегодня с одинаковым отображением текста с подключаемыми шрифтами в IE, FireFox,Chrome. Очень пригодились онлайн конвертеры ttf2svg, ttf2eot и ttf2woff. Ниже приведен пример стиля ccs, который является кроссбраузерным:

@font-face {
    font-family: 'PTSansBold';
    src: url('../fonts/9125527.eot');
    src: local('☺'), url('../fonts/9125527.ttf') format('woff'), url('../fonts/9125527.ttf') format('truetype'), url('../fonts/9125527.svg#PTSansBold') format('svg');
    font-weight: bold;
    font-style: normal;
}