HTML 5 уже с нами. Неполный путеводитель по технологии Кирилл Сухов Пример веб-страницы HTML5

...

...

...

...

...

...

Швабра

Необходимый инструмент для дома и самообороны

  1. Beyond The Sea
  2. ...
Canvas Primer - Example: Using canvas

Your browser does not have support for Canvas. Access-Control-Allow-Origin: http://othersite.com formData = new FormData(form); XMLHttpRequest.send(formData); ----------------------------------------------------------------------------------------------------------------- Проект Jetpack. «Реактивные» дополнения для Firefox Валентин Синицын const data = require("self").data; var widget = require("widget").Widget({ id: "gmail_notifier", label: "Gmail Notifier", contentURL: "https://mail.google.com/mail/images/favicon.ico", contentScriptFile: [data.url("jquery-1.6.2.min.js"), data.url("blinker.js")], onClick: openGmailPage, }); var notified = false, messages = 0; function checkMessages() { require("request").Request({ url: "http://mail.google.com/mail/feed/atom/unread/", onComplete: function(response) { if (response.status == "401") { if (!notified) { require("notifications").notify({ iconURL: "http://mail.google.com/mail/images/2/mail_icon_32.png", title: "Sign up to Gmail", text: "You are not logged in to Gmail. Click here to fix the problem", onClick: openGmailPage, }); notified = true; }}} sponse.status == "200") { var feed = parser.parseFromString(response.text, "text/xml"); if (feed) { var entries = feed.getElementsByTagName("entry"); if (entries.length) { if (entries.length > messages) { require("notifications").notify({ iconURL: "http://mail.google.com/mail/images/2/mail_icon_32.png", title: "New messages", text: "You have " + entries.length + " new messages. Click here to read them.", onClick: openGmailPage, }); widget.port.emit("start_blinking"); }} else { widget.port.emit("stop_blinking"); } messages = entries.length; notified = false; }} }).get(); } var {components} = require("chrome"); const DOMParser = new components.Constructor("@mozilla.org/xmlextras/domparser;1","nsIDOMParser"); var parser = new DOMParser(); function openGmailPage() { require("tabs").open("http://www.gmail.com"); widget.port.emit("stop_blinking"); } var blinker = null; self.port.on("start_blinking", function () { $img = $("img"); blinker = window.setInterval(function() { $img.fadeToggle("fast"); }, 750); }) self.port.on("stop_blinking", function() { if (blinker) { window.clearInterval(blinker); $("img").show(); blinker = null; } }) $(document).ready(function () { $("img").css("background-color", "transparent"); }); ----------------------------------------------------------------------------------------------------------------- Создание компонента для CMS Joomla! Роман Сухов execute(JRequest::getVar('task')); ); // Перенаправление, если это задано контроллером $controller->redirect(); ?> setQuery($query); $userlist[] = $db->loadResultArray(); return $userlist; } } getModel(); // Получаем данные из модели $userlist = $model->getUserlist(); // И передаем их в шаблон $this->assignRef('userlist',$userlist); parent::display($tpl); } } Users:"; foreach ($this->userlist as $i) { foreach ($i as $j) { echo "$j
"; } } ?> setQuery($query); $this->data = $db->loadRowList(); return $this->data; } function store() { //Получаем данные от контроллера $data = JRequest::get( 'post' ); $db =& JFactory::getDBO(); $ut = $data["usertype"]; //О таблице userlist будет сказано позже $query = 'UPDATE #__userlist SET value="'.$ut.'" WHERE property = "usertype"'; $db->setQuery($query); $db->query(); } } get('Data'); $this->assignRef('catlist', $catlist ); parent::display($tpl); } }

