04 developer




net2ftp help





Participate in the development!

Never worked on an open source software project before? Read Havoc Pennington's article Working on Free Software to find out what it's like.

If you're interested in helping with the development of net2ftp, feel free!
Even if you can't code, there are plenty of other things to do, such as:


design the user interface
create new logos and icons
test new versions
translate messages
write reviews
write documentation (for end users and developers)
maintain the downloadable zip files


Post a message on the forum or send an email to david AT net2ftp DOT com.



Overview of the code

net2ftp uses one script file (index.php) for all screens: login, browse, copy, ...

The functions are stored in different include files according to what they do:

homepage.inc.php contains functions to print the login page and net2ftp homepage
manage.inc.php contains the high-level functions to print the screens (copy, upload,...)
filesystem.inc.php contains the low-level functions that execute FTP commands or local filesystem commands
browse.inc.php contains all functions related to the Browse Screen (requesting the ftp_rawlist, parsing it, showing the output)
authorizations.inc.php contains functions to check the authorizations
html.inc.php contains functions which print the HTML header and footer
httpheaders.inc.php contains the code that is related to sending HTTP headers (needed for example to trigger the Save As popup of your browser, when you want to download a file)
registerglobals.inc.php registers the variables and does some preliminary checking


Two state variables (state and state2) determine which screen is shown.
Below is some sample code taken from index.php.



----- sample code from index.php -----

switch ($state) {
// When $state is not defined, it is set to "login" to show the Login Screen

case "login":
// Show the login screen
printLoginForm();
break;
case "browse":
// Browse screen
browse($state2, $directory, $FormAndFieldName, $browse_details);
break;
case "manage":
// Actions: copy, upload, rename, ...
// Almost all actions have 2 screens: a form and a result screen.
// Both are handled by the same function.
manage($state2, $directory, $entry, $selectedEntries, $newNames, $dirorfile, $formresult, $chmodStrings, $targetDirectories, $copymovedelete, $text, $wysiwyg, $uploadedFilesArray, $uploadedArchivesArray, $use_folder_names, $command, $to, $message);
break;
case "bookmark":
// Bookmark screen
bookmark($directory, $url, $text);
break;
case "logout":
printLoginForm();
break;
default:
$resultArray['message'] = "Unexpected state string. Exiting.";
printErrorMessage($resultArray, "exit", "");
break;
}







The login information and state variables are passed from screen to screen via forms.
There is a function to print the login information in an HTML form: printLoginInfo().



Sessions and cookies

For the moment net2ftp doesn't use sessions.
This was to avoid session timeouts after 20 or 30 minutes; you can work without worrying about it for as long as you want.
In the meanwhile some users have pointed out on the forum how to avoid session timeouts, but I don't know what benefit sessions would bring.
There isn't really any information that has to be stored during a session.



Cookies are used to store the last FTP server, username and directory used.



Settings

net2ftp can be configured using the settings.inc.php and settings_authorizations.inc.php files.
When a function needs to access a variable, this variable is declared as global in the beginning of the function.
These variables are never changed during the execution of the program.



Icons

net2ftp uses 2 icon sets: Nuvola and Noia.
Which icon set is used depends on the skin; all the code behind icons is in the /includes/skins.inc.php file.

There are 4 kinds of icons within net2ftp:


Action icons: when you press on them, an action is triggered.
There is an onMouseOver effect and onClick event.
These icons are 32x32 pixels.


Mime icons: they indicate which kind of file is shown in the browse view.
No onMouseOver effect.
These icons are 16x16 pixels.


Settings icons (not yet in use): they indicate if a setting is on or off -- for example if the FTP transfer mode is ASCII or BINARY.
When the mode is ASCII, the ASCII icon is shown with a border, and there is no onMouseOver effect.
The BINARY icon is shown without a border and there is an onMouseOver effect.
The code for this FTP transfer mode is already written but not yet in use.


Title icons (not yet in use): they will be placed next to the title on action screens.





In (recent) Mozilla-based browsers, PNG images with a transparent background are shown fine.
In Internet Explorer however they are not: the transparent regions are grey.
Microsoft has issued a note on how to fix this: http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294714

The onMouseOver effect increases the icon size from 32x32 to 34x34 pixels.
To avoid that the rest of the content would move, there is margin of 2px when the icon is 32x32, and a margin of 0px when it is 34x34.





Requested features

See the TO DO file.






Wyszukiwarka

Podobne podstrony:
04 Development of planar SOFC device using screen printing technology
04 (131)
2007 01 Web Building the Aptana Free Developer Environment for Ajax
2006 04 Karty produktów
developer
04 Prace przy urzadzeniach i instalacjach energetycznych v1 1
04 How The Heart Approaches What It Yearns
str 04 07 maruszewski
[W] Badania Operacyjne Zagadnienia transportowe (2009 04 19)
Plakat WEGLINIEC Odjazdy wazny od 14 04 27 do 14 06 14
MIERNICTWO I SYSTEMY POMIAROWE I0 04 2012 OiO
r07 04 ojqz7ezhsgylnmtmxg4rpafsz7zr6cfrij52jhi
04 kruchosc odpuszczania rodz2
Rozdział 04 System obsługi przerwań sprzętowych

więcej podobnych podstron