This commit is contained in:
Laurent Destailleur 2012-03-19 17:18:11 +01:00
parent 5759523c7a
commit 3383d314c9
63 changed files with 2674 additions and 2589 deletions

View File

@ -205,7 +205,7 @@ print '</tr>';
print '<tr class="impair">';
print '<td width="100">'.$langs->trans("Title").'</td>';
print '<td><input type="text" name="external_rss_title_'.($lastexternalrss+1).'" value="'.@constant("EXTERNAL_RSS_TITLE_" . ($lastexternalrss+1)).'" size="64"></td>';
print '<td>April,<br>LinuxFR,<br>Lolix</td>';
print '<td>An interesting RSS feed</td>';
print '</tr>';
print '<tr class="pair">';

View File

@ -8,17 +8,17 @@
* Copyright (C) 2008 Raphael Bertrand <raphael.bertrand@resultic.fr>
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2010-2011 Philippe Grand <philippe.grand@atoo-net.com>
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@ -206,8 +206,8 @@ class Propal extends CommonObject
/**
* Adding line of fixed discount in the proposal in DB
*
* @param int @idremise Id of fixed discount
* @return int >0 si ok, <0 si ko
* @param int $idremise Id of fixed discount
* @return int >0 if OK, <0 if KO
*/
function insert_discount($idremise)
{
@ -723,22 +723,22 @@ class Propal extends CommonObject
}
$result = $this->addline(
$this->id,
$this->lines[$i]->desc,
$this->lines[$i]->subprice,
$this->lines[$i]->qty,
$this->lines[$i]->tva_tx,
$this->lines[$i]->localtax1_tx,
$this->lines[$i]->localtax2_tx,
$this->lines[$i]->fk_product,
$this->lines[$i]->remise_percent,
'HT',
0,
0,
$this->lines[$i]->product_type,
$this->lines[$i]->rang,
$this->lines[$i]->special_code,
$fk_parent_line
$this->id,
$this->lines[$i]->desc,
$this->lines[$i]->subprice,
$this->lines[$i]->qty,
$this->lines[$i]->tva_tx,
$this->lines[$i]->localtax1_tx,
$this->lines[$i]->localtax2_tx,
$this->lines[$i]->fk_product,
$this->lines[$i]->remise_percent,
'HT',
0,
0,
$this->lines[$i]->product_type,
$this->lines[$i]->rang,
$this->lines[$i]->special_code,
$fk_parent_line
);
if ($result < 0)
@ -828,6 +828,7 @@ class Propal extends CommonObject
/**
* Insert into DB a proposal object completely defined by its data members (ex, results from copy).
*
* @param User $user User that create
* @return int Id of the new object if ok, <0 if ko
* @see create

View File

@ -47,7 +47,8 @@ class box_external_rss extends ModeleBoxes
/**
* Constructor
*
* @param DoliDB $db Database handler
* @param DoliDB $db Database handler
* @param string $param More parameters
*/
function box_external_rss($db,$param)
{

View File

@ -39,21 +39,22 @@ class box_prospect extends ModeleBoxes
var $depends = array("societe");
var $db;
var $param;
var $info_box_head = array();
var $info_box_contents = array();
/**
* Constructor
*
* @param DoliDB $db Database handler
*/
function box_prospect($DB,$param)
function box_prospect($db)
{
global $langs;
$langs->load("boxes");
$this->db=$DB;
$this->param=$param;
$this->db=$db;
$this->boxlabel=$langs->transnoentitiesnoconv("BoxLastProspects");
}

View File

@ -46,7 +46,7 @@ class Canvas
/**
* Constructor
*
* @param DoliDB $DB Database handler
* @param DoliDB $db Database handler
* @param string $actiontype Action type ('create', 'view', 'edit', 'list')
*/
function __construct($db, $actiontype='view')
@ -129,7 +129,7 @@ class Canvas
* @return int 0=Canvas template file does not exist, 1=Canvas template file exists
*/
function displayCanvasExists($action)
{
{
if (empty($this->template_dir)) return 0;
if (file_exists($this->template_dir.($this->card?$this->card.'_':'').$this->action.'.tpl.php')) return 1;

View File

@ -38,8 +38,9 @@ abstract class CommonDocGenerator
/**
* Define array with couple subtitution key => subtitution value
*
* @param $user User
* @param $outputlangs Language object for output
* @param User $user User
* @param Translate $outputlangs Language object for output
* @return array Array of substitution key->code
*/
function get_substitutionarray_user($user,$outputlangs)
{
@ -61,8 +62,9 @@ abstract class CommonDocGenerator
/**
* Define array with couple subtitution key => subtitution value
*
* @param $mysoc
* @param $outputlangs Language object for output
* @param Societe $mysoc Object thirdparty
* @param Translate $outputlangs Language object for output
* @return array Array of substitution key->code
*/
function get_substitutionarray_mysoc($mysoc,$outputlangs)
{
@ -103,8 +105,9 @@ abstract class CommonDocGenerator
/**
* Define array with couple subtitution key => subtitution value
*
* @param $object
* @param $outputlangs Language object for output
* @param Object $object Object
* @param Translate $outputlangs Language object for output
* @return array Array of substitution key->code
*/
function get_substitutionarray_thirdparty($object,$outputlangs)
{

View File

@ -2433,8 +2433,8 @@ abstract class CommonObject
*
* @param string $action GET/POST action
* @param array $line Selected object line to output
* @param string $var Is it a an odd line
* @param int $num Number of line
* @param string $var Is it a an odd line (true)
* @param int $num Number of line (0)
* @param int $i I
* @param int $dateSelector 1=Show also date range input fields
* @param string $seller Object of seller third party
@ -2443,7 +2443,7 @@ abstract class CommonObject
* @param HookManager $hookmanager Hook manager
* @return void
*/
function printObjectLine($action,$line,$var=true,$num=0,$i=0,$dateSelector=0,$seller,$buyer,$selected=0,$hookmanager=false)
function printObjectLine($action,$line,$var,$num,$i,$dateSelector,$seller,$buyer,$selected=0,$hookmanager=false)
{
global $conf,$langs,$user;
global $form,$bc,$bcdd;

View File

@ -35,7 +35,7 @@ class GenericObject extends CommonObject
/**
* Constructor
*
* @param DoliDB $DB Database handler
* @param DoliDB $db Database handler
*/
function __construct($db)
{

View File

@ -44,7 +44,7 @@ class HookManager
/**
* Constructor
*
* @param DoliDB $DB Handler acces base de donnees
* @param DoliDB $db Handler acces base de donnees
*/
function __construct($db)
{

View File

@ -389,7 +389,7 @@ class Form
* Show a text with a picto and a tooltip on picto
*
* @param string $text Text to show
* @param string $htmltooltip Content of tooltip
* @param string $htmltext Content of tooltip
* @param int $direction 1=Icon is after text, -1=Icon is before text, 0=no icon
* @param string $type Type of picto (info, help, warning, superadmin...)
* @param string $extracss Add a CSS style to td tags
@ -651,7 +651,7 @@ class Form
* @param int $showempty Add an empty field
* @param int $showtype Show third party type in combolist (customer, prospect or supplier)
* @param int $forcecombo Force to use combo box
@param array $event Event options
* @param array $event Event options
* @return string HTML string with
*/
function select_company($selected='',$htmlname='socid',$filter='',$showempty=0, $showtype=0, $forcecombo=0, $event=array())
@ -811,7 +811,7 @@ class Form
* @param int $socid Id ot third party or 0 for all
* @param string $selected Id contact pre-selectionne
* @param string $htmlname Name of HTML field ('none' for a not editable field)
* @param int $show_empty 0=no empty value, 1=add an empty value
* @param int $showempty 0=no empty value, 1=add an empty value
* @param string $exclude List of contacts id to exclude
* @param string $limitto Disable answers that are not id in this array list
* @param string $showfunction Add function into label
@ -822,9 +822,9 @@ class Form
function selectcontacts($socid,$selected='',$htmlname='contactid',$showempty=0,$exclude='',$limitto='',$showfunction=0, $moreclass='', $options_only=false)
{
global $conf,$langs;
$langs->load('companies');
$out='';
// On recherche les societes
@ -901,7 +901,7 @@ class Form
{
$out.= '</select>';
}
$this->num = $num;
return $out;
}
@ -1055,6 +1055,7 @@ class Form
* @param int $status -1=Return all products, 0=Products not on sell, 1=Products on sell
* @param int $finished 2=all, 1=finished, 0=raw material
* @param string $selected_input_value Value of preselected input text (with ajax)
* @param int $hide_label Hide label
* @return void
*/
function select_produits($selected='',$htmlname='productid',$filtertype='',$limit=20,$price_level=0,$status=1,$finished=2,$selected_input_value='',$hidelabel=0)
@ -1306,13 +1307,13 @@ class Form
* Return list of products for customer (in Ajax if Ajax activated or go to select_produits_fournisseurs_do)
*
* @param int $socid Id third party
* @param string $selected Preselected product
* @param string $htmlname Name of HTML Select
* @param string $filtertype Filter on product type (''=nofilter, 0=product, 1=service)
* @param string $filtre For a SQL filter
* @param string $selected Preselected product
* @param string $htmlname Name of HTML Select
* @param string $filtertype Filter on product type (''=nofilter, 0=product, 1=service)
* @param string $filtre For a SQL filter
* @return void
*/
function select_produits_fournisseurs($socid,$selected='',$htmlname='productid',$filtertype='',$filtre)
function select_produits_fournisseurs($socid,$selected='',$htmlname='productid',$filtertype='',$filtre='')
{
global $langs,$conf;
global $price_level, $status, $finished;
@ -1576,7 +1577,7 @@ class Form
* @param int $showempty Add an empty field
* @return void
*/
function select_address($selected='', $socid, $htmlname='address_id',$showempty=0)
function select_address($selected, $socid, $htmlname='address_id',$showempty=0)
{
// On recherche les utilisateurs
$sql = "SELECT a.rowid, a.label";
@ -2064,6 +2065,7 @@ class Form
* @param string $select_name HTML field name
* @param int $maxlength Maximum length for labels
* @param int $excludeafterid Exclude all categories after this leaf in category tree.
* @return void
*/
function select_all_categories($type, $selected='', $select_name="", $maxlength=64, $excludeafterid=0)
{
@ -2606,7 +2608,7 @@ class Form
*
* @param string $page Page URL where form is shown
* @param int $selected Value pre-selected
* @param string $htmlname Nom du formulaire select. Si none, non modifiable
* @param string $htmlname Nom du formulaire select. Si 'none', non modifiable. Example 'remise_id'.
* @param int $socid Third party id
* @param float $amount Total amount available
* @param string $filter SQL filter on discounts
@ -2614,7 +2616,7 @@ class Form
* @param string $more More string to add
* @return void
*/
function form_remise_dispo($page, $selected='', $htmlname='remise_id', $socid, $amount, $filter='', $maxvalue=0, $more='')
function form_remise_dispo($page, $selected, $htmlname, $socid, $amount, $filter='', $maxvalue=0, $more='')
{
global $conf,$langs;
if ($htmlname != "none")
@ -2728,7 +2730,7 @@ class Form
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
print '<tr><td>';
print $this->select_company($selected , $htmlname);
print $this->select_company($selected, $htmlname);
print '</td>';
print '<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
print '</tr></table></form>';
@ -2855,7 +2857,7 @@ class Form
* @param Societe $societe_acheteuse Object societe acheteuse
* @param int $idprod Id product
* @param int $info_bits Miscellaneous information on line
* @param type ''=Unknown, 0=Product, 1=Service (Used if idprod not defined)
* @param string $type ''=Unknown, 0=Product, 1=Service (Used if idprod not defined)
* Si vendeur non assujeti a TVA, TVA par defaut=0. Fin de regle.
* Si le (pays vendeur = pays acheteur) alors la TVA par defaut=TVA du produit vendu. Fin de regle.
* Si (vendeur et acheteur dans Communaute europeenne) et bien vendu = moyen de transports neuf (auto, bateau, avion), TVA par defaut=0 (La TVA doit etre paye par l'acheteur au centre d'impots de son pays et non au vendeur). Fin de regle.
@ -3048,7 +3050,7 @@ class Form
{
$return.= $this->error;
}
$this->num = $num;
return $return;
}
@ -3428,7 +3430,7 @@ class Form
/**
* Return an html string with a select combo box to choose yes or no
*
* @param string $name Name of html select field
* @param string $htmlname Name of html select field
* @param string $value Pre-selected value
* @param int $option 0 return yes/no, 1 return 1/0
* @param bool $disabled true or false
@ -3649,7 +3651,7 @@ class Form
{
global $dolibarr_main_url_root;
$ret.='<!-- Put link to gravatar -->';
$ret.='<img alt="Photo found on Gravatar" title="Photo Gravatar.com - email '.$email.'" border="0" width="'.$width.'" src="http://www.gravatar.com/avatar/'.dol_hash($email).'?s='.$width.'&d='.urlencode( dol_buildpath('/theme/common/nophoto.jpg',2) ).'">';
$ret.='<img alt="Photo found on Gravatar" title="Photo Gravatar.com - email '.$email.'" border="0" width="'.$width.'" src="http://www.gravatar.com/avatar/'.dol_hash($email).'?s='.$width.'&d='.urlencode(dol_buildpath('/theme/common/nophoto.jpg',2)).'">';
}
else
{

View File

@ -66,7 +66,7 @@ class FormFile
if ($conf->global->MAIN_USE_JQUERY_FILEUPLOAD)
{
return $this->_form_ajaxfileupload($object);
return $this->_formAjaxFileUpload($object);
}
else
{
@ -779,7 +779,7 @@ class FormFile
* @param Object $object Object to use
* @return void
*/
private function _form_ajaxfileupload($object)
private function _formAjaxFileUpload($object)
{
global $langs;

View File

@ -71,7 +71,7 @@ class FormMail
/**
* Constructor
*
* @param DoliDB $DB Database handler
* @param DoliDB $db Database handler
*/
function FormMail($db)
{

View File

@ -30,6 +30,7 @@ class InfoBox
/**
* Return array of boxes qualified for area and user
*
* @param DoliDB $db Database handler
* @param string $mode 'available' or 'activated'
* @param string $zone Name or area (-1 for all, 0 for Homepage, 1 for xxx, ...)
* @param User $user Objet user to filter (used only if $zone >= 0)
@ -140,10 +141,11 @@ class InfoBox
/**
* Save order of boxes for area and user
*
* @param string $zone Name of area (0 for Homepage, ...)
* @param string $boxorder List of boxes with correct order 'A:123,456,...-B:789,321...'
* @param int $userid Id of user
* @return int <0 if KO, >= 0 if OK
* @param DoliDB $db Database handler
* @param string $zone Name of area (0 for Homepage, ...)
* @param string $boxorder List of boxes with correct order 'A:123,456,...-B:789,321...'
* @param int $userid Id of user
* @return int <0 if KO, >= 0 if OK
*/
static function saveboxorder($db, $zone,$boxorder,$userid=0)
{

View File

@ -50,7 +50,7 @@ class Interfaces
* @param string $action Trigger event code
* @param Object $object Objet concern
* @param User $user Objet user
* @param Lang $lang Objet lang
* @param Lang $langs Objet lang
* @param Conf $conf Objet conf
* @return int Nb of triggers ran if no error, -Nb of triggers with errors otherwise.
*/

View File

@ -141,7 +141,7 @@ class Ldap
* anonymously, it creates an error code of -1. Returns true if connected,
* false if failed. Takes an array of possible servers - if one doesn't work,
* it tries the next and so on.
*
*
* @return void
* @deprecated Utiliser connect_bind a la place
*/
@ -286,7 +286,7 @@ class Ldap
/**
* Simply closes the connection set up earlier.
* Returns true if OK, false if there was an error.
*
*
* @return boolean true or false
*/
function close()
@ -304,7 +304,7 @@ class Ldap
/**
* Anonymously binds to the connection. After this is done,
* queries and searches can be done - but read-only.
*
*
* @return boolean true or false
*/
function bind()
@ -329,12 +329,12 @@ class Ldap
* like "uid=jbloggs,ou=People,dc=foo,dc=com".
*
* @param string $bindDn DN
* @param string $pass Password
* @param string $pass Password
* @return boolean true or false
*/
function bindauth($bindDn,$pass)
{
if (! $this->result = @ldap_bind( $this->connection,$bindDn,$pass))
if (! $this->result = @ldap_bind($this->connection, $bindDn, $pass))
{
$this->ldapErrorCode = ldap_errno($this->connection);
$this->ldapErrorText = ldap_error($this->connection);
@ -349,7 +349,7 @@ class Ldap
/**
* Unbind du serveur ldap.
*
*
* @return boolean true or false
*/
function unbind()
@ -365,7 +365,7 @@ class Ldap
/**
* Verification de la version du serveur ldap.
*
*
* @return string version
*/
function getVersion()
@ -377,7 +377,7 @@ class Ldap
/**
* Change ldap protocol version to use.
*
*
* @return string version
*/
function setVersion() {
@ -388,7 +388,7 @@ class Ldap
/**
* changement du referrals.
*
*
* @return string referrals
*/
function setReferrals() {
@ -401,7 +401,7 @@ class Ldap
/**
* Add a LDAP entry
* Ldap object connect and bind must have been done
*
*
* @param string $dn DN entry key
* @param string $info Attributes array
* @param User $user Objet user that create
@ -453,7 +453,7 @@ class Ldap
/**
* Modify a LDAP entry
* Ldap object connect and bind must have been done
*
*
* @param string $dn DN entry key
* @param string $info Attributes array
* @param string $user Objet user that modify
@ -505,7 +505,7 @@ class Ldap
/**
* Modify a LDAP entry (to use if dn != olddn)
* Ldap object connect and bind must have been done
*
*
* @param string $dn DN entry key
* @param string $info Attributes array
* @param User $user Objet user that delete
@ -560,7 +560,7 @@ class Ldap
/**
* Delete a LDAP entry
* Ldap object connect and bind must have been done
*
*
* @param string $dn DN entry key
* @return int <0 if KO, >0 if OK
*/
@ -593,7 +593,7 @@ class Ldap
/**
* Build a LDAP message
*
*
* @param string $dn DN entry key
* @param string $info Attributes array
* @return string Content of file
@ -635,7 +635,7 @@ class Ldap
/**
* Dump a LDAP message to ldapinput.in file
*
*
* @param string $dn DN entry key
* @param string $info Attributes array
* @return int <0 if KO, >0 if OK
@ -672,7 +672,7 @@ class Ldap
/**
* Add a LDAP attribute in entry
* Ldap object connect and bind must have been done
*
*
* @param string $dn DN entry key
* @param string $info Attributes array
* @param User $user Objet user that create
@ -724,7 +724,7 @@ class Ldap
/**
* Update a LDAP attribute in entry
* Ldap object connect and bind must have been done
*
*
* @param string $dn DN entry key
* @param string $info Attributes array
* @param User $user Objet user that create
@ -776,7 +776,7 @@ class Ldap
/**
* Delete a LDAP attribute in entry
* Ldap object connect and bind must have been done
*
*
* @param string $dn DN entry key
* @param string $info Attributes array
* @param User $user Objet user that create
@ -827,10 +827,10 @@ class Ldap
/**
* Returns an array containing attributes and values for first record
*
*
* @param string $dn DN entry key
* @param string $filter Filter
* @return int <0 if KO, >0 if OK
* @return int <0 if KO, >0 if OK
*/
function getAttribute($dn,$filter)
{
@ -859,7 +859,7 @@ class Ldap
}
// Get values
if (! $values = ldap_get_attributes( $this->connection, $entry))
if (! $values = ldap_get_attributes($this->connection, $entry))
{
$this->ldapErrorCode = ldap_errno($this->connection);
$this->ldapErrorText = ldap_error($this->connection);
@ -872,7 +872,7 @@ class Ldap
/**
* Returns an array containing values for an attribute and for first record matching filterrecord
*
*
* @param string $filterrecord Record
* @param string $attribute Attributes
* @return void
@ -898,7 +898,7 @@ class Ldap
}
// Get values
if (! $values = @ldap_get_values( $this->connection, $entry, $attribute))
if (! $values = @ldap_get_values($this->connection, $entry, $attribute))
{
$this->ldapErrorCode = ldap_errno($this->connection);
$this->ldapErrorText = ldap_error($this->connection);
@ -912,7 +912,7 @@ class Ldap
/**
* Returns an array containing a details of elements
* ldapsearch -LLLx -hlocalhost -Dcn=admin,dc=parinux,dc=org -w password -b "ou=adherents,ou=people,dc=parinux,dc=org" userPassword
*
*
* @param string $search Valeur champ cle recherche, sinon '*' pour tous.
* @param string $userDn DN (Ex: ou=adherents,ou=people,dc=parinux,dc=org)
* @param string $useridentifier Name of key field (Ex: uid)
@ -1012,8 +1012,9 @@ class Ldap
* Required by Active Directory
*
* @param string $hex
* @return string little endian
*/
function littleEndian($hex)
function littleEndian($hex)
{
for ($x=dol_strlen($hex)-2; $x >= 0; $x=$x-2) {
$result .= substr($hex,$x,2);
@ -1023,10 +1024,11 @@ class Ldap
/**
* Recupere le SID de l'utilisateur
* Recupere le SID de l'utilisateur
* Required by Active Directory
*
*
* @param string $ldapuser Login de l'utilisateur
* @return string Sid
*/
function getObjectSid($ldapUser)
{
@ -1056,7 +1058,7 @@ class Ldap
if (!$entry)
{
// Si pas de r<EFBFBD>sultat on cherche dans le domaine
// Si pas de resultat on cherche dans le domaine
$searchDN = $this->domain;
$i++;
}
@ -1069,7 +1071,7 @@ class Ldap
if ($entry)
{
$ldapBinary = ldap_get_values_len ($this->connection, $entry, "objectsid");
$ldapBinary = ldap_get_values_len($this->connection, $entry, "objectsid");
$SIDText = $this->binSIDtoText($ldapBinary[0]);
return $SIDText;
}
@ -1083,11 +1085,11 @@ class Ldap
/**
* Returns the textual SID
* Indispensable pour Active Directory
*
*
* @param string $binsid Binary SID
* @return string Textual SID
*/
function binSIDtoText($binsid)
function binSIDtoText($binsid)
{
$hex_sid=bin2hex($binsid);
$rev = hexdec(substr($hex_sid,0,2)); // Get revision-part of SID
@ -1109,9 +1111,9 @@ class Ldap
* car conflit majuscule-minuscule. A n'utiliser que pour les pages
* 'Fiche LDAP' qui affiche champ lisibles par defaut.
*
* @param checkDn DN de recherche (Ex: ou=users,cn=my-domain,cn=com)
* @param filter Filtre de recherche (ex: (sn=nom_personne) )
* @return array Tableau des reponses (cle en minuscule-valeur)
* @param string $checkDn DN de recherche (Ex: ou=users,cn=my-domain,cn=com)
* @param string $filter Filtre de recherche (ex: (sn=nom_personne) )
* @return array Tableau des reponses (cle en minuscule-valeur)
*/
function search($checkDn, $filter)
{
@ -1143,7 +1145,7 @@ class Ldap
/**
* Load all attribute of a LDAP user
*
*
* @param User $user User to search for. Not used if a filter is provided.
* @param string $filter Filter for search. Must start with &.
* Examples: &(objectClass=inetOrgPerson) &(objectClass=user)(objectCategory=person) &(isMemberOf=cn=Sales,ou=Groups,dc=opencsi,dc=com)
@ -1238,10 +1240,10 @@ class Ldap
/**
* Returns the correct user identifier to use, based on the ldap server type
*
* @return string Login
*
* @return string Login
*/
function getUserIdentifier()
function getUserIdentifier()
{
if ($this->serverType == "activedirectory") {
return $this->attr_sambalogin;
@ -1256,7 +1258,7 @@ class Ldap
* @param string $uacf UACF
* @return void
*/
function parseUACF($uacf)
function parseUACF($uacf)
{
//All flags array
$flags = array( "TRUSTED_TO_AUTH_FOR_DELEGATION" => 16777216,
@ -1300,7 +1302,7 @@ class Ldap
* @param string $samtype SamType
* @return string Sam string
*/
function parseSAT($samtype)
function parseSAT($samtype)
{
$stypes = array( 805306368 => "NORMAL_ACCOUNT",
805306369 => "WORKSTATION_TRUST",

View File

@ -25,18 +25,18 @@ class RssParser
var $db;
var $error;
protected $_format='';
protected $_urlRSS;
protected $_language;
protected $_generator;
protected $_copyright;
protected $_lastbuilddate;
protected $_imageurl;
protected $_link;
protected $_title;
protected $_description;
protected $_lastfetchdate; // Last successful fetch
protected $_rssarray=array();
private $_format='';
private $_urlRSS;
private $_language;
private $_generator;
private $_copyright;
private $_lastbuilddate;
private $_imageurl;
private $_link;
private $_title;
private $_description;
private $_lastfetchdate; // Last successful fetch
private $_rssarray=array();
/**
* getFormat

View File

@ -1,197 +1,197 @@
<?php
/* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* Source modified from part of fckeditor (http://www.fckeditor.net)
* retreived as GPL v2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require('../../../../main.inc.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>FCKeditor - Resources Browser</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/fckxml.js"></script>
<script type="text/javascript">
// Automatically detect the correct document.domain (#1919).
(function()
{
var d = document.domain ;
while ( true )
{
// Test if we can access a parent property.
try
{
var test = window.opener.document.domain ;
break ;
}
catch( e )
{}
// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
d = d.replace( /.*?(?:\.|$)/, '' );
if ( d.length == 0 )
break ; // It was not able to detect the domain.
try
{
document.domain = d ;
}
catch (e)
{
break ;
}
}
})();
function GetUrlParam( paramName )
{
var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' );
var oMatch = oRegex.exec( window.top.location.search );
if ( oMatch && oMatch.length > 1 )
return decodeURIComponent( oMatch[1] );
else
return '' ;
}
var oConnector = new Object();
oConnector.CurrentFolder = '/' ;
var sConnUrl = GetUrlParam( 'Connector' );
// Gecko has some problems when using relative URLs (not starting with slash).
if ( sConnUrl.substr(0,1) != '/' && sConnUrl.indexOf( '://' ) < 0 )
sConnUrl = window.location.href.replace( /browser.php.*$/, '' ) + sConnUrl ;
oConnector.ConnectorUrl = sConnUrl + ( sConnUrl.indexOf('?') != -1 ? '&' : '?' );
var sServerPath = GetUrlParam( 'ServerPath' );
if ( sServerPath.length > 0 )
oConnector.ConnectorUrl += 'ServerPath=' + encodeURIComponent( sServerPath ) + '&' ;
oConnector.ResourceType = GetUrlParam( 'Type' );
oConnector.ShowAllTypes = ( oConnector.ResourceType.length == 0 );
if ( oConnector.ShowAllTypes )
oConnector.ResourceType = 'File' ;
oConnector.SendCommand = function( command, params, callBackFunction )
{
var sUrl = this.ConnectorUrl + 'Command=' + command ;
sUrl += '&Type=' + this.ResourceType ;
sUrl += '&CurrentFolder=' + encodeURIComponent( this.CurrentFolder );
if ( params ) sUrl += '&' + params ;
// Add a random salt to avoid getting a cached version of the command execution
sUrl += '&uuid=' + new Date().getTime();
var oXML = new FCKXml();
if ( callBackFunction )
oXML.LoadUrl( sUrl, callBackFunction ); // Asynchronous load.
else
return oXML.LoadUrl( sUrl );
return null ;
}
oConnector.CheckError = function( responseXml )
{
var iErrorNumber = 0 ;
var oErrorNode = responseXml.SelectSingleNode( 'Connector/Error' );
if ( oErrorNode )
{
iErrorNumber = parseInt( oErrorNode.attributes.getNamedItem('number').value, 10 );
switch ( iErrorNumber )
{
case 0 :
break ;
case 1 : // Custom error. Message placed in the "text" attribute.
alert( oErrorNode.attributes.getNamedItem('text').value );
break ;
case 101 :
alert( 'Folder already exists' );
break ;
case 102 :
alert( 'Invalid folder name' );
break ;
case 103 :
alert( 'You have no permissions to create the folder' );
break ;
case 110 :
alert( 'Unknown error creating folder' );
break ;
default :
alert( 'Error on your request. Error number: ' + iErrorNumber );
break ;
}
}
return iErrorNumber ;
}
var oIcons = new Object();
oIcons.AvailableIconsArray = [
'ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js',
'mdb','mp3','pdf','png','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ;
oIcons.AvailableIcons = new Object();
for ( var i = 0 ; i < oIcons.AvailableIconsArray.length ; i++ )
oIcons.AvailableIcons[ oIcons.AvailableIconsArray[i] ] = true ;
oIcons.GetIcon = function( fileName )
{
var sExtension = fileName.substr( fileName.lastIndexOf('.') + 1 ).toLowerCase();
if ( this.AvailableIcons[ sExtension ] == true )
return sExtension ;
else
return 'default.icon' ;
}
function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
{
if (errorNumber == "1")
window.frames['frmUpload'].OnUploadCompleted( errorNumber, customMsg );
else
window.frames['frmUpload'].OnUploadCompleted( errorNumber, fileName );
}
</script>
</head>
<frameset cols="150,*" framespacing="3" border="1" style="border: 2px solid #CCCCCC;">
<frame name="frmFolders" src="frmfolders.php" scrolling="auto" frameborder="1">
<frameset rows="50,*,50" framespacing="0">
<frame name="frmActualFolder" src="frmactualfolder.php" scrolling="no" frameborder="0">
<frame name="frmResourcesList" src="frmresourceslist.php" scrolling="auto" frameborder="0">
<frameset cols="150,*,0" framespacing="0" border="0">
<frame name="frmCreateFolder" src="frmcreatefolder.php" scrolling="no" frameborder="0">
<frame name="frmUpload" src="frmupload.php" scrolling="no" frameborder="0">
<frame name="frmUploadWorker" src="javascript:void(0)" scrolling="no" frameborder="0">
</frameset>
</frameset>
</frameset>
</html>
<?php
/* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* Source modified from part of fckeditor (http://www.fckeditor.net)
* retreived as GPL v2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require('../../../../main.inc.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>FCKeditor - Resources Browser</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/fckxml.js"></script>
<script type="text/javascript">
// Automatically detect the correct document.domain (#1919).
(function()
{
var d = document.domain ;
while ( true )
{
// Test if we can access a parent property.
try
{
var test = window.opener.document.domain ;
break ;
}
catch( e )
{}
// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
d = d.replace( /.*?(?:\.|$)/, '' );
if ( d.length == 0 )
break ; // It was not able to detect the domain.
try
{
document.domain = d ;
}
catch (e)
{
break ;
}
}
})();
function GetUrlParam( paramName )
{
var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' );
var oMatch = oRegex.exec( window.top.location.search );
if ( oMatch && oMatch.length > 1 )
return decodeURIComponent( oMatch[1] );
else
return '' ;
}
var oConnector = new Object();
oConnector.CurrentFolder = '/' ;
var sConnUrl = GetUrlParam( 'Connector' );
// Gecko has some problems when using relative URLs (not starting with slash).
if ( sConnUrl.substr(0,1) != '/' && sConnUrl.indexOf( '://' ) < 0 )
sConnUrl = window.location.href.replace( /browser.php.*$/, '' ) + sConnUrl ;
oConnector.ConnectorUrl = sConnUrl + ( sConnUrl.indexOf('?') != -1 ? '&' : '?' );
var sServerPath = GetUrlParam( 'ServerPath' );
if ( sServerPath.length > 0 )
oConnector.ConnectorUrl += 'ServerPath=' + encodeURIComponent( sServerPath ) + '&' ;
oConnector.ResourceType = GetUrlParam( 'Type' );
oConnector.ShowAllTypes = ( oConnector.ResourceType.length == 0 );
if ( oConnector.ShowAllTypes )
oConnector.ResourceType = 'File' ;
oConnector.SendCommand = function( command, params, callBackFunction )
{
var sUrl = this.ConnectorUrl + 'Command=' + command ;
sUrl += '&Type=' + this.ResourceType ;
sUrl += '&CurrentFolder=' + encodeURIComponent( this.CurrentFolder );
if ( params ) sUrl += '&' + params ;
// Add a random salt to avoid getting a cached version of the command execution
sUrl += '&uuid=' + new Date().getTime();
var oXML = new FCKXml();
if ( callBackFunction )
oXML.LoadUrl( sUrl, callBackFunction ); // Asynchronous load.
else
return oXML.LoadUrl( sUrl );
return null ;
}
oConnector.CheckError = function( responseXml )
{
var iErrorNumber = 0 ;
var oErrorNode = responseXml.SelectSingleNode( 'Connector/Error' );
if ( oErrorNode )
{
iErrorNumber = parseInt( oErrorNode.attributes.getNamedItem('number').value, 10 );
switch ( iErrorNumber )
{
case 0 :
break ;
case 1 : // Custom error. Message placed in the "text" attribute.
alert( oErrorNode.attributes.getNamedItem('text').value );
break ;
case 101 :
alert( 'Folder already exists' );
break ;
case 102 :
alert( 'Invalid folder name' );
break ;
case 103 :
alert( 'You have no permissions to create the folder' );
break ;
case 110 :
alert( 'Unknown error creating folder' );
break ;
default :
alert( 'Error on your request. Error number: ' + iErrorNumber );
break ;
}
}
return iErrorNumber ;
}
var oIcons = new Object();
oIcons.AvailableIconsArray = [
'ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js',
'mdb','mp3','pdf','png','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ;
oIcons.AvailableIcons = new Object();
for ( var i = 0 ; i < oIcons.AvailableIconsArray.length ; i++ )
oIcons.AvailableIcons[ oIcons.AvailableIconsArray[i] ] = true ;
oIcons.GetIcon = function( fileName )
{
var sExtension = fileName.substr( fileName.lastIndexOf('.') + 1 ).toLowerCase();
if ( this.AvailableIcons[ sExtension ] == true )
return sExtension ;
else
return 'default.icon' ;
}
function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
{
if (errorNumber == "1")
window.frames['frmUpload'].OnUploadCompleted( errorNumber, customMsg );
else
window.frames['frmUpload'].OnUploadCompleted( errorNumber, fileName );
}
</script>
</head>
<frameset cols="150,*" framespacing="3" border="1" style="border: 2px solid #CCCCCC;">
<frame name="frmFolders" src="frmfolders.php" scrolling="auto" frameborder="1">
<frameset rows="50,*,50" framespacing="0">
<frame name="frmActualFolder" src="frmactualfolder.php" scrolling="no" frameborder="0">
<frame name="frmResourcesList" src="frmresourceslist.php" scrolling="auto" frameborder="0">
<frameset cols="150,*,0" framespacing="0" border="0">
<frame name="frmCreateFolder" src="frmcreatefolder.php" scrolling="no" frameborder="0">
<frame name="frmUpload" src="frmupload.php" scrolling="no" frameborder="0">
<frame name="frmUploadWorker" src="javascript:void(0)" scrolling="no" frameborder="0">
</frameset>
</frameset>
</frameset>
</html>

View File

@ -1,117 +1,118 @@
<?php
/* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* Source modified from part of fckeditor (http://www.fckeditor.net)
* retreived as GPL v2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require('../../../../main.inc.php'); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This page shows the actual folder path.
-->
<html>
<head>
<title>Folder path</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="browser.css" type="text/css" rel="stylesheet">
<script type="text/javascript">
// Automatically detect the correct document.domain (#1919).
(function()
{
var d = document.domain ;
while ( true )
{
// Test if we can access a parent property.
try
{
var test = window.top.opener.document.domain ;
break ;
}
catch( e )
{}
// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
d = d.replace( /.*?(?:\.|$)/, '' );
if ( d.length == 0 )
break ; // It was not able to detect the domain.
try
{
document.domain = d ;
}
catch (e)
{
break ;
}
}
})();
function SetCurrentFolder( resourceType, folderPath )
{
document.getElementById('tdName').innerHTML = folderPath ;
}
window.onload = function()
{
window.top.IsLoadedActualFolder = true ;
}
</script>
</head>
<body>
<table class="fullHeight" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td>
<button style="WIDTH: 100%" type="button">
<table cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td><?php echo img_picto_common('','treemenu/folder.gif','width="16" height="16"'); ?></td>
<td>&nbsp;</td>
<td id="tdName" width="100%" nowrap class="ActualFolder">/</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</button>
</td>
</tr>
</table>
</body>
</html>
<?php
/* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* Source modified from part of fckeditor (http://www.fckeditor.net)
* retreived as GPL v2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require('../../../../main.inc.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This page shows the actual folder path.
-->
<html>
<head>
<title>Folder path</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="browser.css" type="text/css" rel="stylesheet">
<script type="text/javascript">
// Automatically detect the correct document.domain (#1919).
(function()
{
var d = document.domain ;
while ( true )
{
// Test if we can access a parent property.
try
{
var test = window.top.opener.document.domain ;
break ;
}
catch( e )
{}
// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
d = d.replace( /.*?(?:\.|$)/, '' );
if ( d.length == 0 )
break ; // It was not able to detect the domain.
try
{
document.domain = d ;
}
catch (e)
{
break ;
}
}
})();
function SetCurrentFolder( resourceType, folderPath )
{
document.getElementById('tdName').innerHTML = folderPath ;
}
window.onload = function()
{
window.top.IsLoadedActualFolder = true ;
}
</script>
</head>
<body>
<table class="fullHeight" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td>
<button style="WIDTH: 100%" type="button">
<table cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td><?php echo img_picto_common('','treemenu/folder.gif','width="16" height="16"'); ?></td>
<td>&nbsp;</td>
<td id="tdName" width="100%" nowrap class="ActualFolder">/</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</button>
</td>
</tr>
</table>
</body>
</html>

View File

@ -1,136 +1,137 @@
<?php
/* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* Source modified from part of fckeditor (http://www.fckeditor.net)
* retreived as GPL v2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require('../../../../main.inc.php'); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Page used to create new folders in the current folder.
-->
<html>
<head>
<title>Create Folder</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="browser.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
function SetCurrentFolder( resourceType, folderPath )
{
oConnector.ResourceType = resourceType ;
oConnector.CurrentFolder = folderPath ;
}
function CreateFolder()
{
var sFolderName ;
while ( true )
{
sFolderName = prompt( 'Type the name of the new folder:', '' );
if ( sFolderName == null )
return ;
else if ( sFolderName.length == 0 )
alert( 'Please type the folder name' );
else
break ;
}
oConnector.SendCommand( 'CreateFolder', 'NewFolderName=' + encodeURIComponent( sFolderName) , CreateFolderCallBack );
}
function CreateFolderCallBack( fckXml )
{
if ( oConnector.CheckError( fckXml ) == 0 )
window.parent.frames['frmResourcesList'].Refresh();
/*
// Get the current folder path.
var oNode = fckXml.SelectSingleNode( 'Connector/Error' );
var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value );
switch ( iErrorNumber )
{
case 0 :
window.parent.frames['frmResourcesList'].Refresh();
break ;
case 101 :
alert( 'Folder already exists' );
break ;
case 102 :
alert( 'Invalid folder name' );
break ;
case 103 :
alert( 'You have no permissions to create the folder' );
break ;
case 110 :
alert( 'Unknown error creating folder' );
break ;
default :
alert( 'Error creating folder. Error number: ' + iErrorNumber );
break ;
}
*/
}
window.onload = function()
{
window.top.IsLoadedCreateFolder = true ;
}
</script>
</head>
<body>
<table class="fullHeight" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td>
<button type="button" style="WIDTH: 100%" onclick="CreateFolder();">
<table cellSpacing="0" cellPadding="0" border="0">
<tr>
<td><?php echo img_picto_common('','treemenu/folder.gif','width="16" height="16"'); ?></td>
<td>&nbsp;</td>
<td nowrap>Create New Folder</td>
</tr>
</table>
</button>
</td>
</tr>
</table>
</body>
</html>
<?php
/* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* Source modified from part of fckeditor (http://www.fckeditor.net)
* retreived as GPL v2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require('../../../../main.inc.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Page used to create new folders in the current folder.
-->
<html>
<head>
<title>Create Folder</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="browser.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
function SetCurrentFolder( resourceType, folderPath )
{
oConnector.ResourceType = resourceType ;
oConnector.CurrentFolder = folderPath ;
}
function CreateFolder()
{
var sFolderName ;
while ( true )
{
sFolderName = prompt( 'Type the name of the new folder:', '' );
if ( sFolderName == null )
return ;
else if ( sFolderName.length == 0 )
alert( 'Please type the folder name' );
else
break ;
}
oConnector.SendCommand( 'CreateFolder', 'NewFolderName=' + encodeURIComponent( sFolderName) , CreateFolderCallBack );
}
function CreateFolderCallBack( fckXml )
{
if ( oConnector.CheckError( fckXml ) == 0 )
window.parent.frames['frmResourcesList'].Refresh();
/*
// Get the current folder path.
var oNode = fckXml.SelectSingleNode( 'Connector/Error' );
var iErrorNumber = parseInt( oNode.attributes.getNamedItem('number').value );
switch ( iErrorNumber )
{
case 0 :
window.parent.frames['frmResourcesList'].Refresh();
break ;
case 101 :
alert( 'Folder already exists' );
break ;
case 102 :
alert( 'Invalid folder name' );
break ;
case 103 :
alert( 'You have no permissions to create the folder' );
break ;
case 110 :
alert( 'Unknown error creating folder' );
break ;
default :
alert( 'Error creating folder. Error number: ' + iErrorNumber );
break ;
}
*/
}
window.onload = function()
{
window.top.IsLoadedCreateFolder = true ;
}
</script>
</head>
<body>
<table class="fullHeight" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr>
<td>
<button type="button" style="WIDTH: 100%" onclick="CreateFolder();">
<table cellSpacing="0" cellPadding="0" border="0">
<tr>
<td><?php echo img_picto_common('','treemenu/folder.gif','width="16" height="16"'); ?></td>
<td>&nbsp;</td>
<td nowrap>Create New Folder</td>
</tr>
</table>
</button>
</td>
</tr>
</table>
</body>
</html>

View File

@ -1,224 +1,225 @@
<?php
/* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* Source modified from part of fckeditor (http://www.fckeditor.net)
* retreived as GPL v2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require('../../../../main.inc.php'); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This page shows the list of folders available in the parent folder
* of the current folder.
-->
<?php
//$arrayofjs=array('js/common.js');
//echo top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers
?>
<html>
<head>
<title>Folders</title>
<link href="browser.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
var sActiveFolder ;
var bIsLoaded = false ;
var iIntervalId ;
var oListManager = new Object();
oListManager.Init = function()
{
this.Table = document.getElementById('tableFiles');
this.UpRow = document.getElementById('trUp');
this.TableRows = new Object();
}
oListManager.Clear = function()
{
// Remove all other rows available.
while ( this.Table.rows.length > 1 )
this.Table.deleteRow(1);
// Reset the TableRows collection.
this.TableRows = new Object();
}
oListManager.AddItem = function( folderName, folderPath )
{
// Create the new row.
var oRow = this.Table.insertRow(-1);
oRow.className = 'FolderListFolder' ;
// Build the link to view the folder.
var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath + '\');return false;">' ;
// Add the folder icon cell.
var oCell = oRow.insertCell(-1);
oCell.width = 16 ;
oCell.innerHTML = sLink + '<img alt="" src="spacer.gif" width="16" height="16" border="0"><\/a>' ;
// Add the folder name cell.
oCell = oRow.insertCell(-1);
oCell.noWrap = true ;
oCell.innerHTML = '&nbsp;' + sLink + folderName + '<\/a>' ;
this.TableRows[ folderPath ] = oRow ;
}
oListManager.ShowUpFolder = function( upFolderPath )
{
this.UpRow.style.display = ( upFolderPath != null ? '' : 'none' );
if ( upFolderPath != null )
{
document.getElementById('linkUpIcon').onclick = document.getElementById('linkUp').onclick = function()
{
LoadFolders( upFolderPath );
return false ;
}
}
}
function CheckLoaded()
{
if ( window.top.IsLoadedActualFolder
&& window.top.IsLoadedCreateFolder
&& window.top.IsLoadedUpload
&& window.top.IsLoadedResourcesList )
{
window.clearInterval( iIntervalId );
bIsLoaded = true ;
OpenFolder( sActiveFolder );
}
}
function OpenFolder( folderPath )
{
sActiveFolder = folderPath ;
if ( ! bIsLoaded )
{
if ( ! iIntervalId )
iIntervalId = window.setInterval( CheckLoaded, 100 );
return ;
}
// Change the style for the select row (to show the opened folder).
for ( var sFolderPath in oListManager.TableRows )
{
oListManager.TableRows[ sFolderPath ].className =
( sFolderPath == folderPath ? 'FolderListCurrentFolder' : 'FolderListFolder' );
}
// Set the current folder in all frames.
window.parent.frames['frmActualFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath );
window.parent.frames['frmCreateFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath );
window.parent.frames['frmUpload'].SetCurrentFolder( oConnector.ResourceType, folderPath );
// Load the resources list for this folder.
window.parent.frames['frmResourcesList'].LoadResources( oConnector.ResourceType, folderPath );
}
function LoadFolders( folderPath )
{
// Clear the folders list.
oListManager.Clear();
// Get the parent folder path.
var sParentFolderPath ;
if ( folderPath != '/' )
sParentFolderPath = folderPath.substring( 0, folderPath.lastIndexOf( '/', folderPath.length - 2 ) + 1 );
// Show/Hide the Up Folder.
oListManager.ShowUpFolder( sParentFolderPath );
if ( folderPath != '/' )
{
sActiveFolder = folderPath ;
oConnector.CurrentFolder = sParentFolderPath ;
oConnector.SendCommand( 'GetFolders', null, GetFoldersCallBack );
}
else
OpenFolder( '/' );
}
function GetFoldersCallBack( fckXml )
{
if ( oConnector.CheckError( fckXml ) != 0 )
return ;
// Get the current folder path.
var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' );
var sCurrentFolderPath = oNode.attributes.getNamedItem('path').value ;
var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' );
for ( var i = 0 ; i < oNodes.length ; i++ )
{
var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
oListManager.AddItem( sFolderName, sCurrentFolderPath + sFolderName + '/' );
}
OpenFolder( sActiveFolder );
}
function SetResourceType( type )
{
oConnector.ResourceType = type ;
LoadFolders( '/' );
}
window.onload = function()
{
oListManager.Init();
LoadFolders( '/' );
}
</script>
</head>
<body class="FileArea">
<table id="tableFiles" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr id="trUp" style="DISPLAY: none">
<td width="16"><a id="linkUpIcon" href="#"><img alt="" src="images/FolderUp.gif" width="16" height="16" border="0"></a></td>
<td nowrap width="100%">&nbsp;<a id="linkUp" href="#">..</a></td>
</tr>
</table>
</body>
</html>
<?php
/* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* Source modified from part of fckeditor (http://www.fckeditor.net)
* retreived as GPL v2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require('../../../../main.inc.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This page shows the list of folders available in the parent folder
* of the current folder.
-->
<?php
//$arrayofjs=array('js/common.js');
//echo top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers
?>
<html>
<head>
<title>Folders</title>
<link href="browser.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
var sActiveFolder ;
var bIsLoaded = false ;
var iIntervalId ;
var oListManager = new Object();
oListManager.Init = function()
{
this.Table = document.getElementById('tableFiles');
this.UpRow = document.getElementById('trUp');
this.TableRows = new Object();
}
oListManager.Clear = function()
{
// Remove all other rows available.
while ( this.Table.rows.length > 1 )
this.Table.deleteRow(1);
// Reset the TableRows collection.
this.TableRows = new Object();
}
oListManager.AddItem = function( folderName, folderPath )
{
// Create the new row.
var oRow = this.Table.insertRow(-1);
oRow.className = 'FolderListFolder' ;
// Build the link to view the folder.
var sLink = '<a href="#" onclick="OpenFolder(\'' + folderPath + '\');return false;">' ;
// Add the folder icon cell.
var oCell = oRow.insertCell(-1);
oCell.width = 16 ;
oCell.innerHTML = sLink + '<img alt="" src="spacer.gif" width="16" height="16" border="0"><\/a>' ;
// Add the folder name cell.
oCell = oRow.insertCell(-1);
oCell.noWrap = true ;
oCell.innerHTML = '&nbsp;' + sLink + folderName + '<\/a>' ;
this.TableRows[ folderPath ] = oRow ;
}
oListManager.ShowUpFolder = function( upFolderPath )
{
this.UpRow.style.display = ( upFolderPath != null ? '' : 'none' );
if ( upFolderPath != null )
{
document.getElementById('linkUpIcon').onclick = document.getElementById('linkUp').onclick = function()
{
LoadFolders( upFolderPath );
return false ;
}
}
}
function CheckLoaded()
{
if ( window.top.IsLoadedActualFolder
&& window.top.IsLoadedCreateFolder
&& window.top.IsLoadedUpload
&& window.top.IsLoadedResourcesList )
{
window.clearInterval( iIntervalId );
bIsLoaded = true ;
OpenFolder( sActiveFolder );
}
}
function OpenFolder( folderPath )
{
sActiveFolder = folderPath ;
if ( ! bIsLoaded )
{
if ( ! iIntervalId )
iIntervalId = window.setInterval( CheckLoaded, 100 );
return ;
}
// Change the style for the select row (to show the opened folder).
for ( var sFolderPath in oListManager.TableRows )
{
oListManager.TableRows[ sFolderPath ].className =
( sFolderPath == folderPath ? 'FolderListCurrentFolder' : 'FolderListFolder' );
}
// Set the current folder in all frames.
window.parent.frames['frmActualFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath );
window.parent.frames['frmCreateFolder'].SetCurrentFolder( oConnector.ResourceType, folderPath );
window.parent.frames['frmUpload'].SetCurrentFolder( oConnector.ResourceType, folderPath );
// Load the resources list for this folder.
window.parent.frames['frmResourcesList'].LoadResources( oConnector.ResourceType, folderPath );
}
function LoadFolders( folderPath )
{
// Clear the folders list.
oListManager.Clear();
// Get the parent folder path.
var sParentFolderPath ;
if ( folderPath != '/' )
sParentFolderPath = folderPath.substring( 0, folderPath.lastIndexOf( '/', folderPath.length - 2 ) + 1 );
// Show/Hide the Up Folder.
oListManager.ShowUpFolder( sParentFolderPath );
if ( folderPath != '/' )
{
sActiveFolder = folderPath ;
oConnector.CurrentFolder = sParentFolderPath ;
oConnector.SendCommand( 'GetFolders', null, GetFoldersCallBack );
}
else
OpenFolder( '/' );
}
function GetFoldersCallBack( fckXml )
{
if ( oConnector.CheckError( fckXml ) != 0 )
return ;
// Get the current folder path.
var oNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' );
var sCurrentFolderPath = oNode.attributes.getNamedItem('path').value ;
var oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' );
for ( var i = 0 ; i < oNodes.length ; i++ )
{
var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
oListManager.AddItem( sFolderName, sCurrentFolderPath + sFolderName + '/' );
}
OpenFolder( sActiveFolder );
}
function SetResourceType( type )
{
oConnector.ResourceType = type ;
LoadFolders( '/' );
}
window.onload = function()
{
oListManager.Init();
LoadFolders( '/' );
}
</script>
</head>
<body class="FileArea">
<table id="tableFiles" cellSpacing="0" cellPadding="0" width="100%" border="0">
<tr id="trUp" style="DISPLAY: none">
<td width="16"><a id="linkUpIcon" href="#"><img alt="" src="images/FolderUp.gif" width="16" height="16" border="0"></a></td>
<td nowrap width="100%">&nbsp;<a id="linkUp" href="#">..</a></td>
</tr>
</table>
</body>
</html>

View File

@ -1,205 +1,206 @@
<?php
/* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* Source modified from part of fckeditor (http://www.fckeditor.net)
* retreived as GPL v2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require('../../../../main.inc.php'); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This page shows all resources available in a folder in the File Browser.
-->
<html>
<head>
<title>Resources</title>
<link href="browser.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
var oListManager = new Object();
oListManager.Clear = function()
{
document.body.innerHTML = '' ;
}
function ProtectPath(path)
{
path = path.replace( /\\/g, '\\\\');
path = path.replace( /'/g, '\\\'');
return path ;
}
oListManager.GetFolderRowHtml = function( folderName, folderPath )
{
// Build the link to view the folder.
var sLink = '<a href="#" onclick="OpenFolder(\'' + ProtectPath(folderPath ) + '\');return false;">' ;
return '<tr>' +
'<td width="16">' +
sLink +
'<img alt="" src="images/Folder.gif" width="16" height="16" border="0"><\/a>' +
'<\/td><td nowrap colspan="2">&nbsp;' +
sLink +
folderName +
'<\/a>' +
'<\/td><\/tr>' ;
}
oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize )
{
// Build the link to view the folder.
var sLink = '<a href="#" onclick="OpenFile(\'' + ProtectPath(fileUrl ) + '\');return false;">' ;
// Get the file icon.
var sIcon = oIcons.GetIcon( fileName );
return '<tr>' +
'<td width="16">' +
sLink +
'<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"><\/a>' +
'<\/td><td>&nbsp;' +
sLink +
fileName +
'<\/a>' +
'<\/td><td align="right" nowrap>&nbsp;' +
fileSize +
' KB' +
'<\/td><\/tr>' ;
}
function OpenFolder( folderPath )
{
// Load the resources list for this folder.
window.parent.frames['frmFolders'].LoadFolders( folderPath );
}
function GetUrlParam( paramName )
{
var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' );
var oMatch = oRegex.exec( window.top.location.search );
if ( oMatch && oMatch.length > 1 )
return decodeURIComponent( oMatch[1] );
else
return '' ;
}
function OpenFile( fileUrl )
{
funcNum = GetUrlParam('CKEditorFuncNum');
window.top.opener.CKEDITOR.tools.callFunction(funcNum, encodeURI( fileUrl ).replace( '#', '%23' ));
///////////////////////////////////
window.top.close();
window.top.opener.focus();
}
function LoadResources( resourceType, folderPath )
{
oListManager.Clear();
oConnector.ResourceType = resourceType ;
oConnector.CurrentFolder = folderPath ;
oConnector.SendCommand( 'GetFoldersAndFiles', null, GetFoldersAndFilesCallBack );
}
function Refresh()
{
LoadResources( oConnector.ResourceType, oConnector.CurrentFolder );
}
function GetFoldersAndFilesCallBack( fckXml )
{
if ( oConnector.CheckError( fckXml ) != 0 )
return ;
// Get the current folder path.
var oFolderNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' );
if ( oFolderNode == null )
{
alert( 'The server didn\'t reply with a proper XML data. Please check your configuration.' );
return ;
}
var sCurrentFolderPath = oFolderNode.attributes.getNamedItem('path').value ;
var sCurrentFolderUrl = oFolderNode.attributes.getNamedItem('url').value ;
// var dTimer = new Date();
var oHtml = new StringBuilder( '<table id="tableFiles" cellspacing="1" cellpadding="0" width="100%" border="0">' );
// Add the Folders.
var oNodes ;
oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' );
for ( var i = 0 ; i < oNodes.length ; i++ )
{
var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
oHtml.Append( oListManager.GetFolderRowHtml( sFolderName, sCurrentFolderPath + sFolderName + "/" ) );
}
// Add the Files.
oNodes = fckXml.SelectNodes( 'Connector/Files/File' );
for ( var j = 0 ; j < oNodes.length ; j++ )
{
var oNode = oNodes[j] ;
var sFileName = oNode.attributes.getNamedItem('name').value ;
var sFileSize = oNode.attributes.getNamedItem('size').value ;
// Get the optional "url" attribute. If not available, build the url.
var oFileUrlAtt = oNodes[j].attributes.getNamedItem('url');
var sFileUrl = oFileUrlAtt != null ? oFileUrlAtt.value : encodeURI( sCurrentFolderUrl + sFileName ).replace( /#/g, '%23' );
oHtml.Append( oListManager.GetFileRowHtml( sFileName, sFileUrl, sFileSize ) );
}
oHtml.Append( '<\/table>' );
document.body.innerHTML = oHtml.ToString();
// window.top.document.title = 'Finished processing in ' + ( ( ( new Date() ) - dTimer ) / 1000 ) + ' seconds' ;
}
window.onload = function()
{
window.top.IsLoadedResourcesList = true ;
}
</script>
</head>
<body class="FileArea">
</body>
</html>
<?php
/* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* Source modified from part of fckeditor (http://www.fckeditor.net)
* retreived as GPL v2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require('../../../../main.inc.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This page shows all resources available in a folder in the File Browser.
-->
<html>
<head>
<title>Resources</title>
<link href="browser.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
var oListManager = new Object();
oListManager.Clear = function()
{
document.body.innerHTML = '' ;
}
function ProtectPath(path)
{
path = path.replace( /\\/g, '\\\\');
path = path.replace( /'/g, '\\\'');
return path ;
}
oListManager.GetFolderRowHtml = function( folderName, folderPath )
{
// Build the link to view the folder.
var sLink = '<a href="#" onclick="OpenFolder(\'' + ProtectPath(folderPath ) + '\');return false;">' ;
return '<tr>' +
'<td width="16">' +
sLink +
'<img alt="" src="images/Folder.gif" width="16" height="16" border="0"><\/a>' +
'<\/td><td nowrap colspan="2">&nbsp;' +
sLink +
folderName +
'<\/a>' +
'<\/td><\/tr>' ;
}
oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize )
{
// Build the link to view the folder.
var sLink = '<a href="#" onclick="OpenFile(\'' + ProtectPath(fileUrl ) + '\');return false;">' ;
// Get the file icon.
var sIcon = oIcons.GetIcon( fileName );
return '<tr>' +
'<td width="16">' +
sLink +
'<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"><\/a>' +
'<\/td><td>&nbsp;' +
sLink +
fileName +
'<\/a>' +
'<\/td><td align="right" nowrap>&nbsp;' +
fileSize +
' KB' +
'<\/td><\/tr>' ;
}
function OpenFolder( folderPath )
{
// Load the resources list for this folder.
window.parent.frames['frmFolders'].LoadFolders( folderPath );
}
function GetUrlParam( paramName )
{
var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' );
var oMatch = oRegex.exec( window.top.location.search );
if ( oMatch && oMatch.length > 1 )
return decodeURIComponent( oMatch[1] );
else
return '' ;
}
function OpenFile( fileUrl )
{
funcNum = GetUrlParam('CKEditorFuncNum');
window.top.opener.CKEDITOR.tools.callFunction(funcNum, encodeURI( fileUrl ).replace( '#', '%23' ));
///////////////////////////////////
window.top.close();
window.top.opener.focus();
}
function LoadResources( resourceType, folderPath )
{
oListManager.Clear();
oConnector.ResourceType = resourceType ;
oConnector.CurrentFolder = folderPath ;
oConnector.SendCommand( 'GetFoldersAndFiles', null, GetFoldersAndFilesCallBack );
}
function Refresh()
{
LoadResources( oConnector.ResourceType, oConnector.CurrentFolder );
}
function GetFoldersAndFilesCallBack( fckXml )
{
if ( oConnector.CheckError( fckXml ) != 0 )
return ;
// Get the current folder path.
var oFolderNode = fckXml.SelectSingleNode( 'Connector/CurrentFolder' );
if ( oFolderNode == null )
{
alert( 'The server didn\'t reply with a proper XML data. Please check your configuration.' );
return ;
}
var sCurrentFolderPath = oFolderNode.attributes.getNamedItem('path').value ;
var sCurrentFolderUrl = oFolderNode.attributes.getNamedItem('url').value ;
// var dTimer = new Date();
var oHtml = new StringBuilder( '<table id="tableFiles" cellspacing="1" cellpadding="0" width="100%" border="0">' );
// Add the Folders.
var oNodes ;
oNodes = fckXml.SelectNodes( 'Connector/Folders/Folder' );
for ( var i = 0 ; i < oNodes.length ; i++ )
{
var sFolderName = oNodes[i].attributes.getNamedItem('name').value ;
oHtml.Append( oListManager.GetFolderRowHtml( sFolderName, sCurrentFolderPath + sFolderName + "/" ) );
}
// Add the Files.
oNodes = fckXml.SelectNodes( 'Connector/Files/File' );
for ( var j = 0 ; j < oNodes.length ; j++ )
{
var oNode = oNodes[j] ;
var sFileName = oNode.attributes.getNamedItem('name').value ;
var sFileSize = oNode.attributes.getNamedItem('size').value ;
// Get the optional "url" attribute. If not available, build the url.
var oFileUrlAtt = oNodes[j].attributes.getNamedItem('url');
var sFileUrl = oFileUrlAtt != null ? oFileUrlAtt.value : encodeURI( sCurrentFolderUrl + sFileName ).replace( /#/g, '%23' );
oHtml.Append( oListManager.GetFileRowHtml( sFileName, sFileUrl, sFileSize ) );
}
oHtml.Append( '<\/table>' );
document.body.innerHTML = oHtml.ToString();
// window.top.document.title = 'Finished processing in ' + ( ( ( new Date() ) - dTimer ) / 1000 ) + ' seconds' ;
}
window.onload = function()
{
window.top.IsLoadedResourcesList = true ;
}
</script>
</head>
<body class="FileArea">
</body>
</html>

View File

@ -1,137 +1,138 @@
<?php
/* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* Source modified from part of fckeditor (http://www.fckeditor.net)
* retreived as GPL v2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require('../../../../main.inc.php'); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Page used to upload new files in the current folder.
-->
<html>
<head>
<title>File Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="browser.css" type="text/css" rel="stylesheet" >
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
function SetCurrentFolder( resourceType, folderPath )
{
var sUrl = oConnector.ConnectorUrl + 'Command=FileUpload' ;
sUrl += '&Type=' + resourceType ;
sUrl += '&CurrentFolder=' + encodeURIComponent( folderPath );
document.getElementById('frmUpload').action = sUrl ;
}
function OnSubmit()
{
if ( document.getElementById('NewFile').value.length == 0 )
{
alert( 'Please select a file from your computer' );
return false ;
}
// Set the interface elements.
document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder (Upload in progress, please wait...)' ;
document.getElementById('btnUpload').disabled = true ;
return true ;
}
function OnUploadCompleted( errorNumber, data )
{
// Reset the Upload Worker Frame.
window.parent.frames['frmUploadWorker'].location = 'javascript:void(0)' ;
// Reset the upload form (On IE we must do a little trick to avoid problems).
if ( document.all )
document.getElementById('NewFile').outerHTML = '<input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file">' ;
else
document.getElementById('frmUpload').reset();
// Reset the interface elements.
document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ;
document.getElementById('btnUpload').disabled = false ;
switch ( errorNumber )
{
case 0 :
window.parent.frames['frmResourcesList'].Refresh();
break ;
case 1 : // Custom error.
alert( data );
break ;
case 201 :
window.parent.frames['frmResourcesList'].Refresh();
alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + data + '"' );
break ;
case 202 :
alert( 'Invalid file' );
break ;
default :
alert( 'Error on file upload. Error number: ' + errorNumber );
break ;
}
}
window.onload = function()
{
window.top.IsLoadedUpload = true ;
}
</script>
</head>
<body>
<form id="frmUpload" action="" target="frmUploadWorker" method="post" enctype="multipart/form-data" onsubmit="return OnSubmit();">
<table class="fullHeight" cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td nowrap="nowrap">
<span id="eUploadMessage">Upload a new file in this folder</span><br>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td width="100%"><input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file"></td>
<td nowrap="nowrap">&nbsp;<input id="btnUpload" type="submit" value="Upload"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
/* Copyright (C) 2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* Source modified from part of fckeditor (http://www.fckeditor.net)
* retreived as GPL v2 or later
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require('../../../../main.inc.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Page used to upload new files in the current folder.
-->
<html>
<head>
<title>File Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="browser.css" type="text/css" rel="stylesheet" >
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
function SetCurrentFolder( resourceType, folderPath )
{
var sUrl = oConnector.ConnectorUrl + 'Command=FileUpload' ;
sUrl += '&Type=' + resourceType ;
sUrl += '&CurrentFolder=' + encodeURIComponent( folderPath );
document.getElementById('frmUpload').action = sUrl ;
}
function OnSubmit()
{
if ( document.getElementById('NewFile').value.length == 0 )
{
alert( 'Please select a file from your computer' );
return false ;
}
// Set the interface elements.
document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder (Upload in progress, please wait...)' ;
document.getElementById('btnUpload').disabled = true ;
return true ;
}
function OnUploadCompleted( errorNumber, data )
{
// Reset the Upload Worker Frame.
window.parent.frames['frmUploadWorker'].location = 'javascript:void(0)' ;
// Reset the upload form (On IE we must do a little trick to avoid problems).
if ( document.all )
document.getElementById('NewFile').outerHTML = '<input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file">' ;
else
document.getElementById('frmUpload').reset();
// Reset the interface elements.
document.getElementById('eUploadMessage').innerHTML = 'Upload a new file in this folder' ;
document.getElementById('btnUpload').disabled = false ;
switch ( errorNumber )
{
case 0 :
window.parent.frames['frmResourcesList'].Refresh();
break ;
case 1 : // Custom error.
alert( data );
break ;
case 201 :
window.parent.frames['frmResourcesList'].Refresh();
alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + data + '"' );
break ;
case 202 :
alert( 'Invalid file' );
break ;
default :
alert( 'Error on file upload. Error number: ' + errorNumber );
break ;
}
}
window.onload = function()
{
window.top.IsLoadedUpload = true ;
}
</script>
</head>
<body>
<form id="frmUpload" action="" target="frmUploadWorker" method="post" enctype="multipart/form-data" onsubmit="return OnSubmit();">
<table class="fullHeight" cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td nowrap="nowrap">
<span id="eUploadMessage">Upload a new file in this folder</span><br>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td width="100%"><input id="NewFile" name="NewFile" style="WIDTH: 100%" type="file"></td>
<td nowrap="nowrap">&nbsp;<input id="btnUpload" type="submit" value="Upload"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>

View File

@ -1,99 +1,104 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* These functions define the base of the XML response sent by the PHP
* connector.
*/
function SetXmlHeaders()
{
ob_end_clean();
// Prevent the browser from caching the result.
// Date in the past
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
// always modified
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
// HTTP/1.1
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
// HTTP/1.0
header('Pragma: no-cache');
// Set the response format.
header( 'Content-Type: text/xml; charset=utf-8' );
}
function CreateXmlHeader( $command, $resourceType, $currentFolder )
{
SetXmlHeaders();
// Create the XML document header.
echo '<?xml version="1.0" encoding="utf-8" ?>' ;
// Create the main "Connector" node.
echo '<Connector command="' . $command . '" resourceType="' . $resourceType . '">' ;
// Add the current folder node.
echo '<CurrentFolder path="' . ConvertToXmlAttribute( $currentFolder ) . '" url="' . ConvertToXmlAttribute( GetUrlFromPath( $resourceType, $currentFolder, $command ) ) . '" />' ;
$GLOBALS['HeaderSent'] = true ;
}
function CreateXmlFooter()
{
echo '</Connector>' ;
}
function SendError( $number, $text )
{
if ( $_GET['Command'] == 'FileUpload' )
SendUploadResults( $number, "", "", $text );
if ( isset( $GLOBALS['HeaderSent'] ) && $GLOBALS['HeaderSent'] )
{
SendErrorNode( $number, $text );
CreateXmlFooter();
}
else
{
SetXmlHeaders();
// Create the XML document header
echo '<?xml version="1.0" encoding="utf-8" ?>' ;
echo '<Connector>' ;
SendErrorNode( $number, $text );
echo '</Connector>' ;
}
exit ;
}
function SendErrorNode( $number, $text )
{
if ($text)
echo '<Error number="' . $number . '" text="' . htmlspecialchars( $text ) . '" />' ;
else
echo '<Error number="' . $number . '" />' ;
}
?>
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* These functions define the base of the XML response sent by the PHP
* connector.
*/
/**
* SetXmlHeaders
*
* @return void
*/
function SetXmlHeaders()
{
ob_end_clean();
// Prevent the browser from caching the result.
// Date in the past
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
// always modified
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
// HTTP/1.1
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
// HTTP/1.0
header('Pragma: no-cache');
// Set the response format.
header( 'Content-Type: text/xml; charset=utf-8' );
}
function CreateXmlHeader( $command, $resourceType, $currentFolder )
{
SetXmlHeaders();
// Create the XML document header.
echo '<?xml version="1.0" encoding="utf-8" ?>' ;
// Create the main "Connector" node.
echo '<Connector command="' . $command . '" resourceType="' . $resourceType . '">' ;
// Add the current folder node.
echo '<CurrentFolder path="' . ConvertToXmlAttribute( $currentFolder ) . '" url="' . ConvertToXmlAttribute( GetUrlFromPath( $resourceType, $currentFolder, $command ) ) . '" />' ;
$GLOBALS['HeaderSent'] = true ;
}
function CreateXmlFooter()
{
echo '</Connector>' ;
}
function SendError( $number, $text )
{
if ( $_GET['Command'] == 'FileUpload' )
SendUploadResults( $number, "", "", $text );
if ( isset( $GLOBALS['HeaderSent'] ) && $GLOBALS['HeaderSent'] )
{
SendErrorNode( $number, $text );
CreateXmlFooter();
}
else
{
SetXmlHeaders();
// Create the XML document header
echo '<?xml version="1.0" encoding="utf-8" ?>' ;
echo '<Connector>' ;
SendErrorNode( $number, $text );
echo '</Connector>' ;
}
exit ;
}
function SendErrorNode( $number, $text )
{
if ($text)
echo '<Error number="' . $number . '" text="' . htmlspecialchars( $text ) . '" />' ;
else
echo '<Error number="' . $number . '" />' ;
}
?>

View File

@ -1,299 +1,299 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This is the File Manager Connector for PHP.
*/
function GetFolders( $resourceType, $currentFolder )
{
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'GetFolders' );
// Array that will hold the folders names.
$aFolders = array();
$oCurrentFolder = @opendir( $sServerDir );
if ($oCurrentFolder !== false)
{
while ( $sFile = readdir( $oCurrentFolder ) )
{
if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) )
$aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
}
closedir( $oCurrentFolder );
}
// Open the "Folders" node.
echo "<Folders>" ;
natcasesort( $aFolders );
foreach ( $aFolders as $sFolder )
echo $sFolder ;
// Close the "Folders" node.
echo "</Folders>" ;
}
function GetFoldersAndFiles( $resourceType, $currentFolder )
{
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'GetFoldersAndFiles' );
// Arrays that will hold the folders and files names.
$aFolders = array();
$aFiles = array();
$oCurrentFolder = @opendir( $sServerDir );
if ($oCurrentFolder !== false)
{
while ( $sFile = readdir( $oCurrentFolder ) )
{
if ( $sFile != '.' && $sFile != '..' )
{
if ( is_dir( $sServerDir . $sFile ) )
$aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
else
{
$iFileSize = @filesize( $sServerDir . $sFile );
if ( !$iFileSize ) {
$iFileSize = 0 ;
}
if ( $iFileSize > 0 )
{
$iFileSize = round( $iFileSize / 1024 );
if ( $iFileSize < 1 )
$iFileSize = 1 ;
}
$aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
}
}
}
closedir( $oCurrentFolder );
}
// Send the folders
natcasesort( $aFolders );
echo '<Folders>' ;
foreach ( $aFolders as $sFolder )
echo $sFolder ;
echo '</Folders>' ;
// Send the files
natcasesort( $aFiles );
echo '<Files>' ;
foreach ( $aFiles as $sFiles )
echo $sFiles ;
echo '</Files>' ;
}
function CreateFolder( $resourceType, $currentFolder )
{
if (!isset($_GET)) {
global $_GET;
}
$sErrorNumber = '0' ;
$sErrorMsg = '' ;
if ( isset( $_GET['NewFolderName'] ) )
{
$sNewFolderName = $_GET['NewFolderName'] ;
$sNewFolderName = SanitizeFolderName( $sNewFolderName );
if ( strpos( $sNewFolderName, '..' ) !== FALSE )
$sErrorNumber = '102' ; // Invalid folder name.
else
{
// Map the virtual path to the local server path of the current folder.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'CreateFolder' );
if ( is_writable( $sServerDir ) )
{
$sServerDir .= $sNewFolderName ;
$sErrorMsg = CreateServerFolder( $sServerDir );
switch ( $sErrorMsg )
{
case '' :
$sErrorNumber = '0' ;
break ;
case 'Invalid argument' :
case 'No such file or directory' :
$sErrorNumber = '102' ; // Path too long.
break ;
default :
$sErrorNumber = '110' ;
break ;
}
}
else
$sErrorNumber = '103' ;
}
}
else
$sErrorNumber = '102' ;
// Create the "Error" node.
echo '<Error number="' . $sErrorNumber . '" />' ;
}
// DOL_CHANGE
//function FileUpload( $resourceType, $currentFolder, $sCommand )
function FileUpload($resourceType, $currentFolder, $sCommand, $CKEcallback = '')
{
if (!isset($_FILES)) {
global $_FILES;
}
$sErrorNumber = '0' ;
$sFileName = '' ;
if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] )
# This is for the QuickUpload tab box
or (isset($_FILES['upload']) and !is_null($_FILES['upload']['tmp_name'])))
{
global $Config ;
$oFile = isset($_FILES['NewFile']) ? $_FILES['NewFile'] : $_FILES['upload'];
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder, $sCommand );
// Get the uploaded file name.
$sFileName = $oFile['name'] ;
$sFileName = SanitizeFileName( $sFileName );
$sOriginalFileName = $sFileName ;
// Get the extension.
$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) );
$sExtension = strtolower( $sExtension );
if ( isset( $Config['SecureImageUploads'] ) )
{
if ( ( $isImageValid = IsImageValid( $oFile['tmp_name'], $sExtension ) ) === false )
{
$sErrorNumber = '202' ;
}
}
if ( isset( $Config['HtmlExtensions'] ) )
{
if ( !IsHtmlExtension( $sExtension, $Config['HtmlExtensions'] ) &&
( $detectHtml = DetectHtml( $oFile['tmp_name'] ) ) === true )
{
$sErrorNumber = '202' ;
}
}
// Check if it is an allowed extension.
if ( !$sErrorNumber && IsAllowedExt( $sExtension, $resourceType ) )
{
$iCounter = 0 ;
while ( true )
{
$sFilePath = $sServerDir . $sFileName ;
if ( is_file( $sFilePath ) )
{
$iCounter++ ;
$sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
$sErrorNumber = '201' ;
}
else
{
move_uploaded_file( $oFile['tmp_name'], $sFilePath );
if ( is_file( $sFilePath ) )
{
if ( isset( $Config['ChmodOnUpload'] ) && !$Config['ChmodOnUpload'] )
{
break ;
}
$permissions = 0777;
if ( isset( $Config['ChmodOnUpload'] ) && $Config['ChmodOnUpload'] )
{
$permissions = $Config['ChmodOnUpload'] ;
}
$oldumask = umask(0);
chmod( $sFilePath, $permissions );
umask( $oldumask );
}
break ;
}
}
if ( file_exists( $sFilePath ) )
{
//previous checks failed, try once again
if ( isset( $isImageValid ) && $isImageValid === -1 && IsImageValid( $sFilePath, $sExtension ) === false )
{
@unlink( $sFilePath );
$sErrorNumber = '202' ;
}
else if ( isset( $detectHtml ) && $detectHtml === -1 && DetectHtml( $sFilePath ) === true )
{
@unlink( $sFilePath );
$sErrorNumber = '202' ;
}
}
}
else
$sErrorNumber = '202' ;
}
else
$sErrorNumber = '202' ;
$sFileUrl = CombinePaths( GetResourceTypePath( $resourceType, $sCommand ) , $currentFolder );
$sFileUrl = CombinePaths( $sFileUrl, $sFileName );
// DOL_CHANGE
//SendUploadResults( $sErrorNumber, $sFileUrl, $sFileName );
if($CKEcallback == '')
{
// this line already exists so wrap the if block around it
SendUploadResults( $sErrorNumber, $sFileUrl, $sFileName );
}
else
{
//issue the CKEditor Callback
SendCKEditorResults ($CKEcallback, $sFileUrl,
($sErrorNumber != 0
? 'Error '. $sErrorNumber. ' upload failed.'
: 'Upload Successful'));
}
exit ;
}
?>
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This is the File Manager Connector for PHP.
*/
function GetFolders( $resourceType, $currentFolder )
{
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'GetFolders' );
// Array that will hold the folders names.
$aFolders = array();
$oCurrentFolder = @opendir( $sServerDir );
if ($oCurrentFolder !== false)
{
while ( $sFile = readdir( $oCurrentFolder ) )
{
if ( $sFile != '.' && $sFile != '..' && is_dir( $sServerDir . $sFile ) )
$aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
}
closedir( $oCurrentFolder );
}
// Open the "Folders" node.
echo "<Folders>" ;
natcasesort( $aFolders );
foreach ( $aFolders as $sFolder )
echo $sFolder ;
// Close the "Folders" node.
echo "</Folders>" ;
}
function GetFoldersAndFiles( $resourceType, $currentFolder )
{
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'GetFoldersAndFiles' );
// Arrays that will hold the folders and files names.
$aFolders = array();
$aFiles = array();
$oCurrentFolder = @opendir( $sServerDir );
if ($oCurrentFolder !== false)
{
while ( $sFile = readdir( $oCurrentFolder ) )
{
if ( $sFile != '.' && $sFile != '..' )
{
if ( is_dir( $sServerDir . $sFile ) )
$aFolders[] = '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
else
{
$iFileSize = @filesize( $sServerDir . $sFile );
if ( !$iFileSize ) {
$iFileSize = 0 ;
}
if ( $iFileSize > 0 )
{
$iFileSize = round( $iFileSize / 1024 );
if ( $iFileSize < 1 )
$iFileSize = 1 ;
}
$aFiles[] = '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
}
}
}
closedir( $oCurrentFolder );
}
// Send the folders
natcasesort( $aFolders );
echo '<Folders>' ;
foreach ( $aFolders as $sFolder )
echo $sFolder ;
echo '</Folders>' ;
// Send the files
natcasesort( $aFiles );
echo '<Files>' ;
foreach ( $aFiles as $sFiles )
echo $sFiles ;
echo '</Files>' ;
}
function CreateFolder( $resourceType, $currentFolder )
{
if (!isset($_GET)) {
global $_GET;
}
$sErrorNumber = '0' ;
$sErrorMsg = '' ;
if ( isset( $_GET['NewFolderName'] ) )
{
$sNewFolderName = $_GET['NewFolderName'] ;
$sNewFolderName = SanitizeFolderName( $sNewFolderName );
if ( strpos( $sNewFolderName, '..' ) !== FALSE )
$sErrorNumber = '102' ; // Invalid folder name.
else
{
// Map the virtual path to the local server path of the current folder.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'CreateFolder' );
if ( is_writable( $sServerDir ) )
{
$sServerDir .= $sNewFolderName ;
$sErrorMsg = CreateServerFolder( $sServerDir );
switch ( $sErrorMsg )
{
case '' :
$sErrorNumber = '0' ;
break ;
case 'Invalid argument' :
case 'No such file or directory' :
$sErrorNumber = '102' ; // Path too long.
break ;
default :
$sErrorNumber = '110' ;
break ;
}
}
else
$sErrorNumber = '103' ;
}
}
else
$sErrorNumber = '102' ;
// Create the "Error" node.
echo '<Error number="' . $sErrorNumber . '" />' ;
}
// DOL_CHANGE
//function FileUpload( $resourceType, $currentFolder, $sCommand )
function FileUpload($resourceType, $currentFolder, $sCommand, $CKEcallback = '')
{
if (!isset($_FILES)) {
global $_FILES;
}
$sErrorNumber = '0' ;
$sFileName = '' ;
if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] )
# This is for the QuickUpload tab box
or (isset($_FILES['upload']) and !is_null($_FILES['upload']['tmp_name'])))
{
global $Config ;
$oFile = isset($_FILES['NewFile']) ? $_FILES['NewFile'] : $_FILES['upload'];
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder, $sCommand );
// Get the uploaded file name.
$sFileName = $oFile['name'] ;
$sFileName = SanitizeFileName( $sFileName );
$sOriginalFileName = $sFileName ;
// Get the extension.
$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) );
$sExtension = strtolower( $sExtension );
if ( isset( $Config['SecureImageUploads'] ) )
{
if ( ( $isImageValid = IsImageValid( $oFile['tmp_name'], $sExtension ) ) === false )
{
$sErrorNumber = '202' ;
}
}
if ( isset( $Config['HtmlExtensions'] ) )
{
if ( !IsHtmlExtension( $sExtension, $Config['HtmlExtensions'] ) &&
( $detectHtml = DetectHtml( $oFile['tmp_name'] ) ) === true )
{
$sErrorNumber = '202' ;
}
}
// Check if it is an allowed extension.
if ( !$sErrorNumber && IsAllowedExt( $sExtension, $resourceType ) )
{
$iCounter = 0 ;
while ( true )
{
$sFilePath = $sServerDir . $sFileName ;
if ( is_file( $sFilePath ) )
{
$iCounter++ ;
$sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
$sErrorNumber = '201' ;
}
else
{
move_uploaded_file( $oFile['tmp_name'], $sFilePath );
if ( is_file( $sFilePath ) )
{
if ( isset( $Config['ChmodOnUpload'] ) && !$Config['ChmodOnUpload'] )
{
break ;
}
$permissions = 0777;
if ( isset( $Config['ChmodOnUpload'] ) && $Config['ChmodOnUpload'] )
{
$permissions = $Config['ChmodOnUpload'] ;
}
$oldumask = umask(0);
chmod( $sFilePath, $permissions );
umask( $oldumask );
}
break ;
}
}
if ( file_exists( $sFilePath ) )
{
//previous checks failed, try once again
if ( isset( $isImageValid ) && $isImageValid === -1 && IsImageValid( $sFilePath, $sExtension ) === false )
{
@unlink( $sFilePath );
$sErrorNumber = '202' ;
}
else if ( isset( $detectHtml ) && $detectHtml === -1 && DetectHtml( $sFilePath ) === true )
{
@unlink( $sFilePath );
$sErrorNumber = '202' ;
}
}
}
else
$sErrorNumber = '202' ;
}
else
$sErrorNumber = '202' ;
$sFileUrl = CombinePaths( GetResourceTypePath( $resourceType, $sCommand ) , $currentFolder );
$sFileUrl = CombinePaths( $sFileUrl, $sFileName );
// DOL_CHANGE
//SendUploadResults( $sErrorNumber, $sFileUrl, $sFileName );
if($CKEcallback == '')
{
// this line already exists so wrap the if block around it
SendUploadResults( $sErrorNumber, $sFileUrl, $sFileName );
}
else
{
//issue the CKEditor Callback
SendCKEditorResults ($CKEcallback, $sFileUrl,
($sErrorNumber != 0
? 'Error '. $sErrorNumber. ' upload failed.'
: 'Upload Successful'));
}
exit ;
}
?>

View File

@ -1,163 +1,163 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Configuration file for the File Manager Connector for PHP.
*/
global $Config ;
define('NOTOKENRENEWAL',1); // Disables token renewal
// We must include the main because this page is
// a web page that require security controls and
// is a security hole if anybody can access without
// being an authenticated user.
require_once("../../../../main.inc.php");
$uri=preg_replace('/^http(s?):\/\//i','',$dolibarr_main_url_root);
$pos = strstr ($uri, '/'); // $pos contient alors url sans nom domaine
if ($pos == '/') $pos = ''; // si $pos vaut /, on le met a ''
define('DOL_URL_ROOT', $pos);
// SECURITY: You must explicitly enable this "connector". (Set it to "true").
// WARNING: don't just set "$Config['Enabled'] = true ;", you must be sure that only
// authenticated users can access this file or use some kind of session checking.
$Config['Enabled'] = true ;
// Path to user files relative to the document root.
$Config['UserFilesPath'] = DOL_URL_ROOT.'/viewimage.php?modulepart=fckeditor&file=' ;
// Fill the following value it you prefer to specify the absolute path for the
// user files directory. Useful if you are using a virtual directory, symbolic
// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
// Attention: The above 'UserFilesPath' must point to the same directory.
$Config['UserFilesAbsolutePath'] = $dolibarr_main_data_root.'/fckeditor/';
// Due to security issues with Apache modules, it is recommended to leave the
// following setting enabled.
$Config['ForceSingleExtension'] = true ;
// Perform additional checks for image files.
// If set to true, validate image size (using getimagesize).
$Config['SecureImageUploads'] = true;
// What the user can do with this connector.
$Config['ConfigAllowedCommands'] = array('QuickUpload', 'FileUpload', 'GetFolders', 'GetFoldersAndFiles', 'CreateFolder');
// Allowed Resource Types.
$Config['ConfigAllowedTypes'] = array('File', 'Image', 'Flash', 'Media');
// For security, HTML is allowed in the first Kb of data for files having the
// following extensions only.
$Config['HtmlExtensions'] = array("html", "htm", "xml", "xsd", "txt", "js");
// After file is uploaded, sometimes it is required to change its permissions
// so that it was possible to access it at the later time.
// If possible, it is recommended to set more restrictive permissions, like 0755.
// Set to 0 to disable this feature.
// Note: not needed on Windows-based servers.
$Config['ChmodOnUpload'] = 0775 ;
// See comments above.
// Used when creating folders that does not exist.
$Config['ChmodOnFolderCreate'] = 0775 ;
/*
Configuration settings for each Resource Type
- AllowedExtensions: the possible extensions that can be allowed.
If it is empty then any file type can be uploaded.
- DeniedExtensions: The extensions that won't be allowed.
If it is empty then no restrictions are done here.
For a file to be uploaded it has to fulfill both the AllowedExtensions
and DeniedExtensions (that's it: not being denied) conditions.
- FileTypesPath: the virtual folder relative to the document root where
these resources will be located.
Attention: It must start and end with a slash: '/'
- FileTypesAbsolutePath: the physical path to the above folder. It must be
an absolute path.
If it's an empty string then it will be autocalculated.
Useful if you are using a virtual directory, symbolic link or alias.
Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
Attention: The above 'FileTypesPath' must point to the same directory.
Attention: It must end with a slash: '/'
- QuickUploadPath: the virtual folder relative to the document root where
these resources will be uploaded using the Upload tab in the resources
dialogs.
Attention: It must start and end with a slash: '/'
- QuickUploadAbsolutePath: the physical path to the above folder. It must be
an absolute path.
If it's an empty string then it will be autocalculated.
Useful if you are using a virtual directory, symbolic link or alias.
Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
Attention: The above 'QuickUploadPath' must point to the same directory.
Attention: It must end with a slash: '/'
NOTE: by default, QuickUploadPath and QuickUploadAbsolutePath point to
"userfiles" directory to maintain backwards compatibility with older versions of FCKeditor.
This is fine, but you in some cases you will be not able to browse uploaded files using file browser.
Example: if you click on "image button", select "Upload" tab and send image
to the server, image will appear in FCKeditor correctly, but because it is placed
directly in /userfiles/ directory, you'll be not able to see it in built-in file browser.
The more expected behaviour would be to send images directly to "image" subfolder.
To achieve that, simply change
$Config['QuickUploadPath']['Image'] = $Config['UserFilesPath'] ;
$Config['QuickUploadAbsolutePath']['Image'] = $Config['UserFilesAbsolutePath'] ;
into:
$Config['QuickUploadPath']['Image'] = $Config['FileTypesPath']['Image'] ;
$Config['QuickUploadAbsolutePath']['Image'] = $Config['FileTypesAbsolutePath']['Image'] ;
*/
$Config['AllowedExtensions']['File'] = array('7z', 'aiff', 'asf', 'avi', 'bmp', 'csv', 'doc', 'fla', 'flv', 'gif', 'gz', 'gzip', 'jpeg', 'jpg', 'mid', 'mov', 'mp3', 'mp4', 'mpc', 'mpeg', 'mpg', 'ods', 'odt', 'pdf', 'png', 'ppt', 'pxd', 'qt', 'ram', 'rar', 'rm', 'rmi', 'rmvb', 'rtf', 'sdc', 'sitd', 'swf', 'sxc', 'sxw', 'tar', 'tgz', 'tif', 'tiff', 'txt', 'vsd', 'wav', 'wma', 'wmv', 'xls', 'xml', 'zip');
$Config['DeniedExtensions']['File'] = array();
$Config['FileTypesPath']['File'] = $Config['UserFilesPath'] . 'file/' ;
$Config['FileTypesAbsolutePath']['File']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'file/' ;
$Config['QuickUploadPath']['File'] = $Config['UserFilesPath'] ;
$Config['QuickUploadAbsolutePath']['File']= $Config['UserFilesAbsolutePath'] ;
$Config['AllowedExtensions']['Image'] = array('bmp','gif','jpeg','jpg','png');
$Config['DeniedExtensions']['Image'] = array();
$Config['FileTypesPath']['Image'] = $Config['UserFilesPath'] . 'image/' ;
$Config['FileTypesAbsolutePath']['Image']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'image/' ;
$Config['QuickUploadPath']['Image'] = $Config['UserFilesPath'] ;
$Config['QuickUploadAbsolutePath']['Image']= $Config['UserFilesAbsolutePath'] ;
$Config['AllowedExtensions']['Flash'] = array('swf','flv');
$Config['DeniedExtensions']['Flash'] = array();
$Config['FileTypesPath']['Flash'] = $Config['UserFilesPath'] . 'flash/' ;
$Config['FileTypesAbsolutePath']['Flash']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'flash/' ;
$Config['QuickUploadPath']['Flash'] = $Config['UserFilesPath'] ;
$Config['QuickUploadAbsolutePath']['Flash']= $Config['UserFilesAbsolutePath'] ;
$Config['AllowedExtensions']['Media'] = array('aiff', 'asf', 'avi', 'bmp', 'fla', 'flv', 'gif', 'jpeg', 'jpg', 'mid', 'mov', 'mp3', 'mp4', 'mpc', 'mpeg', 'mpg', 'png', 'qt', 'ram', 'rm', 'rmi', 'rmvb', 'swf', 'tif', 'tiff', 'wav', 'wma', 'wmv');
$Config['DeniedExtensions']['Media'] = array();
$Config['FileTypesPath']['Media'] = $Config['UserFilesPath'] . 'media/' ;
$Config['FileTypesAbsolutePath']['Media']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'media/' ;
$Config['QuickUploadPath']['Media'] = $Config['UserFilesPath'] ;
$Config['QuickUploadAbsolutePath']['Media']= $Config['UserFilesAbsolutePath'] ;
?>
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Configuration file for the File Manager Connector for PHP.
*/
global $Config ;
define('NOTOKENRENEWAL',1); // Disables token renewal
// We must include the main because this page is
// a web page that require security controls and
// is a security hole if anybody can access without
// being an authenticated user.
require_once("../../../../main.inc.php");
$uri=preg_replace('/^http(s?):\/\//i','',$dolibarr_main_url_root);
$pos = strstr($uri, '/'); // $pos contient alors url sans nom domaine
if ($pos == '/') $pos = ''; // si $pos vaut /, on le met a ''
define('DOL_URL_ROOT', $pos);
// SECURITY: You must explicitly enable this "connector". (Set it to "true").
// WARNING: don't just set "$Config['Enabled'] = true ;", you must be sure that only
// authenticated users can access this file or use some kind of session checking.
$Config['Enabled'] = true ;
// Path to user files relative to the document root.
$Config['UserFilesPath'] = DOL_URL_ROOT.'/viewimage.php?modulepart=fckeditor&file=' ;
// Fill the following value it you prefer to specify the absolute path for the
// user files directory. Useful if you are using a virtual directory, symbolic
// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
// Attention: The above 'UserFilesPath' must point to the same directory.
$Config['UserFilesAbsolutePath'] = $dolibarr_main_data_root.'/fckeditor/';
// Due to security issues with Apache modules, it is recommended to leave the
// following setting enabled.
$Config['ForceSingleExtension'] = true ;
// Perform additional checks for image files.
// If set to true, validate image size (using getimagesize).
$Config['SecureImageUploads'] = true;
// What the user can do with this connector.
$Config['ConfigAllowedCommands'] = array('QuickUpload', 'FileUpload', 'GetFolders', 'GetFoldersAndFiles', 'CreateFolder');
// Allowed Resource Types.
$Config['ConfigAllowedTypes'] = array('File', 'Image', 'Flash', 'Media');
// For security, HTML is allowed in the first Kb of data for files having the
// following extensions only.
$Config['HtmlExtensions'] = array("html", "htm", "xml", "xsd", "txt", "js");
// After file is uploaded, sometimes it is required to change its permissions
// so that it was possible to access it at the later time.
// If possible, it is recommended to set more restrictive permissions, like 0755.
// Set to 0 to disable this feature.
// Note: not needed on Windows-based servers.
$Config['ChmodOnUpload'] = 0775 ;
// See comments above.
// Used when creating folders that does not exist.
$Config['ChmodOnFolderCreate'] = 0775 ;
/*
Configuration settings for each Resource Type
- AllowedExtensions: the possible extensions that can be allowed.
If it is empty then any file type can be uploaded.
- DeniedExtensions: The extensions that won't be allowed.
If it is empty then no restrictions are done here.
For a file to be uploaded it has to fulfill both the AllowedExtensions
and DeniedExtensions (that's it: not being denied) conditions.
- FileTypesPath: the virtual folder relative to the document root where
these resources will be located.
Attention: It must start and end with a slash: '/'
- FileTypesAbsolutePath: the physical path to the above folder. It must be
an absolute path.
If it's an empty string then it will be autocalculated.
Useful if you are using a virtual directory, symbolic link or alias.
Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
Attention: The above 'FileTypesPath' must point to the same directory.
Attention: It must end with a slash: '/'
- QuickUploadPath: the virtual folder relative to the document root where
these resources will be uploaded using the Upload tab in the resources
dialogs.
Attention: It must start and end with a slash: '/'
- QuickUploadAbsolutePath: the physical path to the above folder. It must be
an absolute path.
If it's an empty string then it will be autocalculated.
Useful if you are using a virtual directory, symbolic link or alias.
Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
Attention: The above 'QuickUploadPath' must point to the same directory.
Attention: It must end with a slash: '/'
NOTE: by default, QuickUploadPath and QuickUploadAbsolutePath point to
"userfiles" directory to maintain backwards compatibility with older versions of FCKeditor.
This is fine, but you in some cases you will be not able to browse uploaded files using file browser.
Example: if you click on "image button", select "Upload" tab and send image
to the server, image will appear in FCKeditor correctly, but because it is placed
directly in /userfiles/ directory, you'll be not able to see it in built-in file browser.
The more expected behaviour would be to send images directly to "image" subfolder.
To achieve that, simply change
$Config['QuickUploadPath']['Image'] = $Config['UserFilesPath'] ;
$Config['QuickUploadAbsolutePath']['Image'] = $Config['UserFilesAbsolutePath'] ;
into:
$Config['QuickUploadPath']['Image'] = $Config['FileTypesPath']['Image'] ;
$Config['QuickUploadAbsolutePath']['Image'] = $Config['FileTypesAbsolutePath']['Image'] ;
*/
$Config['AllowedExtensions']['File'] = array('7z', 'aiff', 'asf', 'avi', 'bmp', 'csv', 'doc', 'fla', 'flv', 'gif', 'gz', 'gzip', 'jpeg', 'jpg', 'mid', 'mov', 'mp3', 'mp4', 'mpc', 'mpeg', 'mpg', 'ods', 'odt', 'pdf', 'png', 'ppt', 'pxd', 'qt', 'ram', 'rar', 'rm', 'rmi', 'rmvb', 'rtf', 'sdc', 'sitd', 'swf', 'sxc', 'sxw', 'tar', 'tgz', 'tif', 'tiff', 'txt', 'vsd', 'wav', 'wma', 'wmv', 'xls', 'xml', 'zip');
$Config['DeniedExtensions']['File'] = array();
$Config['FileTypesPath']['File'] = $Config['UserFilesPath'] . 'file/' ;
$Config['FileTypesAbsolutePath']['File']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'file/' ;
$Config['QuickUploadPath']['File'] = $Config['UserFilesPath'] ;
$Config['QuickUploadAbsolutePath']['File']= $Config['UserFilesAbsolutePath'] ;
$Config['AllowedExtensions']['Image'] = array('bmp','gif','jpeg','jpg','png');
$Config['DeniedExtensions']['Image'] = array();
$Config['FileTypesPath']['Image'] = $Config['UserFilesPath'] . 'image/' ;
$Config['FileTypesAbsolutePath']['Image']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'image/' ;
$Config['QuickUploadPath']['Image'] = $Config['UserFilesPath'] ;
$Config['QuickUploadAbsolutePath']['Image']= $Config['UserFilesAbsolutePath'] ;
$Config['AllowedExtensions']['Flash'] = array('swf','flv');
$Config['DeniedExtensions']['Flash'] = array();
$Config['FileTypesPath']['Flash'] = $Config['UserFilesPath'] . 'flash/' ;
$Config['FileTypesAbsolutePath']['Flash']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'flash/' ;
$Config['QuickUploadPath']['Flash'] = $Config['UserFilesPath'] ;
$Config['QuickUploadAbsolutePath']['Flash']= $Config['UserFilesAbsolutePath'] ;
$Config['AllowedExtensions']['Media'] = array('aiff', 'asf', 'avi', 'bmp', 'fla', 'flv', 'gif', 'jpeg', 'jpg', 'mid', 'mov', 'mp3', 'mp4', 'mpc', 'mpeg', 'mpg', 'png', 'qt', 'ram', 'rm', 'rmi', 'rmvb', 'swf', 'tif', 'tiff', 'wav', 'wma', 'wmv');
$Config['DeniedExtensions']['Media'] = array();
$Config['FileTypesPath']['Media'] = $Config['UserFilesPath'] . 'media/' ;
$Config['FileTypesAbsolutePath']['Media']= ($Config['UserFilesAbsolutePath'] == '') ? '' : $Config['UserFilesAbsolutePath'].'media/' ;
$Config['QuickUploadPath']['Media'] = $Config['UserFilesPath'] ;
$Config['QuickUploadAbsolutePath']['Media']= $Config['UserFilesAbsolutePath'] ;
?>

View File

@ -1,87 +1,87 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This is the File Manager Connector for PHP.
*/
ob_start();
require('./config.php');
require('./util.php');
require('./io.php');
require('./basexml.php');
require('./commands.php');
require('./phpcompat.php');
if ( !$Config['Enabled'] )
SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/connectors/php/config.php" file' );
DoResponse();
function DoResponse()
{
if (!isset($_GET)) {
global $_GET;
}
if ( !isset( $_GET['Command'] ) || !isset( $_GET['Type'] ) || !isset( $_GET['CurrentFolder'] ) )
return ;
// Get the main request informaiton.
$sCommand = $_GET['Command'] ;
$sResourceType = $_GET['Type'] ;
$sCurrentFolder = GetCurrentFolder();
// Check if it is an allowed command
if ( ! IsAllowedCommand( $sCommand ) )
SendError( 1, 'The "' . $sCommand . '" command isn\'t allowed' );
// Check if it is an allowed type.
if ( !IsAllowedType( $sResourceType ) )
SendError( 1, 'Invalid type specified' );
// File Upload doesn't have to Return XML, so it must be intercepted before anything.
if ( $sCommand == 'FileUpload' )
{
FileUpload( $sResourceType, $sCurrentFolder, $sCommand );
return ;
}
CreateXmlHeader( $sCommand, $sResourceType, $sCurrentFolder );
// Execute the required command.
switch ( $sCommand )
{
case 'GetFolders' :
GetFolders( $sResourceType, $sCurrentFolder );
break ;
case 'GetFoldersAndFiles' :
GetFoldersAndFiles( $sResourceType, $sCurrentFolder );
break ;
case 'CreateFolder' :
CreateFolder( $sResourceType, $sCurrentFolder );
break ;
}
CreateXmlFooter();
exit ;
}
?>
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This is the File Manager Connector for PHP.
*/
ob_start();
require('./config.php');
require('./util.php');
require('./io.php');
require('./basexml.php');
require('./commands.php');
require('./phpcompat.php');
if ( !$Config['Enabled'] )
SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/connectors/php/config.php" file' );
DoResponse();
function DoResponse()
{
if (!isset($_GET)) {
global $_GET;
}
if ( !isset( $_GET['Command'] ) || !isset( $_GET['Type'] ) || !isset( $_GET['CurrentFolder'] ) )
return ;
// Get the main request informaiton.
$sCommand = $_GET['Command'] ;
$sResourceType = $_GET['Type'] ;
$sCurrentFolder = GetCurrentFolder();
// Check if it is an allowed command
if ( ! IsAllowedCommand( $sCommand ) )
SendError( 1, 'The "' . $sCommand . '" command isn\'t allowed' );
// Check if it is an allowed type.
if ( !IsAllowedType( $sResourceType ) )
SendError( 1, 'Invalid type specified' );
// File Upload doesn't have to Return XML, so it must be intercepted before anything.
if ( $sCommand == 'FileUpload' )
{
FileUpload( $sResourceType, $sCurrentFolder, $sCommand );
return ;
}
CreateXmlHeader( $sCommand, $sResourceType, $sCurrentFolder );
// Execute the required command.
switch ( $sCommand )
{
case 'GetFolders' :
GetFolders( $sResourceType, $sCurrentFolder );
break ;
case 'GetFoldersAndFiles' :
GetFoldersAndFiles( $sResourceType, $sCurrentFolder );
break ;
case 'CreateFolder' :
CreateFolder( $sResourceType, $sCurrentFolder );
break ;
}
CreateXmlFooter();
exit ;
}
?>

View File

@ -1,320 +1,320 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This is the File Manager Connector for PHP.
*/
function CombinePaths( $sBasePath, $sFolder )
{
return RemoveFromEnd( $sBasePath, '/' ) . '/' . RemoveFromStart( $sFolder, '/' );
}
function GetResourceTypePath( $resourceType, $sCommand )
{
global $Config ;
if ( $sCommand == "QuickUpload")
return $Config['QuickUploadPath'][$resourceType] ;
else
return $Config['FileTypesPath'][$resourceType] ;
}
function GetResourceTypeDirectory( $resourceType, $sCommand )
{
global $Config ;
if ( $sCommand == "QuickUpload")
{
if ( strlen( $Config['QuickUploadAbsolutePath'][$resourceType] ) > 0 )
return $Config['QuickUploadAbsolutePath'][$resourceType] ;
// Map the "UserFiles" path to a local directory.
return Server_MapPath( $Config['QuickUploadPath'][$resourceType] );
}
else
{
if ( strlen( $Config['FileTypesAbsolutePath'][$resourceType] ) > 0 )
return $Config['FileTypesAbsolutePath'][$resourceType] ;
// Map the "UserFiles" path to a local directory.
return Server_MapPath( $Config['FileTypesPath'][$resourceType] );
}
}
function GetUrlFromPath( $resourceType, $folderPath, $sCommand )
{
return CombinePaths( GetResourceTypePath( $resourceType, $sCommand ), $folderPath );
}
function RemoveExtension( $fileName )
{
return substr( $fileName, 0, strrpos( $fileName, '.' ) );
}
function ServerMapFolder( $resourceType, $folderPath, $sCommand )
{
// Get the resource type directory.
$sResourceTypePath = GetResourceTypeDirectory( $resourceType, $sCommand );
// Ensure that the directory exists.
$sErrorMsg = CreateServerFolder( $sResourceTypePath );
if ( $sErrorMsg != '' )
SendError( 1, "Error creating folder \"{$sResourceTypePath}\" ({$sErrorMsg})" );
// Return the resource type directory combined with the required path.
return CombinePaths( $sResourceTypePath , $folderPath );
}
function GetParentFolder( $folderPath )
{
$sPattern = "-[/\\\\][^/\\\\]+[/\\\\]?$-" ;
return preg_replace( $sPattern, '', $folderPath );
}
function CreateServerFolder( $folderPath, $lastFolder = null )
{
global $Config ;
$sParent = GetParentFolder( $folderPath );
// Ensure the folder path has no double-slashes, or mkdir may fail on certain platforms
while ( strpos($folderPath, '//') !== false )
{
$folderPath = str_replace( '//', '/', $folderPath );
}
// Check if the parent exists, or create it.
if ( !empty($sParent) && !file_exists( $sParent ) )
{
//prevents agains infinite loop when we can't create root folder
if ( !is_null( $lastFolder ) && $lastFolder === $sParent) {
return "Can't create $folderPath directory" ;
}
$sErrorMsg = CreateServerFolder( $sParent, $folderPath );
if ( $sErrorMsg != '' )
return $sErrorMsg ;
}
if ( !file_exists( $folderPath ) )
{
// Turn off all error reporting.
error_reporting( 0 );
$php_errormsg = '' ;
// Enable error tracking to catch the error.
ini_set( 'track_errors', '1' );
if ( isset( $Config['ChmodOnFolderCreate'] ) && !$Config['ChmodOnFolderCreate'] )
{
mkdir( $folderPath );
}
else
{
$permissions = 0777 ;
if ( isset( $Config['ChmodOnFolderCreate'] ) )
{
$permissions = $Config['ChmodOnFolderCreate'] ;
}
// To create the folder with 0777 permissions, we need to set umask to zero.
$oldumask = umask(0);
mkdir( $folderPath, $permissions );
umask( $oldumask );
}
$sErrorMsg = $php_errormsg ;
// Restore the configurations.
ini_restore( 'track_errors' );
ini_restore( 'error_reporting' );
return $sErrorMsg ;
}
else
return '' ;
}
function GetRootPath()
{
if (!isset($_SERVER)) {
global $_SERVER;
}
$sRealPath = realpath( './' );
// #2124 ensure that no slash is at the end
$sRealPath = rtrim($sRealPath,"\\/");
$sSelfPath = $_SERVER['PHP_SELF'] ;
$sSelfPath = substr( $sSelfPath, 0, strrpos( $sSelfPath, '/' ) );
$sSelfPath = str_replace( '/', DIRECTORY_SEPARATOR, $sSelfPath );
$position = strpos( $sRealPath, $sSelfPath );
// This can check only that this script isn't run from a virtual dir
// But it avoids the problems that arise if it isn't checked
if ( $position === false || $position <> strlen( $sRealPath ) - strlen( $sSelfPath ) )
SendError( 1, 'Sorry, can\'t map "UserFilesPath" to a physical path. You must set the "UserFilesAbsolutePath" value in "editor/filemanager/connectors/php/config.php".' );
return substr( $sRealPath, 0, $position );
}
// Emulate the asp Server.mapPath function.
// given an url path return the physical directory that it corresponds to
function Server_MapPath( $path )
{
// This function is available only for Apache
if ( function_exists( 'apache_lookup_uri' ) )
{
$info = apache_lookup_uri( $path );
return $info->filename . $info->path_info ;
}
// This isn't correct but for the moment there's no other solution
// If this script is under a virtual directory or symlink it will detect the problem and stop
return GetRootPath() . $path ;
}
function IsAllowedExt( $sExtension, $resourceType )
{
global $Config ;
// Get the allowed and denied extensions arrays.
$arAllowed = $Config['AllowedExtensions'][$resourceType] ;
$arDenied = $Config['DeniedExtensions'][$resourceType] ;
if ( count($arAllowed) > 0 && !in_array( $sExtension, $arAllowed ) )
return false ;
if ( count($arDenied) > 0 && in_array( $sExtension, $arDenied ) )
return false ;
return true ;
}
function IsAllowedType( $resourceType )
{
global $Config ;
if ( !in_array( $resourceType, $Config['ConfigAllowedTypes'] ) )
return false ;
return true ;
}
function IsAllowedCommand( $sCommand )
{
global $Config ;
if ( !in_array( $sCommand, $Config['ConfigAllowedCommands'] ) )
return false ;
return true ;
}
function GetCurrentFolder()
{
if (!isset($_GET)) {
global $_GET;
}
$sCurrentFolder = isset( $_GET['CurrentFolder'] ) ? $_GET['CurrentFolder'] : '/' ;
// Check the current folder syntax (must begin and start with a slash).
if ( !preg_match( '|/$|', $sCurrentFolder ) )
$sCurrentFolder .= '/' ;
if ( strpos( $sCurrentFolder, '/' ) !== 0 )
$sCurrentFolder = '/' . $sCurrentFolder ;
// Ensure the folder path has no double-slashes
while ( strpos ($sCurrentFolder, '//') !== false ) {
$sCurrentFolder = str_replace ('//', '/', $sCurrentFolder);
}
// Check for invalid folder paths (..)
if ( strpos( $sCurrentFolder, '..' ) || strpos( $sCurrentFolder, "\\" ))
SendError( 102, '' );
if ( preg_match(",(/\.)|[[:cntrl:]]|(//)|(\\\\)|([\:\*\?\"\<\>\|]),", $sCurrentFolder))
SendError( 102, '' );
return $sCurrentFolder ;
}
// Do a cleanup of the folder name to avoid possible problems
function SanitizeFolderName( $sNewFolderName )
{
$sNewFolderName = stripslashes( $sNewFolderName );
// Remove . \ / | : ? * " < >
$sNewFolderName = preg_replace( '/\\.|\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[[:cntrl:]]/', '_', $sNewFolderName );
return $sNewFolderName ;
}
// Do a cleanup of the file name to avoid possible problems
function SanitizeFileName( $sNewFileName )
{
global $Config ;
$sNewFileName = stripslashes( $sNewFileName );
// Replace dots in the name with underscores (only one dot can be there... security issue).
if ( $Config['ForceSingleExtension'] )
$sNewFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sNewFileName );
// Remove \ / | : ? * " < >
$sNewFileName = preg_replace( '/\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[[:cntrl:]]/', '_', $sNewFileName );
return $sNewFileName ;
}
// This is the function that sends the results of the uploading process.
function SendUploadResults( $errorNumber, $fileUrl = '', $fileName = '', $customMsg = '' )
{
// Minified version of the document.domain automatic fix script (#1919).
// The original script can be found at _dev/domain_fix_template.js
echo <<<EOF
<script type="text/javascript">
(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();
EOF;
if ($errorNumber && $errorNumber != 201) {
$fileUrl = "";
$fileName = "";
}
$rpl = array( '\\' => '\\\\', '"' => '\\"' );
echo 'window.parent.OnUploadCompleted(' . $errorNumber . ',"' . strtr( $fileUrl, $rpl ) . '","' . strtr( $fileName, $rpl ) . '", "' . strtr( $customMsg, $rpl ) . '");' ;
echo '</script>' ;
exit ;
}
// DOL_CHANGE
// This is the function that sends the results of the uploading process to CKE.
function SendCKEditorResults ($callback, $sFileUrl, $customMsg = '')
{
echo '<script type="text/javascript">';
$rpl = array( '\\' => '\\\\', '"' => '\\"' );
echo 'window.parent.CKEDITOR.tools.callFunction("'. $callback. '","'.
strtr($sFileUrl, $rpl). '", "'. strtr($customMsg, $rpl). '");' ;
echo '</script>';
}
?>
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This is the File Manager Connector for PHP.
*/
function CombinePaths( $sBasePath, $sFolder )
{
return RemoveFromEnd( $sBasePath, '/' ) . '/' . RemoveFromStart( $sFolder, '/' );
}
function GetResourceTypePath( $resourceType, $sCommand )
{
global $Config ;
if ( $sCommand == "QuickUpload")
return $Config['QuickUploadPath'][$resourceType] ;
else
return $Config['FileTypesPath'][$resourceType] ;
}
function GetResourceTypeDirectory( $resourceType, $sCommand )
{
global $Config ;
if ( $sCommand == "QuickUpload")
{
if ( strlen( $Config['QuickUploadAbsolutePath'][$resourceType] ) > 0 )
return $Config['QuickUploadAbsolutePath'][$resourceType] ;
// Map the "UserFiles" path to a local directory.
return Server_MapPath( $Config['QuickUploadPath'][$resourceType] );
}
else
{
if ( strlen( $Config['FileTypesAbsolutePath'][$resourceType] ) > 0 )
return $Config['FileTypesAbsolutePath'][$resourceType] ;
// Map the "UserFiles" path to a local directory.
return Server_MapPath( $Config['FileTypesPath'][$resourceType] );
}
}
function GetUrlFromPath( $resourceType, $folderPath, $sCommand )
{
return CombinePaths( GetResourceTypePath( $resourceType, $sCommand ), $folderPath );
}
function RemoveExtension( $fileName )
{
return substr( $fileName, 0, strrpos( $fileName, '.' ) );
}
function ServerMapFolder( $resourceType, $folderPath, $sCommand )
{
// Get the resource type directory.
$sResourceTypePath = GetResourceTypeDirectory( $resourceType, $sCommand );
// Ensure that the directory exists.
$sErrorMsg = CreateServerFolder( $sResourceTypePath );
if ( $sErrorMsg != '' )
SendError( 1, "Error creating folder \"{$sResourceTypePath}\" ({$sErrorMsg})" );
// Return the resource type directory combined with the required path.
return CombinePaths( $sResourceTypePath , $folderPath );
}
function GetParentFolder( $folderPath )
{
$sPattern = "-[/\\\\][^/\\\\]+[/\\\\]?$-" ;
return preg_replace( $sPattern, '', $folderPath );
}
function CreateServerFolder( $folderPath, $lastFolder = null )
{
global $Config ;
$sParent = GetParentFolder( $folderPath );
// Ensure the folder path has no double-slashes, or mkdir may fail on certain platforms
while ( strpos($folderPath, '//') !== false )
{
$folderPath = str_replace( '//', '/', $folderPath );
}
// Check if the parent exists, or create it.
if ( !empty($sParent) && !file_exists( $sParent ) )
{
//prevents agains infinite loop when we can't create root folder
if ( !is_null( $lastFolder ) && $lastFolder === $sParent) {
return "Can't create $folderPath directory" ;
}
$sErrorMsg = CreateServerFolder( $sParent, $folderPath );
if ( $sErrorMsg != '' )
return $sErrorMsg ;
}
if ( !file_exists( $folderPath ) )
{
// Turn off all error reporting.
error_reporting( 0 );
$php_errormsg = '' ;
// Enable error tracking to catch the error.
ini_set( 'track_errors', '1' );
if ( isset( $Config['ChmodOnFolderCreate'] ) && !$Config['ChmodOnFolderCreate'] )
{
mkdir( $folderPath );
}
else
{
$permissions = 0777 ;
if ( isset( $Config['ChmodOnFolderCreate'] ) )
{
$permissions = $Config['ChmodOnFolderCreate'] ;
}
// To create the folder with 0777 permissions, we need to set umask to zero.
$oldumask = umask(0);
mkdir( $folderPath, $permissions );
umask( $oldumask );
}
$sErrorMsg = $php_errormsg ;
// Restore the configurations.
ini_restore( 'track_errors' );
ini_restore( 'error_reporting' );
return $sErrorMsg ;
}
else
return '' ;
}
function GetRootPath()
{
if (!isset($_SERVER)) {
global $_SERVER;
}
$sRealPath = realpath( './' );
// #2124 ensure that no slash is at the end
$sRealPath = rtrim($sRealPath,"\\/");
$sSelfPath = $_SERVER['PHP_SELF'] ;
$sSelfPath = substr( $sSelfPath, 0, strrpos( $sSelfPath, '/' ) );
$sSelfPath = str_replace( '/', DIRECTORY_SEPARATOR, $sSelfPath );
$position = strpos( $sRealPath, $sSelfPath );
// This can check only that this script isn't run from a virtual dir
// But it avoids the problems that arise if it isn't checked
if ( $position === false || $position <> strlen( $sRealPath ) - strlen( $sSelfPath ) )
SendError( 1, 'Sorry, can\'t map "UserFilesPath" to a physical path. You must set the "UserFilesAbsolutePath" value in "editor/filemanager/connectors/php/config.php".' );
return substr( $sRealPath, 0, $position );
}
// Emulate the asp Server.mapPath function.
// given an url path return the physical directory that it corresponds to
function Server_MapPath( $path )
{
// This function is available only for Apache
if ( function_exists( 'apache_lookup_uri' ) )
{
$info = apache_lookup_uri( $path );
return $info->filename . $info->path_info ;
}
// This isn't correct but for the moment there's no other solution
// If this script is under a virtual directory or symlink it will detect the problem and stop
return GetRootPath() . $path ;
}
function IsAllowedExt( $sExtension, $resourceType )
{
global $Config ;
// Get the allowed and denied extensions arrays.
$arAllowed = $Config['AllowedExtensions'][$resourceType] ;
$arDenied = $Config['DeniedExtensions'][$resourceType] ;
if ( count($arAllowed) > 0 && !in_array( $sExtension, $arAllowed ) )
return false ;
if ( count($arDenied) > 0 && in_array( $sExtension, $arDenied ) )
return false ;
return true ;
}
function IsAllowedType( $resourceType )
{
global $Config ;
if ( !in_array( $resourceType, $Config['ConfigAllowedTypes'] ) )
return false ;
return true ;
}
function IsAllowedCommand( $sCommand )
{
global $Config ;
if ( !in_array( $sCommand, $Config['ConfigAllowedCommands'] ) )
return false ;
return true ;
}
function GetCurrentFolder()
{
if (!isset($_GET)) {
global $_GET;
}
$sCurrentFolder = isset( $_GET['CurrentFolder'] ) ? $_GET['CurrentFolder'] : '/' ;
// Check the current folder syntax (must begin and start with a slash).
if ( !preg_match( '|/$|', $sCurrentFolder ) )
$sCurrentFolder .= '/' ;
if ( strpos( $sCurrentFolder, '/' ) !== 0 )
$sCurrentFolder = '/' . $sCurrentFolder ;
// Ensure the folder path has no double-slashes
while ( strpos ($sCurrentFolder, '//') !== false ) {
$sCurrentFolder = str_replace ('//', '/', $sCurrentFolder);
}
// Check for invalid folder paths (..)
if ( strpos( $sCurrentFolder, '..' ) || strpos( $sCurrentFolder, "\\" ))
SendError( 102, '' );
if ( preg_match(",(/\.)|[[:cntrl:]]|(//)|(\\\\)|([\:\*\?\"\<\>\|]),", $sCurrentFolder))
SendError( 102, '' );
return $sCurrentFolder ;
}
// Do a cleanup of the folder name to avoid possible problems
function SanitizeFolderName( $sNewFolderName )
{
$sNewFolderName = stripslashes( $sNewFolderName );
// Remove . \ / | : ? * " < >
$sNewFolderName = preg_replace( '/\\.|\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[[:cntrl:]]/', '_', $sNewFolderName );
return $sNewFolderName ;
}
// Do a cleanup of the file name to avoid possible problems
function SanitizeFileName( $sNewFileName )
{
global $Config ;
$sNewFileName = stripslashes( $sNewFileName );
// Replace dots in the name with underscores (only one dot can be there... security issue).
if ( $Config['ForceSingleExtension'] )
$sNewFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sNewFileName );
// Remove \ / | : ? * " < >
$sNewFileName = preg_replace( '/\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[[:cntrl:]]/', '_', $sNewFileName );
return $sNewFileName ;
}
// This is the function that sends the results of the uploading process.
function SendUploadResults( $errorNumber, $fileUrl = '', $fileName = '', $customMsg = '' )
{
// Minified version of the document.domain automatic fix script (#1919).
// The original script can be found at _dev/domain_fix_template.js
echo <<<EOF
<script type="text/javascript">
(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();
EOF;
if ($errorNumber && $errorNumber != 201) {
$fileUrl = "";
$fileName = "";
}
$rpl = array( '\\' => '\\\\', '"' => '\\"' );
echo 'window.parent.OnUploadCompleted(' . $errorNumber . ',"' . strtr( $fileUrl, $rpl ) . '","' . strtr( $fileName, $rpl ) . '", "' . strtr( $customMsg, $rpl ) . '");' ;
echo '</script>' ;
exit ;
}
// DOL_CHANGE
// This is the function that sends the results of the uploading process to CKE.
function SendCKEditorResults ($callback, $sFileUrl, $customMsg = '')
{
echo '<script type="text/javascript">';
$rpl = array( '\\' => '\\\\', '"' => '\\"' );
echo 'window.parent.CKEDITOR.tools.callFunction("'. $callback. '","'.
strtr($sFileUrl, $rpl). '", "'. strtr($customMsg, $rpl). '");' ;
echo '</script>';
}
?>

View File

@ -1,17 +1,16 @@
<?php
if ( !isset( $_SERVER ) ) {
$_SERVER = $HTTP_SERVER_VARS ;
}
if ( !isset( $_GET ) ) {
$_GET = $HTTP_GET_VARS ;
}
if ( !isset( $_FILES ) ) {
$_FILES = $HTTP_POST_FILES ;
}
if ( !defined( 'DIRECTORY_SEPARATOR' ) ) {
define( 'DIRECTORY_SEPARATOR',
strtoupper(substr(PHP_OS, 0, 3) == 'WIN') ? '\\' : '/'
);
}
<?php
if ( !isset( $_SERVER ) ) {
$_SERVER = $HTTP_SERVER_VARS ;
}
if ( !isset( $_GET ) ) {
$_GET = $HTTP_GET_VARS ;
}
if ( !isset( $_FILES ) ) {
$_FILES = $HTTP_POST_FILES ;
}
if (! defined('DIRECTORY_SEPARATOR'))
{
define('DIRECTORY_SEPARATOR', strtoupper(substr(PHP_OS, 0, 3) == 'WIN') ? '\\' : '/');
}

View File

@ -1,67 +1,67 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This is the "File Uploader" for PHP.
*/
require('./config.php');
require('./util.php');
require('./io.php');
require('./commands.php');
require('./phpcompat.php');
function SendError( $number, $text )
{
SendUploadResults( $number, '', '', $text );
}
// Check if this uploader has been enabled.
if ( !$Config['Enabled'] )
SendUploadResults( '1', '', '', 'This file uploader is disabled. Please check the "editor/filemanager/connectors/php/config.php" file' );
$sCommand = 'QuickUpload' ;
// The file type (from the QueryString, by default 'File').
$sType = isset( $_GET['Type'] ) ? $_GET['Type'] : 'File' ;
$sCurrentFolder = "/" ;
// Is enabled the upload?
if ( ! IsAllowedCommand( $sCommand ) )
SendUploadResults( '1', '', '', 'The ""' . $sCommand . '"" command isn\'t allowed' );
// Check if it is an allowed type.
if ( !IsAllowedType( $sType ) )
SendUploadResults( 1, '', '', 'Invalid type specified' );
// DOL_CHANGE
//FileUpload( $sType, $sCurrentFolder, $sCommand )
// Get the CKEditor Callback
$CKEcallback = $_GET['CKEditorFuncNum'];
//modify the next line adding in the new param
FileUpload($sType, $sCurrentFolder, $sCommand, $CKEcallback);
?>
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* This is the "File Uploader" for PHP.
*/
require('./config.php');
require('./util.php');
require('./io.php');
require('./commands.php');
require('./phpcompat.php');
function SendError( $number, $text )
{
SendUploadResults( $number, '', '', $text );
}
// Check if this uploader has been enabled.
if ( !$Config['Enabled'] )
SendUploadResults( '1', '', '', 'This file uploader is disabled. Please check the "editor/filemanager/connectors/php/config.php" file' );
$sCommand = 'QuickUpload' ;
// The file type (from the QueryString, by default 'File').
$sType = isset( $_GET['Type'] ) ? $_GET['Type'] : 'File' ;
$sCurrentFolder = "/" ;
// Is enabled the upload?
if ( ! IsAllowedCommand( $sCommand ) )
SendUploadResults( '1', '', '', 'The ""' . $sCommand . '"" command isn\'t allowed' );
// Check if it is an allowed type.
if ( !IsAllowedType( $sType ) )
SendUploadResults( 1, '', '', 'Invalid type specified' );
// DOL_CHANGE
//FileUpload( $sType, $sCurrentFolder, $sCommand )
// Get the CKEditor Callback
$CKEcallback = $_GET['CKEditorFuncNum'];
//modify the next line adding in the new param
FileUpload($sType, $sCurrentFolder, $sCommand, $CKEcallback);
?>

View File

@ -1,220 +1,220 @@
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Utility functions for the File Manager Connector for PHP.
*/
function RemoveFromStart( $sourceString, $charToRemove )
{
$sPattern = '|^' . $charToRemove . '+|' ;
return preg_replace( $sPattern, '', $sourceString );
}
function RemoveFromEnd( $sourceString, $charToRemove )
{
$sPattern = '|' . $charToRemove . '+$|' ;
return preg_replace( $sPattern, '', $sourceString );
}
function FindBadUtf8( $string )
{
$regex =
'([\x00-\x7F]'.
'|[\xC2-\xDF][\x80-\xBF]'.
'|\xE0[\xA0-\xBF][\x80-\xBF]'.
'|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}'.
'|\xED[\x80-\x9F][\x80-\xBF]'.
'|\xF0[\x90-\xBF][\x80-\xBF]{2}'.
'|[\xF1-\xF3][\x80-\xBF]{3}'.
'|\xF4[\x80-\x8F][\x80-\xBF]{2}'.
'|(.{1}))';
while (preg_match('/'.$regex.'/S', $string, $matches)) {
if ( isset($matches[2])) {
return true;
}
$string = substr($string, strlen($matches[0]));
}
return false;
}
function ConvertToXmlAttribute( $value )
{
if ( defined( 'PHP_OS' ) )
{
$os = PHP_OS ;
}
else
{
$os = php_uname();
}
if ( strtoupper( substr( $os, 0, 3 ) ) === 'WIN' || FindBadUtf8( $value ) )
{
return ( utf8_encode( htmlspecialchars( $value ) ) );
}
else
{
return ( htmlspecialchars( $value ) );
}
}
/**
* Check whether given extension is in html etensions list
*
* @param string $ext
* @param array $formExtensions
* @return boolean
*/
function IsHtmlExtension( $ext, $formExtensions )
{
if ( !$formExtensions || !is_array( $formExtensions ) )
{
return false ;
}
$lcaseHtmlExtensions = array();
foreach ( $formExtensions as $key => $val )
{
$lcaseHtmlExtensions[$key] = strtolower( $val );
}
return in_array( $ext, $lcaseHtmlExtensions );
}
/**
* Detect HTML in the first KB to prevent against potential security issue with
* IE/Safari/Opera file type auto detection bug.
* Returns true if file contain insecure HTML code at the beginning.
*
* @param string $filePath absolute path to file
* @return boolean
*/
function DetectHtml( $filePath )
{
$fp = @fopen( $filePath, 'rb' );
//open_basedir restriction, see #1906
if ( $fp === false || !flock( $fp, LOCK_SH ) )
{
return -1 ;
}
$chunk = fread( $fp, 1024 );
flock( $fp, LOCK_UN );
fclose( $fp );
$chunk = strtolower( $chunk );
if (!$chunk)
{
return false ;
}
$chunk = trim( $chunk );
if ( preg_match( "/<!DOCTYPE\W*X?HTML/sim", $chunk ) )
{
return true;
}
$tags = array( '<body', '<head', '<html', '<img', '<pre', '<script', '<table', '<title' );
foreach( $tags as $tag )
{
if( false !== strpos( $chunk, $tag ) )
{
return true ;
}
}
//type = javascript
if ( preg_match( '!type\s*=\s*[\'"]?\s*(?:\w*/)?(?:ecma|java)!sim', $chunk ) )
{
return true ;
}
//href = javascript
//src = javascript
//data = javascript
if ( preg_match( '!(?:href|src|data)\s*=\s*[\'"]?\s*(?:ecma|java)script:!sim', $chunk ) )
{
return true ;
}
//url(javascript
if ( preg_match( '!url\s*\(\s*[\'"]?\s*(?:ecma|java)script:!sim', $chunk ) )
{
return true ;
}
return false ;
}
/**
* Check file content.
* Currently this function validates only image files.
* Returns false if file is invalid.
*
* @param string $filePath absolute path to file
* @param string $extension file extension
* @param integer $detectionLevel 0 = none, 1 = use getimagesize for images, 2 = use DetectHtml for images
* @return boolean
*/
function IsImageValid( $filePath, $extension )
{
if (!@is_readable($filePath)) {
return -1;
}
$imageCheckExtensions = array('gif', 'jpeg', 'jpg', 'png', 'swf', 'psd', 'bmp', 'iff');
// version_compare is available since PHP4 >= 4.0.7
if ( function_exists( 'version_compare' ) ) {
$sCurrentVersion = phpversion();
if ( version_compare( $sCurrentVersion, "4.2.0" ) >= 0 ) {
$imageCheckExtensions[] = "tiff";
$imageCheckExtensions[] = "tif";
}
if ( version_compare( $sCurrentVersion, "4.3.0" ) >= 0 ) {
$imageCheckExtensions[] = "swc";
}
if ( version_compare( $sCurrentVersion, "4.3.2" ) >= 0 ) {
$imageCheckExtensions[] = "jpc";
$imageCheckExtensions[] = "jp2";
$imageCheckExtensions[] = "jpx";
$imageCheckExtensions[] = "jb2";
$imageCheckExtensions[] = "xbm";
$imageCheckExtensions[] = "wbmp";
}
}
if ( !in_array( $extension, $imageCheckExtensions ) ) {
return true;
}
if ( @getimagesize( $filePath ) === false ) {
return false ;
}
return true;
}
?>
<?php
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2010 Frederico Caldeira Knabben
*
* == BEGIN LICENSE ==
*
* Licensed under the terms of any of the following licenses at your
* choice:
*
* - GNU General Public License Version 2 or later (the "GPL")
* http://www.gnu.org/licenses/gpl.html
*
* - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
* http://www.gnu.org/licenses/lgpl.html
*
* - Mozilla Public License Version 1.1 or later (the "MPL")
* http://www.mozilla.org/MPL/MPL-1.1.html
*
* == END LICENSE ==
*
* Utility functions for the File Manager Connector for PHP.
*/
function RemoveFromStart( $sourceString, $charToRemove )
{
$sPattern = '|^' . $charToRemove . '+|' ;
return preg_replace( $sPattern, '', $sourceString );
}
function RemoveFromEnd( $sourceString, $charToRemove )
{
$sPattern = '|' . $charToRemove . '+$|' ;
return preg_replace( $sPattern, '', $sourceString );
}
function FindBadUtf8( $string )
{
$regex =
'([\x00-\x7F]'.
'|[\xC2-\xDF][\x80-\xBF]'.
'|\xE0[\xA0-\xBF][\x80-\xBF]'.
'|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}'.
'|\xED[\x80-\x9F][\x80-\xBF]'.
'|\xF0[\x90-\xBF][\x80-\xBF]{2}'.
'|[\xF1-\xF3][\x80-\xBF]{3}'.
'|\xF4[\x80-\x8F][\x80-\xBF]{2}'.
'|(.{1}))';
while (preg_match('/'.$regex.'/S', $string, $matches)) {
if ( isset($matches[2])) {
return true;
}
$string = substr($string, strlen($matches[0]));
}
return false;
}
function ConvertToXmlAttribute( $value )
{
if ( defined( 'PHP_OS' ) )
{
$os = PHP_OS ;
}
else
{
$os = php_uname();
}
if ( strtoupper( substr( $os, 0, 3 ) ) === 'WIN' || FindBadUtf8( $value ) )
{
return ( utf8_encode( htmlspecialchars( $value ) ) );
}
else
{
return ( htmlspecialchars( $value ) );
}
}
/**
* Check whether given extension is in html etensions list
*
* @param string $ext
* @param array $formExtensions
* @return boolean
*/
function IsHtmlExtension( $ext, $formExtensions )
{
if ( !$formExtensions || !is_array( $formExtensions ) )
{
return false ;
}
$lcaseHtmlExtensions = array();
foreach ( $formExtensions as $key => $val )
{
$lcaseHtmlExtensions[$key] = strtolower( $val );
}
return in_array( $ext, $lcaseHtmlExtensions );
}
/**
* Detect HTML in the first KB to prevent against potential security issue with
* IE/Safari/Opera file type auto detection bug.
* Returns true if file contain insecure HTML code at the beginning.
*
* @param string $filePath absolute path to file
* @return boolean
*/
function DetectHtml( $filePath )
{
$fp = @fopen( $filePath, 'rb' );
//open_basedir restriction, see #1906
if ( $fp === false || !flock( $fp, LOCK_SH ) )
{
return -1 ;
}
$chunk = fread( $fp, 1024 );
flock( $fp, LOCK_UN );
fclose( $fp );
$chunk = strtolower( $chunk );
if (!$chunk)
{
return false ;
}
$chunk = trim( $chunk );
if ( preg_match( "/<!DOCTYPE\W*X?HTML/sim", $chunk ) )
{
return true;
}
$tags = array( '<body', '<head', '<html', '<img', '<pre', '<script', '<table', '<title' );
foreach( $tags as $tag )
{
if( false !== strpos( $chunk, $tag ) )
{
return true ;
}
}
//type = javascript
if ( preg_match( '!type\s*=\s*[\'"]?\s*(?:\w*/)?(?:ecma|java)!sim', $chunk ) )
{
return true ;
}
//href = javascript
//src = javascript
//data = javascript
if ( preg_match( '!(?:href|src|data)\s*=\s*[\'"]?\s*(?:ecma|java)script:!sim', $chunk ) )
{
return true ;
}
//url(javascript
if ( preg_match( '!url\s*\(\s*[\'"]?\s*(?:ecma|java)script:!sim', $chunk ) )
{
return true ;
}
return false ;
}
/**
* Check file content.
* Currently this function validates only image files.
* Returns false if file is invalid.
*
* @param string $filePath absolute path to file
* @param string $extension file extension
* @param integer $detectionLevel 0 = none, 1 = use getimagesize for images, 2 = use DetectHtml for images
* @return boolean
*/
function IsImageValid( $filePath, $extension )
{
if (!@is_readable($filePath)) {
return -1;
}
$imageCheckExtensions = array('gif', 'jpeg', 'jpg', 'png', 'swf', 'psd', 'bmp', 'iff');
// version_compare is available since PHP4 >= 4.0.7
if ( function_exists( 'version_compare' ) ) {
$sCurrentVersion = phpversion();
if ( version_compare( $sCurrentVersion, "4.2.0" ) >= 0 ) {
$imageCheckExtensions[] = "tiff";
$imageCheckExtensions[] = "tif";
}
if ( version_compare( $sCurrentVersion, "4.3.0" ) >= 0 ) {
$imageCheckExtensions[] = "swc";
}
if ( version_compare( $sCurrentVersion, "4.3.2" ) >= 0 ) {
$imageCheckExtensions[] = "jpc";
$imageCheckExtensions[] = "jp2";
$imageCheckExtensions[] = "jpx";
$imageCheckExtensions[] = "jb2";
$imageCheckExtensions[] = "xbm";
$imageCheckExtensions[] = "wbmp";
}
}
if ( !in_array( $extension, $imageCheckExtensions ) ) {
return true;
}
if ( @getimagesize( $filePath ) === false ) {
return false ;
}
return true;
}
?>

View File

@ -667,8 +667,8 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass
* @param PDF &$pdf Object PDF
* @param object $object Object
* @param Translate $outputlangs Object lang
* @param int $curx X
* @param int $cury Y
* @param int $posx X
* @param int $posy Y
* @param int $align Align
* @param string $default_font_size Font size
* @param HookManager $hookmanager Hook manager object

View File

@ -242,7 +242,6 @@ class SimpleOpenID
/**
* GetIdentity
*
* @param string $a Server
* @return void
*/
function GetIdentity()
@ -253,7 +252,6 @@ class SimpleOpenID
/**
* SetOpenIDServer
*
* @param string $a Server
* @return void
*/
function GetError()
@ -265,7 +263,8 @@ class SimpleOpenID
/**
* ErrorStore
*
* @param string $a Server
* @param string $code Code
* @param string $desc Description
* @return void
*/
function ErrorStore($code, $desc = null)
@ -280,14 +279,16 @@ class SimpleOpenID
/**
* IsError
*
* @param string $a Server
* @return void
*/
function IsError()
{
if (count($this->error) > 0){
if (count($this->error) > 0)
{
return true;
}else{
}
else
{
return false;
}
}
@ -295,7 +296,7 @@ class SimpleOpenID
/**
* splitResponse
*
* @param string $a Server
* @param string $response Server
* @return void
*/
function splitResponse($response)
@ -315,7 +316,7 @@ class SimpleOpenID
/**
* OpenID_Standarize
*
* @param string $a Server
* @param string $openidçidentity Server
* @return void
*/
function OpenID_Standarize($openid_identity = null)
@ -434,7 +435,6 @@ class SimpleOpenID
/**
* GetRedirectURL
*
* @param string $a Server
* @return void
*/
function GetRedirectURL()
@ -459,7 +459,6 @@ class SimpleOpenID
/**
* Redirect
*
* @param string $a Server
* @return void
*/
function Redirect()
@ -480,7 +479,6 @@ class SimpleOpenID
/**
* ValidateWithServer
*
* @param string $a Server
* @return void
*/
function ValidateWithServer()

View File

@ -26,10 +26,11 @@
/**
* Core function to output top menu smartphone
*
* @param $db
* @param $atarget
* @param $type_user 0=Internal,1=External,2=All
* @param $limitmenuto To limit menu to a top or left menu value
* @param DoliDB $db Database handler
* @param string $atarget Target
* @param int $type_user 0=Internal,1=External,2=All
* @param string $limitmenuto To limit menu to a top or left menu value
* @return void
*/
function print_smartphone_menu($db,$atarget,$type_user,$limitmenuto)
{
@ -141,34 +142,66 @@ function print_smartphone_menu($db,$atarget,$type_user,$limitmenuto)
print "\n";
}
/**
* Output menu entry
*
* @param string $theme Theme
* @return void
*/
function print_start_menu_array($theme='c')
{
print '<ul data-role="listview" data-theme="'.$theme.'">';
print "\n";
}
/**
* Output start submenu entry
*
* @return void
*/
function print_start_submenu_array()
{
print '<ul>';
print "\n";
}
/**
* Output start menu entry
*
* @return void
*/
function print_start_menu_entry()
{
print '<li>';
}
/**
* Output menu entry
*
* @param string $text Text
* @return void
*/
function print_text_menu_entry($text)
{
print $text;
}
/**
* Output end menu entry
*
* @return void
*/
function print_end_menu_entry()
{
print '</li>';
print "\n";
}
/**
* Output end menu
*
* @return void
*/
function print_end_menu()
{
print '</ul>';

View File

@ -25,8 +25,8 @@
/**
* Class to manage smartphone menu smartphone (for internal users)
*/
class MenuSmart {
class MenuSmart
{
var $db;
var $require_left=array("smartphone_backoffice"); // Si doit etre en phase avec un gestionnaire de menu particulier
var $hideifnotallowed=0; // Put 0 for back office menu, 1 for front office menu
@ -46,7 +46,7 @@ class MenuSmart {
/**
* Show menu
*
*
* @param string $limitmenuto To limit menu to a top or left menu value
* @return void
*/

View File

@ -23,10 +23,10 @@
/**
* \class MenuSmart
* \brief Class to manage smartphone menu smartphone (for external users)
* Class to manage smartphone menu smartphone (for external users)
*/
class MenuSmart {
class MenuSmart
{
var $require_left=array("smartphone_frontoffice"); // Si doit etre en phase avec un gestionnaire de menu particulier
var $hideifnotallowed=1; // Put 0 for back office menu, 1 for front office menu
@ -36,7 +36,7 @@ class MenuSmart {
/**
* Constructor
*
* @param DoliDB $DB Database handler
* @param DoliDB $db Database handler
*/
function MenuSmart($db)
{
@ -47,7 +47,7 @@ class MenuSmart {
/**
* Show menu
*
* @param limitmenuto To limit menu to a top or left menu value
* @param string $limitmenuto To limit menu to a top or left menu value
*/
function showmenu($limitmenuto)
{

View File

@ -108,7 +108,11 @@ function print_auguria_menu($db,$atarget,$type_user)
}
/**
* Output start menu entry
*
* @return void
*/
function print_start_menu_array_auguria()
{
global $conf;
@ -116,6 +120,12 @@ function print_start_menu_array_auguria()
else print '<ul class="tmenu">';
}
/**
* Output menu entry
*
* @param string $idsel Text
* @return void
*/
function print_start_menu_entry_auguria($idsel)
{
global $conf;
@ -123,6 +133,12 @@ function print_start_menu_entry_auguria($idsel)
else print '<li class="tmenu" id="mainmenutd_'.$idsel.'">';
}
/**
* Output menu entry
*
* @param string $text Text
* @return void
*/
function print_text_menu_entry_auguria($text)
{
global $conf;
@ -131,6 +147,11 @@ function print_text_menu_entry_auguria($text)
print '</span>';
}
/**
* Output end menu entry
*
* @return void
*/
function print_end_menu_entry_auguria()
{
global $conf;
@ -139,6 +160,11 @@ function print_end_menu_entry_auguria()
print "\n";
}
/**
* Output menu array
*
* @return void
*/
function print_end_menu_array_auguria()
{
global $conf;

View File

@ -511,6 +511,12 @@ function print_start_menu_array()
else print '<ul class="tmenu">';
}
/**
* Output start menu entry
*
* @param string $idsel Text
* @return void
*/
function print_start_menu_entry($idsel)
{
global $conf;
@ -518,6 +524,12 @@ function print_start_menu_entry($idsel)
else print '<li class="tmenu" id="mainmenutd_'.$idsel.'">';
}
/**
* Output menu entry
*
* @param string $text Text
* @return void
*/
function print_text_menu_entry($text)
{
global $conf;
@ -526,6 +538,11 @@ function print_text_menu_entry($text)
print '</span>';
}
/**
* Output end menu entry
*
* @return void
*/
function print_end_menu_entry()
{
global $conf;
@ -534,6 +551,11 @@ function print_end_menu_entry()
print "\n";
}
/**
* Output menu array
*
* @return void
*/
function print_end_menu_array()
{
global $conf;

View File

@ -71,7 +71,11 @@ class MenuTop
}
/**
* Output menu entry
*
* @return void
*/
function print_start_menu_array_empty()
{
global $conf;
@ -79,6 +83,12 @@ function print_start_menu_array_empty()
else print '<ul class="tmenu">';
}
/**
* Output start menu entry
*
* @param string $idsel Text
* @return void
*/
function print_start_menu_entry_empty($idsel)
{
global $conf;
@ -86,6 +96,12 @@ function print_start_menu_entry_empty($idsel)
else print '<li class="tmenu" id="mainmenutd_'.$idsel.'">';
}
/**
* Output menu entry
*
* @param string $text Text
* @return void
*/
function print_text_menu_entry_empty($text)
{
global $conf;
@ -94,6 +110,11 @@ function print_text_menu_entry_empty($text)
print '</span>';
}
/**
* Output end menu entry
*
* @return void
*/
function print_end_menu_entry_empty()
{
global $conf;
@ -102,6 +123,11 @@ function print_end_menu_entry_empty()
print "\n";
}
/**
* Output menu array
*
* @return void
*/
function print_end_menu_array_empty()
{
global $conf;

View File

@ -74,9 +74,9 @@ Class pdf_expedition_merou extends ModelePdfExpedition
/**
* Fonction generant le document sur le disque
*
* @param object Objet expedition a generer (ou id si ancienne methode)
* @param outputlangs Lang output object
* @return int 1=ok, 0=ko
* @param Object &$object Objet expedition a generer (ou id si ancienne methode)
* @param Translate $outputlangs Lang output object
* @return int 1=ok, 0=ko
*/
function write_file(&$object, $outputlangs)
{

View File

@ -76,7 +76,7 @@ Class pdf_expedition_rouget extends ModelePdfExpedition
/**
* Fonction generant le document sur le disque
*
* @param Object $object Objet expedition a generer (ou id si ancienne methode)
* @param Object &$object Objet expedition a generer (ou id si ancienne methode)
* @param Translate $outputlangs Lang output object
* @return int 1=ok, 0=ko
*/

View File

@ -120,7 +120,7 @@ class mod_expedition_ribera extends ModelNumRefExpedition
* Return next free value
*
* @param Societe $objsoc Third party object
* @param Object $shipment Shipment object
* @param Object $objforref Shipment object
* @return string Next free value
*/
function expedition_get_num($objsoc,$objforref)

View File

@ -132,7 +132,7 @@ class mod_expedition_safor extends ModelNumRefExpedition
* Return next free value
*
* @param Societe $objsoc Third party object
* @param Object $shipment Shipment object
* @param Object $objforref Shipment object
* @return string Next free value
*/
function expedition_get_num($objsoc,$objforref)

View File

@ -513,7 +513,7 @@ class pdf_crabe extends ModelePDFFactures
$pdf->SetXY($tab3_posx+58, $tab3_top+$y);
$pdf->MultiCell(20, 3, $invoice->ref, 0, 'L', 0);
$pdf->line($tab3_posx, $tab3_top+$y+3, $tab3_posx+$tab3_width, $tab3_top+$y+3 );
$pdf->line($tab3_posx, $tab3_top+$y+3, $tab3_posx+$tab3_width, $tab3_top+$y+3);
$i++;
}
@ -552,7 +552,7 @@ class pdf_crabe extends ModelePDFFactures
$pdf->SetXY($tab3_posx+58, $tab3_top+$y);
$pdf->MultiCell(30, 3, $row->num, 0, 'L', 0);
$pdf->line($tab3_posx, $tab3_top+$y+3, $tab3_posx+$tab3_width, $tab3_top+$y+3 );
$pdf->line($tab3_posx, $tab3_top+$y+3, $tab3_posx+$tab3_width, $tab3_top+$y+3);
$i++;
}

View File

@ -209,7 +209,7 @@ class pdf_oursin extends ModelePDFFactures
$pdf->SetFillColor(220,220,220);
$pdf->SetFont('','', $default_font_size - 1);
$pdf->SetXY($this->marges['g'], $tab_top + $this->marges['g'] );
$pdf->SetXY($this->marges['g'], $tab_top + $this->marges['g']);
$iniY = $pdf->GetY();
$curY = $pdf->GetY();
@ -356,13 +356,13 @@ class pdf_oursin extends ModelePDFFactures
$pdf->Rect($tab3_posx, $tab3_top-1, $tab3_width, $tab3_height);
$pdf->SetFont('','', $default_font_size - 4);
$pdf->SetXY($tab3_posx, $tab3_top-1 );
$pdf->SetXY($tab3_posx, $tab3_top-1);
$pdf->MultiCell(20, 4, $outputlangs->transnoentities("Payment"), 0, 'L', 0);
$pdf->SetXY($tab3_posx+21, $tab3_top-1 );
$pdf->SetXY($tab3_posx+21, $tab3_top-1);
$pdf->MultiCell(20, 4, $outputlangs->transnoentities("Amount"), 0, 'L', 0);
$pdf->SetXY($tab3_posx+40, $tab3_top-1 );
$pdf->SetXY($tab3_posx+40, $tab3_top-1);
$pdf->MultiCell(20, 4, $outputlangs->transnoentities("Type"), 0, 'L', 0);
$pdf->SetXY($tab3_posx+58, $tab3_top-1 );
$pdf->SetXY($tab3_posx+58, $tab3_top-1);
$pdf->MultiCell(20, 4, $outputlangs->transnoentities("Num"), 0, 'L', 0);
$y=0;
@ -746,6 +746,7 @@ class pdf_oursin extends ModelePDFFactures
* @param string $tab_top Top position of table
* @param string $tab_height Height of table (rectangle)
* @param int $nexY Y
* @param Object $object Object
* @param Translate $outputlangs Langs object
* @return void
*/

View File

@ -110,10 +110,10 @@ class mod_facture_mercure extends ModeleNumRefFactures
/**
* Return next value
*
* @param objsoc Object third party
* @param facture Object invoice
* @param mode 'next' for next value or 'last' for last value
* @return string Value if OK, 0 if KO
* @param Societe $objsoc Object third party
* @param Facture $facture Object invoice
* @param string $mode 'next' for next value or 'last' for last value
* @return string Value if OK, 0 if KO
*/
function getNextValue($objsoc,$facture,$mode='next')
{

View File

@ -114,12 +114,13 @@ class mod_facture_terre extends ModeleNumRefFactures
return true;
}
/** Return next value not used or last value used
/**
* Return next value not used or last value used
*
* @param objsoc Object third party
* @param facture Object invoice
* @param mode 'next' for next value or 'last' for last value
* @return string Value
* @param Societe $objsoc Object third party
* @param Facture $facture Object invoice
* @param string $mode 'next' for next value or 'last' for last value
* @return string Value
*/
function getNextValue($objsoc,$facture,$mode='next')
{

View File

@ -116,9 +116,9 @@ abstract class ModeleNumRefFactures
/**
* Renvoi prochaine valeur attribuee
*
* @param objsoc Objet societe
* @param facture Objet facture
* @return string Valeur
* @param Societe $objsoc Objet societe
* @param Facture $facture Objet facture
* @return string Value
*/
function getNextValue($objsoc,$facture)
{

View File

@ -143,7 +143,7 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
* Return next free ref
*
* @param Societe $objsoc Object thirdparty
* @param Object $livraison Objet livraison
* @param Object $object Objet livraison
* @return string Texte descripif
*/
function livraison_get_num($objsoc=0,$object='')

View File

@ -152,11 +152,12 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode
return $examplecust.'<br>'.$examplesup;
}
/** Return next value
/**
* Return next value
*
* @param objsoc Object third party
* @param $type Client ou fournisseur (0:customer, 1:supplier)
* @return string Value if OK, '' if module not configured, <0 if KO
* @param Societe $objsoc Object third party
* @param int $type Client ou fournisseur (0:customer, 1:supplier)
* @return string Value if OK, '' if module not configured, <0 if KO
*/
function getNextValue($objsoc=0,$type=-1)
{

View File

@ -247,7 +247,7 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
* Renvoi si un code respecte la syntaxe
*
* @param string $code Code a verifier
* * @return int 0 si OK, <0 si KO
* @return int 0 si OK, <0 si KO
*/
function verif_syntax($code)
{

View File

@ -100,10 +100,10 @@ class mod_codecompta_aquarium extends ModeleAccountancyCode
/**
* Set accountancy account code for a third party into this->code
*
* @param db Database handler
* @param societe Third party object
* @param type 'customer' or 'supplier'
* @return int >=0 if OK, <0 if KO
* @param DoliDB $db Database handler
* @param Societe $societe Third party object
* @param string $type 'customer' or 'supplier'
* @return int >=0 if OK, <0 if KO
*/
function get_code($db, $societe, $type)
{
@ -138,11 +138,11 @@ class mod_codecompta_aquarium extends ModeleAccountancyCode
/**
* Return if a code is available
*
* @param db Database handler
* @param code Code of third party
* @param societe Object third party
* @param type 'supplier' or 'customer'
* @return int 0 if OK but not available, >0 if OK and available, <0 if KO
* @param DoliDB $db Database handler
* @param string $code Code of third party
* @param Societe $societe Object third party
* @param string $type 'supplier' or 'customer'
* @return int 0 if OK but not available, >0 if OK and available, <0 if KO
*/
function verif($db, $code, $societe, $type)
{

View File

@ -115,9 +115,10 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
/**
* Write the invoice as a document onto disk
* @param object Object invoice to build (or id if old method)
* @param outputlangs Lang object for output language
* @return int 1=OK, 0=KO
*
* @param Object $object Object invoice to build (or id if old method)
* @param Translate $outputlangs Lang object for output language
* @return int 1=OK, 0=KO
*/
function write_file($object,$outputlangs='')
{
@ -712,13 +713,13 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
$pdf->line($tab3_posx, $tab3_top-1+$tab3_height, $tab3_posx+$tab3_width, $tab3_top-1+$tab3_height);
$pdf->SetFont('','', $default_font_size - 4);
$pdf->SetXY($tab3_posx, $tab3_top );
$pdf->SetXY($tab3_posx, $tab3_top);
$pdf->MultiCell(20, 3, $outputlangs->transnoentities("Payment"), 0, 'L', 0);
$pdf->SetXY($tab3_posx+21, $tab3_top );
$pdf->SetXY($tab3_posx+21, $tab3_top);
$pdf->MultiCell(20, 3, $outputlangs->transnoentities("Amount"), 0, 'L', 0);
$pdf->SetXY($tab3_posx+40, $tab3_top );
$pdf->SetXY($tab3_posx+40, $tab3_top);
$pdf->MultiCell(20, 3, $outputlangs->transnoentities("Type"), 0, 'L', 0);
$pdf->SetXY($tab3_posx+58, $tab3_top );
$pdf->SetXY($tab3_posx+58, $tab3_top);
$pdf->MultiCell(20, 3, $outputlangs->transnoentities("Num"), 0, 'L', 0);
$y=0;
@ -752,7 +753,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
$pdf->SetXY($tab3_posx+58, $tab3_top+$y);
$pdf->MultiCell(30, 3, $row->num, 0, 'L', 0);
$pdf->line($tab3_posx, $tab3_top+$y+3, $tab3_posx+$tab3_width, $tab3_top+$y+3 );
$pdf->line($tab3_posx, $tab3_top+$y+3, $tab3_posx+$tab3_width, $tab3_top+$y+3);
$i++;
}

View File

@ -93,13 +93,13 @@ class InterfaceLogevents
* Function called when a Dolibarrr business event is done.
* All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
*
* @param action Code de l'evenement
* @param object Objet concerne
* @param user Objet user
* @param langs Objet langs
* @param conf Objet conf
* @param entity Value for instance of data (Always 1 except if module MultiCompany is installed)
* @return int <0 if KO, 0 if no triggered ran, >0 if OK
* @param string $action Event action code
* @param Object $object Object
* @param User $user Object user
* @param Translate $langs Object langs
* @param conf $conf Object conf
* @param string $entity Value for instance of data (Always 1 except if module MultiCompany is installed)
* @return int <0 if KO, 0 if no triggered ran, >0 if OK
*/
function run_trigger($action,$object,$user,$langs,$conf,$entity=1)
{

View File

@ -88,12 +88,12 @@ class InterfacePaypalWorkflow
* Fonction appelee lors du declenchement d'un evenement Dolibarr.
* D'autres fonctions run_trigger peuvent etre presentes dans core/triggers
*
* @param string $action Code de l'evenement
* @param CommonObject $object Objet concerne
* @param User $user Objet user
* @param Translate $langs Objet lang
* @param Conf $conf Objet conf
* @return int <0 if fatal error, 0 si nothing done, >0 if ok
* @param string $action Event action code
* @param Object $object Object
* @param User $user Object user
* @param Translate $langs Object langs
* @param conf $conf Object conf
* @return int <0 if KO, 0 if no triggered ran, >0 if OK
*/
function run_trigger($action,$object,$user,$langs,$conf)
{

View File

@ -90,12 +90,13 @@ class InterfaceWorkflowManager
* Function called when a Dolibarrr business event is done.
* All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
*
* @param action Event code (COMPANY_CREATE, PROPAL_VALIDATE, ...)
* @param object Object action is done on
* @param user Object user
* @param langs Object langs
* @param conf Object conf
* @return int <0 if KO, 0 if no action are done, >0 if OK
* @param string $action Event action code
* @param Object $object Object
* @param User $user Object user
* @param Translate $langs Object langs
* @param conf $conf Object conf
* @param string $entity Value for instance of data (Always 1 except if module MultiCompany is installed)
* @return int <0 if KO, 0 if no triggered ran, >0 if OK
*/
function run_trigger($action,$object,$user,$langs,$conf)
{

View File

@ -104,12 +104,12 @@ class InterfaceActionsAuto
* $object->fk_element
* $object->elementtype
*
* @param action Event code (COMPANY_CREATE, PROPAL_VALIDATE, ...)
* @param object Object action is done on
* @param user Object user
* @param langs Object langs
* @param conf Object conf
* @return int <0 if KO, 0 if no action are done, >0 if OK
* @param string $action Event action code
* @param Object $object Object
* @param User $user Object user
* @param Translate $langs Object langs
* @param conf $conf Object conf
* @return int <0 if KO, 0 if no triggered ran, >0 if OK
*/
function run_trigger($action,$object,$user,$langs,$conf)
{

View File

@ -89,12 +89,12 @@ class InterfaceLdapsynchro
* Function called when a Dolibarrr business event is done.
* All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
*
* @param action Event code (COMPANY_CREATE, PROPAL_VALIDATE, ...)
* @param object Object action is done on
* @param user Object user
* @param langs Object langs
* @param conf Object conf
* @return int <0 if KO, 0 if no action are done, >0 if OK
* @param string $action Event action code
* @param Object $object Object
* @param User $user Object user
* @param Translate $langs Object langs
* @param conf $conf Object conf
* @return int <0 if KO, 0 if no triggered ran, >0 if OK
*/
function run_trigger($action,$object,$user,$langs,$conf)
{

View File

@ -89,12 +89,12 @@ class InterfaceNotification
* Function called when a Dolibarrr business event is done.
* All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
*
* @param action Event code (COMPANY_CREATE, PROPAL_VALIDATE, ...)
* @param object Object action is done on
* @param user Object user
* @param langs Object langs
* @param conf Object conf
* @return int <0 if KO, 0 if no action are done, >0 if OK
* @param string $action Event action code
* @param Object $object Object
* @param User $user Object user
* @param Translate $langs Object langs
* @param conf $conf Object conf
* @return int <0 if KO, 0 if no triggered ran, >0 if OK
*/
function run_trigger($action,$object,$user,$langs,$conf)
{

View File

@ -92,12 +92,13 @@ class InterfaceDemo
/**
* Function called when a Dolibarrr business event is done.
* All functions "run_trigger" are triggered if file is inside directory htdocs/core/triggers
* @param action Code de l'evenement
* @param object Objet concerne
* @param user Objet user
* @param langs Objet langs
* @param conf Objet conf
* @return int <0 if KO, 0 if no triggered ran, >0 if OK
*
* @param string $action Event action code
* @param Object $object Object
* @param User $user Object user
* @param Translate $langs Object langs
* @param conf $conf Object conf
* @return int <0 if KO, 0 if no triggered ran, >0 if OK
*/
function run_trigger($action,$object,$user,$langs,$conf)
{

View File

@ -806,6 +806,7 @@ function migrate_contracts_det($db,$langs,$conf)
}
/**
* Function to migrate links into llx_bank_url
*
* @param DoliDB $db Database handler
* @param Translate $langs Object langs
@ -2687,9 +2688,14 @@ function migrate_project_task_actors($db,$langs,$conf)
/**
* Migration des tables de relation
*
* @param DoliDB $db Database handler
* @param Translate $langs Object langs
* @param Conf $conf Object conf
* @param DoliDB $db Database handler
* @param Translate $langs Object langs
* @param Conf $conf Object conf
* @param string $table Table name
* @param int $fk_source Id of element source
* @param type $sourcetype Type of element source
* @param int $fk_target Id of element target
* @param type $targettype Type of element target
* @return void
*/
function migrate_relationship_tables($db,$langs,$conf,$table,$fk_source,$sourcetype,$fk_target,$targettype)

View File

@ -55,18 +55,18 @@ function llxHeaderPaypal($title, $head = "")
print '.CTableRow2 { margin: 1px; padding: 3px; font: 12px verdana,arial; background: #FFFFFF; color: #000000; -moz-border-radius-topleft:6px; -moz-border-radius-topright:6px; -moz-border-radius-bottomleft:6px; -moz-border-radius-bottomright:6px;}';
print '</style>';
}
if ($conf->use_javascript_ajax)
{
print '<!-- Includes for JQuery (Ajax library) -->'."\n";
print '<link rel="stylesheet" type="text/css" href="'.DOL_URL_ROOT.'/includes/jquery/plugins/jnotify/jquery.jnotify-alt.min.css" />'."\n"; // JNotify
// Output standard javascript links
$ext='.js';
if (isset($conf->global->MAIN_OPTIMIZE_SPEED) && ($conf->global->MAIN_OPTIMIZE_SPEED & 0x01)) {
$ext='.jgz';
} // mini='_mini', ext='.gz'
// JQuery. Must be before other includes
print '<!-- Includes JS for JQuery -->'."\n";
print '<script type="text/javascript" src="'.DOL_URL_ROOT.'/includes/jquery/js/jquery-latest.min'.$ext.'"></script>'."\n";
@ -764,7 +764,9 @@ function deformatNVP($nvpstr)
}
/**
* Get API errors
* Get API errors
*
* @return array Array of errors
*/
function getApiError()
{

View File

@ -50,27 +50,6 @@ if (isset($_SERVER["DOCUMENT_URI"]) && $_SERVER["DOCUMENT_URI"])
}
// Define syslog constants
if (! defined('LOG_DEBUG'))
{
if (function_exists("define_syslog_variables"))
{
define_syslog_variables(); // Deprecated since php 5.3.0, syslog variables no longer need to be initialized
}
else
{
// Pour PHP sans syslog (comme sous Windows)
define('LOG_EMERG',0);
define('LOG_ALERT',1);
define('LOG_CRIT',2);
define('LOG_ERR',3);
define('LOG_WARNING',4);
define('LOG_NOTICE',5);
define('LOG_INFO',6);
define('LOG_DEBUG',7);
}
}
$includeconferror='';
// Define vars
@ -135,28 +114,6 @@ if (empty($conf->db->dolibarr_main_db_cryptkey)) $conf->db->dolibarr_main_db_c
if (empty($conf->db->user)) $conf->db->user='';
// Removed magic_quotes
if (function_exists('get_magic_quotes_gpc')) // magic_quotes_* removed in PHP6
{
if (get_magic_quotes_gpc())
{
// Forcing parameter setting magic_quotes_gpc and cleaning parameters
// (Otherwise he would have for each position, condition
// Reading stripslashes variable according to state get_magic_quotes_gpc).
// Off mode (recommended, you just do $db->escape when an insert / update.
function stripslashes_deep($value)
{
return (is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value));
}
$_GET = array_map('stripslashes_deep', $_GET);
$_POST = array_map('stripslashes_deep', $_POST);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
@set_magic_quotes_runtime(0);
}
}
// Defini objet langs
$langs = new Translate('..',$conf);
if (GETPOST('lang')) $langs->setDefaultLang(GETPOST('lang'));
@ -257,16 +214,4 @@ function pFooter($nonext=0,$setuplang='')
print '</html>'."\n";
}
/**
* Output a text into a log file
*
* @param string $message Message to show
* @param string $level Log level
*/
function dolibarr_support_syslog($message, $level=LOG_DEBUG)
{
if (! defined('LOG_DEBUG')) define('LOG_DEBUG',6);
dol_syslog($message,$level);
}
?>

View File

@ -154,7 +154,7 @@ print '</td></tr></table>';
print '</td>';
print '</tr><tr>';
$urlwiki='http://wiki.dolibarr.org/index.php/List_of_OpenSource_Software_companies_and_freelancers';
$urlwiki='http://wiki.dolibarr.org/index.php/List of Dolibarr partners and providers';
print '<td align="center" valign="top">';
print '<table class="nocellnopadd">';
/*print '<tr><td align="center" valign="top">';
@ -190,7 +190,7 @@ print '</td></tr></table>';
print '</td>';
print '</tr><tr>';
$urlwiki='http://wiki.dolibarr.org/index.php/List_of_OpenSource_Software_companies_and_freelancers';
$urlwiki='http://wiki.dolibarr.org/index.php/List of Dolibarr partners and providers';
print '<td align="center" valign="top">';
print '<table class="nocellnopadd">';
/*print '<tr><td align="center" valign="top">';