//Данный для POST-запроса: //Компонент //Задача, в нашем случае здесь будет 'save' после нажатия кнопки «Сохранить»
getModel('userlist'); //Модель сохраняет данные $model->store($post) $msg = JText::_( 'Сохранено' ); $link = 'index.php?option=com_userlist'; //Перенаправление $this->setRedirect($link, $msg); } } function getUserlist() { $db =& Jfactory::getDBO(); $query = 'SELECT value FROM #__userlist WHERE property = "usertype"'; $db->setQuery($query); $ut = $db->loadResult(); $query = 'SELECT name FROM #__users WHERE usertype = "'.$ut.'"'; $db->setQuery($query); $userlist[] = $db->loadResultArray(); return $userlist; } Userlist Author author@example.org http://www.example.org Copyright Info License Info Component Version String Displays lis of users models/userlist.php models/index.html index.html userlist.php controller.php views/index.html views/userlist/index.html views/userlist/view.html.php views/userlist/tmpl/index.html views/userlist/tmpl/default.php install.sql uninstall.sql List of users userlist.php models/userlist.php models/index.html controller.php views/index.html views/userlist/index.html views/userlist/view.html.php views/userlist/tmpl/index.html views/userlist/tmpl/default.php index.html install.sql uninstall.sql DROP TABLE IF EXISTS `#__userlist`; CREATE TABLE `#__userlist` ( `property` varchar(25) NOT NULL, `value` varchar(25) NOT NULL, PRIMARY KEY (`property`) ) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8; INSERT INTO #__userlist VALUES ('usertype','Registered'); DROP TABLE IF EXISTS `#__userlist`; ----------------------------------------------------------------------------------------------------------------- On-line-игры на NoSQL-поле Александр Календарев $tuple = array(1,'spb' ,'Hello Word'); FIELD_0 user_id FIELD_1 login FIELD_2 password // md5(password+salt); FIELD_3 email FIELD_4 game indicator FIELD_5 hero_type FIELD_6 map_id FIELD_7 browse_key . . . define('SALT', '#1*Sz.'); define('NS_SYS',0); define('NS_PROFILE',0); define('COUNTER_USER_ID',1); define('COUNTER_ NUM_FIELD',1); $tnt = new Tarantool($host,$port); $user_id = $tnt->inc(NS_SYS, COUNTER_USER_ID, COUNTER_ NUM_FIELD,1, true); $tnt->insert(NS_PROFILE, array($user_id, $login, md5($psw.SALT), $email, $gameIndicator) ); unset($tnt); define(' PASSWORD_INDEX',1); $count = $tnt->select(NS_PROFILE, PASSWORD_INDEX,array($login, md5($psw.SALT)); while( ($res = $tnt->getTuple()) != false){ var_dump($res); } $tnt->getTuple() define(' PRIMARY_INDEX',0); $userProfile =null; $count = $tnt->select(NS_PROFILE, PRIMARY_INDEX, $user_id); if($count) $userProfile =$tnt->getTuple(); FIELD_0 map_id FIELD_1 type FIELD_2 artefact FIELD_3 acc SELECT * FROM t1 WHERE key0 IN ($key1, $key2, $key3…) define('ROW',1 <<16); // ROW = 65536 define('NS_MAP ',2); $keys = array(); for( $h = 0; $h < $Hmax; $h++) { for( $x = $Po + $h*ROW; $h < $Po+ h*ROW + Wmax; $h++){ $keys[] = $x; } } $count = $tnt->mselect(NS_MAP, PRIMARY_INDEX, $keys); $tuples = array(); while( ($res = $tnt->getTuple()) != false){ $tuples[] = $res; } $key = $user_id << 32; $key += $map_id; {P0 - 2^16 - 1, P0 - 2^16, P0 - 2^16 + 1, P0 - 1, P0 + 1, P0 + 2^16 - 1, P0 + 2^16, P0 + 2^16 + 1} ----------------------------------------------------------------------------------------------------------------- Создание нерекурсивного меню на сайте. Что делать, когда стандартные шаблоны для CMS не подходят Игорь Чуфаров Листинг 1. Общий случай страницы сайта с шапкой и подвалом Title Содержание страницы Листинг 2. Содержание файла header.php с рекурсивным меню Ссылка на index.php

Ссылка на index1.php

Ссылка на index2.php

Ссылка на index3.php

Листинг 3. Содержимое файлов index.php, index1.php, index2.php, index3.php <-------------index.php------------->

Это страница index.php

<-------------index1.php------------->

Это страница index1.php

<-------------index2.php------------->

Это страница index.php

<-------------index3.php------------->

Это страница index1.php

Листинг 4. Содержимое файлов index.php, index1.php, index2.php, index3.php с включением адаптированного меню для каждой страницы <-------------index.php-------------> Неактивная ссылка на index.php

Ссылка на index1.php

Ссылка на index2.php

Ссылка на index3.php

Это страница index.php

<-------------index1.php-------------> Ссылка на index.php

Неактивная ссылка на index1.php

Ссылка на index2.php

Ссылка на index3.php

Это страница index1.php

<-------------index2.php-------------> Ссылка на index.php

Ссылка на index1.php

Неактивная ссылка на index2.php

Ссылка на index3.php

Это страница index.php

<-------------index3.php-------------> Ссылка на index.php

Ссылка на index1.php

Ссылка на index2.php

Неактивная ссылка на index3.php

Это страница index1.php

Листинг 5. Содержание файла header.php с нерекурсивным меню Ссылка на index.php'); } ?>

Ссылка на index1.php'); } ?>

Ссылка на index2.php'); } ?>

Ссылка на index3.php'); } ?>

Листинг 6. Файл header.php, содержащий нерекурсивное меню с использованием цикла $b) { if('/'.$a==$_SERVER['REQUEST_URI']) { $menu.='Неактивная ссылка на '.$b.'
'; } else { $menu.=''.$b.'
'; } } $menu = substr($menu,0,strlen($menu)); echo $menu; ?> -----------------------------------------------------------------------------------------------------------------