viagra online cialis online cheap viagra cheap viagra cialis levitra kamagra clomid viagra online cheap viagra 

Писане на плъгини/ + малко РНР

Богомил Шопов

конференция "Линукс за българи"

Въпроси?

това е тест

Защо да пиша плъгин?

това е тест

Примери и малко теория

# Име
# Описание
# автор
#
# Кога е създаден
# Дата на последна редакция
#
# Статус

Примери и малко теория

# Spisanie
# Mozilla plugin for spisanie.com (bulgarian language)
# by Bogomil Shopov 
#
# Created: February 24, 2005
# Latest update: February 24, 2005
#
# Status: Working

По нататък

<search 
 version="7.1" 
 name="име на плъгина"  
 description="описание" 
 action="къде се изпълнява търсенето" 
 searchForm="къде се намира формата за търсене"
 method="метод">

По нататък

<input name="sourceid" value="Mozilla-search">
 <input name="kwords" user="">
  
 <interpret 
 resultListStart="<!-- маркер за начало на списък -->"
 resultListEnd="<!-- маркер за край на списък -->"
 resultItemStart="<!-- маркер за начало на съдържание -->"
 resultItemEnd="<!-- маркер за край на съдържание -->">

</search>

и последно ...

<browser
 update="URL за опресняване" 
 updateIcon="икона на плъгина" 
 updateCheckDays="период">

как се инсталира?

как се инсталира?

function addEngine(name,ext,cat)
{
  if ((typeof window.sidebar == "object") && (typeof
  window.sidebar.addSearchEngine == "function"))
  {
       window.sidebar.addSearchEngine(
      "http://spisanie.com/"+name+".src",
      "http://spisanie.com/"+name+"."+ext,
      name,
      cat );
  }
  else
  {
    errorMsg(name,ext,cat);
  }
}

как се инсталира?

<a href="#1" onclick="addEngine('spisanie','jpg','tutorials');">
Инсталирай ме </a>

Вадете лаптопите, ще пишем код..

<search 
 version="7.1" 
 name="Linux-bg.org"  
 description="Linux for Bulgarians" 
 action="http://linux-bg.org/cgi-bin/y/index.pl" 
 searchForm="http://linux-bg.org/cgi-bin/y/index.pl"
 queryEncoding="windows-1251"
 queryCharset="windows-1251"
 method="GET">

oще малко код ...

 <input name="act" value="big_search">
 <input name="page" value="search"> 
 <input name="keywords" user="">
....

Ресурси

Факт: Mycroft is one of the most visited projects on mozdev.

Следва темата за РНР

Какво е РНР?

За какво се ползва?

За какво се ползва?

За какво няма да стане дума?

Нека да започваме

Стига толкова въпроси

Да - е поне някой знае ;)

Не - е поне никой незнае ;)

PHP-GTK

Инсталиране на PHP-GTK

Как изглежда код на едно приложение на PHP-GTK

if (!class_exists('gtk')) {
if (strtoupper(substr(PHP_OS, 0,3) == 'WIN'))
dl('php_gtk.dll');
else
dl('php_gtk.so');
}

function delete_event()
{
return false;
}

function shutdown()
{
print("Shutting down...\n");
gtk::main_quit();
}

Има и още ...

function hello()
{
global $window;
print "Hello World!\n";
$window->destroy();
}
$window = &new GtkWindow();
$window->connect('destroy', 'shutdown');
$window->connect('delete-event', 'delete_event');
$window->set_border_width(10);

$button = &new GtkButton('Hello World!');
$button->connect('clicked', 'hello');
$window->add($button);

$window->show_all();

gtk::main();

Да видим как изглежда


Сигурно може и по-добре

Нека да видим обаче какво може
да се прави с него

Комбинирането на екстеншъните на РНР със UI на GTK,
може да постигне 2 неща

Как ще е при Вас?



Винаги в първото , но след това неминуемо идва второто

WinBinder

Схема на работа на WinBinder

Пример за писане


include("../inc/winbinder.php");                                
wb_create_window(NULL, PopupWindow, "Hello", 480, 320);  
wb_main_loop();  

