| |
| Настройки интернета для 40-й серии 3-го издания. В частности для моделей Nokia 6125, 6131, 6270, 6280, 6288, 6233, также они должны подходить для 6230i, 6101, 6103, 6111, 7370. Для начало нужно убедиться, подключена ли эта услуга у оператора. ОпСоСы предоставляют два способа доступа к интернет ресурсам – GPRS-WAP и GPRS-INTERNET, интернет дешевле вапа, поэтому будем настраивать его. Если настраиваете впервые то после настройки нужно произвести перерегистрацию симкарты в сети, то есть нужно выключить, а затем включить телефон.
Настройка телефона: Меню – Настройки – Конфигурация - Настройки персональной конфигурации
1. Левая софт клавиша “Функции” – добавить новые – Точка доступа . Появляется меню настройки точки доступа, пишите что угодно, как правило – название того оператора, чья эта точка доступа, так удобней. Следующий пункт – Параметры точки доступа, в пункте канал данных выбираем – Пакетные данные ( это и есть пресловутый GPRS). Переходим в раздел – Настройка канала – Т/д пакетных данных (это и есть сама точка доступа), тут пишем следующее – internet.mts.ru (для абонентов МТС), internet.beeline.ru (Билайнеры), internet.mc (Мегафон центр), internet.nw (Мегафон северо-запад), и так далее в зависимости от своего региона. Те, кто пользуется несколькими операторами могут сразу настроить несколько точек доступа, чтобы при смене симкарт не менять настройки, а просто переключать точки доступа. Меню – Настройки – Конфигурация - Настройки персональной конфигурации
2. Левая софт клавиша “Функции” – добавить новые – Интернет. Имя учетной записи – пишем произвольно, Домашняя страница – тоже произвольно, можно вообще не указывать, Имя пользователя и Пароль оставляем пустыми, Использовать предпочтительную точку доступа – ставим ДА. Для тех, кто хочет настроить стандартный почтовый клиент телефона - Настройка телефона: Меню – Настройки – Конфигурация - Настройки персональной конфигурации Левая софт клавиша “Функции” – добавить новые – Электронная почта. Имя учетной записи – Произвольно, Свое имя , Адрес электронной почты – тут все понятно, Защищен. Регистр SMTP – Выключить, Имя пользователя SMTP – пишем свой login, Пароль SMTP – свой пароль, производим настройки также как и на компьютере. POP3 (в настройках входящей почты) также как и SMTP. Для тех у кого почта на мейле – сервер вх. почты (POP3) pop3.mail.ru, сервер исходящей (SMTP) smtp.mail.ru. Использовать предпочтительную точку доступа – ДА. Теперь снова, тоже самое делаем для почты и точки доступа- если настраивали несколько то все. Те кто настроил несколько точек доступа будут просто Выбирать (Меню – Настройки – Конфигурация – Предпочтительная точка доступа – необходимая точка доступа, - Выбрать). Теперь Меню – Настройки – Конфигурация – Стандарт. Конфигурации – Персональные конфигурации – “Функции”- Как стандартный. Стандартный набор (все прилож) – “Выбрать”, “Да”
3. Меню – Интернет – Настройки – Параметры конфигурации – Конфигурация – Персональн . конфигурации. Учетная запись – выбираем, ту, которую создали. Тоже самое делаем в настройках сообщений электронной почты. | |
|
| http://p2k.ru/archives/52<?php #################################################### # class for generation YML (yandex market language) #################################################### class yml { var $from_charset = 'windows-1251'; var $shop = array('name'=>'', 'company'=>'', 'url'=>''); var $currencies = array(); var $categories = array(); var $offers = array(); # конструктор function yml($from_charset = 'windows-1251') { $this->from_charset = trim(strtolower($from_charset)); } # преобразование массива в тег function convert_array_to_tag($arr) { $s = ''; foreach($arr as $tag=>$val) { $s .= '<'.$tag.'>'.$val.'</'.$tag.'>'; } $s .= "\r\n"; return $s; } # преобразование массива в атрибуты function convert_array_to_attr($arr, $tagname, $tagvalue = '') { $s = '<'.$tagname.' '; foreach($arr as $attrname=>$attrval) { $s .= $attrname . '="'.$attrval.'" '; } $s .= ($tagvalue!='') ? '>'.$tagvalue.'</'.$tagname.'>' : '/>'; $s .= "\r\n"; return $s; } # подготовка текстового поля в соответствии с требованиями Яндекса function prepare_field($s) { $from = array('"', '&', '>', '<', '\''); $to = array('"', '&', '>', '<', '''); $s = str_replace($from, $to, $s); if ($this->from_charset!='windows-1251') $s = iconv($this->from_charset, 'windows-1251//IGNORE//TRANSLIT', $s); $s = preg_replace('#[\x00-\x08\x0B-\x0C\x0E-\x1F]+#is', ' ', $s); return trim($s); } # указать данные магазина # @name - название интернет-магазина # @company - официальное название компании # @url - адрес сайта function set_shop($name, $company, $url) { $this->shop['name'] = $this->prepare_field($name); $this->shop['name'] = substr($this->shop['name'], 0, 20); $this->shop['company'] = $this->prepare_field($company); $this->shop['url'] = $this->prepare_field($url); } # добавить валюту магазина # @id - код валюты (RUR, USD, EUR...) # @rate - CBRF или свой курс # @plus учитывается только в случае rate = CBRF и означает насколько увеличить курс в процентах от ЦБ РФ function add_currency($id, $rate = 'CBRF', $plus = 0) { $rate = strtoupper($rate); $plus = str_replace(',', '.', $plus); if ($rate=='CBRF' && $plus>0) $this->currencies[] = array('id'=>$this->prepare_field(strtoupper($id)), 'rate'=>'CBRF', 'plus'=>(float)$plus); else { $rate = str_replace(',', '.', $rate); $this->currencies[] = array('id'=>$this->prepare_field(strtoupper($id)), 'rate'=>(float)$rate); } return true; } # добавление категории товаров # @id - id рубрики # @parent_id - id родительской рубрики, если нет, то -1 # @name - название рубрики function add_category($name, $id, $parent_id = -1) { if ((int)$id<1||trim($name)=='') return false; if ((int)$parent_id>0) $this->categories[] = array('id'=>(int)$id, 'parentId'=>(int)$parent_id, 'name'=>$this->prepare_field($name)); else $this->categories[] = array('id'=>(int)$id, 'name'=>$this->prepare_field($name)); return true; } # добавление позиции # @id - id товара # @available - товар доступен сейчас (true) или на заказ (false) # @data - массив остальных параметров (звездочкой помечены обязательные) # *url - URL-адрес страницы товара # *price - цена товара # *currencyId - идентификатор валюты товара (RUR, USD, UAH...)значением цены. # *categoryId - идентификатор категории товара (целое число не более 18 знаков). Товарное предложение может принадлежать только одной категории # picture - Ссылка на картинку соответствующего товарного предложения. Недопустимо давать ссылку на "заглушку", т.е. на картинку где написано "картинка отсутствует" или на логотип магазина # *delivery - элемент, обозначающий возможность доставить соответствующий товар. "false" данный товар не может быть доставлен("самовывоз"). "true" товар доставляется на условиях, которые указываются в партнерском интерфейсе http://partner.market.yandex.ru на странице "редактирование". # *name - наименование товарного предложения # vendor - производитель # vendorCode - Код товара (указывается код производителя) # *description - Описание товарного предложения # country_of_origin - Элемент предназначен для указания страны производства товара. # downloadable - Элемент предназначен обозначения товара, который можно скачать. function add_offer($id, $data, $available = true) { $allowed = array('url', 'price', 'currencyId', 'categoryId', 'picture', 'delivery', 'name', 'vendor', 'vendorCode', 'description', 'sales_notes', 'country_of_origin', 'downloadable'); foreach($data as $k=>$v) { if (!in_array($k, $allowed)) unset($data[$k]); $data[$k] = strip_tags($this->prepare_field($v)); } $tmp = $data; $data = array(); foreach($allowed as $key) { if (isset($tmp[$key])) $data[$key] = $tmp[$key]; # Порядок важен для Я.Маркета!!! } $this->offers[] = array('id'=>(int)$id, 'data'=>$data, 'available'=>($available)?'true':'false'); } # шапка документа function get_xml_header() { return '<?xml version="1.0" encoding="windows-1251"?><!DOCTYPE yml_catalog SYSTEM "shops.dtd"><yml_catalog date="'.date('Y-m-d H:i').'">'; } # тело документа function get_xml_shop() { $s = '<shop>' . "\r\n"; # shop info $s .= $this->convert_array_to_tag($this->shop); # currencies $s .= '<currencies>' . "\r\n"; foreach($this->currencies as $currency) { $s .= $this->convert_array_to_attr($currency, 'currency'); } $s .= '</currencies>' . "\r\n"; # categories $s .= '<categories>' . "\r\n"; foreach($this->categories as $category) { $category_name = $category['name']; unset($category['name']); $s .= $this->convert_array_to_attr($category, 'category', $category_name); } $s .= '</categories>' . "\r\n"; # offers $s .= '<offers>' . "\r\n"; foreach($this->offers as $offer) { $data = $offer['data']; unset($offer['data']); $s .= $this->convert_array_to_attr($offer, 'offer', $this->convert_array_to_tag($data)); } $s .= '</offers>' . "\r\n"; $s .= '</shop>'; return $s; } # футер документа function get_xml_footer() { return '</yml_catalog>'; } # получить весь XML код function get_xml() { $xml = $this->get_xml_header(); $xml .= $this->get_xml_shop(); $xml .= $this->get_xml_footer(); return $xml; } } ?>
* This source code was highlighted with Source Code Highlighter.
| |
|
| <?php // Создание stored-RAR архивов // Версия 0.3 // Автор: Алексей Рембиш a.k.a Ramon // E-mail: alex@rembish.ru // Copyright 2009 // Класс создания RAR-архивов со stored-сжатием // Пример работы: // $rar = new store_rar; // $rar->create("archive.rar"); # создаём архив // $rar->addFile("a.txt"); # пишем в него файл a.txt // $rar->addDirectory("b/c"); # создаём в архиве директорию "b" с поддиректорией "c" // $rar->addFile("d/e.txt"); # создаём директорию "d" и пишем в неё e.txt // $rar->close(); # закрываем архив class store_rar { // Указатель на архив private $id = null; // Внутренняя структура каталогов, чтобы не создавать лишние. private $tree = array(); // Функция, создающая новый архив, после чего записывающая в него обязательные заголовки. public function create($filename) { $this->id = fopen($filename, "wb"); if (!$this->id) return false; $this->tree = array(); $this->writeHeader(0x72, 0x1a21); $this->writeHeader(0x73, 0x0000, array(array(0, 2), array(0, 4))); return true; } // Функция, закрывающая записанный архив public function close() { fclose($this->id); } // Функция, что добавляет в архив директорию. Нормально справляется с рекурсивными // директориями. Например, для $name = "a/b" создаст директорию "a", а в ней поддиректорию // "b". Не будет создавать дубликаты директорий. public function addDirectory($name) { $name = str_replace("/", "\\", $name); if ($name[0] == "\\") $name = substr($name, 1); if ($name[strlen($name) - 1] == "\\") $name = substr($name, 0, -1); $parts = explode("\\", $name); $c = &$this->tree; $cname = ""; $delim = ""; for ($i = 0; $i < count($parts); $i++) { $cname .= $delim.$parts[$i]; if (!isset($c[$parts[$i]])) { $c[$parts[$i]] = array(); $this->writeHeader(0x74, $this->setBits(array(5, 6, 7, 15)), array( array(0, 4), // Packed size = 0 for directories array(0, 4), // Unpacked size = 0 for directories array(0, 1), // Host OS = "MS DOS" array(0, 4), // File CRC = 0 for directories array($this->getDateTime(), 4), // File time = Current date and time in MS DOS format array(20, 1), // RAR version = 2.0 array(0x30, 1), // Method = Store array(strlen($cname), 2), // Name size array(0x10, 4), // File attributes = Directory $cname, // Filename = Directory name )); } $c = &$c[$parts[$i]]; $delim = "\\"; } return $name; } // Функция записывающая файл $name в архив. Если задан параметр $dir, то файл будет записан // в соответствующую директорию внутри архива (директория может не существовать до записи // файла). $name - путь к файлу на сервере. Файл будет записан с basename($name). public function addFile($name, $dir = null) { if (!file_exists($name)) return false; $c = &$this->tree; if (!is_null($dir)) { $dir = $this->addDirectory($dir); $parts = explode("\\", $dir); for($i = 0; $i < count($parts); $i++) $c = &$c[$parts[$i]]; } $fname = pathinfo($name, PATHINFO_BASENAME); if (in_array($fname, $c)) return true; $data = file_get_contents($name); $size = strlen($data); if (!is_null($dir)) $fname = $dir."\\".$name; $this->writeHeader(0x74, $this->setBits(array(15)), array( array($size, 4), // Packed size = File size array($size, 4), // Unpacked size = File size array(0, 1), // Host OS = "MS DOS" array(crc32($data), 4), // File CRC array($this->getDateTime(filemtime($name)), 4), // File time array(20, 1), // RAR version = 2.0 array(0x30, 1), // Method = store array(strlen($fname), 2), // Name size array(0x20, 4), // File attributes = Archived $fname, // Filename )); fwrite($this->id, $data); $c[] = $fname; return true; } // Внутренняя функция, пишущая заголовок блока в соответствии с форматом RAR. // Работает только с тремя типами заголовков: блок-маркер, заголовок архива и // заголовок файла - $headType. $headFlags - флаги заголовка, $data - возможно // пустой массив дополнительных параметров заголовка, что идут после первых // обязательных 7 байт. private function writeHeader($headType, $headFlags, $data = array()) { if (!in_array($headType, array(0x72, 0x73, 0x74))) return false; $headSize = 2 + 1 + 2 + 2; foreach ($data as $key => $value) $headSize += is_array($value) ? $value[1] : strlen($value); $header = $this->writeBytesToString(array_merge(array($headType, array($headFlags, 2), array($headSize, 2)), $data)); $header = ($headType == 0x72 ? "Ra" : $this->getCRC($header)).$header; fwrite($this->id, $header); } // Расчёт CRC для заголовка блока. CRC урезается до 2 байт из 4х. private function getCRC($string) { $crc = crc32($string); return chr($crc & 0xFF).chr(($crc >> 8) & 0xFF); } // Внутренняя функция записи данных в обратном порядке байтов. private function getBytes($data, $bytes = 0) { $output = ""; if (!$bytes) $bytes = strlen($bytes); if (is_int($data) || is_float($data)) { $data = sprintf("%0".($bytes * 2)."x", $data); for ($i = 0; $i < strlen($data); $i += 2) $output = chr(hexdec(substr($data, $i, 2))).$output; } else $output = $data; return $output; } // Запись массива данных в байт-строку с учётом размерности переданных данных. private function writeBytesToString($data) { $output = ""; for ($i = 0; $i < count($data); $i++) { if (is_array($data[$i])) $output .= $this->getBytes($data[$i][0], $data[$i][1]); else $output .= $this->getBytes($data[$i]); } return $output; } // Установка соответствующих битов в числе. $bits - массив номеров битов или отдельный номер бита. private function setBits($bits) { $out = 0; if (is_int($bits)) $bits[] = $bits; for ($i = 0; $i < count($bits); $i++) $out |= 1 << $bits[$i]; return $out; } // Получение даты в 4хбитном формате MSDOS. $time - timestamp, от которого получить дату. private function getDateTime($time = null) { if (!is_null($time)) $time = time(); $dt = getdate(); $out = $dt["seconds"] | ($dt["minutes"] << 5) | ($dt["hours"] << 11) | ($dt["mday"] << 16) | ($dt["mon"] << 21) | (($dt["year"] - 1980) << 25); return $out; } }; ?>
http://habrahabr.ru/blogs/php/73945/
| |
|
| Наша Таня громко плачет. Уронила в речку мячик, деньги, линзы, документы, чемодан, рулон брезента, кактус, веник, сигареты, керогаз, белье, конфеты, камень, ножницы, бумагу, честь, разборчивость, отвагу, совесть, справку о доходах, самолеты, пароходы, монитор, процессор, мышку, табурет, вторую книжку, пылесос, кровать, мобилу, альпеншток, лопату, вилы, зажигалку, дреды, кеды, понедельник, вторник, среду, канарейку, распашонку, припасенную тушенку, масло, мыло, спички, печку, гастарбайтера, уздечку, песни, пляски, разговоры, солнце, звезды, лес и горы, Кострому, Саратов, Вятку, попрыгучую лошадку, карбюратор, пенку, спальник, бормашину, матюгальник, руки, ноги, папу, маму, патриарха, далай-ламу, просветленье, счастье, горе. Нахер все уплыло в море. | |
|
| <?php
class Robokassa { //>Public Section public $login; function __construct($login = null, $password1 = null, $password2 = null) { $this->init($login, $password1, $password2); } function init($login, $password1, $password2) { $this->login = $login; $this->password1 = $password1; $this->password2 = $password2; } function getJsForm($summa, $idOrder, $idItem, $itemDesc, $encoding = 'utf-8', $currency = 'PCR', $language = 'ru') { return '<script language=JavaScript '. 'src="https://www.roboxchange.com/mrh_summpreview.asp?'. 'MrchLogin='.$this->login. '&OutSum='.$summa. '&InvId='.$idOrder. '&IncCurrLabel='.$currency. '&Desc='.$itemDesc. '&SignatureValue='.$this->createCrc($summa, $idOrder, $idItem). '&Shp_item='.$idItem. '&Culture='.$language. '&Encoding='.$encoding. '"></script>'; } function createCrc($summa, $idOrder, $idItem) { $crc = $this->login.':'. $summa.':'. $idOrder.':'. $this->password1. ':Shp_item='.$idItem; return md5($crc); } // get status function is_payed() { return $this->_check_crc($this->password1); } function is_ordered() { return $this->_check_crc($this->password2); } // get params function getSumma() { return @$_REQUEST["OutSum"]; } function getIdOrder() { return @$_REQUEST["InvId"]; } function getIdItem() { return @$_REQUEST["Shp_item"]; } function getCrc() { return @$_REQUEST["SignatureValue"]; } //>Private Section private $password1; private $password2; private function _check_crc($password) { $summa = $this->getSumma(); $idOrder = $this->getIdOrder(); $idItem = $this->getIdItem(); $crc = $this->getCrc();
$crc = strtoupper($crc);
$my_crc = $summa.':'.$idOrder.':'.$password.':Shp_item='.$idItem; $my_crc = strtoupper(md5($my_crc)); return ($my_crc == $crc)?true:false; } }
?>
example:
<?php
class Paying extends Controller { function Paying() { parent::Controller(); $this->load->library('Robokassa'); $this->robokassa->init('login', 'password1', 'password2'); }
function index() { $idItem = '19889'; // уникальный номер товарa $summa = '5.96'; // стоимость товара $itemDesc = 'Описание товара'; // уникальный номер заказа $idOrder = $this->PayModel->createOrder($summa, $idItem);
echo $this->robokassa->getJsForm($summa, $idOrder, $idItem, $itemDesc); }
function order() { if (!$this->robokassa->is_ordered()) { die("bad sign\n"); } $idOrder = $this->robokassa->getIdOrder(); echo "Заказ №: $idOrder оплачивается...\n"; }
function success() { if (!$this->robokassa->is_payed()) { die("bad sign\n"); } $idOrder = $this->robokassa->getIdOrder(); $summa = $this->robokassa->getSumma(); echo "Заказ №: $idOrder на сумму $summa успешно оплачен.\n"; }
function fail() { $idOrder = $this->robokassa->getIdOrder(); echo "Вы отказались от оплаты. Заказ №: $idOrder\n"; } }
?>
| |
|
| class http { var $curl; var $urls; var $conn; function http($urls, $timeout, $proxys=0) { $this->curl = curl_multi_init(); $this->urls=$urls; foreach ($this->urls as $i => $url) { $this->conn[$i] = curl_init($url); curl_setopt($this->conn[$i], CURLOPT_RETURNTRANSFER, 1); if($proxys[$i]) { curl_setopt($this->conn[$i], CURLOPT_PROXY, $proxys[$i]); } curl_setopt($this->conn[$i], CURLOPT_TIMEOUT, $timeout); } } function get() { foreach ($this->urls as $i => $url) { curl_multi_add_handle ($this->curl,$this->conn[$i]); } } function post($posts) { foreach ($this->urls as $i => $url) { if(is_array($posts[$i])) { $post_data=''; foreach ($posts[$i] as $name=>$val) $post_data.=$name.'='.urlencode($val).'&'; curl_setopt($this->conn[$i], CURLOPT_POST, 1); curl_setopt($this->conn[$i], CURLOPT_POSTFIELDS, $post_data); } curl_multi_add_handle ($this->curl,$this->conn[$i]); } } function exec() { global $mcurl_errs; $mcurl_errs=array(); do { $mrc = curl_multi_exec($this->curl, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active and $mrc == CURLM_OK) { if (curl_multi_select($this->curl) != -1) { do { $mrc = curl_multi_exec($this->curl, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); } } foreach ($this->urls as $i => $url) { if (($err = curl_error($this->conn[$i])) == '') { $res[$i] = curl_multi_getcontent($this->conn[$i]); } else { $res[$i] = ''; } curl_multi_remove_handle($this->curl,$this->conn[$i]); curl_close($this->conn[$i]); } curl_multi_close($this->curl); if(isset($res)) return $res; else return false; } } // http end function GetPages($urls) { $counturls = count($urls); $http = new http($urls, $counturls); $http->get(); $pages = $http->exec(); unset ($http); return $pages; } $urls[] = 'http://www.site.com/index.php?action_skin_change=yes&skin_name=3weekeng'; $pages = GetPages($urls);
| |
|
| - Adblock Plus 1.1.1: http://adblockplus.org/ - Скажи "нет" рекламе! - AutoPager 0.5.3.5: http://www.teesoft.info/ - AutoPager — это расширение для Firefox и Mozilla, автоматически подгружающее страницы в фоновом режиме. А еще его можно использовать как генератор XPath. - Better Gmail 2 0.9.5: http://ginatrapani.org/workshop/firefox/bettergmail2/ - Enhances Gmail with a compilation of user scripts and styles. All scripts copyright their original authors. Click on the script homepage in the Help tab for more information. - Better Kongregate 2.1: http://matthewammann.com - A compilation of the best Greasemonkey user scripts for Kongregate. All scripts copyright their original authors. Click on the script homepage in the Help tab for more information. - ChromaTabs Plus 2.2: http://garycalpo.wordpress.com/chromatabs-plus - Colors browser tabs based on site favicon colors. - Chromifox Companion 0.9.8: http://www.google.com/search?q=Firefox%20Chromifox%20Companion - Configures Chromifox Extreme with Chrome like features. - Cooliris 1.11.1: http://www.cooliris.com/ - Cooliris transforms your browser into a full-screen 3D Wall for searching, viewing and sharing the Web. - CustomizeGoogle 0.76: http://www.customizegoogle.com/ - Расширяет результаты поиска Google, удаляет рекламу и спам. - Download Statusbar 0.9.6.5: http://downloadstatusbar.mozdev.org/ - Просмотр и управление загрузкой файлов при помощи компактной панели над строкой состояния - DownloadHelper 4.6.2: http://www.downloadhelper.net - Загружай видео и музыку со множества сайтов - Eve Online Character Status 1.4.9: http://evestatus.ath.cx/ - Character Monitoring for EVE Online - Extended Statusbar 1.5.4: http://kondor.etf.bg.ac.yu/~kustodian/mozilla/esb - Строка состояния с показателями скорости, размера, процента и времени загрузки страницы (нечто подобное Опере). - Fasterfox Lite 3.8Lite: https://addons.mozilla.org/firefox/9148 - Performance and network tweaks for Firefox. - FfChrome 1.7: http://www.binaryturf.com - Firefox Chrome - Firebug 1.5X.0a25: http://www.getfirebug.com/ - Web Development Evolved. - FireRainbow 1.0: http://firerainbow.binaryage.com - Javascript syntax highlighting for Firebug - FireShot 0.78: http://screenshot-program.com/fireshot/ - Позволяет осуществлять полностраничный захват веб-страниц, их редактирование, сохранение (JPEG, GIF, PNG или BMP), вывод на принтер, в буфер обмена, в другую программу обработки или отправку по электронной почте. - Flagfox 3.3.16: http://flagfox.net/ - Отображает флаг страны, в которой находится сервер - FlashGot 1.2.0.6: http://flashgot.net - Позволяет закачивать все или только выбранные файлы при помощи наиболее популярных менеджеров загрузки для Windows, Mac OS X, Linux и FreeBSD (см. полный список на домашней странице расширения). FlashGot так же обладает способностью создавать галерею, которая поможет вам уместить большие медиа-галереи на одной странице без лишнего оформления для быстрой и удобной загрузки. - Font Size 0.1.20090531.1: http://www.google.com/search?q=Firefox%20Font%20Size - Enlarge/Reduce the font size. - Gmail Manager 0.5.7.4: http://www.longfocus.com/firefox/gmanager/ - Удобное управление GMail аккаунтами и уведомлениями о новых сообщениях. - Google Reader Watcher 0.0.15: http://ajnasz.hu/google-reader-watcher - Checks your Google Reader for unread feeds - Google Redesigned 0.3.5: http://www.globexdesigns.com/ - Полный редизайн популярных услуг Google. - GoogleEnhancer 1.73: http://netticat.ath.cx/extensions.html - Adds icons, highlighting, numbers and options to Google results - Greasemonkey 0.8.20090920.2: http://www.greasespot.net/ - Менеджер пользовательских скриптов для Firefox - Habrahabr Comment Editor 2.0: http://habrace.kirik.ws/ - Простой редактор комментариев - Hide Caption Titlebar Plus 0.9.0.1: https://addons.mozilla.org/en-US/firefox/u ser/4341183 - "Maximize your content space by controlling the presence of Firefox window Title bar (Caption)!" - Hide the caption (Title bar) of Firefox with 'smart' options (and key fixes and improvements) - Hide Menubar 1.0.20090918: http://forum.moztw.org/viewtopic.php?t=15303 - Автоматически скрывает панель основного меню. Для временного её отображения нажмите клавишу Alt. - Html Validator 0.8.5.8: http://users.skynet.be/mgueury/mozilla/ - Adds HTML validation to the View Page Source of the browser. The validation is done by Tidy or a SGML Parser from W3c. - IdentFavIcon 0.3: http://www.cs.bme.hu/~dhanak/identfavicon/ - Use identicons to automatically generate favicons for sites without one. - IE View Lite 1.3.5: http://www.graysonmixon.com/extension/ - Cut down version of IE View by Paul Roub. - ImageTweak 0.18.2: http://cafxx.strayorange.com - Добавляет новые функции для просмотра изображений в отдельном окне - Informational Tab 0.3.2009090201: http://piro.sakura.ne.jp/xul/_informationaltab.html.en - Обеспечивают миниатюры страниц, прогресс загрузки и другое в каждой вкладке. - InstaClick 1.4: http://instaclick.mozdev.org - Open links in new tabs with right-mouse clicks - Java Console 6.0.16: http://www.google.com/search?q=Firefox%20Java%20Console - LastPass 1.51.4: http://lastpass.com/ - Last Password you will ever need - Locationbar² 1.0.3: http://en.design-noir.de/mozilla/locationbar2/ - Выделяет имя домена и расшифровывает адрес для более удобного восприятия. - lolifox - Fierr MOD 1.0.1.1: http://www.virtualfox.yoyo.pl/ - Replaces the error page with lolifox appearance. - Microsoft .NET Framework Assistant 1.1: http://www.windowsclient.net/ - Добавляет поддержку технологии ClickOnce и возможность сообщать веб-серверу об установленных версиях платформы .NET Framework. - MinimizeToTray 1.5: http://minimizetotray.mozdev.org/ - Minimizes Firefox windows into the system tray - MR Tech Toolkit 6.0.3.4: http://www.mrtech.com/extensions/ - Мощный набор инструментов для настройки приложения. (ru-RU) - Password Exporter 1.2: http://passwordexporter.fligtar.com - Экспортирует и импортирует пароли между компьютерами. - PDF Download 2.2.0.2: http://www.pdfdownload.org - Allows you to choose what to do with a PDF file: download it, view it with an external viewer or view it as HTML. - Quick Locale Switcher 1.6.10: http://www.captaincaveman.nl - Позволяет быстро изменять general.useragent.locale. - Read it Later 0.9947: http://readitlaterlist.com - Save pages to read later, then bookmark. - SearchLoad Options 0.5.7: http://www.google.com/search?q=Firefox%20SearchLoad%20Options - Настраивает работу панели поиска. - Selenium IDE 1.0.2: http://seleniumhq.org/projects/ide - Record, edit and play Selenium tests - Silvermel XT 0.2.1: http://www.silvermel.net - Extends Silvermel Styles - SkipScreen 0.1.07282009_url_fix: http://skipscreen.com/ - Skips unnecessary pages on sites like Rapidshare, Megaupload, zShare, Mediafire, and more. Wherever there are unnecessary pages and superfluous links, Skipscreen will be there. - Skype extension for Firefox 3.3.0.3971: http://www.skype.com - Skype extension for Firefox - SmallTabMix 1.46: http://smalltabmix.mozdev.org/ - Light-weight Tab Enhencement, Including Useful Firefox HIdden Settings. - SmarterFox 2.1.4: http://smarterfox.com/ - Просматривать "похожие статьи" в Википедии, искать выделенный текст во всплывающем пузыре и контекстном меню, искать из Awesomebar,легко переключаться между поисковыми системами и переходить на закладки по сочетаниям клавиш! - Speed Dial 0.9.1: http://speeddial.uworks.net/ - Быстрый доступ к самым посещаемым вами веб-сайтам. - Surf Canyon - Search Engine Assistant 3.0.1: http://www.surfcanyon.com - Adds search result recommendations to Google, Yahoo!, Bing and Craigslist. - Test Pilot 0.2.1: http://testpilot.mozillalabs.com/ - Help improve Firefox user experience by trying out new features. - Tree Style Tab 0.8.2009090201: http://piro.sakura.ne.jp/xul/_treestyletab.html.en - Отображение вкладок в виде дерева. - Ubiquity 0.5.4: http://ubiquity.mozilla.com - An extension that allows for the use of dynamic commands in Firefox. - Update Notifier 0.1.5.5: http://www.longfocus.com/firefox/updatenotifier - Оповещает при наличии обновлений для установленных расширений/тем. - Update Scanner 3.0.5: http://updatescanner.mozdev.org - Проверяет web-страницы на наличие обновлений - Vacuum Places Improved 1: http://www.google.com/search?q=Firefox%20Vacuum%20Places%20Improved - Defragment your places.sqlite database to speed-up Firefox - Wappalyzer 1.5.0: http://elbertf.com - Wappalyzer shows you which software is used on the page you're currently at. - Web Developer 1.1.8: http://chrispederick.com/work/web-developer/ - Adds a menu and a toolbar with various web developer tools. - Xmarks 3.3.2: http://www.xmarks.com/ - Синхронизирует ваши закладки перекрестным методом. - YSlow 2.0.1: http://developer.yahoo.com/yslow - Make your pages faster with Yahoo!'s page performance tool | |
|
| Как связать CodeIgniter и SWFUpload1) надо подравить CI_Session.php в самом конце функции function CI_Session() добавляем запись. это надо для того сафари и флэш не обновляли(создавали новую) сессию. if ( !stristr($this->object->input->user_agent(),'shockwave') and !stristr($this->object->input->user_agent(),'Adobe Flash Player') ) { $this->_sess_run(); }
* This source code was highlighted with Source Code Highlighter.
2) создаем контроллер uploader.php <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Uploader extends Controller { function Uploader() { parent::Controller(); }
//swfupload function do_upload1() { $tmpdir='/files/temp/';
$used_degraded = false; $resume_id = ""; if(isset($_FILES["resume_file"]["name"])) { $p=pathinfo($_FILES["resume_file"]["name"]); $myfilename=mktime(date('H'),date('i'),date('s'),date('n'),date('d'),date('Y')).'.'.$p['extension']; }
if(isset($_FILES["resume_degraded"]["tmp_name"])) log_message('debug', "uploader: resume_degraded_tmp_name: ".$_FILES["resume_degraded"]["tmp_name"]); if(isset($_FILES["resume_degraded"]["error"])) log_message('debug', "uploader: resume_degraded_error: ".$_FILES["resume_degraded"]["error"]); if(isset($_FILES["resume_file"]["tmp_name"])) log_message('debug', "uploader: resume_file_tmp_name: ".$_FILES["resume_file"]["tmp_name"]); if(isset($myfilename)) log_message('debug', "myfilename: ".$myfilename); log_message('debug', "uploader: user_agent: ".$this->object->input->user_agent()); if(isset($_POST['PHPSESSID'])) log_message('debug', "uploader: phpsessid: ".$_POST['PHPSESSID']);
// Check for the file id we should have gotten from SWFUpload if (isset($_POST["hidFileID"]) && $_POST["hidFileID"] != "" ) { $resume_id = $_POST["hidFileID"]; }
if (isset($_FILES["resume_file"]) && is_uploaded_file($_FILES["resume_file"]["tmp_name"]) && $_FILES["resume_file"]["error"] == 0) { log_message('debug', "uploader: move_uploaded_file..."); if(!$result = move_uploaded_file($_FILES['resume_file']['tmp_name'],$tmpdir.$myfilename)) { log_message('debug', "uploader: copy uploaded file..."); if(!$result = copy($_FILES['resume_file']['tmp_name'],$tmpdir.$myfilename)) { @unlink($_FILES['resume_file']['tmp_name']); echo ' '; // это надо для swfupload, чтобы он корректно показывал прогресс-бар } else { @unlink($_FILES['resume_file']['tmp_name']); log_message('debug', "uploader: copy uploaded file: echo filename: ".$myfilename); log_message('debug', "uploader: phpsessid: ".$_POST['PHPSESSID']); echo ' ';// это надо для swfupload, чтобы он корректно показывал прогресс-бар } } else { log_message('debug', "uploader: move_uploaded_file: echo filename: ".$myfilename); log_message('debug', "uploader: phpsessid: ".$_POST['PHPSESSID']); echo $myfilename; // это надо для swfupload, чтобы он корректно показывал прогресс-бар
} } else { //$params['session_id'] = $_POST['PHPSESSID']; //$this->load->library('session', $params); log_message('debug', "uploader: before 'checkMedia'"); if(isset($_POST['PHPSESSID'])) log_message('debug', "uploader: phpsessid: ".$_POST['PHPSESSID']); if(isset($_POST["hidFileID"])) log_message('debug', "uploader: tmpdir=".$tmpdir." ; file=".$_POST["hidFileID"]); log_message('debug', "uploader: goto CheckMedia");
** здесь ставим вызов на другой контроллер для обработки загруженного файла ** в переменной $myfilename у нас должен быть полный путь до закаченного файла
} } }
* This source code was highlighted with Source Code Highlighter.
3) потом создаем форму: (о всех параметрах, которые понимает/принимает swfupload смотрим в http://demo.swfupload.org/Documentation/) <script type="text/javascript" src="/templates/js/swfupload/swfupload.js"></script> <script type="text/javascript" src="/templates/js/swfupload/swfupload.swfobject.js"></script> <script type="text/javascript" src="/templates/js/swfupload/fileprogress.js"></script> <script type="text/javascript" src="/templates/js/swfupload/swfupload.handlers.js"></script> <link href="/templates/js/swfupload/upload.css" rel="stylesheet" type="text/css" /> <style type="text/css"> .swfupload { position: absolute; z-index: 1; } </style> <script type="text/javascript"> var swfu; window.onload = function () { swfu = new SWFUpload({ flash_url : "/templates/js/swfupload/swfupload.swf", upload_url: "/index.php/uploader/do_upload1", file_post_name: "resume_file", post_params: {"PHPSESSID" : ""}, file_size_limit : "10 MB", // 10 MB file_types : "*.jpg;*.jpeg", //file_types_description : "Supported Files", file_upload_limit : "0", file_queue_limit : "1", // Event handler settings swfupload_loaded_handler : swfUploadLoaded, file_dialog_start_handler: fileDialogStart, file_queued_handler : fileQueued, file_queue_error_handler : fileQueueError, file_dialog_complete_handler : fileDialogComplete, //upload_start_handler : uploadStart, upload_progress_handler : uploadProgress, upload_error_handler : uploadError, upload_success_handler : uploadSuccess, upload_complete_handler : uploadComplete, button_placeholder_id: "spanButtonPlaceholder", button_width: 91, button_height: 22, button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT, button_cursor: SWFUpload.CURSOR.HAND, custom_settings : { progress_target : "fsUploadProgress", upload_successful : false }, minimum_flash_version : "9.0.28", swfupload_load_failed_handler : swfUploadLoadFailed, debug: false }); } </script>
<form id="image-upload" class="clearfix" action="/index.php/uploader/do_upload1" method="post" enctype="multipart/form-data"> <div style="width: 330px;margin-left: 150px;"> <p><nobr> <input type="text" id="txtFileName" disabled="true" style="width:320px; border: solid 1px; background-color: #FFFFFF;" /> <div id="spanButtonPlaceholder"></div> <input id="btnUpload" type="button" value="выбрать файл" style="width: 91px; height: 22px; font-size: 8pt;" /> <input style="font-size:8pt;height: 22px;" type="submit" id="btnSubmit" disabled name="pesave" value="загрузить" /> </nobr></p> <div class="clear"></div> <div class="flash" id="fsUploadProgress"> <input type="hidden" name="hidFileID" id="hidFileID" value="" /> <input type="hidden" name="hidFileName" id="hidFileName" value="" /> </div> <!-- This is where the file ID is stored after SWFUpload uploads the file and gets the ID back from upload.php --> <noscript>У Вас отключен JavaScript. Для корректной загрузки файлов Вы должны включить Javascript.</noscript> <div id="divLoadingContent" class="content" style="background-color: #FFFF66; border-top: solid 4px #FF9966; border-bottom: solid 4px #FF9966; margin: 10px 25px; padding: 10px 15px; display: none;"> SWFUpload is loading. Please wait a moment...</div> <div id="divLongLoading" class="content" style="background-color: #FFFF66; border-top: solid 4px #FF9966; border-bottom: solid 4px #FF9966; margin: 10px 25px; padding: 10px 15px; display: none;">SWFUpload is taking a long time to load or the load has failed. Please make sure that the Flash Plugin is enabled and that a working version of the Adobe Flash Player is installed.</div> <div id="divAlternateContent" class="content" style="color: #FFFFFF; background-color: red; border-top: solid 4px #FF9966; border-bottom: solid 4px #FF9966; margin: 10px 25px; padding: 10px 15px; display: none;">У Вас не установлен Flash Player или установлена старая версия Flash Player.<br><br>Пожалуйста, установите или обновите версию Flash Player, пройдя по следующей ссылке: <a href="http://get.adobe.com/flashplayer/" target="_blank">http://get.adobe.com/flashplayer/</a><br><br>После установки или обновления Flash Player, для того, чтобы изменения вступили в силу, необходимо перезагрузить ваш браузер.</div></form>
* This source code was highlighted with Source Code Highlighter.
В принципе и все. | |
|
| |