Повече за него, можете да видите:



http://www.hypervisual.com/
winbinder/index.php

Дали има и друг начин да пишем
'визуално'

PHP-NEWT

PHP-NEWT Пример

    newt_init ();
    newt_cls ();
    
    newt_draw_root_text (0, 0, "Test Mode Setup Utility 1.12");
    newt_push_help_line (null);
    newt_draw_root_text (-30, 0, "(c) 1999-2002 RedHat, Inc");

    newt_get_screen_size (&$rows, &$cols);
    
    newt_open_window ($rows/2-17, $cols/2-10, 34, 17, "Choose a Tool");

    $form = newt_form ();

    $list = newt_listbox (3, 2, 10);
    
    foreach (array (
        "Authentication configuration",
        "Firewall configuration",
        "Mouse configuration",
        "Network configuration",
        "Printer configuration",
        "System services") as $l_item)

PHP-NEWT Пример

    {
        newt_listbox_add_entry ($list, $l_item, $l_item);
    }

    $b1 = newt_button (5, 12, "Run Tool");
    $b2 = newt_button (21, 12, "Quit");
    
    newt_form_add_component ($form, $list);
    newt_form_add_components ($form, array($b1, $b2));

    newt_refresh ();
    newt_run_form ($form);

    newt_form_destroy ($f);
    newt_pop_window ();
    newt_finished ();

PHP-NEWT Резултат

PHP-NEWT Инсталиране

Не работи на Windows ;)))

PHP-NEWT Инсталиране

Не работи на Windows ;))) (пак)

Повече за него, можете да видите:



http://php-newt.sourceforge.net/

XML-RPC



XML-RPC



XML-RPC Заявка



POST /RPC2 HTTP/1.0
User-Agent: Frontier/5.1.2 (WinNT)
Host: betty.userland.com
Content-Type: text/xml
Content-length: 181

<?xml version="1.0"?>
 <methodCall> 
 <methodName>examples.getStateName</methodName>
  <params>
   <param>
      <value><i4>41</i4></value>
    </param> 
  </params> 
  </methodCall> 

XML-RPC:Услугата


<?php
$xmlrpc_methods = array();
$xmlrpc_methods['bogy.saberi'] = summ_Numbers;
$xmlrpc_methods['method_not_found'] = XMLRPC_method_not_found;

function summ_Numbers($a) {
         $summ[] = $a[0]+$a[1];
         XMLRPC_response(XMLRPC_prepare($summ),KD_XMLRPC_USERAGENT);
   
}

function XMLRPC_method_not_found($methodName){
    XMLRPC_error("2", "The method you requested, " . $methodName
        . ", was not found.", KD_XMLRPC_USERAGENT);
}
?>

XML-RPC: Сървъра


<?
require('inc/service.php');
require('inc/web_service_api.php');

$xmlrpc_request = XMLRPC_parse($GLOBALS['HTTP_RAW_POST_DATA']); 
$methodName = XMLRPC_getMethodName($xmlrpc_request);
$params = XMLRPC_getParams($xmlrpc_request); 
if(!isset($xmlrpc_methods[$methodName])){
   $xmlrpc_methods['method_not_found']($methodName);
}else
{
   $xmlrpc_methods[$methodName]($params); 	
}
?>

XML-RPC: Сървъра


<?php
 require('service.php');
 $fval="1";
 $sval="20";
 $s= XMLRPC_request("talk.spisanie.com", "/RPC/", "bogy.saberi",
  array(XMLRPC_prepare($fval), XMLRPC_prepare($sval)));
 echo "Result".$s[1][0];
?>

XML-RPC: Клиент


<?php
 require('service.php');
 $fval="1";
 $sval="20";
 $s= XMLRPC_request("talk.spisanie.com", "/RPC/", "bogy.saberi",
  array(XMLRPC_prepare($fval), XMLRPC_prepare($sval)));
 echo "Result".$s[1][0];
?>

Въпроси?


от мен за вас


Благодаря Ви, много!