Merge remote-tracking branch 'upstream/develop' into patch-13
This commit is contained in:
commit
9a2f945807
4
.github/workflows/exakat.yml
vendored
4
.github/workflows/exakat.yml
vendored
@ -13,5 +13,5 @@ jobs:
|
|||||||
- name: Exakat
|
- name: Exakat
|
||||||
uses: docker://exakat/exakat-ga
|
uses: docker://exakat/exakat-ga
|
||||||
with:
|
with:
|
||||||
ignore_rules: 'Classes/UseInstanceof,Performances/PrePostIncrement,Functions/WrongNumberOfArguments,Variables/UndefinedVariable,Classes/DontUnsetProperties,Classes/NonPpp,Classes/StaticMethodsCalledFromObject,Classes/UseClassOperator,Functions/UsesDefaultArguments,Php/NoClassInGlobal,Php/ShouldUseCoalesce,Structures/MergeIfThen,Structures/ElseIfElseif,Structures/RepeatedPrint,Structures/UselessParenthesis,Structures/SwitchWithoutDefault,Structures/ShouldMakeTernary,Structures/UseConstant'
|
ignore_rules: 'Classes/UseInstanceof,Performances/PrePostIncrement,Functions/UndefinedFunctions,Functions/WrongNumberOfArguments,Functions/WrongTypeWithCall,Variables/UndefinedVariable,Classes/DontUnsetProperties,Classes/NonPpp,Classes/StaticMethodsCalledFromObject,Classes/UseClassOperator,Functions/UsesDefaultArguments,Php/NoClassInGlobal,Php/ShouldUseCoalesce,Php/WrongTypeForNativeFunction,Structures/MergeIfThen,Structures/ElseIfElseif,Structures/RepeatedPrint,Structures/SameConditions,Structures/SwitchWithoutDefault,Structures/ShouldMakeTernary,Structures/UselessParenthesis,Structures/UseConstant'
|
||||||
ignore_dirs: '/htdocs/includes,/htdocs/build,/htdocs/dev,/htdocs/doc,/htdocs/scripts,/htdocs/test'
|
ignore_dirs: '/htdocs/includes,/build,/dev,/doc,/scripts,/test'
|
||||||
61
.travis.yml
61
.travis.yml
@ -6,8 +6,6 @@
|
|||||||
os: linux
|
os: linux
|
||||||
dist: xenial
|
dist: xenial
|
||||||
#dist: bionic
|
#dist: bionic
|
||||||
# Deprecated: The key sudo has no effect anymore.
|
|
||||||
#sudo: required
|
|
||||||
|
|
||||||
language: php
|
language: php
|
||||||
|
|
||||||
@ -33,49 +31,25 @@ addons:
|
|||||||
# We need pgloader for import mysql database into pgsql
|
# We need pgloader for import mysql database into pgsql
|
||||||
- pgloader
|
- pgloader
|
||||||
|
|
||||||
php:
|
|
||||||
- '5.6'
|
|
||||||
- '7.4'
|
|
||||||
- nightly
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
# Set to true for very verbose output
|
# Set to true for very verbose output
|
||||||
- DEBUG=false
|
- DEBUG=false
|
||||||
jobs:
|
|
||||||
# MariaDB overrides MySQL installation so it's not possible to test both yet
|
|
||||||
#- DB=mariadb
|
|
||||||
- DB=mysql
|
|
||||||
- DB=postgresql
|
|
||||||
# See https://docs.travis-ci.com/user/languages/php/#Apache-%2B-PHP
|
|
||||||
#- WS=apache
|
|
||||||
# See https://github.com/DracoBlue/travis-ci-nginx-php-fpm-test
|
|
||||||
#- WS=nginx
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
allow_failures:
|
allow_failures:
|
||||||
- php: nightly
|
- php: nightly
|
||||||
# We exclude some combinations not usefull to save Travis CPU
|
include:
|
||||||
exclude:
|
- if: type = push
|
||||||
- php: '7.0'
|
php: '5.6'
|
||||||
env: DB=mysql
|
env: DB=postgresql
|
||||||
- php: '7.1'
|
- if: type = pull_request OR type = push
|
||||||
env: DB=mysql
|
php: '7.4'
|
||||||
- php: '7.2'
|
env: DB=mysql
|
||||||
env: DB=mysql
|
- if: type = push AND branch = develop
|
||||||
- php: '7.3'
|
php: nightly
|
||||||
env: DB=mysql
|
env: DB=mysql
|
||||||
- php: '7.0'
|
|
||||||
env: DB=postgresql
|
|
||||||
- php: '7.1'
|
|
||||||
env: DB=postgresql
|
|
||||||
- php: '7.2'
|
|
||||||
env: DB=postgresql
|
|
||||||
- php: '7.3'
|
|
||||||
env: DB=postgresql
|
|
||||||
- php: nightly
|
|
||||||
env: DB=postgresql
|
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
email:
|
email:
|
||||||
@ -108,11 +82,11 @@ install:
|
|||||||
echo "Updating Composer"
|
echo "Updating Composer"
|
||||||
rm $TRAVIS_BUILD_DIR/composer.json
|
rm $TRAVIS_BUILD_DIR/composer.json
|
||||||
rm $TRAVIS_BUILD_DIR/composer.lock
|
rm $TRAVIS_BUILD_DIR/composer.lock
|
||||||
|
composer -V
|
||||||
composer self-update
|
composer self-update
|
||||||
# To have composer making parallel downloads
|
|
||||||
composer global require hirak/prestissimo
|
|
||||||
composer -n init
|
composer -n init
|
||||||
composer -n config vendor-dir htdocs/includes
|
composer -n config vendor-dir htdocs/includes
|
||||||
|
composer -n config -g vendor-dir htdocs/includes
|
||||||
echo
|
echo
|
||||||
|
|
||||||
- |
|
- |
|
||||||
@ -146,7 +120,10 @@ install:
|
|||||||
|
|
||||||
- |
|
- |
|
||||||
echo "Adding path of binaries tools installed by composer to the PATH"
|
echo "Adding path of binaries tools installed by composer to the PATH"
|
||||||
export PATH="$TRAVIS_BUILD_DIR/htdocs/includes/bin:$PATH"
|
export PATH="$TRAVIS_BUILD_DIR/htdocs/includes/bin:$TRAVIS_BUILD_DIR/vendor/bin:$TRAVIS_BUILD_DIR/htdocs/includes:$PATH"
|
||||||
|
echo $PATH
|
||||||
|
ls $TRAVIS_BUILD_DIR/vendor
|
||||||
|
ls $TRAVIS_BUILD_DIR/htdocs/includes/bin
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
|
||||||
@ -177,7 +154,7 @@ before_script:
|
|||||||
# Check PHP
|
# Check PHP
|
||||||
echo "PHP version"
|
echo "PHP version"
|
||||||
php -i | head -
|
php -i | head -
|
||||||
# Check Parallel-lin version
|
# Check Parallel-lint version
|
||||||
echo "Parallel-lint version"
|
echo "Parallel-lint version"
|
||||||
which parallel-lint
|
which parallel-lint
|
||||||
parallel-lint -V
|
parallel-lint -V
|
||||||
@ -300,7 +277,7 @@ script:
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
- |
|
- |
|
||||||
echo "Checking coding style (excluding Pull Requests builds to not overload travis, excluding also for some jobs to avoid duplicate tests)"
|
echo "Checking coding style (excluding Pull Requests builds to not overload travis, excluding also some jobs to avoid duplicate tests)"
|
||||||
# Ensure we catch errors
|
# Ensure we catch errors
|
||||||
set -e
|
set -e
|
||||||
# Exclusions are defined in the ruleset.xml file
|
# Exclusions are defined in the ruleset.xml file
|
||||||
@ -423,7 +400,7 @@ script:
|
|||||||
php step5.php 12.0.0 13.0.0 > $TRAVIS_BUILD_DIR/upgrade12001300-3.log
|
php step5.php 12.0.0 13.0.0 > $TRAVIS_BUILD_DIR/upgrade12001300-3.log
|
||||||
|
|
||||||
# Enable modules not enabled into original dump
|
# Enable modules not enabled into original dump
|
||||||
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_SUPPLIERPROPOSAL,MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP > $TRAVIS_BUILD_DIR/enablemodule.log
|
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_SUPPLIERPROPOSAL,MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP,MAIN_MODULE_RECRUITMENT > $TRAVIS_BUILD_DIR/enablemodule.log
|
||||||
echo $?
|
echo $?
|
||||||
cd -
|
cd -
|
||||||
set +e
|
set +e
|
||||||
|
|||||||
299
ChangeLog
299
ChangeLog
@ -4,153 +4,128 @@ English Dolibarr ChangeLog
|
|||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 13.0.0 compared to 12.0.0 *****
|
***** ChangeLog for 13.0.0 compared to 12.0.0 *****
|
||||||
|
|
||||||
For users:
|
For users:
|
||||||
|
----------
|
||||||
NEW: Add module "Credit transfer SEPA" to manage payment of vendors using bank credit transfer SEPA files.
|
NEW: Add module "Credit transfer SEPA" to manage payment of vendors using bank credit transfer SEPA files.
|
||||||
NEW: Module Reception (for a more accurate management of your receptions) moved from experimental to stable.
|
NEW: Module Reception (for a more accurate management of your receptions) moved from experimental to stable.
|
||||||
|
NEW: Module Recruitment to manage Job position and applications.
|
||||||
NEW: Several security issues after a private bug bounty campaign.
|
NEW: Several security issues after a private bug bounty campaign.
|
||||||
NEW: #15065 Put the product label in bold in the PDF templates if configured
|
NEW: Accountancy - add chart of sub accounts
|
||||||
NEW: Accountancy - Add chart of sub accounts
|
NEW: Accountancy - add options to disable binding on sales, purchases & expense reports independently of the modules
|
||||||
NEW: Accountancy - Add options to disable binding on sales, purchases & expense reports independently of the modules
|
NEW: Accountancy balance - add a menu entry to show subtotal by group
|
||||||
NEW: Accountancy balance - Add a menu entry to show subtotal by group
|
NEW: Accountancy - change menu disposition
|
||||||
NEW: Accountancy - Move to real ledger, real journals, menu disposition
|
NEW: Accountancy - on transfers, select the periodicity by default
|
||||||
NEW: Accountancy - On transfers, select the periodicity by default
|
NEW: Accountancy - Add export for Gestinum (v3 & v5)
|
||||||
NEW: New currency rate editor.
|
NEW: new currency rate editor
|
||||||
NEW: Add 2 rules for emailcollector: Message send/not sent from Dolibarr
|
NEW: add 2 rules for emailcollector: Message send/not sent from Dolibarr
|
||||||
NEW: Add a counter of number of words for pages in website module
|
NEW: add a counter of number of words for pages in website module
|
||||||
NEW: add alert before changing thirdparty in takepos
|
NEW: add alert before changing thirdparty in TakePOS
|
||||||
NEW: Add a page to list Stock at a given date in the past.
|
NEW: add a page to list Stock at a given date in the past
|
||||||
NEW: Add a start date to begin binding in accountancy
|
NEW: add a start date to begin binding in accountancy
|
||||||
NEW: Add a statistics page to list popularity of products on invoices
|
NEW: add a statistics page to list popularity of products on invoices
|
||||||
NEW: Add calendar selection for agenda view
|
NEW: add calendar selection for agenda view
|
||||||
NEW: Support documents generation for ticket edition (pdf or odt)
|
NEW: Support documents generation for ticket edition (PDF or ODT)
|
||||||
NEW: Add column payment term into list of supplier invoices.
|
NEW: add column payment term into list of supplier invoices
|
||||||
NEW: Add column quantity in product margin page
|
NEW: add column quantity in product margin page
|
||||||
NEW: Add column vat rate in page to define accounting account on product/service
|
NEW: add column vat rate in page to define accounting account on product/service
|
||||||
NEW: Add common list function for available app/module page
|
|
||||||
NEW: add costprice in fields of products list
|
NEW: add costprice in fields of products list
|
||||||
NEW: Added an import profile for CUSTOMER ORDER, PO, PROPOSAL MODULE, SUPPLIER INVOICE
|
NEW: added an import profile for CUSTOMER ORDER, PO, PROPOSAL MODULE, SUPPLIER INVOICE
|
||||||
NEW: Added incoterms dara into the substitution array
|
NEW: add employee link in expense report binding page
|
||||||
NEW: Add employee link in expense report binding page
|
NEW: add EORI No. as ProfID5
|
||||||
NEW: Add export for various payment
|
NEW: add export for various payments
|
||||||
NEW: add extra fields labels and values in mail on create ticket
|
NEW: add Extrafields labels and values in mail on create ticket
|
||||||
NEW: Add extrafields support on ECM module
|
NEW: add Extrafields support on ECM module
|
||||||
NEW: Add filter rules "is answer" and "is not answer" in email collector
|
NEW: add filter rules "is answer" and "is not answer" in email collector
|
||||||
NEW: Add focus when editing on product/stock/product.php Close #14548
|
NEW: add focus when editing on product/stock/product.php Close #14548
|
||||||
NEW: add formConfirm hook on product page
|
|
||||||
NEW: add free text on each terminal of cash desk
|
NEW: add free text on each terminal of cash desk
|
||||||
NEW: Add function dolButtonToOpenUrlInDialogPopup() to be able to open
|
NEW: add global search for customer payments and vendor payments
|
||||||
NEW: Add global search for customer payments and vendor payments
|
NEW: add global search for miscellaneous payments
|
||||||
NEW: Add global search for miscellaneous payments
|
NEW: add helper function for table headers with numbers
|
||||||
NEW: Add helper function for table headers with numbers
|
NEW: add link to edit property from the search result of website pages
|
||||||
NEW: add hooks on stats pages
|
NEW: add link to reset qty on supplier dispatch page
|
||||||
NEW: Add link to edit property from search result of website pages
|
|
||||||
NEW: Add link to reset qty on supplier dispatch page
|
|
||||||
NEW: add MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER const to remove header stored by email collector
|
NEW: add MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER const to remove header stored by email collector
|
||||||
NEW: Add Manufacturing Orders attached files into the automatic ECM view
|
NEW: add Manufacturing Orders attached files into the automatic ECM view
|
||||||
NEW: add margin info in invoice list
|
NEW: add margin info in invoice list
|
||||||
NEW: Add mass action to set category on a list of website pages.
|
NEW: add mass action to set category on a list of website pages
|
||||||
NEW: Add mass deletion for events
|
NEW: add mass deletion for events
|
||||||
NEW: Add mass deletion for draft invoices
|
NEW: add mass deletion for draft invoices
|
||||||
NEW: Add __MEMBER_TYPE__ substitution key
|
NEW: add more filters on monthly statement list
|
||||||
NEW: Add a message in error_log after detection of SQL or script injection
|
NEW: add option TAKEPOS_CAN_FORCE_BANK_ACCOUNT_DURING_PAYMENT
|
||||||
NEW: Add module Credit transfer SEPA to manage payment of supplier using
|
NEW: add option to define a default warehouse at user level
|
||||||
NEW: Add more filters on monthly statement list
|
NEW: add option to include products without alert in replenish
|
||||||
NEW: Add option TAKEPOS_CAN_FORCE_BANK_ACCOUNT_DURING_PAYMENT
|
|
||||||
NEW: Add option to define a default warehouse at user level
|
|
||||||
NEW: Add option to include products without alert in replenish
|
|
||||||
NEW: add order by lastname and firstname by default in get sales representatives
|
NEW: add order by lastname and firstname by default in get sales representatives
|
||||||
NEW: Add param to not show links when output tags
|
NEW: add param to not show links when output tags
|
||||||
NEW: Add PDF document templates for warehouses (list of stock)
|
NEW: add PDF document templates for warehouses (list of stock)
|
||||||
NEW: Add property cssview when declaring fields of an object
|
NEW: add a prospect status for the contact with managment of custom icon
|
||||||
NEW: Add prospect status managment for the contact with managment of custom icon
|
NEW: add public note on products ; this also partially fix the #14342
|
||||||
NEW: Add public note on products. This also partially fix the #14342
|
NEW: add quick dropdown menu in top right menu (experimental with MAIN_USE_TOP_MENU_QUICKADD_DROPDOWN)
|
||||||
NEW: Add quick dropdown menu in top right menu (MAIN_USE_TOP_MENU_QUICKADD_DROPDOWN)
|
|
||||||
NEW: add region in export companies and contacts
|
NEW: add region in export companies and contacts
|
||||||
NEW: add rights on margin info on invoice list
|
NEW: add rights on margin info on invoice list
|
||||||
NEW: Add search param for close date on order list
|
NEW: add search param for close date on order list
|
||||||
NEW: add send context for ticket
|
NEW: add show preview for mail attachement on form mail
|
||||||
NEW: Add show preview for mail attachement on form mail
|
|
||||||
NEW: add state origin for product
|
|
||||||
NEW: add State/Province origin for products
|
NEW: add State/Province origin for products
|
||||||
NEW: Add the workflow interaction close intervention on closing ticket
|
NEW: add the workflow interaction close intervention on closing ticket
|
||||||
NEW: Add third order printer to TakePOS
|
NEW: add third order printer to TakePOS
|
||||||
NEW: add tracking number in list and search_all items
|
NEW: add tracking number in list and search_all items
|
||||||
NEW: add two hooks printFieldListFrom and printFieldSearchParam
|
NEW: add vcard for adherent and user
|
||||||
NEW: Add __TYPE__ substitution key
|
|
||||||
NEW: Add validation of MX domain for emails
|
|
||||||
NEW: add vcard for aderent and user
|
|
||||||
NEW: add week number for month view in agenda
|
NEW: add week number for month view in agenda
|
||||||
NEW: Algeria data (tva and forme_juridique)
|
NEW: Algeria data (VAT and forme_juridique)
|
||||||
NEW: Allow click on all header numbers on commerce area
|
NEW: allow click on all header numbers on commerce area
|
||||||
NEW: Allow to reopen interventions (green button)
|
NEW: allow to reopen interventions (green button)
|
||||||
NEW: Allow zero quality on supplier/vendor order line
|
NEW: allow zero quantity on supplier/vendor order line
|
||||||
NEW: Appearance tab in TakePOS with more visual parameters
|
NEW: appearance tab in TakePOS with more visual parameters
|
||||||
NEW: Better currency rate editor
|
NEW: better currency rate editor
|
||||||
NEW: Calculate the virtual stock in transverse mode ( not on getEntity('commande'), ... but on getEntity('stock') )
|
NEW: can build vendor invoice from vendor orders
|
||||||
NEW: Can add event to log into blockedlog module with a constant.
|
NEW: can change a product in lines of a recurring invoice or contract
|
||||||
NEW: Can build vendor invoice from vendor orders
|
NEW: can change size of logo on PDF documents
|
||||||
NEW: Can change a product in line of recurring invoice or contract
|
NEW: can change VAT rate of all lines of a draft object in one step
|
||||||
NEW: Can change size of logo on PDF documents
|
NEW: can define date range of validity of a login during creation
|
||||||
NEW: Can change VAT rate of all lines of a draft object in one step.
|
NEW: can disable, from edit page, the whole web site
|
||||||
NEW: Can define date range of validity of a login during creation
|
|
||||||
NEW: Can disable, from edit page, the whole web site
|
|
||||||
NEW: can edit and set sales representatives directly on thirdparty card
|
NEW: can edit and set sales representatives directly on thirdparty card
|
||||||
NEW: Can edit the list of sending email profiles.
|
NEW: can edit the list of sending email profiles
|
||||||
NEW: Can enable/disable users in bulk actions
|
NEW: can enable/disable users in bulk actions
|
||||||
NEW: Can filter on accounting system ref in export of chart of account
|
NEW: can filter on accounting system ref in export of chart of account
|
||||||
NEW: Can filter on container type, language and tags in the list of pages
|
NEW: can filter on container type, language and tags in the list of web pages
|
||||||
NEW: Can force the antivirus from conf file or autoprepend ini setup.
|
NEW: can hide eatby, sellby dates with option PRODUCT_DISABLE_SELLBY and PRODUCT_DISABLE_EATBY
|
||||||
NEW: Can hide eatby, sellby dates with option PRODUCT_DISABLE_SELLBY and PRODUCT_DISABLE_EATBY
|
NEW: can import proposals, sales orders, supplier invoices
|
||||||
NEW: Can import proposals, sales orders, supplier invoices
|
|
||||||
NEW: can set a dedicated SMTP config for sending email from public ticket interface
|
NEW: can set a dedicated SMTP config for sending email from public ticket interface
|
||||||
NEW: Can set tags/categories to website pages.
|
NEW: can set tags/categories to website pages
|
||||||
NEW: Can set type of price without tax per default for new sale price creation
|
NEW: can set type of price without tax per default for new sale price creation
|
||||||
NEW: Can use desired stock of a given warehouse for replenishment
|
NEW: can use desired stock of a given warehouse for replenishment
|
||||||
NEW: Can use THEME_DARKMODEENABLED=2 for a preview of theme in dark mode
|
NEW: change thirdparty with barcode scan in TakePOS
|
||||||
NEW: change thirdparty with barcode scan in takepos
|
NEW: common behavior for monthly leave list view
|
||||||
NEW: Common behavior for monthly leave list view
|
|
||||||
NEW: conf to allow show full arbo in warehouse getnomurl
|
|
||||||
NEW: convert all subscription in datetime
|
NEW: convert all subscription in datetime
|
||||||
NEW: create thirdparty customer from TAKEPOS
|
NEW: can create a thirdparty customer from TakePOS
|
||||||
NEW: Date shipment from order accepts hours
|
NEW: date shipment from order accepts hours
|
||||||
NEW: Declinaison price level compatibility
|
NEW: price level compatibility for variant
|
||||||
NEW: Delayed payment in TakePOS
|
NEW: delayed payment in TakePOS
|
||||||
NEW: Development of module Recruitment
|
NEW: display date range if exist in TakePOS
|
||||||
NEW: display date range if exist in takepos
|
NEW: display resiliate status in TakePOS for member
|
||||||
NEW: display resiliate status in takepos for member
|
|
||||||
NEW: display stat for BOM on "object referent"/linked Object product tab
|
NEW: display stat for BOM on "object referent"/linked Object product tab
|
||||||
NEW: edit and update a ticket
|
NEW: Email configuration - allow auto signed certificate when smtp ssl activated
|
||||||
NEW: edit or delete dispatched lines
|
|
||||||
NEW: Email configuration - Allow auto signed certificat when smtp ssl activated
|
|
||||||
NEW: enable free emails input with select2
|
NEW: enable free emails input with select2
|
||||||
NEW: endpoint getContacts and Clean results
|
|
||||||
NEW: Events in agenda for contact
|
NEW: Events in agenda for contact
|
||||||
NEW: Field to link website page to an other object
|
|
||||||
NEW: Fill ECM src object fields in dol_add_file_process
|
|
||||||
NEW: filter on progress column in task list
|
NEW: filter on progress column in task list
|
||||||
NEW: filter product list by country and/or state/province
|
NEW: filter product list by country and/or state/province
|
||||||
NEW: format tickets sent by mail in public interface
|
NEW: format tickets sent by mail in public interface
|
||||||
NEW: add juridical status for Algeria
|
|
||||||
NEW: form to add customer/supplier into categories
|
NEW: form to add customer/supplier into categories
|
||||||
NEW: Framework is ready for CSRF token protection on explicit GET URLs.
|
NEW: Framework is ready for CSRF token protection on explicit GET URLs
|
||||||
NEW: get all child recursively
|
|
||||||
NEW: Get contacts list of a given order
|
|
||||||
NEW: helper functions for export with phpspreadsheet
|
NEW: helper functions for export with phpspreadsheet
|
||||||
NEW: hide closed contract lines
|
NEW: hide closed contract lines
|
||||||
NEW: hide label in pdf for variants
|
NEW: hide label in PDF for variants
|
||||||
NEW: Hook on propal card
|
NEW: if specific help page is available, we change color of icon
|
||||||
NEW: If specific help page is available, we change color of icon
|
NEW: include the tag editor of page as a popup into website editor
|
||||||
NEW: Include the tag editor of page as a popup into website editor
|
NEW: introduce constant FACTUREFOURN_REUSE_NOTES_ON_CREATE_FROM
|
||||||
NEW: Introduce constant FACTUREFOURN_REUSE_NOTES_ON_CREATE_FROM
|
NEW: introducing new modal boxes in TakePOS
|
||||||
NEW: Introducing new modal boxes in TakePOS
|
NEW: keep TakePOS terminal when login/logout
|
||||||
NEW: Keep takepos terminal when login/logout
|
NEW: link on balance to the ledger
|
||||||
NEW: Link on balance to the ledger
|
|
||||||
NEW: MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER const in email collector
|
NEW: MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER const in email collector
|
||||||
NEW: manage errors on update extra fields in ticket card
|
NEW: manage errors on update extra fields in ticket card
|
||||||
NEW: mass-actions for the event list view
|
NEW: mass-actions for the event list view
|
||||||
NEW: Module Intracomm report
|
NEW: Module Intracomm report
|
||||||
NEW: More filter for "View change logs"
|
NEW: more filter for "View change logs"
|
||||||
NEW: multicurrency total in takepos
|
NEW: multicurrency total in TakePOS
|
||||||
NEW: multiselect type and date to date filter
|
NEW: multiselect type and date to date filter
|
||||||
NEW: Nature of product is now a dictionay
|
NEW: Nature of product is now a dictionay
|
||||||
NEW: new line template: hidden conf to fill service dates from the last service line
|
NEW: new line template: hidden conf to fill service dates from the last service line
|
||||||
@ -159,56 +134,68 @@ NEW: possibilty to group payments by mode and show their subtotal
|
|||||||
NEW: Print payment method and change in TakePOS
|
NEW: Print payment method and change in TakePOS
|
||||||
NEW: Priority and transparency from external calendar events
|
NEW: Priority and transparency from external calendar events
|
||||||
NEW: Products Import/Export 'default warehouse' and 'use batch number' fields
|
NEW: Products Import/Export 'default warehouse' and 'use batch number' fields
|
||||||
NEW: Purchase price table: Added filterable table columns
|
NEW: Purchase price table: added filterable table columns
|
||||||
NEW: rate editor for multicurrency
|
NEW: rate editor for multicurrency
|
||||||
NEW: ref_ext field for Commande lines, order lines, Attributes and Combinations, Invoice lines, payments, order lines
|
NEW: ref_ext field for Commande lines, order lines, Attributes and Combinations, Invoice lines, payments, order lines
|
||||||
NEW: remove new lines in mail on add ticket message
|
NEW: remove new lines in mail on add ticket message
|
||||||
NEW: restrict thirdparty to customer in takepos
|
NEW: restrict thirdparty to customer in TakePOS
|
||||||
NEW: Allow to edit "demand reason" field though API
|
|
||||||
NEW: Rule "email to" accept wildcard *
|
NEW: Rule "email to" accept wildcard *
|
||||||
NEW: Save filter of the project homepage
|
NEW: Save filter of the project homepage
|
||||||
NEW: Select-able columns on customer invoice paymnet list
|
NEW: select-able columns on customer and supplier invoice paymnet list
|
||||||
NEW: Select-able columns on miscellaneous payments + more data columns
|
NEW: select-able columns on miscellaneous payments + more data columns
|
||||||
NEW: Select-able columns on social taxes list
|
NEW: select-able columns on social taxes list
|
||||||
NEW: Select-able columns on supplier invoice payment list
|
|
||||||
NEW: send context and remove new lines on create ticket
|
NEW: send context and remove new lines on create ticket
|
||||||
NEW: set entity when creating invoice on takepos
|
NEW: show available stock in TakePOS
|
||||||
NEW: Show available stock in TakePOS
|
NEW: show category filter on lists only when user have rights to read categories
|
||||||
NEW: Show category filter on lists only when user have rights to read categories
|
NEW: show header number and make it clickable in warehouse area, payment area, shipment area
|
||||||
NEW: Show header number and make it clickable in warehouse arean, payment area, shipment area
|
NEW: show image of user in the combo select of users
|
||||||
NEW: Show image of user in the combo select of users
|
NEW: show label on batch card
|
||||||
NEW: Show label on batch card
|
|
||||||
NEW: Show line number on intervention card (via MAIN_VIEW_LINE_NUMBER)
|
|
||||||
NEW: show links for select and multi-select in category extra field
|
NEW: show links for select and multi-select in category extra field
|
||||||
NEW: Show module and permission ids on user/group rights (only admin)
|
NEW: show module and permission ids on user/group rights (only admin)
|
||||||
NEW: Show place from events on import calender
|
NEW: show place from events on import calender
|
||||||
NEW: Show references in contract form on interventions
|
NEW: show references in contract form on interventions
|
||||||
NEW: Show tags and status in search list of website pages
|
NEW: show tags and status in search list of website pages
|
||||||
NEW: Show user on external calender events (when found)
|
NEW: show user on external calender events (when found)
|
||||||
NEW: subject title with company name instead of application title in ticket message
|
NEW: subject title with company name instead of application title in ticket message
|
||||||
NEW: Support for Samba4 AD
|
NEW: Support for Samba4 AD
|
||||||
NEW: TakePOS connector compatibility with RECEIPT PRINTERS module
|
NEW: TakePOS connector compatibility with RECEIPT PRINTERS module
|
||||||
NEW: TakePOS Gift Receipt
|
NEW: TakePOS Gift Receipt
|
||||||
NEW: TakePOS Multicurrency compatibility
|
NEW: TakePOS Multicurrency compatibility
|
||||||
NEW: The global header of a website can also have dynamic content
|
NEW: the global header of a website can also have dynamic content
|
||||||
NEW: Third-Party Import new fields: mother company,outstanding debt limit,bank account,incoterms
|
NEW: Third-Party Import new fields: mother company,outstanding debt limit,bank account,incoterms
|
||||||
NEW: Thirdparty module : box on customer/supplier tab for invoice outsantding amount late
|
NEW: Thirdparty module : box on customer/supplier tab for invoice outsantding amount late
|
||||||
NEW: ticket classification on create from email collector
|
NEW: ticket classification on create from email collector
|
||||||
NEW: Ticket message notifications when edited from public interface
|
NEW: Ticket message notifications when edited from public interface
|
||||||
NEW: translate classification labels in ticket
|
NEW: translate classification labels in ticket
|
||||||
NEW: triggers create, modify, delete
|
NEW: Add VAT and juridical status for Algeria
|
||||||
NEW: VAT for Algeria
|
NEW: VAT report - Invert constant to show by default zero VAT in reports
|
||||||
NEW: Use preselect third-party from list on new card
|
|
||||||
NEW: Vat report - Invert constant to show by default zero vat in reports
|
|
||||||
NEW: website page fields selection
|
NEW: website page fields selection
|
||||||
NEW: Weighing Scale compatibility with TakePOS connector
|
NEW: Weighing Scale compatibility with TakePOS connector
|
||||||
NEW: When creating a user from a member linked to a thirdparty, you can choose to create if as external or internal user
|
NEW: when creating a user from a member linked to a thirdparty, you can choose to create it as external or internal user
|
||||||
NEW: Add clone functionality on miscellaneous payment
|
NEW: add clone button on miscellaneous payment
|
||||||
|
NEW: #15065 Add option to put the product label in bold in the PDF templates if configured
|
||||||
|
|
||||||
|
|
||||||
For developers:
|
For developers:
|
||||||
|
---------------
|
||||||
|
NEW: Hook on propal card
|
||||||
|
NEW: add __MEMBER_TYPE__ substitution key
|
||||||
|
NEW: add function dolButtonToOpenUrlInDialogPopup() to be able to open page into a popup
|
||||||
|
NEW: add hooks on stats pages
|
||||||
|
NEW: show line number on intervention card (via MAIN_VIEW_LINE_NUMBER)
|
||||||
|
NEW: API get contacts list of a given order
|
||||||
|
NEW: API endpoint getContacts and Clean results
|
||||||
|
NEW: Add some fields to link website page to an other object
|
||||||
|
NEW: fill ECM src object fields in dol_add_file_process
|
||||||
|
NEW: conf to allow to show the full tree in warehouse popup
|
||||||
|
NEW: can use THEME_DARKMODEENABLED=2 for a preview of theme in dark mode
|
||||||
|
NEW: can force the antivirus from conf file or autoprepend ini setup
|
||||||
|
NEW: can add event to log into blockedlog module with a constant
|
||||||
|
NEW: add property cssview when declaring fields of an object
|
||||||
NEW: Can use dynamic code into the 'enabled' property of DAO fields
|
NEW: Can use dynamic code into the 'enabled' property of DAO fields
|
||||||
NEW: API Can update a payment
|
NEW: allow to edit "demand reason" field though API
|
||||||
NEW: api get member by thirdparty
|
NEW: API can update a payment
|
||||||
|
NEW: API get member by thirdparty
|
||||||
NEW: API get thirdparty by barcode
|
NEW: API get thirdparty by barcode
|
||||||
NEW: API get users by email / login
|
NEW: API get users by email / login
|
||||||
NEW: fetch contact by email with REST API
|
NEW: fetch contact by email with REST API
|
||||||
@ -216,14 +203,23 @@ NEW: field ref_ext in llx_commandedet
|
|||||||
NEW: fields ref_ext for Attributes and Combinations
|
NEW: fields ref_ext for Attributes and Combinations
|
||||||
NEW: get state by REST API
|
NEW: get state by REST API
|
||||||
NEW: get state dictionnary by REST API
|
NEW: get state dictionnary by REST API
|
||||||
NEW: Improve Product API for variant products
|
NEW: improve Product API for variant products
|
||||||
NEW: Oauth SCOPE for Admin SDK
|
NEW: OAuth SCOPE for Admin SDK
|
||||||
NEW: Retrieve discount from invoice from API
|
NEW: retrieve discount from invoice from API
|
||||||
NEW: standardizes API thirdparties by email like other object
|
NEW: standardizes API thirdparties by email like other object
|
||||||
NEW: thirdparty REST API: endpoint to set price level
|
NEW: Thirdparty REST API: endpoint to set price level
|
||||||
NEW: Use new category API for project list view
|
NEW: use new category API for project list view
|
||||||
NEW: Triggers Attributes and Attributes values
|
NEW: Triggers Attributes and Attributes values
|
||||||
NEW: Add hooks on newpayment page to allow external payment modules
|
NEW: add hooks on newpayment page to allow external payment modules
|
||||||
|
NEW: added incoterms data into the substitution array
|
||||||
|
NEW: add formConfirm hook on product page
|
||||||
|
NEW: add send context for ticket
|
||||||
|
NEW: add a message in error_log after detection of SQL or script injection
|
||||||
|
NEW: add two hooks printFieldListFrom and printFieldSearchParam
|
||||||
|
NEW: add __TYPE__ substitution key
|
||||||
|
NEW: add validation of MX domain for emails
|
||||||
|
NEW: calculate the virtual stock in transverse mode ( not on getEntity('commande'), ... but on getEntity('stock') )
|
||||||
|
|
||||||
|
|
||||||
WARNING:
|
WARNING:
|
||||||
|
|
||||||
@ -289,6 +285,7 @@ FIX: Visualization rights correction on last modified contacts box
|
|||||||
FIX: Wrong redirection
|
FIX: Wrong redirection
|
||||||
FIX: Yogosha report 4425 (backport)
|
FIX: Yogosha report 4425 (backport)
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 12.0.2 compared to 12.0.1 *****
|
***** ChangeLog for 12.0.2 compared to 12.0.1 *****
|
||||||
FIX: computation of the bottom margin of <body> returns NaN because body is not loaded yet
|
FIX: computation of the bottom margin of <body> returns NaN because body is not loaded yet
|
||||||
FIX: DebugBar hides content at page bottom
|
FIX: DebugBar hides content at page bottom
|
||||||
|
|||||||
@ -13,7 +13,7 @@ You can freely use, study, modify or distribute it according to its licence.
|
|||||||
|
|
||||||
You can use it as a standalone application or as a web application to access it from the Internet or a LAN.
|
You can use it as a standalone application or as a web application to access it from the Internet or a LAN.
|
||||||
|
|
||||||
Dolibarr has a large community ready to help you, free forums and [oficially preferred partners ready to offer commercial support should you need it](https://partners.dolibarr.org)
|
Dolibarr has a large community ready to help you, free forums and [officially preferred partners ready to offer commercial support should you need it](https://partners.dolibarr.org)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -45,7 +45,7 @@ On GNU/Linux, first check if your distribution has already packaged Dolibarr.
|
|||||||
|
|
||||||
#### Generic install steps:
|
#### Generic install steps:
|
||||||
|
|
||||||
- Check that your installed PHP version is supported [see PHP support](https://wiki.dolibarr.org/index.php/Versions).
|
- Check that your installed PHP version is supported [see PHP support](https://wiki.dolibarr.org/index.php/Releases).
|
||||||
|
|
||||||
- Uncompress the downloaded .zip archive to copy the "dolibarr/htdocs" directory and all its files inside your web server root or get the files directly from GitHub (recommanded if you know git as it makes it easier if you want to upgrade later):
|
- Uncompress the downloaded .zip archive to copy the "dolibarr/htdocs" directory and all its files inside your web server root or get the files directly from GitHub (recommanded if you know git as it makes it easier if you want to upgrade later):
|
||||||
|
|
||||||
@ -90,6 +90,7 @@ Dolibarr supports upgrading usually wihtout the need for any (commercial) suppor
|
|||||||
|
|
||||||
See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) file.
|
See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) file.
|
||||||
|
|
||||||
|
|
||||||
## FEATURES
|
## FEATURES
|
||||||
|
|
||||||
### Main application/modules (all optional)
|
### Main application/modules (all optional)
|
||||||
@ -162,8 +163,8 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
|
|||||||
|
|
||||||
### System Environment / Requirements
|
### System Environment / Requirements
|
||||||
|
|
||||||
- Works with PHP 5.5+ and MariaDB 5.0.3+, MySQL 5.0.3+ or PostgreSQL 8.1.4+ (See requirements on the [Wiki](https://wiki.dolibarr.org/index.php/Prerequisite))
|
- Works with PHP 5.6+ and MariaDB 5.0.3+, MySQL 5.0.3+ or PostgreSQL 8.1.4+ (See requirements on the [Wiki](https://wiki.dolibarr.org/index.php/Prerequisite))
|
||||||
- Compatible with all Cloud solutions that match MySQL, PHP or PostgreSQL prerequisites.
|
- Compatible with all Cloud solutions that match PHP & MySQL or PostgreSQL prerequisites.
|
||||||
|
|
||||||
### Extending
|
### Extending
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
Upstream-Name: Dolibarr
|
Upstream-Name: Dolibarr
|
||||||
Upstream-Contact: Laurent Destailleur <eldy@users.sourceforge.net>
|
Upstream-Contact: Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
Source: https://www.dolibarr.org/files/stable/standard/
|
Source: https://www.dolibarr.org/files/stable/standard/
|
||||||
@ -38,6 +38,7 @@ Copyright: 2002-2009, Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
|||||||
2011, Herve Prot <herve.prot@symeos.com>
|
2011, Herve Prot <herve.prot@symeos.com>
|
||||||
2011, Remy Younes <ryounes@gmail.com>
|
2011, Remy Younes <ryounes@gmail.com>
|
||||||
2012-2013, Christophe Battarel <christophe.battarel@altairis.fr>
|
2012-2013, Christophe Battarel <christophe.battarel@altairis.fr>
|
||||||
|
|
||||||
License: GPL-3+
|
License: GPL-3+
|
||||||
This program is free software; you can redistribute it
|
This program is free software; you can redistribute it
|
||||||
and/or modify it under the terms of the GNU General Public
|
and/or modify it under the terms of the GNU General Public
|
||||||
@ -56,7 +57,9 @@ License: GPL-3+
|
|||||||
.
|
.
|
||||||
On Debian systems, the full text of the GNU General Public
|
On Debian systems, the full text of the GNU General Public
|
||||||
License version 3 can be found in the file
|
License version 3 can be found in the file
|
||||||
`/usr/share/common-licenses/GPL-3'.
|
'/usr/share/common-licenses/GPL-3'.
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: htdocs/includes/adodbtime/*
|
Files: htdocs/includes/adodbtime/*
|
||||||
Copyright: 2003-2005, John Lim
|
Copyright: 2003-2005, John Lim
|
||||||
@ -80,6 +83,9 @@ Comment:
|
|||||||
Those files are not shipped in the binary package since we use
|
Those files are not shipped in the binary package since we use
|
||||||
the library as packaged in "libphp-adodb".
|
the library as packaged in "libphp-adodb".
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: htdocs/includes/ckeditor/*
|
Files: htdocs/includes/ckeditor/*
|
||||||
Copyright: 2003-2012 CKSource - Frederico Knabben
|
Copyright: 2003-2012 CKSource - Frederico Knabben
|
||||||
License: GPL-2+
|
License: GPL-2+
|
||||||
@ -109,6 +115,9 @@ Comment:
|
|||||||
Those files are not shipped in the binary package since we use the
|
Those files are not shipped in the binary package since we use the
|
||||||
library as packaged in "ckeditor".
|
library as packaged in "ckeditor".
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: htdocs/includes/fonts/*
|
Files: htdocs/includes/fonts/*
|
||||||
Copyright: 2003, Bitstream Inc
|
Copyright: 2003, Bitstream Inc
|
||||||
unknown, Gavin Graham
|
unknown, Gavin Graham
|
||||||
@ -158,7 +167,10 @@ License: other
|
|||||||
Comments:
|
Comments:
|
||||||
Those files are not shipped in the binary package as we
|
Those files are not shipped in the binary package as we
|
||||||
configure Dolibarr to use Dejavu fonts from "fonts-dejavu-core".
|
configure Dolibarr to use Dejavu fonts from "fonts-dejavu-core".
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: doc/images/*
|
Files: doc/images/*
|
||||||
Copyright: Laurent Destailleur
|
Copyright: Laurent Destailleur
|
||||||
License: CC-BY-SA-3.0
|
License: CC-BY-SA-3.0
|
||||||
@ -174,7 +186,10 @@ License: CC-BY-SA-3.0
|
|||||||
distribute the resulting work only under the same, similar or a compatible
|
distribute the resulting work only under the same, similar or a compatible
|
||||||
license.
|
license.
|
||||||
.
|
.
|
||||||
For more information, see http://creativecommons.org/licenses/by-sa/3.0/
|
For more information, see https://creativecommons.org/licenses/by-sa/3.0/
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: htdocs/includes/fpdfi/*
|
Files: htdocs/includes/fpdfi/*
|
||||||
Copyright: 2004-2011 Setasign - Jan Slabon
|
Copyright: 2004-2011 Setasign - Jan Slabon
|
||||||
@ -196,7 +211,10 @@ License: GPL-2+
|
|||||||
.
|
.
|
||||||
On Debian systems, the full text of the GNU General Public
|
On Debian systems, the full text of the GNU General Public
|
||||||
License version 2 can be found in the file
|
License version 2 can be found in the file
|
||||||
`/usr/share/common-licenses/GPL-2'.
|
'/usr/share/common-licenses/GPL-2'.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: htdocs/includes/geoip/*
|
Files: htdocs/includes/geoip/*
|
||||||
Copyright: 2007 MaxMind LLC
|
Copyright: 2007 MaxMind LLC
|
||||||
@ -216,10 +234,14 @@ License: LGPL-2.1+
|
|||||||
.
|
.
|
||||||
On Debian systems, the full text of the GNU Lesser General Public
|
On Debian systems, the full text of the GNU Lesser General Public
|
||||||
License version 2.1 can be found in the file
|
License version 2.1 can be found in the file
|
||||||
`/usr/share/common-licenses/LGPL-2.1'.
|
'/usr/share/common-licenses/LGPL-2.1'.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: htdocs/includes/jquery/*
|
Files: htdocs/includes/jquery/*
|
||||||
Copyright: JQuery team
|
Copyright: JQuery team
|
||||||
|
https://www.jquery.com
|
||||||
License: GPL-2+ or MIT
|
License: GPL-2+ or MIT
|
||||||
=== GPL-2+ LICENSE NOTICE ===
|
=== GPL-2+ LICENSE NOTICE ===
|
||||||
.
|
.
|
||||||
@ -240,7 +262,7 @@ License: GPL-2+ or MIT
|
|||||||
.
|
.
|
||||||
On Debian systems, the full text of the GNU General Public
|
On Debian systems, the full text of the GNU General Public
|
||||||
License version 2 can be found in the file
|
License version 2 can be found in the file
|
||||||
`/usr/share/common-licenses/GPL-2'.
|
'/usr/share/common-licenses/GPL-2'.
|
||||||
.
|
.
|
||||||
=== MIT LICENSE ===
|
=== MIT LICENSE ===
|
||||||
.
|
.
|
||||||
@ -267,6 +289,8 @@ Comment:
|
|||||||
"libjs-jquery-ui". Most of the plugins are shipped though.
|
"libjs-jquery-ui". Most of the plugins are shipped though.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: htdocs/includes/jquery/plugins/flot/*
|
Files: htdocs/includes/jquery/plugins/flot/*
|
||||||
Copyright: Flot team
|
Copyright: Flot team
|
||||||
License: Public-Domain
|
License: Public-Domain
|
||||||
@ -275,6 +299,9 @@ Comment:
|
|||||||
Those files are not shipped in the binary package because we configure
|
Those files are not shipped in the binary package because we configure
|
||||||
Dolibarr to use the files provided by "libjs-flot".
|
Dolibarr to use the files provided by "libjs-flot".
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: htdocs/includes/jsgantt/*
|
Files: htdocs/includes/jsgantt/*
|
||||||
Copyright: JSGantt team
|
Copyright: JSGantt team
|
||||||
License: GPL-2+
|
License: GPL-2+
|
||||||
@ -295,7 +322,10 @@ License: GPL-2+
|
|||||||
.
|
.
|
||||||
On Debian systems, the full text of the GNU General Public
|
On Debian systems, the full text of the GNU General Public
|
||||||
License version 2 can be found in the file
|
License version 2 can be found in the file
|
||||||
`/usr/share/common-licenses/GPL-2'.
|
'/usr/share/common-licenses/GPL-2'.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: htdocs/includes/nusoap/*
|
Files: htdocs/includes/nusoap/*
|
||||||
Copyright: 2002-2010 NuSphere Corporation
|
Copyright: 2002-2010 NuSphere Corporation
|
||||||
@ -315,11 +345,14 @@ License: LGPL-2.1+
|
|||||||
.
|
.
|
||||||
On Debian systems, the full text of the GNU Lesser General Public
|
On Debian systems, the full text of the GNU Lesser General Public
|
||||||
License version 2.1 can be found in the file
|
License version 2.1 can be found in the file
|
||||||
`/usr/share/common-licenses/LGPL-2.1'.
|
'/usr/share/common-licenses/LGPL-2.1'.
|
||||||
Comment:
|
Comment:
|
||||||
Those files are not shipped in the binary package since we
|
Those files are not shipped in the binary package since we
|
||||||
configure Dolibarr to use the library provided in "libnusoap-php".
|
configure Dolibarr to use the library provided in "libnusoap-php".
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: htdocs/includes/odtphp/*
|
Files: htdocs/includes/odtphp/*
|
||||||
Copyright: 2008, Julien Pauli
|
Copyright: 2008, Julien Pauli
|
||||||
2008, Cyril PIERRE de GEYER
|
2008, Cyril PIERRE de GEYER
|
||||||
@ -342,7 +375,10 @@ License: GPL-2+
|
|||||||
.
|
.
|
||||||
On Debian systems, the full text of the GNU General Public
|
On Debian systems, the full text of the GNU General Public
|
||||||
License version 2 can be found in the file
|
License version 2 can be found in the file
|
||||||
`/usr/share/common-licenses/GPL-2'.
|
'/usr/share/common-licenses/GPL-2'.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: htdocs/includes/phpexcel/*
|
Files: htdocs/includes/phpexcel/*
|
||||||
Copyright: 2006-2011 PHPExcel (http://www.codeplex.com/PHPExcel)
|
Copyright: 2006-2011 PHPExcel (http://www.codeplex.com/PHPExcel)
|
||||||
@ -362,7 +398,10 @@ License: LGPL-2.1+
|
|||||||
.
|
.
|
||||||
On Debian systems, the full text of the GNU Lesser General Public
|
On Debian systems, the full text of the GNU Lesser General Public
|
||||||
License version 2.1 can be found in the file
|
License version 2.1 can be found in the file
|
||||||
`/usr/share/common-licenses/LGPL-2.1'.
|
'/usr/share/common-licenses/LGPL-2.1'.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------
|
||||||
|
|
||||||
Files: htdocs/includes/tcpdf/*
|
Files: htdocs/includes/tcpdf/*
|
||||||
Copyright: 2002-2013 Nicola Asuni - Tecnick.com LTD
|
Copyright: 2002-2013 Nicola Asuni - Tecnick.com LTD
|
||||||
|
|||||||
@ -125,6 +125,11 @@ $checksumconcat=array();
|
|||||||
|
|
||||||
$outputfile=$outputdir.'/filelist-'.$release.'.xml';
|
$outputfile=$outputdir.'/filelist-'.$release.'.xml';
|
||||||
$fp = fopen($outputfile, 'w');
|
$fp = fopen($outputfile, 'w');
|
||||||
|
if (empty($fp)) {
|
||||||
|
print 'Failed to open file '.$outputfile."\n";
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
fputs($fp, '<?xml version="1.0" encoding="UTF-8" ?>'."\n");
|
fputs($fp, '<?xml version="1.0" encoding="UTF-8" ?>'."\n");
|
||||||
fputs($fp, '<checksum_list version="'.$release.'" date="'.dol_print_date(dol_now(), 'dayhourrfc').'" generator="'.$script_file.'">'."\n");
|
fputs($fp, '<checksum_list version="'.$release.'" date="'.dol_print_date(dol_now(), 'dayhourrfc').'" generator="'.$script_file.'">'."\n");
|
||||||
|
|
||||||
|
|||||||
2
dev/resources/iso-normes/company_ids.txt
Normal file
2
dev/resources/iso-normes/company_ids.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Spain https://incwell.eu/en/company-formation-spain/
|
||||||
|
France https://www.economie.gouv.fr/entreprises/numeros-identification-entreprise
|
||||||
@ -2,13 +2,18 @@ README (English)
|
|||||||
--------------------------------
|
--------------------------------
|
||||||
This directory contains tools to generate translation files for a new
|
This directory contains tools to generate translation files for a new
|
||||||
languages or to update translation files for existing languages.
|
languages or to update translation files for existing languages.
|
||||||
|
|
||||||
See Dolibarr Wiki page:
|
See Dolibarr Wiki page:
|
||||||
https://wiki.dolibarr.org/index.php/Translator_documentation
|
https://wiki.dolibarr.org/index.php/Translator_documentation
|
||||||
For more information on how to use them.
|
For more information on how to use them.
|
||||||
|
|
||||||
for Linux OS:
|
Translation of Dolibarr Project at Transifex:
|
||||||
To install transifex client:
|
https://www.transifex.com/dolibarr-association/dolibarr/dashboard/
|
||||||
|
|
||||||
|
|
||||||
|
Installation of Transifex Client:
|
||||||
|
---------------------------------
|
||||||
|
for Linux OS
|
||||||
|
to install or to update transifex client:
|
||||||
sudo pip install --upgrade transifex-client
|
sudo pip install --upgrade transifex-client
|
||||||
|
|
||||||
To update transifex client:
|
|
||||||
sudo pip install --upgrade transifex-client
|
|
||||||
|
|||||||
@ -21,8 +21,8 @@
|
|||||||
* \ingroup dev
|
* \ingroup dev
|
||||||
* \brief This script uses google language ajax api as the translator engine
|
* \brief This script uses google language ajax api as the translator engine
|
||||||
* The main translator function can be found at:
|
* The main translator function can be found at:
|
||||||
* http://code.google.com/intl/fr/apis/language/translate/overview.html
|
* defunct -http://code.google.com/intl/fr/apis/language/translate/overview.html-
|
||||||
* http://translate.google.com/translate_tools
|
* defunct -http://translate.google.com/translate_tools-
|
||||||
* https://code.google.com/apis/console
|
* https://code.google.com/apis/console
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ $dir=DOL_DOCUMENT_ROOT."/langs";
|
|||||||
if (! isset($argv[3])) {
|
if (! isset($argv[3])) {
|
||||||
print "Usage: ".$script_file." lang_code_src lang_code_dest|all APIKEY [langfile.lang]\n";
|
print "Usage: ".$script_file." lang_code_src lang_code_dest|all APIKEY [langfile.lang]\n";
|
||||||
print "Example: ".$script_file." en_US pt_PT 123456\n";
|
print "Example: ".$script_file." en_US pt_PT 123456\n";
|
||||||
print "Rem: lang_code to use can be found on http://www.google.com/language_tools\n";
|
print "Rem: lang_code to use can be found on https://translate.google.com\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,33 +1,45 @@
|
|||||||
README (deutsch / german / allemand)
|
README (deutsch / german / allemand)
|
||||||
--------------------------------
|
------------------------------------
|
||||||
|
|
||||||
|
|
||||||
--------------------------------
|
------------------------------------
|
||||||
Download / Herunterladen
|
Download / Herunterladen
|
||||||
--------------------------------
|
------------------------------------
|
||||||
|
|
||||||
* Dolibarr ERP/CRM kann man über die offizielle Dolibarr Website
|
* Dolibarr ERP/CRM kann man über die offizielle Dolibarr Website
|
||||||
|
|
||||||
https://www.dolibarr.org/downloads
|
https://www.dolibarr.org/downloads
|
||||||
oder direkt von Sourceforge
|
|
||||||
|
oder direkt bei Sourceforge
|
||||||
|
|
||||||
https://sourceforge.net/projects/dolibarr/files/
|
https://sourceforge.net/projects/dolibarr/files/
|
||||||
|
|
||||||
herunterladen.
|
herunterladen.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* Die meisten externen Module/Themens sind über den DoliStore verfügbar:
|
|
||||||
https://www.dolistore.com/de/
|
|
||||||
|
|
||||||
|
|
||||||
--------------------------------
|
|
||||||
Installation
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
* Für eine kurze Einleitung, schau auf die README Datei im Hauptverzeichnis.
|
------------------------------------
|
||||||
|
Installation / Hilfe
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
* Für eine kurze Einleitung schau in die README Datei im Hauptverzeichnis.
|
||||||
|
|
||||||
* Umfangreiche Dokumentationen sind im Dolibarr Wiki zu finden:
|
* Umfangreiche Dokumentationen sind im Dolibarr Wiki zu finden:
|
||||||
https://wiki.dolibarr.org/index.php/Hauptseite
|
https://wiki.dolibarr.org/index.php/Hauptseite
|
||||||
|
|
||||||
* eine Deutsche Community bietet der Dolibarr e.V. unter
|
* eine Deutsche Community bietet der Dolibarr e.V. unter
|
||||||
https://www.dolibarr.de/
|
https://www.dolibarr.de/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------
|
||||||
|
Zusatzmodule
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
* Die meisten externen Module/Themen sind über den offiziellen DoliStore verfügbar:
|
||||||
|
|
||||||
|
https://www.dolistore.com/de/
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -6,13 +6,14 @@ README (french)
|
|||||||
Téléchargement
|
Téléchargement
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
* Dolibarr ERP/CRM can be downloaded at sourceforge:
|
* Dolibarr ERP/CRM peut être téléchargé sur sourceforge:
|
||||||
http://sourceforge.net/projects/dolibarr/files
|
https://sourceforge.net/projects/dolibarr/files
|
||||||
or from Dolibarr official web site:
|
|
||||||
|
ou sur le site officiel de Dolibarr:
|
||||||
https://www.dolibarr.org
|
https://www.dolibarr.org
|
||||||
|
|
||||||
* Most external modules are only available on DoliStore:
|
* La plupart des modules externes ne sont disponibles que sur le DoliStore officiel:
|
||||||
https://www.dolistore.org
|
https://www.dolistore.com
|
||||||
|
|
||||||
|
|
||||||
--------------------------------
|
--------------------------------
|
||||||
@ -24,4 +25,4 @@ README-FR à la racine.
|
|||||||
|
|
||||||
* Une documentation utilisateur francophone plus consistante est disponible en
|
* Une documentation utilisateur francophone plus consistante est disponible en
|
||||||
ligne sur le wiki de Dolibarr à l'adresse:
|
ligne sur le wiki de Dolibarr à l'adresse:
|
||||||
https://wiki.dolibarr.org
|
https://wiki.dolibarr.org/index.php/Accueil
|
||||||
|
|||||||
@ -609,7 +609,7 @@ if ($id)
|
|||||||
if (empty($reshook)) fieldListAccountModel($fieldlist, $obj, $tabname[$id], 'edit');
|
if (empty($reshook)) fieldListAccountModel($fieldlist, $obj, $tabname[$id], 'edit');
|
||||||
|
|
||||||
print '<td colspan="3" class="right"><a name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"> </a><input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
print '<td colspan="3" class="right"><a name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"> </a><input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
||||||
print ' <input type="submit" class="button" name="actioncancel" value="'.$langs->trans("Cancel").'"></td>';
|
print ' <input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'"></td>';
|
||||||
} else {
|
} else {
|
||||||
$tmpaction = 'view';
|
$tmpaction = 'view';
|
||||||
$parameters = array('var'=>$var, 'fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
$parameters = array('var'=>$var, 'fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
||||||
|
|||||||
@ -255,9 +255,9 @@ if ($action == 'create') {
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
@ -317,9 +317,9 @@ if ($action == 'create') {
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" name="cancel" class="button button-cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -705,7 +705,7 @@ if ($id)
|
|||||||
print '<input type="hidden" name="rowid" value="'.$rowid.'">';
|
print '<input type="hidden" name="rowid" value="'.$rowid.'">';
|
||||||
print '<input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
print '<input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
||||||
print '<div name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"></div>';
|
print '<div name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"></div>';
|
||||||
print '<input type="submit" class="button" name="actioncancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td></td>';
|
print '<td></td>';
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -190,9 +190,9 @@ if ($action == 'create')
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
@ -241,9 +241,9 @@ if ($action == 'create')
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br><div class="center">';
|
print '<br><div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" name="cancel" class="button button-cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -582,7 +582,7 @@ if ($id)
|
|||||||
print '<input type="hidden" name="page" value="'.$page.'">';
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
print '<input type="hidden" name="rowid" value="'.$rowid.'">';
|
print '<input type="hidden" name="rowid" value="'.$rowid.'">';
|
||||||
print '<input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
print '<input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
||||||
print '<input type="submit" class="button" name="actioncancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '<div name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"></div>';
|
print '<div name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"></div>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -405,7 +405,7 @@ if ($result)
|
|||||||
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
$varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage;
|
||||||
$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
$selectedfields = $form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
|
||||||
|
|
||||||
$buttonsave = '<input type="submit" class="button" id="changeaccount" name="changeaccount" value="'.$langs->trans("Save").'">';
|
$buttonsave = '<input type="submit" class="button button-save" id="changeaccount" name="changeaccount" value="'.$langs->trans("Save").'">';
|
||||||
//print '<br><div class="center">'.$buttonsave.'</div>';
|
//print '<br><div class="center">'.$buttonsave.'</div>';
|
||||||
|
|
||||||
$texte = $langs->trans("ListOfProductsServices");
|
$texte = $langs->trans("ListOfProductsServices");
|
||||||
|
|||||||
@ -227,8 +227,8 @@ if ($action != 'export_csv')
|
|||||||
$moreforfilter .= $form->selectDate($search_date_end ? $search_date_end : -1, 'date_end', 0, 0, 1, '', 1, 0);
|
$moreforfilter .= $form->selectDate($search_date_end ? $search_date_end : -1, 'date_end', 0, 0, 1, '', 1, 0);
|
||||||
|
|
||||||
$moreforfilter .= ' - ';
|
$moreforfilter .= ' - ';
|
||||||
$moreforfilter .= $langs->trans('ShowSubtotalByGroup').': ';
|
$moreforfilter .= '<label for="show_subgroup">'.$langs->trans('ShowSubtotalByGroup').'</label>: ';
|
||||||
$moreforfilter .= '<input type="checkbox" name="show_subgroup" value="show_subgroup"'.($show_subgroup == 'show_subgroup' ? ' checked' : '').'>';
|
$moreforfilter .= '<input type="checkbox" name="show_subgroup" id="show_subgroup" value="show_subgroup"'.($show_subgroup == 'show_subgroup' ? ' checked' : '').'>';
|
||||||
|
|
||||||
|
|
||||||
$moreforfilter .= '</div>';
|
$moreforfilter .= '</div>';
|
||||||
@ -272,6 +272,8 @@ if ($action != 'export_csv')
|
|||||||
$total_credit = 0;
|
$total_credit = 0;
|
||||||
$sous_total_debit = 0;
|
$sous_total_debit = 0;
|
||||||
$sous_total_credit = 0;
|
$sous_total_credit = 0;
|
||||||
|
$total_opening_balance = 0;
|
||||||
|
$sous_total_opening_balance = 0;
|
||||||
$displayed_account = "";
|
$displayed_account = "";
|
||||||
|
|
||||||
$accountingaccountstatic = new AccountingAccount($db);
|
$accountingaccountstatic = new AccountingAccount($db);
|
||||||
@ -302,7 +304,13 @@ if ($action != 'export_csv')
|
|||||||
$link = '';
|
$link = '';
|
||||||
$total_debit += $line->debit;
|
$total_debit += $line->debit;
|
||||||
$total_credit += $line->credit;
|
$total_credit += $line->credit;
|
||||||
$root_account_description = $object->get_compte_racine($line->numero_compte);
|
$opening_balance = isset($opening_balances["'".$line->numero_compte."'"]) ? $opening_balances["'".$line->numero_compte."'"] : 0;
|
||||||
|
$total_opening_balance += $opening_balance;
|
||||||
|
|
||||||
|
$tmparrayforrootaccount = $object->getRootAccount($line->numero_compte);
|
||||||
|
$root_account_description = $tmparrayforrootaccount['label'];
|
||||||
|
$root_account_number = $tmparrayforrootaccount['account_number'];
|
||||||
|
|
||||||
if (empty($accountingaccountstatic->account_number)) {
|
if (empty($accountingaccountstatic->account_number)) {
|
||||||
$link = '<a href="'.DOL_URL_ROOT.'/accountancy/admin/card.php?action=create&accountingaccount='.length_accountg($line->numero_compte).'">'.img_edit_add().'</a>';
|
$link = '<a href="'.DOL_URL_ROOT.'/accountancy/admin/card.php?action=create&accountingaccount='.length_accountg($line->numero_compte).'">'.img_edit_add().'</a>';
|
||||||
}
|
}
|
||||||
@ -311,14 +319,14 @@ if ($action != 'export_csv')
|
|||||||
if (!empty($show_subgroup))
|
if (!empty($show_subgroup))
|
||||||
{
|
{
|
||||||
// Show accounting account
|
// Show accounting account
|
||||||
if (empty($displayed_account) || $root_account_description != $displayed_account) {
|
if (empty($displayed_account) || $root_account_number != $displayed_account) {
|
||||||
// Show subtotal per accounting account
|
// Show subtotal per accounting account
|
||||||
if ($displayed_account != "") {
|
if ($displayed_account != "") {
|
||||||
print '<tr class="liste_total">';
|
print '<tr class="liste_total">';
|
||||||
print '<td class="right" colspan="2">'.$langs->trans("SubTotal").':</td>';
|
print '<td class="right" colspan="2">'.$langs->trans("SubTotal").':</td>';
|
||||||
print '<td class="nowrap right">'.price($sous_total_debit).'</td>';
|
print '<td class="nowrap right">'.price($sous_total_debit).'</td>';
|
||||||
print '<td class="nowrap right">'.price($sous_total_credit).'</td>';
|
print '<td class="nowrap right">'.price($sous_total_credit).'</td>';
|
||||||
print '<td class="nowrap right">'.price(price2num($sous_total_credit - $sous_total_debit)).'</td>';
|
print '<td class="nowrap right">'.price(price2num($sous_total_opening_balance + $sous_total_credit - $sous_total_debit)).'</td>';
|
||||||
print "<td></td>\n";
|
print "<td></td>\n";
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@ -328,18 +336,18 @@ if ($action != 'export_csv')
|
|||||||
print '<td colspan="6" style="font-weight:bold; border-bottom: 1pt solid black;">'.$line->numero_compte.($root_account_description ? ' - '.$root_account_description : '').'</td>';
|
print '<td colspan="6" style="font-weight:bold; border-bottom: 1pt solid black;">'.$line->numero_compte.($root_account_description ? ' - '.$root_account_description : '').'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
$displayed_account = $root_account_description;
|
$displayed_account = $root_account_number;
|
||||||
$sous_total_debit = 0;
|
$sous_total_debit = 0;
|
||||||
$sous_total_credit = 0;
|
$sous_total_credit = 0;
|
||||||
|
$sous_total_opening_balance = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// $object->get_compte_racine($line->numero_compte);
|
|
||||||
print '<td>'.$accounting_account.'</td>';
|
print '<td>'.$accounting_account.'</td>';
|
||||||
print '<td class="nowraponall right">'.price($opening_balances["'".$line->numero_compte."'"]).'</td>';
|
print '<td class="nowraponall right">'.price($opening_balance).'</td>';
|
||||||
print '<td class="nowraponall right">'.price($line->debit).'</td>';
|
print '<td class="nowraponall right">'.price($line->debit).'</td>';
|
||||||
print '<td class="nowraponall right">'.price($line->credit).'</td>';
|
print '<td class="nowraponall right">'.price($line->credit).'</td>';
|
||||||
print '<td class="nowraponall right">'.price(price2num($line->debit - $line->credit, 'MT')).'</td>';
|
print '<td class="nowraponall right">'.price(price2num($opening_balance + $line->debit - $line->credit, 'MT')).'</td>';
|
||||||
print '<td class="center">'.$link;
|
print '<td class="center">'.$link;
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
@ -347,6 +355,7 @@ if ($action != 'export_csv')
|
|||||||
// Records the sub-total
|
// Records the sub-total
|
||||||
$sous_total_debit += $line->debit;
|
$sous_total_debit += $line->debit;
|
||||||
$sous_total_credit += $line->credit;
|
$sous_total_credit += $line->credit;
|
||||||
|
$sous_total_opening_balance += $opening_balance;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($show_subgroup))
|
if (!empty($show_subgroup))
|
||||||
|
|||||||
@ -391,7 +391,7 @@ if ($action == 'create')
|
|||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Create").'">';
|
print '<input type="submit" class="button" value="'.$langs->trans("Create").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="button" value="'.$langs->trans("Cancel").'" class="button" onclick="history.go(-1)" />';
|
print '<input type="button" value="'.$langs->trans("Cancel").'" class="button button-cancel" onclick="history.go(-1)" />';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
@ -707,7 +707,7 @@ if ($action == 'create')
|
|||||||
}
|
}
|
||||||
|
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<a class="button" href="'.DOL_URL_ROOT.'/accountancy/bookkeeping/list.php">'.$langs->trans("Cancel").'</a>';
|
print '<a class="button button-cancel" href="'.DOL_URL_ROOT.'/accountancy/bookkeeping/list.php">'.$langs->trans("Cancel").'</a>';
|
||||||
|
|
||||||
print "</div>";
|
print "</div>";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -627,22 +627,26 @@ print '<input type="hidden" name="sortorder" value="'.urlencode($sortorder).'">'
|
|||||||
if (count($filter)) $buttonLabel = $langs->trans("ExportFilteredList");
|
if (count($filter)) $buttonLabel = $langs->trans("ExportFilteredList");
|
||||||
else $buttonLabel = $langs->trans("ExportList");
|
else $buttonLabel = $langs->trans("ExportList");
|
||||||
|
|
||||||
// Button re-export
|
$parameters = array();
|
||||||
if (!empty($conf->global->ACCOUNTING_REEXPORT)) {
|
$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||||
$newcardbutton = '<a class="valignmiddle" href="'.$_SERVER['PHP_SELF'].'?action=setreexport&token='.newToken().'&value=0'.($param ? '&'.$param : '').'">'.img_picto($langs->trans("Activated"), 'switch_on').'</a> ';
|
if (empty($reshook)) {
|
||||||
} else {
|
// Button re-export
|
||||||
$newcardbutton = '<a class="valignmiddle" href="'.$_SERVER['PHP_SELF'].'?action=setreexport&token='.newToken().'&value=1'.($param ? '&'.$param : '').'">'.img_picto($langs->trans("Disabled"), 'switch_off').'</a> ';
|
if (!empty($conf->global->ACCOUNTING_REEXPORT)) {
|
||||||
|
$newcardbutton = '<a class="valignmiddle" href="' . $_SERVER['PHP_SELF'] . '?action=setreexport&token=' . newToken() . '&value=0' . ($param ? '&' . $param : '') . '">' . img_picto($langs->trans("Activated"), 'switch_on') . '</a> ';
|
||||||
|
} else {
|
||||||
|
$newcardbutton = '<a class="valignmiddle" href="' . $_SERVER['PHP_SELF'] . '?action=setreexport&token=' . newToken() . '&value=1' . ($param ? '&' . $param : '') . '">' . img_picto($langs->trans("Disabled"), 'switch_off') . '</a> ';
|
||||||
|
}
|
||||||
|
$newcardbutton .= '<span class="valignmiddle marginrightonly">' . $langs->trans("IncludeDocsAlreadyExported") . '</span>';
|
||||||
|
|
||||||
|
$newcardbutton .= dolGetButtonTitle($buttonLabel, $langs->trans("ExportFilteredList") . ' (' . $listofformat[$formatexportset] . ')', 'fa fa-file-export paddingleft', $_SERVER["PHP_SELF"] . '?action=export_file' . ($param ? '&' . $param : ''), $user->rights->accounting->mouvements->export);
|
||||||
|
|
||||||
|
$newcardbutton .= dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/list.php?' . $param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected'));
|
||||||
|
$newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?' . $param, '', 1, array('morecss' => 'marginleftonly'));
|
||||||
|
|
||||||
|
$url = './card.php?action=create';
|
||||||
|
if (!empty($socid)) $url .= '&socid=' . $socid;
|
||||||
|
$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', $url, '', $user->rights->accounting->mouvements->creer);
|
||||||
}
|
}
|
||||||
$newcardbutton .= '<span class="valignmiddle marginrightonly">'.$langs->trans("IncludeDocsAlreadyExported").'</span>';
|
|
||||||
|
|
||||||
$newcardbutton .= dolGetButtonTitle($buttonLabel, $langs->trans("ExportFilteredList").' ('.$listofformat[$formatexportset].')', 'fa fa-file-export paddingleft', $_SERVER["PHP_SELF"].'?action=export_file'.($param ? '&'.$param : ''), $user->rights->accounting->mouvements->export);
|
|
||||||
|
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param, '', 1, array('morecss'=>'marginleftonly btnTitleSelected'));
|
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?'.$param, '', 1, array('morecss'=>'marginleftonly'));
|
|
||||||
|
|
||||||
$url = './card.php?action=create';
|
|
||||||
if (!empty($socid)) $url .= '&socid='.$socid;
|
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', $url, '', $user->rights->accounting->mouvements->creer);
|
|
||||||
|
|
||||||
print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1);
|
print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1);
|
||||||
|
|
||||||
|
|||||||
@ -376,12 +376,16 @@ print '<input type="hidden" name="formfilteraction" id="formfilteraction" value=
|
|||||||
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
||||||
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param);
|
$parameters = array();
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('VueByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?'.$param, '', 1, array('morecss'=>'marginleftonly btnTitleSelected'));
|
$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||||
|
if (empty($reshook)) {
|
||||||
|
$newcardbutton = dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/list.php?' . $param);
|
||||||
|
$newcardbutton .= dolGetButtonTitle($langs->trans('VueByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?' . $param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected'));
|
||||||
|
|
||||||
$newcardbutton .= ' ';
|
$newcardbutton .= ' ';
|
||||||
|
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', DOL_URL_ROOT.'/accountancy/bookkeeping/card.php?action=create');
|
$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', DOL_URL_ROOT . '/accountancy/bookkeeping/card.php?action=create');
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
||||||
|
|||||||
@ -377,8 +377,12 @@ print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
|
|||||||
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
|
||||||
|
|
||||||
|
|
||||||
$newcardbutton = dolGetButtonTitle($langs->trans('ViewAccountList'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php', '', 1, array('morecss'=>'marginleftonly btnTitleSelected'));
|
$parameters = array();
|
||||||
$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', DOL_URL_ROOT.'/accountancy/bookkeeping/card.php?action=create');
|
$reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||||
|
if (empty($reshook)) {
|
||||||
|
$newcardbutton = dolGetButtonTitle($langs->trans('ViewAccountList'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php', '', 1, array('morecss' => 'marginleftonly btnTitleSelected'));
|
||||||
|
$newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', DOL_URL_ROOT . '/accountancy/bookkeeping/card.php?action=create');
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* Copyright (C) 2013 Olivier Geffroy <jeff@jeffinfo.com>
|
* Copyright (C) 2013 Olivier Geffroy <jeff@jeffinfo.com>
|
||||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2013-2019 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2013-2019 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2018-2019 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -41,7 +41,7 @@ $massaction = GETPOST('massaction', 'alpha');
|
|||||||
$show_files = GETPOST('show_files', 'int');
|
$show_files = GETPOST('show_files', 'int');
|
||||||
$confirm = GETPOST('confirm', 'alpha');
|
$confirm = GETPOST('confirm', 'alpha');
|
||||||
$toselect = GETPOST('toselect', 'array');
|
$toselect = GETPOST('toselect', 'array');
|
||||||
$socid = GETPOST('socid', 'int') ?GETPOST('socid', 'int') : GETPOST('id', 'int');
|
$socid = GETPOST('socid', 'int') ? ((int) GETPOST('socid', 'int')) : ((int) GETPOST('id', 'int'));
|
||||||
|
|
||||||
$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
|
$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
|
||||||
$sortfield = GETPOST("sortfield", 'alpha');
|
$sortfield = GETPOST("sortfield", 'alpha');
|
||||||
|
|||||||
@ -57,6 +57,8 @@ class AccountancyExport
|
|||||||
public static $EXPORT_TYPE_OPENCONCERTO = 100;
|
public static $EXPORT_TYPE_OPENCONCERTO = 100;
|
||||||
public static $EXPORT_TYPE_LDCOMPTA = 110;
|
public static $EXPORT_TYPE_LDCOMPTA = 110;
|
||||||
public static $EXPORT_TYPE_LDCOMPTA10 = 120;
|
public static $EXPORT_TYPE_LDCOMPTA10 = 120;
|
||||||
|
public static $EXPORT_TYPE_GESTINUMV3 = 130;
|
||||||
|
public static $EXPORT_TYPE_GESTINUMV5 = 135;
|
||||||
public static $EXPORT_TYPE_FEC = 1000;
|
public static $EXPORT_TYPE_FEC = 1000;
|
||||||
|
|
||||||
|
|
||||||
@ -113,10 +115,12 @@ class AccountancyExport
|
|||||||
self::$EXPORT_TYPE_AGIRIS => $langs->trans('Modelcsv_agiris'),
|
self::$EXPORT_TYPE_AGIRIS => $langs->trans('Modelcsv_agiris'),
|
||||||
self::$EXPORT_TYPE_OPENCONCERTO => $langs->trans('Modelcsv_openconcerto'),
|
self::$EXPORT_TYPE_OPENCONCERTO => $langs->trans('Modelcsv_openconcerto'),
|
||||||
self::$EXPORT_TYPE_SAGE50_SWISS => $langs->trans('Modelcsv_Sage50_Swiss'),
|
self::$EXPORT_TYPE_SAGE50_SWISS => $langs->trans('Modelcsv_Sage50_Swiss'),
|
||||||
|
self::$EXPORT_TYPE_CHARLEMAGNE => $langs->trans('Modelcsv_charlemagne'),
|
||||||
self::$EXPORT_TYPE_LDCOMPTA => $langs->trans('Modelcsv_LDCompta'),
|
self::$EXPORT_TYPE_LDCOMPTA => $langs->trans('Modelcsv_LDCompta'),
|
||||||
self::$EXPORT_TYPE_LDCOMPTA10 => $langs->trans('Modelcsv_LDCompta10'),
|
self::$EXPORT_TYPE_LDCOMPTA10 => $langs->trans('Modelcsv_LDCompta10'),
|
||||||
|
self::$EXPORT_TYPE_GESTINUMV3 => $langs->trans('Modelcsv_Gestinum_v3'),
|
||||||
|
self::$EXPORT_TYPE_GESTINUMV5 => $langs->trans('Modelcsv_Gestinum_v5'),
|
||||||
self::$EXPORT_TYPE_FEC => $langs->trans('Modelcsv_FEC'),
|
self::$EXPORT_TYPE_FEC => $langs->trans('Modelcsv_FEC'),
|
||||||
self::$EXPORT_TYPE_CHARLEMAGNE => $langs->trans('Modelcsv_charlemagne'),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
ksort($listofexporttypes, SORT_NUMERIC);
|
ksort($listofexporttypes, SORT_NUMERIC);
|
||||||
@ -144,9 +148,12 @@ class AccountancyExport
|
|||||||
self::$EXPORT_TYPE_COGILOG => 'cogilog',
|
self::$EXPORT_TYPE_COGILOG => 'cogilog',
|
||||||
self::$EXPORT_TYPE_AGIRIS => 'agiris',
|
self::$EXPORT_TYPE_AGIRIS => 'agiris',
|
||||||
self::$EXPORT_TYPE_OPENCONCERTO => 'openconcerto',
|
self::$EXPORT_TYPE_OPENCONCERTO => 'openconcerto',
|
||||||
self::$EXPORT_TYPE_SAGE50_SWISS => 'sage50ch',
|
self::$EXPORT_TYPE_SAGE50_SWISS => 'sage50ch',
|
||||||
self::$EXPORT_TYPE_LDCOMPTA => 'ldcompta',
|
self::$EXPORT_TYPE_CHARLEMAGNE => 'charlemagne',
|
||||||
self::$EXPORT_TYPE_LDCOMPTA10 => 'ldcompta10',
|
self::$EXPORT_TYPE_LDCOMPTA => 'ldcompta',
|
||||||
|
self::$EXPORT_TYPE_LDCOMPTA10 => 'ldcompta10',
|
||||||
|
self::$EXPORT_TYPE_GESTINUMV3 => 'gestinumv3',
|
||||||
|
self::$EXPORT_TYPE_GESTINUMV5 => 'gestinumv5',
|
||||||
self::$EXPORT_TYPE_FEC => 'fec',
|
self::$EXPORT_TYPE_FEC => 'fec',
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -201,30 +208,32 @@ class AccountancyExport
|
|||||||
self::$EXPORT_TYPE_AGIRIS => array(
|
self::$EXPORT_TYPE_AGIRIS => array(
|
||||||
'label' => $langs->trans('Modelcsv_agiris'),
|
'label' => $langs->trans('Modelcsv_agiris'),
|
||||||
),
|
),
|
||||||
self::$EXPORT_TYPE_OPENCONCERTO => array(
|
self::$EXPORT_TYPE_OPENCONCERTO => array(
|
||||||
'label' => $langs->trans('Modelcsv_openconcerto'),
|
'label' => $langs->trans('Modelcsv_openconcerto'),
|
||||||
'ACCOUNTING_EXPORT_FORMAT' => 'csv',
|
),
|
||||||
),
|
|
||||||
self::$EXPORT_TYPE_SAGE50_SWISS => array(
|
self::$EXPORT_TYPE_SAGE50_SWISS => array(
|
||||||
'label' => $langs->trans('Modelcsv_Sage50_Swiss'),
|
'label' => $langs->trans('Modelcsv_Sage50_Swiss'),
|
||||||
'ACCOUNTING_EXPORT_FORMAT' => 'csv',
|
|
||||||
),
|
|
||||||
self::$EXPORT_TYPE_LDCOMPTA => array(
|
|
||||||
'label' => $langs->trans('Modelcsv_LDCompta'),
|
|
||||||
'ACCOUNTING_EXPORT_FORMAT' => 'csv',
|
|
||||||
),
|
|
||||||
self::$EXPORT_TYPE_LDCOMPTA10 => array(
|
|
||||||
'label' => $langs->trans('Modelcsv_LDCompta10'),
|
|
||||||
'ACCOUNTING_EXPORT_FORMAT' => 'csv',
|
|
||||||
),
|
|
||||||
self::$EXPORT_TYPE_FEC => array(
|
|
||||||
'label' => $langs->trans('Modelcsv_FEC'),
|
|
||||||
'ACCOUNTING_EXPORT_FORMAT' => 'txt',
|
|
||||||
),
|
),
|
||||||
self::$EXPORT_TYPE_CHARLEMAGNE => array(
|
self::$EXPORT_TYPE_CHARLEMAGNE => array(
|
||||||
'label' => $langs->trans('Modelcsv_charlemagne'),
|
'label' => $langs->trans('Modelcsv_charlemagne'),
|
||||||
'ACCOUNTING_EXPORT_FORMAT' => 'txt',
|
'ACCOUNTING_EXPORT_FORMAT' => 'txt',
|
||||||
),
|
),
|
||||||
|
self::$EXPORT_TYPE_LDCOMPTA => array(
|
||||||
|
'label' => $langs->trans('Modelcsv_LDCompta'),
|
||||||
|
),
|
||||||
|
self::$EXPORT_TYPE_LDCOMPTA10 => array(
|
||||||
|
'label' => $langs->trans('Modelcsv_LDCompta10'),
|
||||||
|
),
|
||||||
|
self::$EXPORT_TYPE_GESTINUMV3 => array(
|
||||||
|
'label' => $langs->trans('Modelcsv_Gestinumv3'),
|
||||||
|
),
|
||||||
|
self::$EXPORT_TYPE_GESTINUMV5 => array(
|
||||||
|
'label' => $langs->trans('Modelcsv_Gestinumv5'),
|
||||||
|
),
|
||||||
|
self::$EXPORT_TYPE_FEC => array(
|
||||||
|
'label' => $langs->trans('Modelcsv_FEC'),
|
||||||
|
'ACCOUNTING_EXPORT_FORMAT' => 'txt',
|
||||||
|
),
|
||||||
),
|
),
|
||||||
'cr'=> array(
|
'cr'=> array(
|
||||||
'1' => $langs->trans("Unix"),
|
'1' => $langs->trans("Unix"),
|
||||||
@ -295,18 +304,24 @@ class AccountancyExport
|
|||||||
case self::$EXPORT_TYPE_SAGE50_SWISS :
|
case self::$EXPORT_TYPE_SAGE50_SWISS :
|
||||||
$this->exportSAGE50SWISS($TData);
|
$this->exportSAGE50SWISS($TData);
|
||||||
break;
|
break;
|
||||||
case self::$EXPORT_TYPE_LDCOMPTA :
|
|
||||||
$this->exportLDCompta($TData);
|
|
||||||
break;
|
|
||||||
case self::$EXPORT_TYPE_LDCOMPTA10 :
|
|
||||||
$this->exportLDCompta10($TData);
|
|
||||||
break;
|
|
||||||
case self::$EXPORT_TYPE_FEC :
|
|
||||||
$this->exportFEC($TData);
|
|
||||||
break;
|
|
||||||
case self::$EXPORT_TYPE_CHARLEMAGNE :
|
case self::$EXPORT_TYPE_CHARLEMAGNE :
|
||||||
$this->exportCharlemagne($TData);
|
$this->exportCharlemagne($TData);
|
||||||
break;
|
break;
|
||||||
|
case self::$EXPORT_TYPE_LDCOMPTA :
|
||||||
|
$this->exportLDCompta($TData);
|
||||||
|
break;
|
||||||
|
case self::$EXPORT_TYPE_LDCOMPTA10 :
|
||||||
|
$this->exportLDCompta10($TData);
|
||||||
|
break;
|
||||||
|
case self::$EXPORT_TYPE_GESTINUMV3 :
|
||||||
|
$this->exportGestimumV3($TData);
|
||||||
|
break;
|
||||||
|
case self::$EXPORT_TYPE_GESTINUMV5 :
|
||||||
|
$this->exportGestimumV5($TData);
|
||||||
|
break;
|
||||||
|
case self::$EXPORT_TYPE_FEC :
|
||||||
|
$this->exportFEC($TData);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
$this->errors[] = $langs->trans('accountancy_error_modelnotfound');
|
$this->errors[] = $langs->trans('accountancy_error_modelnotfound');
|
||||||
break;
|
break;
|
||||||
@ -1469,6 +1484,136 @@ class AccountancyExport
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Export format : Gestimum V3
|
||||||
|
*
|
||||||
|
* @param array $objectLines data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function exportGestimumV3($objectLines)
|
||||||
|
{
|
||||||
|
global $langs;
|
||||||
|
|
||||||
|
$this->separator = ',';
|
||||||
|
|
||||||
|
$invoices_infos = array();
|
||||||
|
$supplier_invoices_infos = array();
|
||||||
|
foreach ($objectLines as $line) {
|
||||||
|
$date = dol_print_date($line->doc_date, '%d/%m/%Y');
|
||||||
|
|
||||||
|
$invoice_ref = $line->doc_ref;
|
||||||
|
$company_name = "";
|
||||||
|
|
||||||
|
if (($line->doc_type == 'customer_invoice' || $line->doc_type == 'supplier_invoice') && $line->fk_doc > 0) {
|
||||||
|
if (($line->doc_type == 'customer_invoice' && !isset($invoices_infos[$line->fk_doc])) ||
|
||||||
|
($line->doc_type == 'supplier_invoice' && !isset($supplier_invoices_infos[$line->fk_doc]))) {
|
||||||
|
if ($line->doc_type == 'customer_invoice') {
|
||||||
|
// Get new customer invoice ref and company name
|
||||||
|
$sql = 'SELECT f.facnumber, s.nom FROM ' . MAIN_DB_PREFIX . 'facture as f';
|
||||||
|
$sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'societe AS s ON f.fk_soc = s.rowid';
|
||||||
|
$sql .= ' WHERE f.rowid = ' . $line->fk_doc;
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
if ($resql) {
|
||||||
|
if ($obj = $this->db->fetch_object($resql)) {
|
||||||
|
// Save invoice infos
|
||||||
|
$invoices_infos[$line->fk_doc] = array('ref' => $obj->facnumber, 'company_name' => $obj->nom);
|
||||||
|
$invoice_ref = $obj->facnumber;
|
||||||
|
$company_name = $obj->nom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Get new supplier invoice ref and company name
|
||||||
|
$sql = 'SELECT ff.ref, s.nom FROM ' . MAIN_DB_PREFIX . 'facture_fourn as ff';
|
||||||
|
$sql .= ' LEFT JOIN ' . MAIN_DB_PREFIX . 'societe AS s ON ff.fk_soc = s.rowid';
|
||||||
|
$sql .= ' WHERE ff.rowid = ' . $line->fk_doc;
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
if ($resql) {
|
||||||
|
if ($obj = $this->db->fetch_object($resql)) {
|
||||||
|
// Save invoice infos
|
||||||
|
$supplier_invoices_infos[$line->fk_doc] = array('ref' => $obj->ref, 'company_name' => $obj->nom);
|
||||||
|
$invoice_ref = $obj->ref;
|
||||||
|
$company_name = $obj->nom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} elseif ($line->doc_type == 'customer_invoice') {
|
||||||
|
// Retrieve invoice infos
|
||||||
|
$invoice_ref = $invoices_infos[$line->fk_doc]['ref'];
|
||||||
|
$company_name = $invoices_infos[$line->fk_doc]['company_name'];
|
||||||
|
} else {
|
||||||
|
// Retrieve invoice infos
|
||||||
|
$invoice_ref = $supplier_invoices_infos[$line->fk_doc]['ref'];
|
||||||
|
$company_name = $supplier_invoices_infos[$line->fk_doc]['company_name'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print $line->id . $this->separator;
|
||||||
|
print $date . $this->separator;
|
||||||
|
print substr($line->code_journal, 0, 4) . $this->separator;
|
||||||
|
|
||||||
|
if ((substr($line->numero_compte, 0, 3) == '411') || (substr($line->numero_compte, 0, 3) == '401')) {
|
||||||
|
print length_accountg($line->subledger_account) . $this->separator;
|
||||||
|
} else {
|
||||||
|
print substr(length_accountg($line->numero_compte), 0, 15) . $this->separator;
|
||||||
|
}
|
||||||
|
//Libellé Auto
|
||||||
|
print $this->separator;
|
||||||
|
//print '"'.dol_trunc(str_replace('"', '', $line->label_operation),40,'right','UTF-8',1).'"' . $this->separator;
|
||||||
|
//Libellé manuel
|
||||||
|
print dol_trunc(str_replace('"', '', $invoice_ref . (!empty($company_name) ? ' - ' : '') . $company_name), 40, 'right', 'UTF-8', 1) . $this->separator;
|
||||||
|
//Numéro de pièce
|
||||||
|
print dol_trunc(str_replace('"', '', $line->piece_num), 10, 'right', 'UTF-8', 1) . $this->separator;
|
||||||
|
//Devise
|
||||||
|
print 'EUR' . $this->separator;
|
||||||
|
//Montant
|
||||||
|
print price2num(abs($line->montant)) . $this->separator;
|
||||||
|
//Sens
|
||||||
|
print $line->sens . $this->separator;
|
||||||
|
//Code lettrage
|
||||||
|
print $this->separator;
|
||||||
|
//Date Echéance
|
||||||
|
print $date;
|
||||||
|
print $this->end_line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Export format : Gestimum V5
|
||||||
|
*
|
||||||
|
* @param array $objectLines data
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function exportGestimumV5($objectLines)
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->separator = ',';
|
||||||
|
|
||||||
|
foreach ($objectLines as $line) {
|
||||||
|
$date = dol_print_date($line->doc_date, '%d%m%Y');
|
||||||
|
|
||||||
|
print $line->id . $this->separator;
|
||||||
|
print $date . $this->separator;
|
||||||
|
print substr($line->code_journal, 0, 4) . $this->separator;
|
||||||
|
if ((substr($line->numero_compte, 0, 3) == '411') || (substr($line->numero_compte, 0, 3) == '401')) {
|
||||||
|
print length_accountg($line->subledger_account) . $this->separator;
|
||||||
|
} else {
|
||||||
|
print substr(length_accountg($line->numero_compte), 0, 15) . $this->separator;
|
||||||
|
}
|
||||||
|
print $this->separator;
|
||||||
|
//print '"'.dol_trunc(str_replace('"', '', $line->label_operation),40,'right','UTF-8',1).'"' . $this->separator;
|
||||||
|
print '"'.dol_trunc(str_replace('"', '', $line->doc_ref), 40, 'right', 'UTF-8', 1).'"' . $this->separator;
|
||||||
|
print '"'.dol_trunc(str_replace('"', '', $line->piece_num), 10, 'right', 'UTF-8', 1).'"'.$this->separator;
|
||||||
|
print price2num($line->montant).$this->separator;
|
||||||
|
print $line->sens.$this->separator;
|
||||||
|
print $date . $this->separator;
|
||||||
|
print $this->separator;
|
||||||
|
print $this->separator;
|
||||||
|
print 'EUR';
|
||||||
|
print $this->end_line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* trunc
|
* trunc
|
||||||
|
|||||||
@ -460,7 +460,7 @@ class AccountingAccount extends CommonObject
|
|||||||
|
|
||||||
$result = '';
|
$result = '';
|
||||||
|
|
||||||
$url = '';
|
$url = ''; $labelurl = '';
|
||||||
if (empty($option) || $option == 'ledger') {
|
if (empty($option) || $option == 'ledger') {
|
||||||
$url = DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?search_accountancy_code_start='.urlencode($this->account_number).'&search_accountancy_code_end='.urlencode($this->account_number);
|
$url = DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?search_accountancy_code_start='.urlencode($this->account_number).'&search_accountancy_code_end='.urlencode($this->account_number);
|
||||||
$labelurl = $langs->trans("ShowAccountingAccountInLedger");
|
$labelurl = $langs->trans("ShowAccountingAccountInLedger");
|
||||||
@ -617,16 +617,13 @@ class AccountingAccount extends CommonObject
|
|||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
if ($mode == 0)
|
$fieldtouse = 'active';
|
||||||
{
|
if ($mode == 1) {
|
||||||
$fieldtouse = 'active';
|
|
||||||
} elseif ($mode == 1)
|
|
||||||
{
|
|
||||||
$fieldtouse = 'reconcilable';
|
$fieldtouse = 'reconcilable';
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account ";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."accounting_account";
|
||||||
$sql .= "SET ".$fieldtouse." = '1'";
|
$sql .= " SET ".$fieldtouse." = '1'";
|
||||||
$sql .= " WHERE rowid = ".$this->db->escape($id);
|
$sql .= " WHERE rowid = ".$this->db->escape($id);
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::account_activate ".$fieldtouse." sql=".$sql, LOG_DEBUG);
|
dol_syslog(get_class($this)."::account_activate ".$fieldtouse." sql=".$sql, LOG_DEBUG);
|
||||||
|
|||||||
@ -1898,23 +1898,22 @@ class BookKeeping extends CommonObject
|
|||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
|
||||||
/**
|
/**
|
||||||
* Description of a root accounting account
|
* Return id and description of a root accounting account.
|
||||||
|
* This function takes the parent of parent to get the root account !
|
||||||
*
|
*
|
||||||
* @param string $account Accounting account
|
* @param string $account Accounting account
|
||||||
* @return string Root account
|
* @return string Root account
|
||||||
*/
|
*/
|
||||||
public function get_compte_racine($account = null)
|
public function getRootAccount($account = null)
|
||||||
{
|
{
|
||||||
// phpcs:enable
|
|
||||||
global $conf;
|
global $conf;
|
||||||
$pcgver = $conf->global->CHARTOFACCOUNTS;
|
$pcgver = $conf->global->CHARTOFACCOUNTS;
|
||||||
|
|
||||||
$sql = "SELECT root.account_number, root.label as label";
|
$sql = "SELECT root.rowid, root.account_number, root.label as label";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa";
|
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_account as aa";
|
||||||
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version";
|
||||||
$sql .= " AND asy.rowid = ".$pcgver;
|
$sql .= " AND asy.rowid = ".((int) $pcgver);
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as parent ON aa.account_parent = parent.rowid";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as parent ON aa.account_parent = parent.rowid";
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as root ON parent.account_parent = root.rowid";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."accounting_account as root ON parent.account_parent = root.rowid";
|
||||||
$sql .= " WHERE aa.account_number = '".$this->db->escape($account)."'";
|
$sql .= " WHERE aa.account_number = '".$this->db->escape($account)."'";
|
||||||
@ -1930,7 +1929,7 @@ class BookKeeping extends CommonObject
|
|||||||
$obj = $this->db->fetch_object($resql);
|
$obj = $this->db->fetch_object($resql);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $obj->label;
|
return array('id'=>$obj->rowid, 'account_number'=>$obj->account_number, 'label'=>$obj->label);
|
||||||
} else {
|
} else {
|
||||||
$this->error = "Error ".$this->db->lasterror();
|
$this->error = "Error ".$this->db->lasterror();
|
||||||
dol_syslog(__METHOD__." ".$this->error, LOG_ERR);
|
dol_syslog(__METHOD__." ".$this->error, LOG_ERR);
|
||||||
|
|||||||
@ -140,9 +140,9 @@ if (!empty($id)) {
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -133,7 +133,7 @@ if (is_array($changeaccount) && count($changeaccount) > 0) {
|
|||||||
}
|
}
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessages($langs->trans('Save'), null, 'mesgs');
|
setEventMessages($langs->trans("Save"), null, 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
setEventMessages($db->lasterror(), null, 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
|
|||||||
@ -149,9 +149,9 @@ if (!empty($id)) {
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -123,7 +123,7 @@ if (is_array($changeaccount) && count($changeaccount) > 0) {
|
|||||||
}
|
}
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessages($langs->trans('Save'), null, 'mesgs');
|
setEventMessages($langs->trans("Save"), null, 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
setEventMessages($db->lasterror(), null, 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
|
|||||||
@ -144,9 +144,9 @@ if (!empty($id)) {
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -135,7 +135,7 @@ if (is_array($changeaccount) && count($changeaccount) > 0) {
|
|||||||
}
|
}
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
$db->commit();
|
$db->commit();
|
||||||
setEventMessages($langs->trans('Save'), null, 'mesgs');
|
setEventMessages($langs->trans("Save"), null, 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
$db->rollback();
|
$db->rollback();
|
||||||
setEventMessages($db->lasterror(), null, 'errors');
|
setEventMessages($db->lasterror(), null, 'errors');
|
||||||
|
|||||||
@ -7,7 +7,8 @@
|
|||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2011-2012 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2011-2012 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2012 J. Fernando Lagrange <fernando@demo-tic.org>
|
* Copyright (C) 2012 J. Fernando Lagrange <fernando@demo-tic.org>
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
|
* Copyright (C) 2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -39,7 +40,12 @@ $langs->loadLangs(array("admin", "members"));
|
|||||||
if (!$user->admin) accessforbidden();
|
if (!$user->admin) accessforbidden();
|
||||||
|
|
||||||
|
|
||||||
$type = array('yesno', 'texte', 'chaine');
|
$choices = array('yesno', 'texte', 'chaine');
|
||||||
|
|
||||||
|
$value = GETPOST('value', 'alpha');
|
||||||
|
$label = GETPOST('label', 'alpha');
|
||||||
|
$scandir = GETPOST('scandir', 'alpha');
|
||||||
|
$type = 'member';
|
||||||
|
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
|
|
||||||
@ -48,8 +54,50 @@ $action = GETPOST('action', 'aZ09');
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//
|
include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
|
||||||
if ($action == 'updateall') {
|
|
||||||
|
if ($action == 'set_default') {
|
||||||
|
$ret = addDocumentModel($value, $type, $label, $scandir);
|
||||||
|
$res = true;
|
||||||
|
} elseif ($action == 'del_default') {
|
||||||
|
$ret = delDocumentModel($value, $type);
|
||||||
|
if ($ret > 0) {
|
||||||
|
if ($conf->global->MEMBER_ADDON_PDF_ODT == "$value") {
|
||||||
|
dolibarr_del_const($db, 'MEMBER_ADDON_PDF_ODT', $conf->entity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$res = true;
|
||||||
|
} elseif ($action == 'setdoc') {
|
||||||
|
// Set default model
|
||||||
|
if (dolibarr_set_const($db, "MEMBER_ADDON_PDF_ODT", $value, 'chaine', 0, '', $conf->entity)) {
|
||||||
|
// La constante qui a ete lue en avant du nouveau set
|
||||||
|
// on passe donc par une variable pour avoir un affichage coherent
|
||||||
|
$conf->global->MEMBER_ADDON_PDF_ODT = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// On active le modele
|
||||||
|
$ret = delDocumentModel($value, $type);
|
||||||
|
if ($ret > 0) {
|
||||||
|
$ret = addDocumentModel($value, $type, $label, $scandir);
|
||||||
|
}
|
||||||
|
$res = true;
|
||||||
|
} elseif (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) {
|
||||||
|
$code = $reg[1];
|
||||||
|
if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0) {
|
||||||
|
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
} elseif (preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) {
|
||||||
|
$code = $reg[1];
|
||||||
|
if (dolibarr_del_const($db, $code, $conf->entity) > 0) {
|
||||||
|
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
} elseif ($action == 'updateall') {
|
||||||
$db->begin();
|
$db->begin();
|
||||||
$res1 = $res2 = $res3 = $res4 = $res5 = $res6 = 0;
|
$res1 = $res2 = $res3 = $res4 = $res5 = $res6 = 0;
|
||||||
$res1 = dolibarr_set_const($db, 'ADHERENT_LOGIN_NOT_REQUIRED', GETPOST('ADHERENT_LOGIN_NOT_REQUIRED', 'alpha') ? 0 : 1, 'chaine', 0, '', $conf->entity);
|
$res1 = dolibarr_set_const($db, 'ADHERENT_LOGIN_NOT_REQUIRED', GETPOST('ADHERENT_LOGIN_NOT_REQUIRED', 'alpha') ? 0 : 1, 'chaine', 0, '', $conf->entity);
|
||||||
@ -86,7 +134,7 @@ if ($action == 'update' || $action == 'add') {
|
|||||||
|
|
||||||
$consttype = GETPOST('consttype', 'alpha');
|
$consttype = GETPOST('consttype', 'alpha');
|
||||||
$constnote = GETPOST('constnote');
|
$constnote = GETPOST('constnote');
|
||||||
$res = dolibarr_set_const($db, $constname, $constvalue, $type[$consttype], 0, $constnote, $conf->entity);
|
$res = dolibarr_set_const($db, $constname, $constvalue, $choices[$consttype], 0, $constnote, $conf->entity);
|
||||||
|
|
||||||
if (!$res > 0) $error++;
|
if (!$res > 0) $error++;
|
||||||
|
|
||||||
@ -245,6 +293,137 @@ $helptext .= '__COMPANY__, __ADDRESS__, __ZIP__, __TOWN__, __COUNTRY__, __EMAIL_
|
|||||||
$helptext .= '__YEAR__, __MONTH__, __DAY__';
|
$helptext .= '__YEAR__, __MONTH__, __DAY__';
|
||||||
|
|
||||||
form_constantes($constantes, 0, $helptext);
|
form_constantes($constantes, 0, $helptext);
|
||||||
|
$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
|
||||||
|
|
||||||
|
// Defini tableau def des modeles
|
||||||
|
$def = array();
|
||||||
|
$sql = "SELECT nom";
|
||||||
|
$sql .= " FROM ".MAIN_DB_PREFIX."document_model";
|
||||||
|
$sql .= " WHERE type = '".$db->escape($type)."'";
|
||||||
|
$sql .= " AND entity = ".$conf->entity;
|
||||||
|
$resql = $db->query($sql);
|
||||||
|
if ($resql) {
|
||||||
|
$i = 0;
|
||||||
|
$num_rows = $db->num_rows($resql);
|
||||||
|
while ($i < $num_rows) {
|
||||||
|
$array = $db->fetch_array($resql);
|
||||||
|
array_push($def, $array[0]);
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
|
||||||
|
print load_fiche_titre($langs->trans("MembersDocModules"), '', '');
|
||||||
|
|
||||||
|
print '<table class="noborder centpercent">';
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td>'.$langs->trans("Name").'</td>';
|
||||||
|
print '<td>'.$langs->trans("Description").'</td>';
|
||||||
|
print '<td align="center" width="60">'.$langs->trans("Status")."</td>\n";
|
||||||
|
print '<td align="center" width="60">'.$langs->trans("Default")."</td>\n";
|
||||||
|
print '<td align="center" width="80">'.$langs->trans("ShortInfo").'</td>';
|
||||||
|
print '<td align="center" width="80">'.$langs->trans("Preview").'</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
clearstatcache();
|
||||||
|
|
||||||
|
foreach ($dirmodels as $reldir) {
|
||||||
|
foreach (array('', '/doc') as $valdir) {
|
||||||
|
$dir = dol_buildpath($reldir."core/modules/member".$valdir);
|
||||||
|
if (is_dir($dir)) {
|
||||||
|
$handle = opendir($dir);
|
||||||
|
if (is_resource($handle)) {
|
||||||
|
while (($file = readdir($handle)) !== false) {
|
||||||
|
$filelist[] = $file;
|
||||||
|
}
|
||||||
|
closedir($handle);
|
||||||
|
arsort($filelist);
|
||||||
|
foreach ($filelist as $file) {
|
||||||
|
if (preg_match('/\.class\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) {
|
||||||
|
if (file_exists($dir.'/'.$file)) {
|
||||||
|
$name = substr($file, 4, dol_strlen($file) - 14);
|
||||||
|
$classname = substr($file, 0, dol_strlen($file) - 10);
|
||||||
|
|
||||||
|
require_once $dir.'/'.$file;
|
||||||
|
$module = new $classname($db);
|
||||||
|
|
||||||
|
$modulequalified = 1;
|
||||||
|
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified = 0;
|
||||||
|
if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) {
|
||||||
|
$modulequalified = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($modulequalified) {
|
||||||
|
print '<tr class="oddeven"><td width="100">';
|
||||||
|
print (empty($module->name) ? $name : $module->name);
|
||||||
|
print "</td><td>\n";
|
||||||
|
if (method_exists($module, 'info')) {
|
||||||
|
print $module->info($langs);
|
||||||
|
} else {
|
||||||
|
print $module->description;
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
// Active
|
||||||
|
if (in_array($name, $def)) {
|
||||||
|
print '<td class="center">'."\n";
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=del_default&token='.newToken().'&value='.$name.'">';
|
||||||
|
print img_picto($langs->trans("Enabled"), 'switch_on');
|
||||||
|
print '</a>';
|
||||||
|
print '</td>';
|
||||||
|
} else {
|
||||||
|
print '<td class="center">'."\n";
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=set_default&token='.newToken().'&value='.$name.'&scandir='.$module->scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').'</a>';
|
||||||
|
print "</td>";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Defaut
|
||||||
|
print '<td class="center">';
|
||||||
|
if ($conf->global->MEMBER_ADDON_PDF == $name) {
|
||||||
|
print img_picto($langs->trans("Default"), 'on');
|
||||||
|
} else {
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&token='.newToken().'&value='.$name.'&scandir='.$module->scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'</a>';
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
// Info
|
||||||
|
$htmltooltip = ''.$langs->trans("Name").': '.$module->name;
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("Type").': '.($module->type ? $module->type : $langs->trans("Unknown"));
|
||||||
|
if ($module->type == 'pdf') {
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
|
||||||
|
}
|
||||||
|
$htmltooltip .= '<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("Logo").': '.yn($module->option_logo, 1, 1);
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang, 1, 1);
|
||||||
|
|
||||||
|
|
||||||
|
print '<td class="center">';
|
||||||
|
print $form->textwithpicto('', $htmltooltip, 1, 0);
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
// Preview
|
||||||
|
print '<td class="center">';
|
||||||
|
if ($module->type == 'pdf')
|
||||||
|
{
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'">'.img_object($langs->trans("Preview"), 'contract').'</a>';
|
||||||
|
} else {
|
||||||
|
print img_object($langs->trans("PreviewNotAvailable"), 'generic');
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
print "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
print "<br>";
|
||||||
|
|
||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
|
|||||||
@ -134,8 +134,8 @@ echo $this->control->tpl['ajax_selectcountry'];
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="4" class="center">
|
<td colspan="4" class="center">
|
||||||
<input type="submit" class="button" name="save" value="<?php echo $langs->trans("Save"); ?>">
|
<input type="submit" class="button button-save" name="save" value="<?php echo $langs->trans("Save"); ?>">
|
||||||
<input type="submit" class="button" name="cancel" value="<?php echo $langs->trans("Cancel"); ?>">
|
<input type="submit" class="button button-cancel" name="cancel" value="<?php echo $langs->trans("Cancel"); ?>">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
* Copyright (C) 2012 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2012 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2012-2020 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2012-2020 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2015-2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2015-2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -978,9 +978,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
print '<input type="submit" name="button" class="button" value="'.$langs->trans("AddMember").'">';
|
print '<input type="submit" name="button" class="button" value="'.$langs->trans("AddMember").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
if (!empty($backtopage)) {
|
if (!empty($backtopage)) {
|
||||||
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans('Cancel').'">';
|
print '<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
} else {
|
} else {
|
||||||
print '<input type="button" class="button" value="'.$langs->trans("Cancel").'" onClick="javascript:history.go(-1)">';
|
print '<input type="button" class="button button-cancel" value="'.$langs->trans("Cancel").'" onClick="javascript:history.go(-1)">';
|
||||||
}
|
}
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
@ -1235,9 +1235,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
@ -1564,7 +1564,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id, $object->user_id, 'userid', '');
|
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id, $object->user_id, 'userid', '');
|
||||||
} else {
|
} else {
|
||||||
if ($object->user_id) {
|
if ($object->user_id) {
|
||||||
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id, $object->user_id, 'none');
|
$linkeduser = new User($db);
|
||||||
|
$linkeduser->fetch($object->user_id);
|
||||||
|
print $linkeduser->getNomUrl(-1);
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("NoDolibarrAccess");
|
print $langs->trans("NoDolibarrAccess");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1999,11 +1999,11 @@ class Adherent extends CommonObject
|
|||||||
* @param int $withpictoimg 0=No picto, 1=Include picto into link, 2=Only picto, -1=Include photo into link, -2=Only picto photo, -3=Only photo very small)
|
* @param int $withpictoimg 0=No picto, 1=Include picto into link, 2=Only picto, -1=Include photo into link, -2=Only picto photo, -3=Only photo very small)
|
||||||
* @param int $maxlen length max label
|
* @param int $maxlen length max label
|
||||||
* @param string $option Page for link ('card', 'category', 'subscription', ...)
|
* @param string $option Page for link ('card', 'category', 'subscription', ...)
|
||||||
* @param string $mode ''=Show firstname+lastname as label (using default order), 'firstname'=Show only firstname, 'login'=Show login, 'ref'=Show ref
|
* @param string $mode ''=Show firstname+lastname as label (using default order), 'firstname'=Show only firstname, 'lastname'=Show only lastname, 'login'=Show login, 'ref'=Show ref
|
||||||
* @param string $morecss Add more css on link
|
* @param string $morecss Add more css on link
|
||||||
* @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
|
* @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking
|
||||||
* @param int $notooltip 1=Disable tooltip
|
* @param int $notooltip 1=Disable tooltip
|
||||||
* @param int $addlinktonotes 1=Add link to notes
|
* @param int $addlinktonotes 1=Add link to notes
|
||||||
* @return string Chaine avec URL
|
* @return string Chaine avec URL
|
||||||
*/
|
*/
|
||||||
public function getNomUrl($withpictoimg = 0, $maxlen = 0, $option = 'card', $mode = '', $morecss = '', $save_lastsearch_value = -1, $notooltip = 0, $addlinktonotes = 0)
|
public function getNomUrl($withpictoimg = 0, $maxlen = 0, $option = 'card', $mode = '', $morecss = '', $save_lastsearch_value = -1, $notooltip = 0, $addlinktonotes = 0)
|
||||||
@ -2083,7 +2083,7 @@ class Adherent extends CommonObject
|
|||||||
} elseif ($mode == 'ref') {
|
} elseif ($mode == 'ref') {
|
||||||
$result .= $this->ref;
|
$result .= $this->ref;
|
||||||
} else {
|
} else {
|
||||||
$result .= $this->getFullName($langs, '', ($mode == 'firstname' ? 2 : -1), $maxlen);
|
$result .= $this->getFullName($langs, '', ($mode == 'firstname' ? 2 : ($mode == 'lastname' ? 4 : -1)), $maxlen);
|
||||||
}
|
}
|
||||||
if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) $result .= '</span>';
|
if (empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) $result .= '</span>';
|
||||||
}
|
}
|
||||||
@ -2416,6 +2416,7 @@ class Adherent extends CommonObject
|
|||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
$info = array();
|
$info = array();
|
||||||
|
$socialnetworks = getArrayOfSocialNetworks();
|
||||||
$keymodified = false;
|
$keymodified = false;
|
||||||
|
|
||||||
// Object classes
|
// Object classes
|
||||||
@ -2430,8 +2431,13 @@ class Adherent extends CommonObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Possible LDAP KEY (constname => varname)
|
// Possible LDAP KEY (constname => varname)
|
||||||
$ldapkey = array('LDAP_MEMBER_FIELD_FULLNAME' => 'fullname', 'LDAP_MEMBER_FIELD_NAME' => 'lastname', 'LDAP_MEMBER_FIELD_LOGIN' => 'login', 'LDAP_MEMBER_FIELD_LOGIN_SAMBA' => 'login',
|
$ldapkey = array(
|
||||||
'LDAP_MEMBER_FIELD_MAIL' => 'email');
|
'LDAP_MEMBER_FIELD_FULLNAME' => 'fullname',
|
||||||
|
'LDAP_MEMBER_FIELD_NAME' => 'lastname',
|
||||||
|
'LDAP_MEMBER_FIELD_LOGIN' => 'login',
|
||||||
|
'LDAP_MEMBER_FIELD_LOGIN_SAMBA' => 'login',
|
||||||
|
'LDAP_MEMBER_FIELD_MAIL' => 'email'
|
||||||
|
);
|
||||||
|
|
||||||
// Member
|
// Member
|
||||||
foreach ($ldapkey as $constname => $varname) {
|
foreach ($ldapkey as $constname => $varname) {
|
||||||
@ -2451,10 +2457,11 @@ class Adherent extends CommonObject
|
|||||||
if ($this->zip && !empty($conf->global->LDAP_MEMBER_FIELD_ZIP)) $info[$conf->global->LDAP_MEMBER_FIELD_ZIP] = $this->zip;
|
if ($this->zip && !empty($conf->global->LDAP_MEMBER_FIELD_ZIP)) $info[$conf->global->LDAP_MEMBER_FIELD_ZIP] = $this->zip;
|
||||||
if ($this->town && !empty($conf->global->LDAP_MEMBER_FIELD_TOWN)) $info[$conf->global->LDAP_MEMBER_FIELD_TOWN] = $this->town;
|
if ($this->town && !empty($conf->global->LDAP_MEMBER_FIELD_TOWN)) $info[$conf->global->LDAP_MEMBER_FIELD_TOWN] = $this->town;
|
||||||
if ($this->country_code && !empty($conf->global->LDAP_MEMBER_FIELD_COUNTRY)) $info[$conf->global->LDAP_MEMBER_FIELD_COUNTRY] = $this->country_code;
|
if ($this->country_code && !empty($conf->global->LDAP_MEMBER_FIELD_COUNTRY)) $info[$conf->global->LDAP_MEMBER_FIELD_COUNTRY] = $this->country_code;
|
||||||
if ($this->skype && !empty($conf->global->LDAP_MEMBER_FIELD_SKYPE)) $info[$conf->global->LDAP_MEMBER_FIELD_SKYPE] = $this->skype;
|
foreach ($socialnetworks as $key => $value) {
|
||||||
if ($this->twitter && !empty($conf->global->LDAP_MEMBER_FIELD_TWITTER)) $info[$conf->global->LDAP_MEMBER_FIELD_TWITTER] = $this->twitter;
|
if ($this->socialnetworks[$value['label']] && !empty($conf->global->{'LDAP_MEMBER_FIELD_'.strtoupper($value['label'])})) {
|
||||||
if ($this->facebook && !empty($conf->global->LDAP_MEMBER_FIELD_FACEBOOK)) $info[$conf->global->LDAP_MEMBER_FIELD_FACEBOOK] = $this->facebook;
|
$info[$conf->global->{'LDAP_MEMBER_FIELD_'.strtoupper($value['label'])}] = $this->socialnetworks[$value['label']];
|
||||||
if ($this->linkedin && !empty($conf->global->LDAP_MEMBER_FIELD_LINKEDIN)) $info[$conf->global->LDAP_MEMBER_FIELD_LINKEDIN] = $this->linkedin;
|
}
|
||||||
|
}
|
||||||
if ($this->phone && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE)) $info[$conf->global->LDAP_MEMBER_FIELD_PHONE] = $this->phone;
|
if ($this->phone && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE)) $info[$conf->global->LDAP_MEMBER_FIELD_PHONE] = $this->phone;
|
||||||
if ($this->phone_perso && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO)) $info[$conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO] = $this->phone_perso;
|
if ($this->phone_perso && !empty($conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO)) $info[$conf->global->LDAP_MEMBER_FIELD_PHONE_PERSO] = $this->phone_perso;
|
||||||
if ($this->phone_mobile && !empty($conf->global->LDAP_MEMBER_FIELD_MOBILE)) $info[$conf->global->LDAP_MEMBER_FIELD_MOBILE] = $this->phone_mobile;
|
if ($this->phone_mobile && !empty($conf->global->LDAP_MEMBER_FIELD_MOBILE)) $info[$conf->global->LDAP_MEMBER_FIELD_MOBILE] = $this->phone_mobile;
|
||||||
@ -2467,8 +2474,12 @@ class Adherent extends CommonObject
|
|||||||
|
|
||||||
// When password is modified
|
// When password is modified
|
||||||
if (!empty($this->pass)) {
|
if (!empty($this->pass)) {
|
||||||
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD)) $info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD] = $this->pass; // this->pass = mot de passe non crypte
|
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD)) {
|
||||||
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED)) $info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass, 4); // Create OpenLDAP MD5 password (TODO add type of encryption)
|
$info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD] = $this->pass; // this->pass = mot de passe non crypte
|
||||||
|
}
|
||||||
|
if (!empty($conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED)) {
|
||||||
|
$info[$conf->global->LDAP_MEMBER_FIELD_PASSWORD_CRYPTED] = dol_hash($this->pass, 4); // Create OpenLDAP MD5 password (TODO add type of encryption)
|
||||||
|
}
|
||||||
} // Set LDAP password if possible
|
} // Set LDAP password if possible
|
||||||
elseif ($conf->global->LDAP_SERVER_PROTOCOLVERSION !== '3') { // If ldap key is modified and LDAPv3 we use ldap_rename function for avoid lose encrypt password
|
elseif ($conf->global->LDAP_SERVER_PROTOCOLVERSION !== '3') { // If ldap key is modified and LDAPv3 we use ldap_rename function for avoid lose encrypt password
|
||||||
if (!empty($conf->global->DATABASE_PWD_ENCRYPTED)) {
|
if (!empty($conf->global->DATABASE_PWD_ENCRYPTED)) {
|
||||||
|
|||||||
@ -52,7 +52,7 @@ class Subscriptions extends DolibarrApi
|
|||||||
* Return an array with subscription informations
|
* Return an array with subscription informations
|
||||||
*
|
*
|
||||||
* @param int $id ID of subscription
|
* @param int $id ID of subscription
|
||||||
* @return array|mixed data without useless information
|
* @return Object data without useless information
|
||||||
*
|
*
|
||||||
* @throws RestException
|
* @throws RestException
|
||||||
*/
|
*/
|
||||||
@ -168,7 +168,7 @@ class Subscriptions extends DolibarrApi
|
|||||||
*
|
*
|
||||||
* @param int $id ID of subscription to update
|
* @param int $id ID of subscription to update
|
||||||
* @param array $request_data Datas
|
* @param array $request_data Datas
|
||||||
* @return int
|
* @return Object
|
||||||
*/
|
*/
|
||||||
public function put($id, $request_data = null)
|
public function put($id, $request_data = null)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -384,7 +384,18 @@ class Subscription extends CommonObject
|
|||||||
$result = '';
|
$result = '';
|
||||||
|
|
||||||
$langs->load("members");
|
$langs->load("members");
|
||||||
$label = $langs->trans("ShowSubscription").': '.$this->ref;
|
|
||||||
|
$label = img_picto('', $this->picto).' <u class="paddingrightonly">'.$langs->trans("Subscription").'</u>';
|
||||||
|
/*if (isset($this->statut)) {
|
||||||
|
$label .= ' '.$this->getLibStatut(5);
|
||||||
|
}*/
|
||||||
|
$label .= '<br><b>'.$langs->trans('Ref').':</b> '.$this->ref;
|
||||||
|
if (!empty($this->dateh)) {
|
||||||
|
$label .= '<br><b>'.$langs->trans('DateStart').':</b> '.dol_print_date($this->dateh, 'day');
|
||||||
|
}
|
||||||
|
if (!empty($this->datef)) {
|
||||||
|
$label .= '<br><b>'.$langs->trans('DateEnd').':</b> '.dol_print_date($this->datef, 'day');
|
||||||
|
}
|
||||||
|
|
||||||
$url = DOL_URL_ROOT.'/adherents/subscription/card.php?rowid='.$this->id;
|
$url = DOL_URL_ROOT.'/adherents/subscription/card.php?rowid='.$this->id;
|
||||||
|
|
||||||
@ -398,8 +409,6 @@ class Subscription extends CommonObject
|
|||||||
$linkstart = '<a href="'.$url.'" class="classfortooltip" title="'.dol_escape_htmltag($label, 1).'">';
|
$linkstart = '<a href="'.$url.'" class="classfortooltip" title="'.dol_escape_htmltag($label, 1).'">';
|
||||||
$linkend = '</a>';
|
$linkend = '</a>';
|
||||||
|
|
||||||
$picto = 'payment';
|
|
||||||
|
|
||||||
$result .= $linkstart;
|
$result .= $linkstart;
|
||||||
if ($withpicto) $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
|
if ($withpicto) $result .= img_object(($notooltip ? '' : $label), ($this->picto ? $this->picto : 'generic'), ($notooltip ? (($withpicto != 2) ? 'class="paddingright"' : '') : 'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
|
||||||
if ($withpicto != 2) $result .= $this->ref;
|
if ($withpicto != 2) $result .= $this->ref;
|
||||||
|
|||||||
@ -37,7 +37,8 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
|
|||||||
$langs->loadLangs(array("companies", "members", "other"));
|
$langs->loadLangs(array("companies", "members", "other"));
|
||||||
|
|
||||||
|
|
||||||
$id = GETPOST('id', 'int');
|
$id = GETPOSTISSET('id') ? GETPOST('id', 'int') : GETPOST('rowid', 'int');
|
||||||
|
$ref = GETPOST('ref', 'alphanohtml');
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
$confirm = GETPOST('confirm', 'alpha');
|
$confirm = GETPOST('confirm', 'alpha');
|
||||||
|
|
||||||
@ -60,7 +61,7 @@ if (!$sortfield) $sortfield = "name";
|
|||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
$object = new Adherent($db);
|
$object = new Adherent($db);
|
||||||
$membert = new AdherentType($db);
|
$membert = new AdherentType($db);
|
||||||
$result = $object->fetch($id);
|
$result = $object->fetch($id, $ref);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
exit;
|
exit;
|
||||||
|
|||||||
@ -181,8 +181,8 @@ if ($conf->use_javascript_ajax) {
|
|||||||
}
|
}
|
||||||
$total = $SommeA + $SommeB + $SommeC + $SommeD;
|
$total = $SommeA + $SommeB + $SommeC + $SommeD;
|
||||||
$dataseries = array();
|
$dataseries = array();
|
||||||
$dataseries[] = array($langs->transnoentitiesnoconv("MenuMembersNotUpToDate"), round($SommeB));
|
$dataseries[] = array($langs->transnoentitiesnoconv("OutOfDate"), round($SommeB));
|
||||||
$dataseries[] = array($langs->transnoentitiesnoconv("MenuMembersUpToDate"), round($SommeC));
|
$dataseries[] = array($langs->transnoentitiesnoconv("UpToDate"), round($SommeC));
|
||||||
$dataseries[] = array($langs->transnoentitiesnoconv("MembersStatusResiliated"), round($SommeD));
|
$dataseries[] = array($langs->transnoentitiesnoconv("MembersStatusResiliated"), round($SommeD));
|
||||||
$dataseries[] = array($langs->transnoentitiesnoconv("MembersStatusToValid"), round($SommeA));
|
$dataseries[] = array($langs->transnoentitiesnoconv("MembersStatusToValid"), round($SommeA));
|
||||||
|
|
||||||
@ -422,8 +422,8 @@ print '<table class="noborder centpercent">';
|
|||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<th>'.$langs->trans("MembersTypes").'</th>';
|
print '<th>'.$langs->trans("MembersTypes").'</th>';
|
||||||
print '<th class=right>'.$langs->trans("MembersStatusToValid").'</th>';
|
print '<th class=right>'.$langs->trans("MembersStatusToValid").'</th>';
|
||||||
print '<th class=right>'.$langs->trans("MenuMembersNotUpToDate").'</th>';
|
print '<th class=right>'.$langs->trans("OutOfDate").'</th>';
|
||||||
print '<th class=right>'.$langs->trans("MenuMembersUpToDate").'</th>';
|
print '<th class=right>'.$langs->trans("UpToDate").'</th>';
|
||||||
print '<th class=right>'.$langs->trans("MembersStatusResiliated").'</th>';
|
print '<th class=right>'.$langs->trans("MembersStatusResiliated").'</th>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
|
|||||||
@ -1025,7 +1025,7 @@ if ($rowid > 0) {
|
|||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" name="add" value="'.$langs->trans("AddSubscription").'">';
|
print '<input type="submit" class="button" name="add" value="'.$langs->trans("AddSubscription").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -236,9 +236,9 @@ if ($user->rights->adherent->cotisation->creer && $action == 'edit') {
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" name="submit" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" name="submit" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -395,6 +395,8 @@ while ($i < min($num, $limit)) {
|
|||||||
|
|
||||||
$subscription->ref = $obj->crowid;
|
$subscription->ref = $obj->crowid;
|
||||||
$subscription->id = $obj->crowid;
|
$subscription->id = $obj->crowid;
|
||||||
|
$subscription->dateh = $db->jdate($obj->dateadh);
|
||||||
|
$subscription->datef = $db->jdate($obj->datef);
|
||||||
|
|
||||||
$adherent->lastname = $obj->lastname;
|
$adherent->lastname = $obj->lastname;
|
||||||
$adherent->firstname = $obj->firstname;
|
$adherent->firstname = $obj->firstname;
|
||||||
@ -431,9 +433,7 @@ while ($i < min($num, $limit)) {
|
|||||||
|
|
||||||
// Lastname
|
// Lastname
|
||||||
if (!empty($arrayfields['d.lastname']['checked'])) {
|
if (!empty($arrayfields['d.lastname']['checked'])) {
|
||||||
$adherent->firstname = '';
|
print '<td>'.$adherent->getNomUrl(-1, 0, 'card', 'lastname').'</td>';
|
||||||
print '<td>'.$adherent->getNomUrl(-1).'</td>';
|
|
||||||
$adherent->firstname = $obj->firstname;
|
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
// Firstname
|
// Firstname
|
||||||
|
|||||||
@ -364,7 +364,7 @@ if ($action == 'create') {
|
|||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" name="button" class="button" value="'.$langs->trans("Add").'">';
|
print '<input type="submit" name="button" class="button" value="'.$langs->trans("Add").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'" onclick="history.go(-1)" />';
|
print '<input type="submit" name="cancel" class="button button-cancel" value="'.$langs->trans("Cancel").'" onclick="history.go(-1)" />';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
@ -765,9 +765,9 @@ if ($rowid > 0) {
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" name="cancel" class="button" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" name="cancel" class="button button-cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print "</form>";
|
print "</form>";
|
||||||
|
|||||||
@ -218,9 +218,9 @@ if ($action == 'edit') {
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
@ -275,9 +275,9 @@ if ($action == 'add' && $user->rights->adherent->configurer) {
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -170,9 +170,9 @@ print '</td></tr>';
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br><div class="center">';
|
print '<br><div class="center">';
|
||||||
print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" name="save" value="'.$langs->trans("Save").'">';
|
||||||
//print ' ';
|
//print ' ';
|
||||||
//print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
//print '<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
//print '<br>';
|
//print '<br>';
|
||||||
|
|
||||||
|
|||||||
@ -200,7 +200,7 @@ print '</div>';
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" name="save" class="button" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" name="save" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print "</div>";
|
print "</div>";
|
||||||
|
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
|
|||||||
@ -227,7 +227,7 @@ print '</table>';
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" id="save" name="save" class="button hideifnotset" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" id="save" name="save" class="button hideifnotset button-save" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
|
|||||||
@ -378,7 +378,7 @@ print '</table>';
|
|||||||
|
|
||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center"><input class="button" type="submit" name="save" value="'.dol_escape_htmltag($langs->trans("Save")).'"></div>';
|
print '<div class="center"><input class="button button-save" type="submit" name="save" value="'.dol_escape_htmltag($langs->trans("Save")).'"></div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
|
|||||||
@ -25,6 +25,7 @@ require '../main.inc.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/cron/class/cronjob.class.php';
|
||||||
|
|
||||||
if (!$user->admin)
|
if (!$user->admin)
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
@ -179,59 +180,75 @@ print '<td class="center"> </td>'."\n";
|
|||||||
print '<td class="right">'.$langs->trans("Value").'</td>'."\n";
|
print '<td class="right">'.$langs->trans("Value").'</td>'."\n";
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
|
|
||||||
|
// AGENDA REMINDER BROWSER
|
||||||
|
print '<tr class="oddeven">'."\n";
|
||||||
|
print '<td>'.$langs->trans('AGENDA_REMINDER_BROWSER').'</td>'."\n";
|
||||||
|
print '<td class="center"> </td>'."\n";
|
||||||
|
print '<td class="right">'."\n";
|
||||||
|
|
||||||
|
if (empty($conf->global->AGENDA_REMINDER_BROWSER)) {
|
||||||
|
print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_AGENDA_REMINDER_BROWSER&token='.newToken().'">'.img_picto($langs->trans('Disabled'), 'switch_off').'</a>';
|
||||||
|
print '</td></tr>'."\n";
|
||||||
|
} else {
|
||||||
|
print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_AGENDA_REMINDER_BROWSER&token='.newToken().'">'.img_picto($langs->trans('Enabled'), 'switch_on').'</a>';
|
||||||
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
|
print '<tr class="oddeven">'."\n";
|
||||||
|
print '<td>'.$langs->trans('AGENDA_REMINDER_BROWSER_SOUND').'</td>'."\n";
|
||||||
|
print '<td class="center"> </td>'."\n";
|
||||||
|
print '<td class="right">'."\n";
|
||||||
|
|
||||||
|
if (empty($conf->global->AGENDA_REMINDER_BROWSER_SOUND)) {
|
||||||
|
print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_AGENDA_REMINDER_BROWSER_SOUND&token='.newToken().'">'.img_picto($langs->trans('Disabled'), 'switch_off').'</a>';
|
||||||
|
} else {
|
||||||
|
print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_AGENDA_REMINDER_BROWSER_SOUND&token='.newToken().'">'.img_picto($langs->trans('Enabled'), 'switch_on').'</a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</td></tr>'."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$job = new Cronjob($db);
|
||||||
|
$job->fetch(0, 'ActionComm', 'sendEmailsReminder');
|
||||||
|
|
||||||
// AGENDA REMINDER EMAIL
|
// AGENDA REMINDER EMAIL
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL == 2)
|
print '<tr class="oddeven">'."\n";
|
||||||
{
|
print '<td>'.$langs->trans('AGENDA_REMINDER_EMAIL', $langs->transnoentities("Module2300Name"));
|
||||||
print '<tr class="oddeven">'."\n";
|
if (!empty($conf->cron->enabled)) {
|
||||||
print '<td>'.$langs->trans('AGENDA_REMINDER_EMAIL', $langs->transnoentities("Module2300Name")).'</td>'."\n";
|
if (!empty($conf->global->AGENDA_REMINDER_EMAIL)) {
|
||||||
print '<td class="center"> </td>'."\n";
|
if ($job->id > 0) {
|
||||||
print '<td class="right">'."\n";
|
if ($job->status == $job::STATUS_ENABLED) {
|
||||||
|
print '<br><span class="opacitymedium">'.$langs->trans("AGENDA_REMINDER_EMAIL_NOTE", $langs->transnoentitiesnoconv("sendEmailsReminder")).'</span>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print '</td>'."\n";
|
||||||
|
print '<td class="center"> </td>'."\n";
|
||||||
|
print '<td class="right">'."\n";
|
||||||
|
|
||||||
|
if (empty($conf->cron->enabled)) {
|
||||||
|
print '<span class="opacitymedium">'.$langs->trans("WarningModuleNotActive", $langs->transnoentitiesnoconv("Module2300Name")).'</span>';
|
||||||
|
} else {
|
||||||
if (empty($conf->global->AGENDA_REMINDER_EMAIL)) {
|
if (empty($conf->global->AGENDA_REMINDER_EMAIL)) {
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_AGENDA_REMINDER_EMAIL&token='.newToken().'">'.img_picto($langs->trans('Disabled'), 'switch_off').'</a>';
|
print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_AGENDA_REMINDER_EMAIL&token='.newToken().'">'.img_picto($langs->trans('Disabled'), 'switch_off').'</a>';
|
||||||
print '</td></tr>'."\n";
|
|
||||||
} else {
|
} else {
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_AGENDA_REMINDER_EMAIL&token='.newToken().'">'.img_picto($langs->trans('Enabled'), 'switch_on').'</a>';
|
// Get the max frequency of reminder
|
||||||
print '</td></tr>'."\n";
|
if ($job->id > 0) {
|
||||||
}
|
if ($job->status != $job::STATUS_ENABLED) {
|
||||||
}
|
print '<span class="opacitymedium warning">'.$langs->trans("JobXMustBeEnabled", $langs->transnoentitiesnoconv("sendEmailsReminder")).'</span>';
|
||||||
|
} else {
|
||||||
// AGENDA REMINDER BROWSER
|
print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_AGENDA_REMINDER_EMAIL&token='.newToken().'">'.img_picto($langs->trans('Enabled'), 'switch_on').'</a>';
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL == 2)
|
}
|
||||||
{
|
|
||||||
print '<tr class="oddeven">'."\n";
|
|
||||||
print '<td>'.$langs->trans('AGENDA_REMINDER_BROWSER').'</td>'."\n";
|
|
||||||
print '<td class="center"> </td>'."\n";
|
|
||||||
print '<td class="right">'."\n";
|
|
||||||
|
|
||||||
if (empty($conf->global->AGENDA_REMINDER_BROWSER)) {
|
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_AGENDA_REMINDER_BROWSER&token='.newToken().'">'.img_picto($langs->trans('Disabled'), 'switch_off').'</a>';
|
|
||||||
print '</td></tr>'."\n";
|
|
||||||
} else {
|
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_AGENDA_REMINDER_BROWSER&token='.newToken().'">'.img_picto($langs->trans('Enabled'), 'switch_on').'</a>';
|
|
||||||
print '</td></tr>'."\n";
|
|
||||||
|
|
||||||
print '<tr class="oddeven">'."\n";
|
|
||||||
print '<td>'.$langs->trans('AGENDA_REMINDER_BROWSER_SOUND').'</td>'."\n";
|
|
||||||
print '<td class="center"> </td>'."\n";
|
|
||||||
print '<td class="right">'."\n";
|
|
||||||
|
|
||||||
if (empty($conf->global->AGENDA_REMINDER_BROWSER_SOUND)) {
|
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_AGENDA_REMINDER_BROWSER_SOUND&token='.newToken().'">'.img_picto($langs->trans('Disabled'), 'switch_off').'</a>';
|
|
||||||
} else {
|
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_AGENDA_REMINDER_BROWSER_SOUND&token='.newToken().'">'.img_picto($langs->trans('Enabled'), 'switch_on').'</a>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</td></tr>'."\n";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
//print '<div class="center"><input class="button" type="submit" name="save" value="'.dol_escape_htmltag($langs->trans("Save")).'"></div>';
|
//print '<div class="center"><input class="button button-save" type="submit" name="save" value="'.dol_escape_htmltag($langs->trans("Save")).'"></div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
|
|||||||
@ -138,7 +138,7 @@ print '</table>';
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print "<input type=\"submit\" name=\"save\" class=\"button\" value=\"".$langs->trans("Save")."\">";
|
print '<input type="submit" name="save" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print "</div>";
|
print "</div>";
|
||||||
|
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
|
|||||||
@ -498,7 +498,7 @@ print '</table>';
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" id="save" name="save" class="button hideifnotset" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" id="save" name="save" class="button hideifnotset button-save" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
|
|||||||
@ -282,7 +282,7 @@ print "</table>\n";
|
|||||||
|
|
||||||
if (empty($conf->use_javascript_ajax))
|
if (empty($conf->use_javascript_ajax))
|
||||||
{
|
{
|
||||||
print '<div class="center"><input type="submit" class="button" name="save" value="'.$langs->trans("Save").'"></div>';
|
print '<div class="center"><input type="submit" class="button button-save" name="save" value="'.$langs->trans("Save").'"></div>';
|
||||||
print '</form>';
|
print '</form>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -474,7 +474,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL == 2 || !empty($conf->global->MAIN_ACTIVA
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Save").'" name="Button"></div>';
|
print '<div class="center"><input type="submit" class="button button-save" value="'.$langs->trans("Save").'" name="Button"></div>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -834,7 +834,7 @@ print "</table>";
|
|||||||
|
|
||||||
|
|
||||||
print '<br><div class="center">';
|
print '<br><div class="center">';
|
||||||
print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -483,7 +483,7 @@ print '</tr>';
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -108,7 +108,7 @@ if ($action == 'edit')
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br><div class="center">';
|
print '<br><div class="center">';
|
||||||
print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
@ -151,7 +151,7 @@ if ($action == 'edit')
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
/*print '<div class="center">';
|
/*print '<div class="center">';
|
||||||
print "<input type=\"submit\" name=\"save\" class=\"button\" value=\"".$langs->trans("Save")."\">";
|
print '<input type="submit" name="save" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print "</div>";
|
print "</div>";
|
||||||
*/
|
*/
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
|
|||||||
@ -378,15 +378,14 @@ if ($result)
|
|||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
if ($action != 'edit' || GETPOST('rowid') != $obj->rowid)
|
if ($action != 'edit' || GETPOST('rowid') != $obj->rowid)
|
||||||
{
|
{
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?rowid='.$obj->rowid.'&entity='.$obj->entity.'&mode='.$mode.'&action=edit&token='.newToken().((empty($user->entity) && $debug) ? '&debug=1' : '').'">'.img_edit().'</a>';
|
print '<a class="editfielda marginleftonly marginrightonly" href="'.$_SERVER['PHP_SELF'].'?rowid='.$obj->rowid.'&entity='.$obj->entity.'&mode='.$mode.'&action=edit&token='.newToken().((empty($user->entity) && $debug) ? '&debug=1' : '').'">'.img_edit().'</a>';
|
||||||
print ' ';
|
print '<a class="marginleftonly marginrightonly" href="'.$_SERVER['PHP_SELF'].'?rowid='.$obj->rowid.'&entity='.$obj->entity.'&mode='.$mode.'&action=delete&token='.newToken().((empty($user->entity) && $debug) ? '&debug=1' : '').'">'.img_delete().'</a>';
|
||||||
print '<a href="'.$_SERVER['PHP_SELF'].'?rowid='.$obj->rowid.'&entity='.$obj->entity.'&mode='.$mode.'&action=delete&token='.newToken().((empty($user->entity) && $debug) ? '&debug=1' : '').'">'.img_delete().'</a>';
|
|
||||||
} else {
|
} else {
|
||||||
print '<input type="hidden" name="page" value="'.$page.'">';
|
print '<input type="hidden" name="page" value="'.$page.'">';
|
||||||
print '<input type="hidden" name="rowid" value="'.$id.'">';
|
print '<input type="hidden" name="rowid" value="'.$id.'">';
|
||||||
print '<div name="'.(!empty($obj->rowid) ? $obj->rowid : 'none').'"></div>';
|
print '<div name="'.(!empty($obj->rowid) ? $obj->rowid : 'none').'"></div>';
|
||||||
print '<input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
print '<input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
||||||
print '<input type="submit" class="button" name="actioncancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'">';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
|
|||||||
@ -432,7 +432,7 @@ if ($conf->global->MAIN_DISABLE_METEO != 1) {
|
|||||||
|
|
||||||
|
|
||||||
if ($action == 'edit') {
|
if ($action == 'edit') {
|
||||||
print '<br><div class="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
|
print '<br><div class="center"><input type="submit" class="button button-save" value="'.$langs->trans("Save").'"></div>';
|
||||||
print '<br></form>';
|
print '<br></form>';
|
||||||
} else {
|
} else {
|
||||||
print '<br><div class="tabsAction">';
|
print '<br><div class="tabsAction">';
|
||||||
|
|||||||
@ -1462,7 +1462,7 @@ if ($id)
|
|||||||
if (!is_null($withentity))
|
if (!is_null($withentity))
|
||||||
print '<input type="hidden" name="entity" value="'.$withentity.'">';
|
print '<input type="hidden" name="entity" value="'.$withentity.'">';
|
||||||
print '<input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
print '<input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
||||||
print '<input type="submit" class="button" name="actioncancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} else {
|
} else {
|
||||||
$tmpaction = 'view';
|
$tmpaction = 'view';
|
||||||
|
|||||||
@ -221,7 +221,9 @@ class PrestaShopWebservice
|
|||||||
* Load XML from string. Can throw exception
|
* Load XML from string. Can throw exception
|
||||||
*
|
*
|
||||||
* @param string $response String from a CURL response
|
* @param string $response String from a CURL response
|
||||||
* @return SimpleXMLElement status_code, response
|
* @return SimpleXMLElement|boolean status_code, response
|
||||||
|
*
|
||||||
|
* @throw PrestaShopWebserviceException
|
||||||
*/
|
*/
|
||||||
protected function parseXML($response)
|
protected function parseXML($response)
|
||||||
{
|
{
|
||||||
@ -250,7 +252,9 @@ class PrestaShopWebservice
|
|||||||
* Examples are given in the tutorial</p>
|
* Examples are given in the tutorial</p>
|
||||||
*
|
*
|
||||||
* @param array $options Options
|
* @param array $options Options
|
||||||
* @return SimpleXMLElement status_code, response
|
* @return SimpleXMLElement|boolean status_code, response
|
||||||
|
*
|
||||||
|
* @throw PrestaShopWebserviceException
|
||||||
*/
|
*/
|
||||||
public function add($options)
|
public function add($options)
|
||||||
{
|
{
|
||||||
@ -268,10 +272,10 @@ class PrestaShopWebservice
|
|||||||
} else {
|
} else {
|
||||||
throw new PrestaShopWebserviceException('Bad parameters given');
|
throw new PrestaShopWebserviceException('Bad parameters given');
|
||||||
}
|
}
|
||||||
$request = self::executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => $xml));
|
$request = $this->executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => $xml));
|
||||||
|
|
||||||
self::checkStatusCode($request['status_code']);
|
$this->checkStatusCode($request['status_code']);
|
||||||
return self::parseXML($request['response']);
|
return $this->parseXML($request['response']);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -300,7 +304,9 @@ class PrestaShopWebservice
|
|||||||
* ?>
|
* ?>
|
||||||
* </code>
|
* </code>
|
||||||
* @param array $options Array representing resource to get.
|
* @param array $options Array representing resource to get.
|
||||||
* @return SimpleXMLElement status_code, response
|
* @return SimpleXMLElement|boolean status_code, response
|
||||||
|
*
|
||||||
|
* @throw PrestaShopWebserviceException
|
||||||
*/
|
*/
|
||||||
public function get($options)
|
public function get($options)
|
||||||
{
|
{
|
||||||
@ -326,9 +332,9 @@ class PrestaShopWebservice
|
|||||||
throw new PrestaShopWebserviceException('Bad parameters given ');
|
throw new PrestaShopWebserviceException('Bad parameters given ');
|
||||||
}
|
}
|
||||||
|
|
||||||
$request = self::executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'GET'));
|
$request = $this->executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'GET'));
|
||||||
self::checkStatusCode($request['status_code']); // check the response validity
|
$this->checkStatusCode($request['status_code']); // check the response validity
|
||||||
return self::parseXML($request['response']);
|
return $this->parseXML($request['response']);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -336,6 +342,8 @@ class PrestaShopWebservice
|
|||||||
*
|
*
|
||||||
* @param array $options Array representing resource for head request.
|
* @param array $options Array representing resource for head request.
|
||||||
* @return SimpleXMLElement status_code, response
|
* @return SimpleXMLElement status_code, response
|
||||||
|
*
|
||||||
|
* @throw PrestaShopWebserviceException
|
||||||
*/
|
*/
|
||||||
public function head($options)
|
public function head($options)
|
||||||
{
|
{
|
||||||
@ -358,8 +366,8 @@ class PrestaShopWebservice
|
|||||||
} else {
|
} else {
|
||||||
throw new PrestaShopWebserviceException('Bad parameters given');
|
throw new PrestaShopWebserviceException('Bad parameters given');
|
||||||
}
|
}
|
||||||
$request = self::executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'HEAD', CURLOPT_NOBODY => true));
|
$request = $this->executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'HEAD', CURLOPT_NOBODY => true));
|
||||||
self::checkStatusCode($request['status_code']); // check the response validity
|
$this->checkStatusCode($request['status_code']); // check the response validity
|
||||||
return $request['header'];
|
return $request['header'];
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -371,7 +379,9 @@ class PrestaShopWebservice
|
|||||||
* Examples are given in the tutorial</p>
|
* Examples are given in the tutorial</p>
|
||||||
*
|
*
|
||||||
* @param array $options Array representing resource to edit.
|
* @param array $options Array representing resource to edit.
|
||||||
* @return SimpleXMLElement status_code, response
|
* @return SimpleXMLElement|boolean status_code, response
|
||||||
|
*
|
||||||
|
* @throw PrestaShopWebserviceException
|
||||||
*/
|
*/
|
||||||
public function edit($options)
|
public function edit($options)
|
||||||
{
|
{
|
||||||
@ -390,9 +400,9 @@ class PrestaShopWebservice
|
|||||||
throw new PrestaShopWebserviceException('Bad parameters given');
|
throw new PrestaShopWebserviceException('Bad parameters given');
|
||||||
}
|
}
|
||||||
|
|
||||||
$request = self::executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS => $xml));
|
$request = $this->executeRequest($url, array(CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS => $xml));
|
||||||
self::checkStatusCode($request['status_code']); // check the response validity
|
$this->checkStatusCode($request['status_code']); // check the response validity
|
||||||
return self::parseXML($request['response']);
|
return $this->parseXML($request['response']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
1
htdocs/admin/dolistore/class/index.html
Normal file
1
htdocs/admin/dolistore/class/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
||||||
1
htdocs/admin/dolistore/index.html
Normal file
1
htdocs/admin/dolistore/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
||||||
@ -266,7 +266,7 @@ if ($action == 'create') {
|
|||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" name="add" value="'.dol_escape_htmltag($langs->trans("Create")).'">';
|
print '<input type="submit" class="button" name="add" value="'.dol_escape_htmltag($langs->trans("Create")).'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="'.($backtopage ? "submit" : "button").'" class="button" name="cancel" value="'.dol_escape_htmltag($langs->trans("Cancel")).'"'.($backtopage ? '' : ' onclick="javascript:history.go(-1)"').'>'; // Cancel for create does not post form if we don't know the backtopage
|
print '<input type="'.($backtopage ? "submit" : "button").'" class="button button-cancel" name="cancel" value="'.dol_escape_htmltag($langs->trans("Cancel")).'"'.($backtopage ? '' : ' onclick="javascript:history.go(-1)"').'>'; // Cancel for create does not post form if we don't know the backtopage
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
@ -297,8 +297,8 @@ if (($id || $ref) && $action == 'edit')
|
|||||||
|
|
||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center"><input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
print '<div class="center"><input type="submit" class="button button-save" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print ' <input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print ' <input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
@ -614,7 +614,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
|||||||
{
|
{
|
||||||
print '<input type="text" class="quatrevingtquinzepercent" name="operationparam2" value="'.$ruleaction['actionparam'].'"><br>';
|
print '<input type="text" class="quatrevingtquinzepercent" name="operationparam2" value="'.$ruleaction['actionparam'].'"><br>';
|
||||||
print '<input type="hidden" name="rowidoperation2" value="'.$ruleaction['id'].'"><br>';
|
print '<input type="hidden" name="rowidoperation2" value="'.$ruleaction['id'].'"><br>';
|
||||||
print '<input type="submit" class="button" name="saveoperation2" value="'.$langs->trans("Save").'"> <input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-save" name="saveoperation2" value="'.$langs->trans("Save").'">';
|
||||||
|
print '<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
} else {
|
} else {
|
||||||
print $ruleaction['actionparam'];
|
print $ruleaction['actionparam'];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -118,7 +118,7 @@ foreach ($eventstolog as $key => $arr)
|
|||||||
print '<td>'.$arr['id'].'</td>';
|
print '<td>'.$arr['id'].'</td>';
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
$key = 'MAIN_LOGEVENTS_'.$arr['id'];
|
$key = 'MAIN_LOGEVENTS_'.$arr['id'];
|
||||||
$value = $conf->global->$key;
|
$value = empty($conf->global->$key) ? '' : $conf->global->$key;
|
||||||
print '<input class="oddeven checkforselect" type="checkbox" name="'.$key.'" value="1"'.($value ? ' checked' : '').'>';
|
print '<input class="oddeven checkforselect" type="checkbox" name="'.$key.'" value="1"'.($value ? ' checked' : '').'>';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
}
|
}
|
||||||
@ -128,7 +128,7 @@ print '</table>';
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print "<input type=\"submit\" name=\"save\" class=\"button\" value=\"".$langs->trans("Save")."\">";
|
print '<input type="submit" name="save" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print "</form>\n";
|
print "</form>\n";
|
||||||
|
|||||||
@ -475,7 +475,7 @@ print '</td></tr>'."\n";
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -163,8 +163,8 @@ foreach ($rangesbycateg as $fk_c_exp_tax_cat => $Tab)
|
|||||||
{
|
{
|
||||||
if ($action == 'edit' && $range->ik->id == $id && $range->rowid == $fk_range && $range->fk_c_exp_tax_cat == $fk_c_exp_tax_cat)
|
if ($action == 'edit' && $range->ik->id == $id && $range->rowid == $fk_range && $range->fk_c_exp_tax_cat == $fk_c_exp_tax_cat)
|
||||||
{
|
{
|
||||||
echo '<input id="" class="button" name="save" value="'.$langs->trans('Save').'" type="submit" />';
|
echo '<input id="" class="button button-save" name="save" value="'.$langs->trans("Save").'" type="submit" />';
|
||||||
echo '<input class="button" value="'.$langs->trans('Cancel').'" onclick="javascript:history.go(-1)" type="button" />';
|
echo '<input class="button button-cancel" value="'.$langs->trans("Cancel").'" onclick="javascript:history.go(-1)" type="button" />';
|
||||||
} else {
|
} else {
|
||||||
echo '<a class="editfielda marginrightonly paddingleft paddingright" href="'.$_SERVER['PHP_SELF'].'?action=edit&token='.newToken().'&id='.$range->ik->id.'&fk_c_exp_tax_cat='.$range->fk_c_exp_tax_cat.'&fk_range='.$range->rowid.'">'.img_edit().'</a>';
|
echo '<a class="editfielda marginrightonly paddingleft paddingright" href="'.$_SERVER['PHP_SELF'].'?action=edit&token='.newToken().'&id='.$range->ik->id.'&fk_c_exp_tax_cat='.$range->fk_c_exp_tax_cat.'&fk_range='.$range->rowid.'">'.img_edit().'</a>';
|
||||||
if (!empty($range->ik->id)) echo '<a class="paddingleft paddingright" href="'.$_SERVER['PHP_SELF'].'?action=delete&token='.newToken().'&id='.$range->ik->id.'">'.img_delete().'</a>';
|
if (!empty($range->ik->id)) echo '<a class="paddingleft paddingright" href="'.$_SERVER['PHP_SELF'].'?action=delete&token='.newToken().'&id='.$range->ik->id.'">'.img_delete().'</a>';
|
||||||
|
|||||||
@ -309,7 +309,7 @@ foreach ($rules as $rule)
|
|||||||
echo '<a class="paddingright paddingleft" href="'.$_SERVER['PHP_SELF'].'?action=delete&token='.newToken().'&id='.$rule->id.'">'.img_delete().'</a>';
|
echo '<a class="paddingright paddingleft" href="'.$_SERVER['PHP_SELF'].'?action=delete&token='.newToken().'&id='.$rule->id.'">'.img_delete().'</a>';
|
||||||
} else {
|
} else {
|
||||||
echo '<input type="submit" class="button" value="'.$langs->trans('Update').'" /> ';
|
echo '<input type="submit" class="button" value="'.$langs->trans('Update').'" /> ';
|
||||||
echo '<a href="'.$_SERVER['PHP_SELF'].'" class="button">'.$langs->trans('Cancel').'</a>';
|
echo '<a href="'.$_SERVER['PHP_SELF'].'" class="button button-cancel">'.$langs->trans("Cancel").'</a>';
|
||||||
}
|
}
|
||||||
echo '</td>';
|
echo '</td>';
|
||||||
|
|
||||||
|
|||||||
@ -155,7 +155,7 @@ function _updateBtn()
|
|||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -211,7 +211,7 @@ if (empty($conf->use_javascript_ajax))
|
|||||||
print $conf->global->FCKEDITOR_TEST;
|
print $conf->global->FCKEDITOR_TEST;
|
||||||
print '</div>';
|
print '</div>';
|
||||||
}
|
}
|
||||||
print '<br><div class="center"><input class="button" type="submit" name="save" value="'.$langs->trans("Save").'"></div>'."\n";
|
print '<br><div class="center"><input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'"></div>'."\n";
|
||||||
print '<div id="divforlog"></div>';
|
print '<div id="divforlog"></div>';
|
||||||
print '</form>'."\n";
|
print '</form>'."\n";
|
||||||
|
|
||||||
|
|||||||
@ -494,7 +494,7 @@ print '</div>';
|
|||||||
|
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -243,22 +243,19 @@ clearstatcache();
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
print '<table summary="edit" class="noborder centpercent editmode">';
|
print '<table summary="edit" class="noborder centpercent editmode">';
|
||||||
print '<tr class="liste_titre"><th>'.$langs->trans("Language").'</th><th></th>';
|
print '<tr class="liste_titre"><th>'.$langs->trans("Language").'</th><th></th>';
|
||||||
print '<th width="20"> </td>';
|
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Default language
|
// Default language
|
||||||
print '<tr class="oddeven"><td class="titlefield">'.$langs->trans("DefaultLanguage").'</td><td>';
|
print '<tr class="oddeven"><td class="titlefield">'.$langs->trans("DefaultLanguage").'</td><td>';
|
||||||
print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT, 'MAIN_LANG_DEFAULT', 1, null, '', 0, 0, 'minwidth300', 2);
|
print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT, 'MAIN_LANG_DEFAULT', 1, null, '', 0, 0, 'minwidth300', 2);
|
||||||
print '<input class="button" type="submit" name="submit" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" name="submit" value="'.$langs->trans("Save").'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td width="20"> </td>';
|
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
// Multilingual GUI
|
// Multilingual GUI
|
||||||
print '<tr class="oddeven"><td class="titlefield">'.$langs->trans("EnableMultilangInterface").'</td><td>';
|
print '<tr class="oddeven"><td class="titlefield">'.$langs->trans("EnableMultilangInterface").'</td><td>';
|
||||||
print ajax_constantonoff("MAIN_MULTILANGS", array(), $conf->entity, 0, 0, 1, 0);
|
print ajax_constantonoff("MAIN_MULTILANGS", array(), $conf->entity, 0, 0, 1, 0);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td width="20"> </td>';
|
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
print '</table><br>'."\n";
|
print '</table><br>'."\n";
|
||||||
@ -443,7 +440,7 @@ print '</div>';
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input class="button" type="submit" name="submit" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" name="submit" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -165,7 +165,7 @@ if ($action == 'edit')
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|||||||
@ -509,9 +509,9 @@ if ($action == 'edit')
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<br><div class="center">';
|
print '<br><div class="center">';
|
||||||
print '<input class="button" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
@ -795,7 +795,7 @@ if ($action == 'edit')
|
|||||||
{
|
{
|
||||||
if (!empty($conf->global->MAIN_EXTERNAL_MAIL_SPF_STRING_TO_ADD))
|
if (!empty($conf->global->MAIN_EXTERNAL_MAIL_SPF_STRING_TO_ADD))
|
||||||
{
|
{
|
||||||
// List of string to add in SPF if the setup use the mail method
|
// List of string to add in SPF if the setup use the mail method. Example 'include:sendgrid.net include:spf.mydomain.com'
|
||||||
$text .= ($text ? '<br><br>' : '').$langs->trans("WarningPHPMailSPF", $conf->global->MAIN_EXTERNAL_MAIL_SPF_STRING_TO_ADD);
|
$text .= ($text ? '<br><br>' : '').$langs->trans("WarningPHPMailSPF", $conf->global->MAIN_EXTERNAL_MAIL_SPF_STRING_TO_ADD);
|
||||||
} else {
|
} else {
|
||||||
// MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS is list of IPs where email is sent from. Example: '1.2.3.4, [aaaa:bbbb:cccc:dddd]'.
|
// MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS is list of IPs where email is sent from. Example: '1.2.3.4, [aaaa:bbbb:cccc:dddd]'.
|
||||||
@ -808,12 +808,13 @@ if ($action == 'edit')
|
|||||||
} else {
|
} else {
|
||||||
if (!empty($conf->global->MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS))
|
if (!empty($conf->global->MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS))
|
||||||
{
|
{
|
||||||
// List of IP show as record to add as allowed IP if we use the smtp method
|
// List of IP show as record to add as allowed IP if we use the smtp method. Value is '1.2.3.4, [aaaa:bbbb:cccc:dddd]'
|
||||||
|
// TODO Add a key to allow to show the IP/name of server detected dynamically
|
||||||
$text .= ($text ? '<br><br>' : '').$langs->trans("WarningPHPMail2", $conf->global->MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS);
|
$text .= ($text ? '<br><br>' : '').$langs->trans("WarningPHPMail2", $conf->global->MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS);
|
||||||
}
|
}
|
||||||
if (!empty($conf->global->MAIN_EXTERNAL_SMTP_SPF_STRING_TO_ADD)) // Should be required only if you have set to use your own SMTP and wat to warn users to update their domain name to match your SMTP server.
|
if (!empty($conf->global->MAIN_EXTERNAL_SMTP_SPF_STRING_TO_ADD)) // Should be required only if you have preset the Dolibarr to use your own SMTP and you want to warn users to update their domain name to match your SMTP server.
|
||||||
{
|
{
|
||||||
// List of string to add in SPF if we use the smtp method
|
// List of string to add in SPF if we use the smtp method. Example 'include:spf.mydomain.com'
|
||||||
$text .= ($text ? '<br><br>' : '').$langs->trans("WarningPHPMailSPF", $conf->global->MAIN_EXTERNAL_SMTP_SPF_STRING_TO_ADD);
|
$text .= ($text ? '<br><br>' : '').$langs->trans("WarningPHPMailSPF", $conf->global->MAIN_EXTERNAL_SMTP_SPF_STRING_TO_ADD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -387,9 +387,9 @@ if ($action == 'edit')
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<br><div class="center">';
|
print '<br><div class="center">';
|
||||||
print '<input class="button" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -381,9 +381,9 @@ if ($action != 'create') {
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input class="button" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -414,9 +414,9 @@ if ($action != 'create') {
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input class="button" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
//print '</form>';
|
//print '</form>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -268,6 +268,7 @@ if (empty($reshook)) {
|
|||||||
if ($value == 'content') continue;
|
if ($value == 'content') continue;
|
||||||
if ($value == 'content_lines') continue;
|
if ($value == 'content_lines') continue;
|
||||||
|
|
||||||
|
// Rename some POST variables into a generic name
|
||||||
if (GETPOST('actionmodify', 'alpha') && $value == 'topic') $_POST['topic'] = $_POST['topic-'.$rowid];
|
if (GETPOST('actionmodify', 'alpha') && $value == 'topic') $_POST['topic'] = $_POST['topic-'.$rowid];
|
||||||
|
|
||||||
if ((!isset($_POST[$value]) || $_POST[$value] == '' || $_POST[$value] == '-1') && $value != 'lang' && $value != 'fk_user' && $value != 'position')
|
if ((!isset($_POST[$value]) || $_POST[$value] == '' || $_POST[$value] == '-1') && $value != 'lang' && $value != 'fk_user' && $value != 'position')
|
||||||
@ -306,6 +307,7 @@ if (empty($reshook)) {
|
|||||||
if ($value == 'lang') $keycode = 'langcode';
|
if ($value == 'lang') $keycode = 'langcode';
|
||||||
if (empty($keycode)) $keycode = $value;
|
if (empty($keycode)) $keycode = $value;
|
||||||
|
|
||||||
|
// Clean input variables
|
||||||
if ($value == 'entity') $_POST[$keycode] = $conf->entity;
|
if ($value == 'entity') $_POST[$keycode] = $conf->entity;
|
||||||
if ($value == 'fk_user' && !($_POST[$keycode] > 0)) $_POST[$keycode] = '';
|
if ($value == 'fk_user' && !($_POST[$keycode] > 0)) $_POST[$keycode] = '';
|
||||||
if ($value == 'private' && !is_numeric($_POST[$keycode])) $_POST[$keycode] = '0';
|
if ($value == 'private' && !is_numeric($_POST[$keycode])) $_POST[$keycode] = '0';
|
||||||
@ -319,11 +321,11 @@ if (empty($reshook)) {
|
|||||||
if (!$user->admin) { // A non admin user can only edit its own template
|
if (!$user->admin) { // A non admin user can only edit its own template
|
||||||
$sql .= " ".((int) $user->id);
|
$sql .= " ".((int) $user->id);
|
||||||
} else {
|
} else {
|
||||||
$sql .= " ".((int) GETPOST($keycode, 'fk_user'));
|
$sql .= " ".((int) GETPOST($keycode, 'int'));
|
||||||
}
|
}
|
||||||
} elseif ($keycode == 'content') {
|
} elseif ($keycode == 'content') {
|
||||||
$sql .= "'".$db->escape(GETPOST($keycode, 'restricthtml'))."'";
|
$sql .= "'".$db->escape(GETPOST($keycode, 'restricthtml'))."'";
|
||||||
} elseif (in_array($keycode, array('joinfile', 'private', 'position'))) {
|
} elseif (in_array($keycode, array('joinfiles', 'private', 'position'))) {
|
||||||
$sql .= (int) GETPOST($keycode, 'int');
|
$sql .= (int) GETPOST($keycode, 'int');
|
||||||
} else {
|
} else {
|
||||||
$sql .= "'".$db->escape(GETPOST($keycode, 'nohtml'))."'";
|
$sql .= "'".$db->escape(GETPOST($keycode, 'nohtml'))."'";
|
||||||
@ -362,6 +364,7 @@ if (empty($reshook)) {
|
|||||||
if ($field == 'lang') $keycode = 'langcode';
|
if ($field == 'lang') $keycode = 'langcode';
|
||||||
if (empty($keycode)) $keycode = $field;
|
if (empty($keycode)) $keycode = $field;
|
||||||
|
|
||||||
|
// Rename some POST variables into a generic name
|
||||||
if ($field == 'fk_user' && !($_POST['fk_user'] > 0)) $_POST['fk_user'] = '';
|
if ($field == 'fk_user' && !($_POST['fk_user'] > 0)) $_POST['fk_user'] = '';
|
||||||
if ($field == 'topic') $_POST['topic'] = $_POST['topic-'.$rowid];
|
if ($field == 'topic') $_POST['topic'] = $_POST['topic-'.$rowid];
|
||||||
if ($field == 'joinfiles') $_POST['joinfiles'] = $_POST['joinfiles-'.$rowid];
|
if ($field == 'joinfiles') $_POST['joinfiles'] = $_POST['joinfiles-'.$rowid];
|
||||||
@ -378,11 +381,11 @@ if (empty($reshook)) {
|
|||||||
if (!$user->admin) { // A non admin user can only edit its own template
|
if (!$user->admin) { // A non admin user can only edit its own template
|
||||||
$sql .= " ".((int) $user->id);
|
$sql .= " ".((int) $user->id);
|
||||||
} else {
|
} else {
|
||||||
$sql .= " ".((int) GETPOST($keycode, 'fk_user'));
|
$sql .= " ".((int) GETPOST($keycode, 'int'));
|
||||||
}
|
}
|
||||||
} elseif ($keycode == 'content') {
|
} elseif ($keycode == 'content') {
|
||||||
$sql .= "'".$db->escape(GETPOST($keycode, 'restricthtml'))."'";
|
$sql .= "'".$db->escape(GETPOST($keycode, 'restricthtml'))."'";
|
||||||
} elseif (in_array($keycode, array('joinfile', 'private', 'position'))) {
|
} elseif (in_array($keycode, array('joinfiles', 'private', 'position'))) {
|
||||||
$sql .= (int) GETPOST($keycode, 'int');
|
$sql .= (int) GETPOST($keycode, 'int');
|
||||||
} else {
|
} else {
|
||||||
$sql .= "'".$db->escape(GETPOST($keycode, 'nohtml'))."'";
|
$sql .= "'".$db->escape(GETPOST($keycode, 'nohtml'))."'";
|
||||||
@ -393,7 +396,7 @@ if (empty($reshook)) {
|
|||||||
|
|
||||||
$sql .= " WHERE ".$rowidcol." = ".((int) $rowid);
|
$sql .= " WHERE ".$rowidcol." = ".((int) $rowid);
|
||||||
if (!$user->admin) { // A non admin user can only edit its own template
|
if (!$user->admin) { // A non admin user can only edit its own template
|
||||||
$sql .= " AND fk_user = ".$user->id;
|
$sql .= " AND fk_user = ".((int) $user->id);
|
||||||
}
|
}
|
||||||
//print $sql;exit;
|
//print $sql;exit;
|
||||||
dol_syslog("actionmodify", LOG_DEBUG);
|
dol_syslog("actionmodify", LOG_DEBUG);
|
||||||
@ -414,7 +417,7 @@ if (empty($reshook)) {
|
|||||||
|
|
||||||
$sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol."=".((int) $rowid);
|
$sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol."=".((int) $rowid);
|
||||||
if (!$user->admin) { // A non admin user can only edit its own template
|
if (!$user->admin) { // A non admin user can only edit its own template
|
||||||
$sql .= " AND fk_user = ".$user->id;
|
$sql .= " AND fk_user = ".((int) $user->id);
|
||||||
}
|
}
|
||||||
dol_syslog("delete", LOG_DEBUG);
|
dol_syslog("delete", LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
@ -791,7 +794,7 @@ if ($resql)
|
|||||||
print '<input type="hidden" name="rowid" value="'.$rowid.'">';
|
print '<input type="hidden" name="rowid" value="'.$rowid.'">';
|
||||||
print '<input type="submit" class="button buttongen" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
print '<input type="submit" class="button buttongen" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
||||||
print '<div name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"></div>';
|
print '<div name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"></div>';
|
||||||
print '<input type="submit" class="button buttongen" name="actioncancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button buttongen button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
$fieldsforcontent = array('topic', 'joinfiles', 'content');
|
$fieldsforcontent = array('topic', 'joinfiles', 'content');
|
||||||
|
|||||||
@ -364,9 +364,9 @@ if ($action == 'edit')
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<br><div class="center">';
|
print '<br><div class="center">';
|
||||||
print '<input class="button" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -209,7 +209,7 @@ print '</table>';
|
|||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input class="button" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -34,13 +34,14 @@ $langs->loadLangs(array("other", "admin"));
|
|||||||
$cancel = GETPOST('cancel', 'alphanohtml'); // We click on a Cancel button
|
$cancel = GETPOST('cancel', 'alphanohtml'); // We click on a Cancel button
|
||||||
$confirm = GETPOST('confirm');
|
$confirm = GETPOST('confirm');
|
||||||
|
|
||||||
if (!$user->admin) accessforbidden();
|
if (!$user->admin) {
|
||||||
|
accessforbidden();
|
||||||
|
}
|
||||||
|
|
||||||
$dirstandard = array();
|
$dirstandard = array();
|
||||||
$dirsmartphone = array();
|
$dirsmartphone = array();
|
||||||
$dirmenus = array_merge(array("/core/menus/"), (array) $conf->modules_parts['menus']);
|
$dirmenus = array_merge(array("/core/menus/"), (array) $conf->modules_parts['menus']);
|
||||||
foreach ($dirmenus as $dirmenu)
|
foreach ($dirmenus as $dirmenu) {
|
||||||
{
|
|
||||||
$dirstandard[] = $dirmenu.'standard';
|
$dirstandard[] = $dirmenu.'standard';
|
||||||
$dirsmartphone[] = $dirmenu.'smartphone';
|
$dirsmartphone[] = $dirmenu.'smartphone';
|
||||||
}
|
}
|
||||||
@ -56,8 +57,12 @@ $menu_handler_smartphone = preg_replace('/_frontoffice.php/i', '', $menu_handler
|
|||||||
|
|
||||||
$menu_handler = $menu_handler_top;
|
$menu_handler = $menu_handler_top;
|
||||||
|
|
||||||
if (GETPOST("handler_origine")) $menu_handler = GETPOST("handler_origine");
|
if (GETPOST("handler_origine")) {
|
||||||
if (GETPOST("menu_handler")) $menu_handler = GETPOST("menu_handler");
|
$menu_handler = GETPOST("handler_origine");
|
||||||
|
}
|
||||||
|
if (GETPOST("menu_handler")) {
|
||||||
|
$menu_handler = GETPOST("menu_handler");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -65,22 +70,16 @@ if (GETPOST("menu_handler")) $menu_handler = GETPOST("menu_handler");
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action == 'update')
|
if ($action == 'update') {
|
||||||
{
|
if (!$cancel) {
|
||||||
if (!$cancel)
|
|
||||||
{
|
|
||||||
$leftmenu = ''; $mainmenu = '';
|
$leftmenu = ''; $mainmenu = '';
|
||||||
if (GETPOST('menuIdParent', 'alphanohtml') && !is_numeric(GETPOST('menuIdParent', 'alphanohtml')))
|
if (GETPOST('menuIdParent', 'alphanohtml') && !is_numeric(GETPOST('menuIdParent', 'alphanohtml'))) {
|
||||||
{
|
|
||||||
$tmp = explode('&', GETPOST('menuIdParent', 'alphanohtml'));
|
$tmp = explode('&', GETPOST('menuIdParent', 'alphanohtml'));
|
||||||
foreach ($tmp as $s)
|
foreach ($tmp as $s) {
|
||||||
{
|
if (preg_match('/fk_mainmenu=/', $s)) {
|
||||||
if (preg_match('/fk_mainmenu=/', $s))
|
|
||||||
{
|
|
||||||
$mainmenu = preg_replace('/fk_mainmenu=/', '', $s);
|
$mainmenu = preg_replace('/fk_mainmenu=/', '', $s);
|
||||||
}
|
}
|
||||||
if (preg_match('/fk_leftmenu=/', $s))
|
if (preg_match('/fk_leftmenu=/', $s)) {
|
||||||
{
|
|
||||||
$leftmenu = preg_replace('/fk_leftmenu=/', '', $s);
|
$leftmenu = preg_replace('/fk_leftmenu=/', '', $s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -88,31 +87,31 @@ if ($action == 'update')
|
|||||||
|
|
||||||
$menu = new Menubase($db);
|
$menu = new Menubase($db);
|
||||||
$result = $menu->fetch(GETPOST('menuId', 'int'));
|
$result = $menu->fetch(GETPOST('menuId', 'int'));
|
||||||
if ($result > 0)
|
if ($result > 0) {
|
||||||
{
|
$menu->title = (string) GETPOST('titre', 'alphanohtml');
|
||||||
$menu->title = GETPOST('titre', 'alphanohtml');
|
$menu->leftmenu = (string) GETPOST('leftmenu', 'aZ09');
|
||||||
$menu->leftmenu = GETPOST('leftmenu', 'aZ09');
|
$menu->url = (string) GETPOST('url', 'alphanohtml');
|
||||||
$menu->url = GETPOST('url', 'alphanohtml');
|
$menu->langs = (string) GETPOST('langs', 'alphanohtml');
|
||||||
$menu->langs = GETPOST('langs', 'alphanohtml');
|
$menu->position = (int) GETPOST('position', 'int');
|
||||||
$menu->position = GETPOST('position', 'int');
|
$menu->enabled = (string) GETPOST('enabled', 'alphanohtml');
|
||||||
$menu->enabled = GETPOST('enabled', 'alphanohtml');
|
$menu->perms = (string) GETPOST('perms', 'alphanohtml');
|
||||||
$menu->perms = GETPOST('perms', 'alphanohtml');
|
$menu->target = (string) GETPOST('target', 'alphanohtml');
|
||||||
$menu->target = GETPOST('target', 'alphanohtml');
|
$menu->user = (string) GETPOST('user', 'alphanohtml');
|
||||||
$menu->user = GETPOST('user', 'alphanohtml');
|
$menu->mainmenu = (string) GETPOST('propertymainmenu', 'alphanohtml');
|
||||||
$menu->mainmenu = GETPOST('propertymainmenu', 'alphanohtml');
|
if (is_numeric(GETPOST('menuIdParent', 'alphanohtml'))) {
|
||||||
if (is_numeric(GETPOST('menuIdParent', 'alphanohtml')))
|
$menu->fk_menu = (int) GETPOST('menuIdParent', 'alphanohtml');
|
||||||
{
|
|
||||||
$menu->fk_menu = GETPOST('menuIdParent', 'alphanohtml');
|
|
||||||
} else {
|
} else {
|
||||||
if (GETPOST('type', 'alphanohtml') == 'top') $menu->fk_menu = 0;
|
if (GETPOST('type', 'alphanohtml') == 'top') {
|
||||||
else $menu->fk_menu = -1;
|
$menu->fk_menu = 0;
|
||||||
|
} else {
|
||||||
|
$menu->fk_menu = -1;
|
||||||
|
}
|
||||||
$menu->fk_mainmenu = $mainmenu;
|
$menu->fk_mainmenu = $mainmenu;
|
||||||
$menu->fk_leftmenu = $leftmenu;
|
$menu->fk_leftmenu = $leftmenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $menu->update($user);
|
$result = $menu->update($user);
|
||||||
if ($result > 0)
|
if ($result > 0) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
|
setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs');
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($menu->error, $menu->errors, 'errors');
|
setEventMessages($menu->error, $menu->errors, 'errors');
|
||||||
@ -130,26 +129,21 @@ if ($action == 'update')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'add')
|
if ($action == 'add') {
|
||||||
{
|
if ($cancel) {
|
||||||
if ($cancel)
|
|
||||||
{
|
|
||||||
header("Location: ".DOL_URL_ROOT."/admin/menus/index.php?menu_handler=".$menu_handler);
|
header("Location: ".DOL_URL_ROOT."/admin/menus/index.php?menu_handler=".$menu_handler);
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$leftmenu = ''; $mainmenu = '';
|
$leftmenu = '';
|
||||||
if (GETPOST('menuId', 'alphanohtml', 3) && !is_numeric(GETPOST('menuId', 'alphanohtml', 3)))
|
$mainmenu = '';
|
||||||
{
|
if (GETPOST('menuId', 'alphanohtml', 3) && !is_numeric(GETPOST('menuId', 'alphanohtml', 3))) {
|
||||||
$tmp = explode('&', GETPOST('menuId', 'alphanohtml', 3));
|
$tmp = explode('&', GETPOST('menuId', 'alphanohtml', 3));
|
||||||
foreach ($tmp as $s)
|
foreach ($tmp as $s) {
|
||||||
{
|
if (preg_match('/fk_mainmenu=/', $s)) {
|
||||||
if (preg_match('/fk_mainmenu=/', $s))
|
|
||||||
{
|
|
||||||
$mainmenu = preg_replace('/fk_mainmenu=/', '', $s);
|
$mainmenu = preg_replace('/fk_mainmenu=/', '', $s);
|
||||||
}
|
}
|
||||||
if (preg_match('/fk_leftmenu=/', $s))
|
if (preg_match('/fk_leftmenu=/', $s)) {
|
||||||
{
|
|
||||||
$leftmenu = preg_replace('/fk_leftmenu=/', '', $s);
|
$leftmenu = preg_replace('/fk_leftmenu=/', '', $s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -158,70 +152,64 @@ if ($action == 'add')
|
|||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
if (!$error && !$_POST['menu_handler'])
|
if (!$error && !$_POST['menu_handler']) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("MenuHandler")), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("MenuHandler")), null, 'errors');
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
if (!$error && !$_POST['type'])
|
if (!$error && !$_POST['type']) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Type")), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Type")), null, 'errors');
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
if (!$error && !$_POST['url'])
|
if (!$error && !$_POST['url']) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("URL")), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("URL")), null, 'errors');
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
if (!$error && !$_POST['titre'])
|
if (!$error && !$_POST['titre']) {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Title")), null, 'errors');
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Title")), null, 'errors');
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
if (!$error && $_POST['menuId'] && $_POST['type'] == 'top')
|
if (!$error && $_POST['menuId'] && $_POST['type'] == 'top') {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorTopMenuMustHaveAParentWithId0"), null, 'errors');
|
setEventMessages($langs->trans("ErrorTopMenuMustHaveAParentWithId0"), null, 'errors');
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
if (!$error && !$_POST['menuId'] && $_POST['type'] == 'left')
|
if (!$error && !$_POST['menuId'] && $_POST['type'] == 'left') {
|
||||||
{
|
|
||||||
setEventMessages($langs->trans("ErrorLeftMenuMustHaveAParentId"), null, 'errors');
|
setEventMessages($langs->trans("ErrorLeftMenuMustHaveAParentId"), null, 'errors');
|
||||||
$action = 'create';
|
$action = 'create';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error)
|
if (!$error) {
|
||||||
{
|
|
||||||
$menu = new Menubase($db);
|
$menu = new Menubase($db);
|
||||||
$menu->menu_handler = preg_replace('/_menu$/', '', GETPOST('menu_handler', 'aZ09'));
|
$menu->menu_handler = preg_replace('/_menu$/', '', GETPOST('menu_handler', 'aZ09'));
|
||||||
$menu->type = GETPOST('type', 'alphanohtml');
|
$menu->type = (string) GETPOST('type', 'alphanohtml');
|
||||||
$menu->title = GETPOST('titre', 'alphanohtml');
|
$menu->title = (string) GETPOST('titre', 'alphanohtml');
|
||||||
$menu->url = GETPOST('url', 'alphanohtml');
|
$menu->url = (string) GETPOST('url', 'alphanohtml');
|
||||||
$menu->langs = GETPOST('langs', 'alphanohtml');
|
$menu->langs = (string) GETPOST('langs', 'alphanohtml');
|
||||||
$menu->position = GETPOST('position', 'int');
|
$menu->position = (int) GETPOST('position', 'int');
|
||||||
$menu->enabled = GETPOST('enabled', 'alphanohtml');
|
$menu->enabled = (string) GETPOST('enabled', 'alphanohtml');
|
||||||
$menu->perms = GETPOST('perms', 'alphanohtml');
|
$menu->perms = (string) GETPOST('perms', 'alphanohtml');
|
||||||
$menu->target = GETPOST('target', 'alphanohtml');
|
$menu->target = (string) GETPOST('target', 'alphanohtml');
|
||||||
$menu->user = GETPOST('user', 'alphanohtml');
|
$menu->user = (string) GETPOST('user', 'alphanohtml');
|
||||||
$menu->mainmenu = GETPOST('propertymainmenu', 'alphanohtml');
|
$menu->mainmenu = (string) GETPOST('propertymainmenu', 'alphanohtml');
|
||||||
if (is_numeric(GETPOST('menuId', 'alphanohtml', 3)))
|
if (is_numeric(GETPOST('menuId', 'alphanohtml', 3))) {
|
||||||
{
|
$menu->fk_menu = (int) GETPOST('menuId', 'alphanohtml', 3);
|
||||||
$menu->fk_menu = GETPOST('menuId', 'alphanohtml', 3);
|
|
||||||
} else {
|
} else {
|
||||||
if (GETPOST('type', 'alphanohtml') == 'top') $menu->fk_menu = 0;
|
if (GETPOST('type', 'alphanohtml') == 'top') {
|
||||||
else $menu->fk_menu = -1;
|
$menu->fk_menu = 0;
|
||||||
|
} else {
|
||||||
|
$menu->fk_menu = -1;
|
||||||
|
}
|
||||||
$menu->fk_mainmenu = $mainmenu;
|
$menu->fk_mainmenu = $mainmenu;
|
||||||
$menu->fk_leftmenu = $leftmenu;
|
$menu->fk_leftmenu = $leftmenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $menu->create($user);
|
$result = $menu->create($user);
|
||||||
if ($result > 0)
|
if ($result > 0) {
|
||||||
{
|
|
||||||
header("Location: ".DOL_URL_ROOT."/admin/menus/index.php?menu_handler=".GETPOST('menu_handler', 'aZ09'));
|
header("Location: ".DOL_URL_ROOT."/admin/menus/index.php?menu_handler=".GETPOST('menu_handler', 'aZ09'));
|
||||||
exit;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
@ -232,15 +220,13 @@ if ($action == 'add')
|
|||||||
}
|
}
|
||||||
|
|
||||||
// delete
|
// delete
|
||||||
if ($action == 'confirm_delete' && $confirm == 'yes')
|
if ($action == 'confirm_delete' && $confirm == 'yes') {
|
||||||
{
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu WHERE rowid = ".GETPOST('menuId', 'int');
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu WHERE rowid = ".GETPOST('menuId', 'int');
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
|
|
||||||
if ($result == 0)
|
if ($result == 0) {
|
||||||
{
|
|
||||||
$db->commit();
|
$db->commit();
|
||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
@ -268,8 +254,7 @@ $formadmin = new FormAdmin($db);
|
|||||||
llxHeader('', $langs->trans("Menu"));
|
llxHeader('', $langs->trans("Menu"));
|
||||||
|
|
||||||
|
|
||||||
if ($action == 'create')
|
if ($action == 'create') {
|
||||||
{
|
|
||||||
print '<script type="text/javascript" language="javascript">
|
print '<script type="text/javascript" language="javascript">
|
||||||
jQuery(document).ready(function() {
|
jQuery(document).ready(function() {
|
||||||
function init_topleft()
|
function init_topleft()
|
||||||
@ -305,14 +290,11 @@ if ($action == 'create')
|
|||||||
|
|
||||||
// Id
|
// Id
|
||||||
$parent_rowid = GETPOST('menuId', 'int');
|
$parent_rowid = GETPOST('menuId', 'int');
|
||||||
if (GETPOST('menuId', 'int'))
|
if (GETPOST('menuId', 'int')) {
|
||||||
{
|
|
||||||
$sql = "SELECT m.rowid, m.mainmenu, m.leftmenu, m.level, m.langs FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".GETPOST('menuId', 'int');
|
$sql = "SELECT m.rowid, m.mainmenu, m.leftmenu, m.level, m.langs FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".GETPOST('menuId', 'int');
|
||||||
$res = $db->query($sql);
|
$res = $db->query($sql);
|
||||||
if ($res)
|
if ($res) {
|
||||||
{
|
while ($menu = $db->fetch_array($res)) {
|
||||||
while ($menu = $db->fetch_array($res))
|
|
||||||
{
|
|
||||||
$parent_rowid = $menu['rowid'];
|
$parent_rowid = $menu['rowid'];
|
||||||
$parent_mainmenu = $menu['mainmenu'];
|
$parent_mainmenu = $menu['mainmenu'];
|
||||||
$parent_leftmenu = $menu['leftmenu'];
|
$parent_leftmenu = $menu['leftmenu'];
|
||||||
@ -340,8 +322,7 @@ if ($action == 'create')
|
|||||||
|
|
||||||
// Type
|
// Type
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('Type').'</td><td>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('Type').'</td><td>';
|
||||||
if ($parent_rowid)
|
if ($parent_rowid) {
|
||||||
{
|
|
||||||
print $langs->trans('Left');
|
print $langs->trans('Left');
|
||||||
print '<input type="hidden" name="type" value="left">';
|
print '<input type="hidden" name="type" value="left">';
|
||||||
} else {
|
} else {
|
||||||
@ -355,15 +336,14 @@ if ($action == 'create')
|
|||||||
|
|
||||||
// Mainmenu code
|
// Mainmenu code
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('MainMenuCode').'</td>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('MainMenuCode').'</td>';
|
||||||
print '<td><input type="text" class="minwidth300" id="propertymainmenu" name="propertymainmenu" value="'.(GETPOSTISSET("propertymainmenu") ? GETPOST("propertymainmenu", 'alphanohtml') : '').'"></td>';
|
print '<td><input type="text" class="minwidth300" id="propertymainmenu" name="propertymainmenu" value="'.(GETPOSTISSET("propertymainmenu") ? GETPOST("propertymainmenu", 'alphanohtml') : '').'"></td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print $langs->trans("Example").': mytopmenukey';
|
print $langs->trans("Example").': mytopmenukey';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// MenuId Parent
|
// MenuId Parent
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('MenuIdParent').'</td>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('MenuIdParent').'</td>';
|
||||||
if ($parent_rowid)
|
if ($parent_rowid) {
|
||||||
{
|
|
||||||
print '<td>'.$parent_rowid.'<input type="hidden" name="menuId" value="'.$parent_rowid.'"></td>';
|
print '<td>'.$parent_rowid.'<input type="hidden" name="menuId" value="'.$parent_rowid.'"></td>';
|
||||||
} else {
|
} else {
|
||||||
print '<td><input type="text" class="minwidth300" id="menuId" name="menuId" value="'.(GETPOSTISSET("menuId") ? GETPOST("menuId", 'int') : '').'"></td>';
|
print '<td><input type="text" class="minwidth300" id="menuId" name="menuId" value="'.(GETPOSTISSET("menuId") ? GETPOST("menuId", 'int') : '').'"></td>';
|
||||||
@ -373,16 +353,20 @@ if ($action == 'create')
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Title
|
// Title
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td><td><input type="text" class="minwidth300" name="titre" value="'.dol_escape_htmltag(GETPOST("titre", 'alphanohtml')).'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td>';
|
||||||
|
print '<td><input type="text" class="minwidth300" name="titre" value="'.dol_escape_htmltag(GETPOST("titre", 'alphanohtml')).'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
||||||
|
|
||||||
// URL
|
// URL
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('URL').'</td><td><input type="text" class="minwidth500" name="url" value="'.GETPOST("url", 'alphanohtml').'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('URL').'</td>';
|
||||||
|
print '<td><input type="text" class="minwidth500" name="url" value="'.GETPOST("url", 'alphanohtml').'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
|
||||||
|
|
||||||
// Langs
|
// Langs
|
||||||
print '<tr><td>'.$langs->trans('LangFile').'</td><td><input type="text" class="minwidth300" name="langs" value="'.$parent_langs.'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
|
print '<tr><td>'.$langs->trans('LangFile').'</td>';
|
||||||
|
print '<td><input type="text" class="minwidth300" name="langs" value="'.$parent_langs.'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
|
||||||
|
|
||||||
// Position
|
// Position
|
||||||
print '<tr><td>'.$langs->trans('Position').'</td><td><input type="text" class="width100" name="position" value="'.dol_escape_htmltag(GETPOSTISSET("position") ? GETPOST("position", 'int') : 100).'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
|
print '<tr><td>'.$langs->trans('Position').'</td>';
|
||||||
|
print '<td><input type="text" class="width100" name="position" value="'.dol_escape_htmltag(GETPOSTISSET("position") ? GETPOST("position", 'int') : 100).'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
|
||||||
|
|
||||||
// Target
|
// Target
|
||||||
print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
|
print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
|
||||||
@ -391,24 +375,25 @@ if ($action == 'create')
|
|||||||
print '</select></td></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
|
print '</select></td></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
|
||||||
|
|
||||||
// Enabled
|
// Enabled
|
||||||
print '<tr><td>'.$langs->trans('Enabled').'</td><td><input type="text" class="minwidth500" name="enabled" value="'.(GETPOSTISSET('enabled') ? GETPOST("enabled", 'alphanohtml') : '1').'"></td><td>'.$langs->trans('DetailEnabled').'</td></tr>';
|
print '<tr><td>'.$langs->trans('Enabled').'</td>';
|
||||||
|
print '<td><input type="text" class="minwidth500" name="enabled" value="'.(GETPOSTISSET('enabled') ? GETPOST("enabled", 'alphanohtml') : '1').'"></td><td>'.$langs->trans('DetailEnabled').'</td></tr>';
|
||||||
|
|
||||||
// Perms
|
// Perms
|
||||||
print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" class="minwidth500" name="perms" value="'.(GETPOSTISSET('perms') ? GETPOST('perms', 'alphanohtml') : '1').'"></td><td>'.$langs->trans('DetailRight').'</td></tr>';
|
print '<tr><td>'.$langs->trans('Rights').'</td>';
|
||||||
|
print '<td><input type="text" class="minwidth500" name="perms" value="'.(GETPOSTISSET('perms') ? GETPOST('perms', 'alphanohtml') : '1').'"></td><td>'.$langs->trans('DetailRight').'</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
} elseif ($action == 'edit')
|
} elseif ($action == 'edit') {
|
||||||
{
|
|
||||||
print load_fiche_titre($langs->trans("ModifMenu"), '', 'title_setup');
|
print load_fiche_titre($langs->trans("ModifMenu"), '', 'title_setup');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
@ -432,8 +417,11 @@ if ($action == 'create')
|
|||||||
print '<tr><td>'.$langs->trans('MenuModule').'</td><td>'.$menu->module.'</td><td>'.$langs->trans('DetailMenuModule').'</td></tr>';
|
print '<tr><td>'.$langs->trans('MenuModule').'</td><td>'.$menu->module.'</td><td>'.$langs->trans('DetailMenuModule').'</td></tr>';
|
||||||
|
|
||||||
// Handler
|
// Handler
|
||||||
if ($menu->menu_handler == 'all') $handler = $langs->trans('AllMenus');
|
if ($menu->menu_handler == 'all') {
|
||||||
else $handler = $menu->menu_handler;
|
$handler = $langs->trans('AllMenus');
|
||||||
|
} else {
|
||||||
|
$handler = $menu->menu_handler;
|
||||||
|
}
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('MenuHandler').'</td><td>'.$handler.'</td><td>'.$langs->trans('DetailMenuHandler').'</td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('MenuHandler').'</td><td>'.$handler.'</td><td>'.$langs->trans('DetailMenuHandler').'</td></tr>';
|
||||||
|
|
||||||
// User
|
// User
|
||||||
@ -444,18 +432,18 @@ if ($action == 'create')
|
|||||||
print '</select></td><td>'.$langs->trans('DetailUser').'</td></tr>';
|
print '</select></td><td>'.$langs->trans('DetailUser').'</td></tr>';
|
||||||
|
|
||||||
// Type
|
// Type
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('Type').'</td><td>'.$langs->trans(ucfirst($menu->type)).'</td><td>'.$langs->trans('DetailType').'</td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('Type').'</td>';
|
||||||
|
print '<td>'.$langs->trans(ucfirst($menu->type)).'</td><td>'.$langs->trans('DetailType').'</td></tr>';
|
||||||
|
|
||||||
// Mainmenu code
|
// Mainmenu code
|
||||||
if ($menu->type == 'top')
|
if ($menu->type == 'top') {
|
||||||
{
|
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('MainMenuCode').'</td>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('MainMenuCode').'</td>';
|
||||||
/*if ($parent_rowid)
|
/*if ($parent_rowid)
|
||||||
{
|
{
|
||||||
print '<td>'.$parent_rowid.'<input type="hidden" name="propertyleftmenu" value="'.$parent_rowid.'"></td>';
|
print '<td>'.$parent_rowid.'<input type="hidden" name="propertyleftmenu" value="'.$parent_rowid.'"></td>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{*/
|
{*/
|
||||||
print '<td><input type="text" class="minwidth300" id="propertymainmenu" name="propertymainmenu" value="'.(GETPOST("propertymainmenu", 'alphanohtml') ?GETPOST("propertymainmenu", 'alphanohtml') : $menu->mainmenu).'"></td>';
|
print '<td><input type="text" class="minwidth300" id="propertymainmenu" name="propertymainmenu" value="'.(GETPOST("propertymainmenu", 'alphanohtml') ?GETPOST("propertymainmenu", 'alphanohtml') : $menu->mainmenu).'"></td>';
|
||||||
//}
|
//}
|
||||||
print '<td>';
|
print '<td>';
|
||||||
@ -467,8 +455,12 @@ if ($action == 'create')
|
|||||||
print '<tr><td class="fieldrequired">'.$langs->trans('MenuIdParent');
|
print '<tr><td class="fieldrequired">'.$langs->trans('MenuIdParent');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
$valtouse = $menu->fk_menu;
|
$valtouse = $menu->fk_menu;
|
||||||
if ($menu->fk_mainmenu) $valtouse = 'fk_mainmenu='.$menu->fk_mainmenu;
|
if ($menu->fk_mainmenu) {
|
||||||
if ($menu->fk_leftmenu) $valtouse .= '&fk_leftmenu='.$menu->fk_leftmenu;
|
$valtouse = 'fk_mainmenu='.$menu->fk_mainmenu;
|
||||||
|
}
|
||||||
|
if ($menu->fk_leftmenu) {
|
||||||
|
$valtouse .= '&fk_leftmenu='.$menu->fk_leftmenu;
|
||||||
|
}
|
||||||
print '<td><input type="text" name="menuIdParent" value="'.$valtouse.'" class="minwidth300"></td>';
|
print '<td><input type="text" name="menuIdParent" value="'.$valtouse.'" class="minwidth300"></td>';
|
||||||
print '<td>'.$langs->trans('DetailMenuIdParent');
|
print '<td>'.$langs->trans('DetailMenuIdParent');
|
||||||
print ', '.$langs->trans("Example").': fk_mainmenu=abc&fk_leftmenu=def';
|
print ', '.$langs->trans("Example").': fk_mainmenu=abc&fk_leftmenu=def';
|
||||||
@ -478,16 +470,20 @@ if ($action == 'create')
|
|||||||
//print '<tr><td>'.$langs->trans('Level').'</td><td>'.$menu->level.'</td><td>'.$langs->trans('DetailLevel').'</td></tr>';
|
//print '<tr><td>'.$langs->trans('Level').'</td><td>'.$menu->level.'</td><td>'.$langs->trans('DetailLevel').'</td></tr>';
|
||||||
|
|
||||||
// Title
|
// Title
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td><td><input type="text" class="minwidth300" name="titre" value="'.dol_escape_htmltag($menu->title).'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('Title').'</td>';
|
||||||
|
print '<td><input type="text" class="minwidth300" name="titre" value="'.dol_escape_htmltag($menu->title).'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
||||||
|
|
||||||
// Url
|
// Url
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans('URL').'</td><td><input type="text" class="quatrevingtpercent" name="url" value="'.$menu->url.'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
|
print '<tr><td class="fieldrequired">'.$langs->trans('URL').'</td>';
|
||||||
|
print '<td><input type="text" class="quatrevingtpercent" name="url" value="'.$menu->url.'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
|
||||||
|
|
||||||
// Langs
|
// Langs
|
||||||
print '<tr><td>'.$langs->trans('LangFile').'</td><td><input type="text" class="minwidth300" name="langs" value="'.dol_escape_htmltag($menu->langs).'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
|
print '<tr><td>'.$langs->trans('LangFile').'</td>';
|
||||||
|
print '<td><input type="text" class="minwidth300" name="langs" value="'.dol_escape_htmltag($menu->langs).'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
|
||||||
|
|
||||||
// Position
|
// Position
|
||||||
print '<tr><td>'.$langs->trans('Position').'</td><td><input type="text" class="minwidth100" name="position" value="'.$menu->position.'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
|
print '<tr><td>'.$langs->trans('Position').'</td>';
|
||||||
|
print '<td><input type="text" class="minwidth100" name="position" value="'.$menu->position.'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
|
||||||
|
|
||||||
// Target
|
// Target
|
||||||
print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
|
print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
|
||||||
@ -496,13 +492,19 @@ if ($action == 'create')
|
|||||||
print '</select></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
|
print '</select></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
|
||||||
|
|
||||||
// Enabled
|
// Enabled
|
||||||
print '<tr><td>'.$langs->trans('Enabled').'</td><td><input type="text" class="minwidth500" name="enabled" value="'.dol_escape_htmltag($menu->enabled).'"></td><td>'.$langs->trans('DetailEnabled');
|
print '<tr><td>'.$langs->trans('Enabled').'</td>';
|
||||||
if (!empty($menu->enabled)) print ' ('.$langs->trans("ConditionIsCurrently").': '.yn(dol_eval($menu->enabled, 1)).')';
|
print '<td><input type="text" class="minwidth500" name="enabled" value="'.dol_escape_htmltag($menu->enabled).'"></td><td>'.$langs->trans('DetailEnabled');
|
||||||
|
if (!empty($menu->enabled)) {
|
||||||
|
print ' ('.$langs->trans("ConditionIsCurrently").': '.yn(dol_eval($menu->enabled, 1)).')';
|
||||||
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Perms
|
// Perms
|
||||||
print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" class="minwidth500" name="perms" value="'.dol_escape_htmltag($menu->perms).'"></td><td>'.$langs->trans('DetailRight');
|
print '<tr><td>'.$langs->trans('Rights').'</td>';
|
||||||
if (!empty($menu->perms)) print ' ('.$langs->trans("ConditionIsCurrently").': '.yn(dol_eval($menu->perms, 1)).')';
|
print '<td><input type="text" class="minwidth500" name="perms" value="'.dol_escape_htmltag($menu->perms).'"></td><td>'.$langs->trans('DetailRight');
|
||||||
|
if (!empty($menu->perms)) {
|
||||||
|
print ' ('.$langs->trans("ConditionIsCurrently").': '.yn(dol_eval($menu->perms, 1)).')';
|
||||||
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
@ -511,9 +513,9 @@ if ($action == 'create')
|
|||||||
|
|
||||||
// Bouton
|
// Bouton
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -512,7 +512,7 @@ if ($mode == 'common' || $mode == 'commonkanban')
|
|||||||
$moreforfilter .= $langs->trans('Keyword').': <input type="text" id="search_keyword" name="search_keyword" class="maxwidth100" value="'.dol_escape_htmltag($search_keyword).'">';
|
$moreforfilter .= $langs->trans('Keyword').': <input type="text" id="search_keyword" name="search_keyword" class="maxwidth100" value="'.dol_escape_htmltag($search_keyword).'">';
|
||||||
$moreforfilter .= '</div>';
|
$moreforfilter .= '</div>';
|
||||||
$moreforfilter .= '<div class="divsearchfield paddingtop">';
|
$moreforfilter .= '<div class="divsearchfield paddingtop">';
|
||||||
$moreforfilter .= $langs->trans('Origin').': '.$form->selectarray('search_nature', $arrayofnatures, dol_escape_htmltag($search_nature), 1, 0, 0, '', 0, 0, 0, '', 'maxwidth100');
|
$moreforfilter .= $langs->trans('Origin').': '.$form->selectarray('search_nature', $arrayofnatures, dol_escape_htmltag($search_nature), 1, 0, 0, '', 0, 0, 0, '', 'maxwidth200', 1);
|
||||||
$moreforfilter .= '</div>';
|
$moreforfilter .= '</div>';
|
||||||
if (!empty($conf->global->MAIN_FEATURES_LEVEL))
|
if (!empty($conf->global->MAIN_FEATURES_LEVEL))
|
||||||
{
|
{
|
||||||
@ -521,17 +521,17 @@ if ($mode == 'common' || $mode == 'commonkanban')
|
|||||||
if ($conf->global->MAIN_FEATURES_LEVEL > 0) $array_version['experimental'] = $langs->trans("Experimental");
|
if ($conf->global->MAIN_FEATURES_LEVEL > 0) $array_version['experimental'] = $langs->trans("Experimental");
|
||||||
if ($conf->global->MAIN_FEATURES_LEVEL > 1) $array_version['development'] = $langs->trans("Development");
|
if ($conf->global->MAIN_FEATURES_LEVEL > 1) $array_version['development'] = $langs->trans("Development");
|
||||||
$moreforfilter .= '<div class="divsearchfield paddingtop">';
|
$moreforfilter .= '<div class="divsearchfield paddingtop">';
|
||||||
$moreforfilter .= $langs->trans('Version').': '.$form->selectarray('search_version', $array_version, $search_version, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth100');
|
$moreforfilter .= $langs->trans('Version').': '.$form->selectarray('search_version', $array_version, $search_version, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth150', 1);
|
||||||
$moreforfilter .= '</div>';
|
$moreforfilter .= '</div>';
|
||||||
}
|
}
|
||||||
$moreforfilter .= '<div class="divsearchfield paddingtop">';
|
$moreforfilter .= '<div class="divsearchfield paddingtop">';
|
||||||
$moreforfilter .= $langs->trans('Status').': '.$form->selectarray('search_status', array('active'=>$langs->transnoentitiesnoconv("Enabled"), 'disabled'=>$langs->transnoentitiesnoconv("Disabled")), $search_status, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth100');
|
$moreforfilter .= $langs->trans('Status').': '.$form->selectarray('search_status', array('active'=>$langs->transnoentitiesnoconv("Enabled"), 'disabled'=>$langs->transnoentitiesnoconv("Disabled")), $search_status, 1, 0, 0, '', 0, 0, 0, '', 'maxwidth150', 1);
|
||||||
$moreforfilter .= '</div>';
|
$moreforfilter .= '</div>';
|
||||||
$moreforfilter .= ' ';
|
$moreforfilter .= ' ';
|
||||||
$moreforfilter .= '<div class="divsearchfield">';
|
$moreforfilter .= '<div class="divsearchfield">';
|
||||||
$moreforfilter .= '<input type="submit" name="buttonsubmit" class="button" value="'.dol_escape_htmltag($langs->trans("Refresh")).'">';
|
$moreforfilter .= '<input type="submit" name="buttonsubmit" class="button" value="'.dol_escape_htmltag($langs->trans("Refresh")).'">';
|
||||||
$moreforfilter .= ' ';
|
$moreforfilter .= ' ';
|
||||||
$moreforfilter .= '<input type="submit" name="buttonreset" class="button" value="'.dol_escape_htmltag($langs->trans("Reset")).'">';
|
$moreforfilter .= '<input type="submit" name="buttonreset" class="butActionDelete noborderbottom" value="'.dol_escape_htmltag($langs->trans("Reset")).'">';
|
||||||
$moreforfilter .= '</div>';
|
$moreforfilter .= '</div>';
|
||||||
$moreforfilter .= '</div>';
|
$moreforfilter .= '</div>';
|
||||||
|
|
||||||
|
|||||||
@ -203,7 +203,7 @@ print '</td>';
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
|
print '<div class="center"><input type="submit" class="button button-save" value="'.$langs->trans("Save").'"></div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
@ -292,7 +292,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
|
print '<div class="center"><input type="submit" class="button button-save" value="'.$langs->trans("Save").'"></div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
@ -389,7 +389,7 @@ print '</div>';
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
|
print '<div class="center"><input type="submit" class="button button-save" value="'.$langs->trans("Save").'"></div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
|
|||||||
@ -130,7 +130,7 @@ if (empty($action) || $action == 'edit' || $action == 'updateedit')
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br><div class="center">';
|
print '<br><div class="center">';
|
||||||
print '<input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|||||||
@ -192,7 +192,7 @@ print '</td></tr>';
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
|
print '<div class="center"><input type="submit" class="button button-save" value="'.$langs->trans("Save").'"></div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
|
|||||||
@ -51,35 +51,33 @@ if ($cancel) {
|
|||||||
|
|
||||||
if ($action == 'update')
|
if ($action == 'update')
|
||||||
{
|
{
|
||||||
dolibarr_set_const($db, "MAIN_PDF_FORMAT", $_POST["MAIN_PDF_FORMAT"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_PDF_FORMAT", GETPOST("MAIN_PDF_FORMAT"), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_PDF_MARGIN_LEFT", $_POST["MAIN_PDF_MARGIN_LEFT"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_PDF_MARGIN_LEFT", GETPOST("MAIN_PDF_MARGIN_LEFT"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_PDF_MARGIN_RIGHT", $_POST["MAIN_PDF_MARGIN_RIGHT"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_PDF_MARGIN_RIGHT", GETPOST("MAIN_PDF_MARGIN_TOP"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_PDF_MARGIN_TOP", $_POST["MAIN_PDF_MARGIN_TOP"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_PDF_MARGIN_BOTTOM", GETPOST("MAIN_PDF_MARGIN_BOTTOM"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_PDF_MARGIN_BOTTOM", $_POST["MAIN_PDF_MARGIN_BOTTOM"], 'chaine', 0, '', $conf->entity);
|
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_PROFID1_IN_ADDRESS", GETPOST("MAIN_PROFID1_IN_ADDRESS", "nohtml"), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_PROFID1_IN_ADDRESS", GETPOST("MAIN_PROFID1_IN_ADDRESS"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_PROFID2_IN_ADDRESS", GETPOST("MAIN_PROFID2_IN_ADDRESS", "nohtml"), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_PROFID2_IN_ADDRESS", GETPOST("MAIN_PROFID2_IN_ADDRESS"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_PROFID3_IN_ADDRESS", GETPOST("MAIN_PROFID3_IN_ADDRESS", "nohtml"), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_PROFID3_IN_ADDRESS", GETPOST("MAIN_PROFID3_IN_ADDRESS"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_PROFID4_IN_ADDRESS", GETPOST("MAIN_PROFID4_IN_ADDRESS", "nohtml"), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_PROFID4_IN_ADDRESS", GETPOST("MAIN_PROFID4_IN_ADDRESS"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_PROFID5_IN_ADDRESS", GETPOST("MAIN_PROFID5_IN_ADDRESS", "nohtml"), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_PROFID5_IN_ADDRESS", GETPOST("MAIN_PROFID5_IN_ADDRESS"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_PROFID6_IN_ADDRESS", GETPOST("MAIN_PROFID6_IN_ADDRESS", "nohtml"), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_PROFID6_IN_ADDRESS", GETPOST("MAIN_PROFID6_IN_ADDRESS"), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT", $_POST["MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT", GETPOST("MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT"), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_TVAINTRA_NOT_IN_ADDRESS", $_POST["MAIN_TVAINTRA_NOT_IN_ADDRESS"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_TVAINTRA_NOT_IN_ADDRESS", GETPOST("MAIN_TVAINTRA_NOT_IN_ADDRESS"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS", GETPOST("MAIN_GENERATE_DOCUMENTS_HIDE_DETAILS"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DESC", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_DESC"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_DESC", GETPOST("MAIN_GENERATE_DOCUMENTS_HIDE_DESC"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_REF", $_POST["MAIN_GENERATE_DOCUMENTS_HIDE_REF"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_HIDE_REF", GETPOST("MAIN_GENERATE_DOCUMENTS_HIDE_REF"), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
dolibarr_set_const($db, "MAIN_DOCUMENTS_LOGO_HEIGHT", GETPOST("MAIN_DOCUMENTS_LOGO_HEIGHT", 'int'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_DOCUMENTS_LOGO_HEIGHT", GETPOST("MAIN_DOCUMENTS_LOGO_HEIGHT", 'int'), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_INVERT_SENDER_RECIPIENT", $_POST["MAIN_INVERT_SENDER_RECIPIENT"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_INVERT_SENDER_RECIPIENT", GETPOST("MAIN_INVERT_SENDER_RECIPIENT"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_PDF_USE_ISO_LOCATION", $_POST["MAIN_PDF_USE_ISO_LOCATION"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_PDF_USE_ISO_LOCATION", GETPOST("MAIN_PDF_USE_ISO_LOCATION"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS", $_POST["MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS", GETPOST("MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS"), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
|
dolibarr_set_const($db, "MAIN_PDF_MAIN_HIDE_SECOND_TAX", GETPOST("MAIN_PDF_MAIN_HIDE_SECOND_TAX"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_PDF_MAIN_HIDE_SECOND_TAX", $_POST["MAIN_PDF_MAIN_HIDE_SECOND_TAX"], 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_PDF_MAIN_HIDE_THIRD_TAX", GETPOST("MAIN_PDF_MAIN_HIDE_THIRD_TAX"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_PDF_MAIN_HIDE_THIRD_TAX", $_POST["MAIN_PDF_MAIN_HIDE_THIRD_TAX"], 'chaine', 0, '', $conf->entity);
|
|
||||||
|
|
||||||
dolibarr_set_const($db, "PDF_USE_ALSO_LANGUAGE_CODE", GETPOST('PDF_USE_ALSO_LANGUAGE_CODE', 'alpha'), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "PDF_USE_ALSO_LANGUAGE_CODE", GETPOST('PDF_USE_ALSO_LANGUAGE_CODE', 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
@ -338,7 +336,7 @@ print '</table>';
|
|||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '<br><div class="center">';
|
print '<br><div class="center">';
|
||||||
print '<input class="button" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -199,7 +199,7 @@ print '</td></tr>';
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
|
print '<div class="center"><input type="submit" class="button button-save" value="'.$langs->trans("Save").'"></div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
|
|||||||
@ -327,7 +327,7 @@ if ($mode == 'config' && $user->admin) {
|
|||||||
print '<td>'.$printer->profileresprint.'</td>';
|
print '<td>'.$printer->profileresprint.'</td>';
|
||||||
print '<td><input size="60" type="text" name="parameter" value="'.$printer->listprinters[$line]['parameter'].'"></td>';
|
print '<td><input size="60" type="text" name="parameter" value="'.$printer->listprinters[$line]['parameter'].'"></td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print '<div class="center"><input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("Save")).'"></div>';
|
print '<div class="center"><input type="submit" class="button button-save" value="'.dol_escape_htmltag($langs->trans("Save")).'"></div>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
} else {
|
} else {
|
||||||
@ -456,7 +456,7 @@ if ($mode == 'template' && $user->admin) {
|
|||||||
print '<input type="hidden" name="templateid" value="'.$printer->listprinterstemplates[$line]['rowid'].'">';
|
print '<input type="hidden" name="templateid" value="'.$printer->listprinterstemplates[$line]['rowid'].'">';
|
||||||
print '<div class="center"><input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("Add")).'"></div>';
|
print '<div class="center"><input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("Add")).'"></div>';
|
||||||
} else {
|
} else {
|
||||||
print '<div class="center"><input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("Save")).'"></div>';
|
print '<div class="center"><input type="submit" class="button button-save" value="'.dol_escape_htmltag($langs->trans("Save")).'"></div>';
|
||||||
}
|
}
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
|
|||||||
@ -323,7 +323,7 @@ if ($conf->global->USER_PASSWORD_GENERATED == "Perso") {
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<a class="button" id="linkChangePattern">'.$langs->trans("Save").'</a>';
|
print '<a class="button button-save" id="linkChangePattern">'.$langs->trans("Save").'</a>';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
print '<br><br>';
|
print '<br><br>';
|
||||||
|
|
||||||
|
|||||||
@ -196,9 +196,9 @@ if ($action == 'edit')
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br><div class="center">';
|
print '<br><div class="center">';
|
||||||
print '<input class="button" type="submit" name="save" value="'.$langs->trans("Save").'"'.(!count($listofmethods) ? ' disabled' : '').'>';
|
print '<input class="button button-save" type="submit" name="save" value="'.$langs->trans("Save").'"'.(!count($listofmethods) ? ' disabled' : '').'>';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input class="button" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
print '<input class="button button-cancel" type="submit" name="cancel" value="'.$langs->trans("Cancel").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -483,13 +483,15 @@ if ($virtualdiffersfromphysical)
|
|||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.$langs->trans("UseVirtualStockByDefault").'</td>';
|
print '<td>';
|
||||||
|
print $form->textwithpicto($langs->trans("UseRealStockByDefault"), $langs->trans("ReplenishmentCalculation"));
|
||||||
|
print '</td>';
|
||||||
print '<td class="right">';
|
print '<td class="right">';
|
||||||
if ($conf->use_javascript_ajax) {
|
if ($conf->use_javascript_ajax) {
|
||||||
print ajax_constantonoff('STOCK_USE_VIRTUAL_STOCK');
|
print ajax_constantonoff('STOCK_USE_REAL_STOCK_BY_DEFAULT_FOR_REPLENISHMENT');
|
||||||
} else {
|
} else {
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
print $form->selectarray("STOCK_USE_VIRTUAL_STOCK", $arrval, $conf->global->STOCK_USE_VIRTUAL_STOCK);
|
print $form->selectarray("STOCK_USE_REAL_STOCK_BY_DEFAULT_FOR_REPLENISHMENT", $arrval, $conf->global->STOCK_USE_REAL_STOCK_BY_DEFAULT_FOR_REPLENISHMENT);
|
||||||
}
|
}
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|||||||
@ -225,7 +225,7 @@ print '<tr class="oddeven"><td>'.$langs->trans("CurrentTimeZone").'</td><td>'; /
|
|||||||
$a = getServerTimeZoneInt('now');
|
$a = getServerTimeZoneInt('now');
|
||||||
$b = getServerTimeZoneInt('winter');
|
$b = getServerTimeZoneInt('winter');
|
||||||
$c = getServerTimeZoneInt('summer');
|
$c = getServerTimeZoneInt('summer');
|
||||||
$daylight = (is_numeric($c) && is_numeric($b)) ?round($c - $b) : 'unknown';
|
$daylight = round($c - $b);
|
||||||
//print $a." ".$b." ".$c." ".$daylight;
|
//print $a." ".$b." ".$c." ".$daylight;
|
||||||
$val = ($a >= 0 ? '+' : '').$a;
|
$val = ($a >= 0 ? '+' : '').$a;
|
||||||
$val .= ' ('.($a == 'unknown' ? 'unknown' : ($a >= 0 ? '+' : '').($a * 3600)).')';
|
$val .= ' ('.($a == 'unknown' ? 'unknown' : ($a >= 0 ? '+' : '').($a * 3600)).')';
|
||||||
|
|||||||
@ -105,36 +105,21 @@ if (!isset($_GET["testget"]) && !isset($_POST["testpost"]) && !isset($_GET["main
|
|||||||
|
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
print '<tr><td>Sessions support</td><td>';
|
print '<tr><td>Sessions support</td><td>';
|
||||||
|
|
||||||
if (!function_exists("session_id"))
|
if (!function_exists("session_id"))
|
||||||
{
|
{
|
||||||
print '<img src="'.$ErrorPicturePath.'" alt="Error"> '.$langs->trans("ErrorPHPDoesNotSupportSessions");
|
print '<img src="'.$ErrorPicturePath.'" alt="Error"> '.$langs->trans("ErrorPHPDoesNotSupportSessions");
|
||||||
} else {
|
} else {
|
||||||
print '<img src="'.$OkayPicturePath.'" alt="Ok"> '.$langs->trans("PHPSupportSessions");
|
print '<img src="'.$OkayPicturePath.'" alt="Ok"> '.$langs->trans("PHPSupportSessions");
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '<tr><td>UTF-8 support</td><td>';
|
print '<tr><td>UTF-8 support</td><td>';
|
||||||
|
|
||||||
if (!function_exists("utf8_encode"))
|
if (!function_exists("utf8_encode"))
|
||||||
{
|
{
|
||||||
print '<img src="'.$WarningPicturePath.'" alt="Warning"> '.$langs->trans("ErrorPHPDoesNotSupport", "UTF8");
|
print '<img src="'.$WarningPicturePath.'" alt="Warning"> '.$langs->trans("ErrorPHPDoesNotSupport", "UTF8");
|
||||||
} else {
|
} else {
|
||||||
print '<img src="'.$OkayPicturePath.'" alt="Ok"> '.$langs->trans("PHPSupport", "UTF8");
|
print '<img src="'.$OkayPicturePath.'" alt="Ok"> '.$langs->trans("PHPSupport", "UTF8");
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
print '<tr><td>MBString support</td><td>';
|
|
||||||
|
|
||||||
if (!function_exists("mb_check_encoding"))
|
|
||||||
{
|
|
||||||
print '<img src="'.$WarningPicturePath.'" alt="Warning"> '.$langs->trans("ErrorPHPDoesNotSupport", "mbstring");
|
|
||||||
} else {
|
|
||||||
print '<img src="'.$OkayPicturePath.'" alt="Ok"> '.$langs->trans("PHPSupport", "mbstring");
|
|
||||||
}
|
|
||||||
|
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
@ -153,6 +138,28 @@ print '<td align="center">'.$langs->trans("FunctionTest").'</td>';
|
|||||||
print '<td>'.$langs->trans("Result").'</td>';
|
print '<td>'.$langs->trans("Result").'</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
|
$functions = ["mb_check_encoding"];
|
||||||
|
$name = "MBString";
|
||||||
|
|
||||||
|
print "<tr>";
|
||||||
|
print "<td>".$name."</td>";
|
||||||
|
//print getTableColumn($name, $activatedExtensions);
|
||||||
|
print getTableColumn($name, $loadedExtensions);
|
||||||
|
print getTableColumnFunction($functions);
|
||||||
|
print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
|
||||||
|
print "</tr>";
|
||||||
|
|
||||||
|
$functions = ["json_decode"];
|
||||||
|
$name = "JSON";
|
||||||
|
|
||||||
|
print "<tr>";
|
||||||
|
print "<td>".$name."</td>";
|
||||||
|
//print getTableColumn($name, $activatedExtensions);
|
||||||
|
print getTableColumn($name, $loadedExtensions);
|
||||||
|
print getTableColumnFunction($functions);
|
||||||
|
print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
|
||||||
|
print "</tr>";
|
||||||
|
|
||||||
$functions = ["imagecreate"];
|
$functions = ["imagecreate"];
|
||||||
$name = "GD";
|
$name = "GD";
|
||||||
|
|
||||||
@ -186,7 +193,6 @@ if (empty($_SERVER["SERVER_ADMIN"]) || $_SERVER["SERVER_ADMIN"] != 'doliwamp@loc
|
|||||||
print getTableColumn($name, $loadedExtensions);
|
print getTableColumn($name, $loadedExtensions);
|
||||||
print getTableColumnFunction($functions);
|
print getTableColumnFunction($functions);
|
||||||
print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
|
print getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
|
||||||
|
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,7 +231,7 @@ foreach ($phparray as $key => $value)
|
|||||||
print '<td>'.$keyparam.'</td>';
|
print '<td>'.$keyparam.'</td>';
|
||||||
$valtoshow = $keyvalue;
|
$valtoshow = $keyvalue;
|
||||||
if ($keyparam == 'X-ChromePhp-Data') $valtoshow = dol_trunc($keyvalue, 80);
|
if ($keyparam == 'X-ChromePhp-Data') $valtoshow = dol_trunc($keyvalue, 80);
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2" class="wordbreak">';
|
||||||
if ($keyparam == 'Path') $valtoshow = implode('; ', explode(';', trim($valtoshow)));
|
if ($keyparam == 'Path') $valtoshow = implode('; ', explode(';', trim($valtoshow)));
|
||||||
if ($keyparam == 'PATH') $valtoshow = implode('; ', explode(';', trim($valtoshow)));
|
if ($keyparam == 'PATH') $valtoshow = implode('; ', explode(';', trim($valtoshow)));
|
||||||
if ($keyparam == '_SERVER["PATH"]') $valtoshow = implode('; ', explode(';', trim($valtoshow)));
|
if ($keyparam == '_SERVER["PATH"]') $valtoshow = implode('; ', explode(';', trim($valtoshow)));
|
||||||
@ -425,7 +431,7 @@ function getResultColumn($name, array $activated, array $loaded, array $function
|
|||||||
}
|
}
|
||||||
|
|
||||||
$html = "<td>";
|
$html = "<td>";
|
||||||
$html .= $result ? $langs->trans("PHPSupport".$name) : $langs->trans("ErrorPHPDoesNotSupport".$name);
|
$html .= $result ? $langs->trans("PHPSupport", $name) : $langs->trans("ErrorPHPDoesNotSupport".$name);
|
||||||
$html .= "</td>";
|
$html .= "</td>";
|
||||||
|
|
||||||
return $html;
|
return $html;
|
||||||
|
|||||||
@ -25,6 +25,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/events.class.php';
|
||||||
|
|
||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadLangs(array("install", "other", "admin"));
|
$langs->loadLangs(array("install", "other", "admin"));
|
||||||
@ -52,7 +53,7 @@ print load_fiche_titre($langs->trans("Security"), '', 'title_setup');
|
|||||||
print '<span class="opacitymedium">'.$langs->trans("YouMayFindSecurityAdviceHere", 'hhttps://wiki.dolibarr.org/index.php/Security_information').'</span> (<a href="'.$_SERVER["PHP_SELF"].'">'.$langs->trans("Reload").'</a>)<br>';
|
print '<span class="opacitymedium">'.$langs->trans("YouMayFindSecurityAdviceHere", 'hhttps://wiki.dolibarr.org/index.php/Security_information').'</span> (<a href="'.$_SERVER["PHP_SELF"].'">'.$langs->trans("Reload").'</a>)<br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("PHPSetup"), '', '');
|
print load_fiche_titre($langs->trans("PHPSetup"), '', 'folder');
|
||||||
|
|
||||||
// Get version of PHP
|
// Get version of PHP
|
||||||
$phpversion = version_php();
|
$phpversion = version_php();
|
||||||
@ -77,7 +78,7 @@ else {
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print load_fiche_titre($langs->trans("ConfigFile"), '', '');
|
print load_fiche_titre($langs->trans("ConfigFile"), '', 'folder');
|
||||||
|
|
||||||
print '<strong>'.$langs->trans("dolibarr_main_prod").'</strong>: '.$dolibarr_main_prod;
|
print '<strong>'.$langs->trans("dolibarr_main_prod").'</strong>: '.$dolibarr_main_prod;
|
||||||
if (empty($dolibarr_main_prod)) {
|
if (empty($dolibarr_main_prod)) {
|
||||||
@ -94,7 +95,7 @@ print '<br>';
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print load_fiche_titre($langs->trans("Permissions"), '', '');
|
print load_fiche_titre($langs->trans("Permissions"), '', 'folder');
|
||||||
|
|
||||||
print '<strong>'.$langs->trans("PermissionsOnFilesInWebRoot").'</strong>: ';
|
print '<strong>'.$langs->trans("PermissionsOnFilesInWebRoot").'</strong>: ';
|
||||||
// TODO Check permission are read only except for custom dir
|
// TODO Check permission are read only except for custom dir
|
||||||
@ -109,7 +110,7 @@ print '<br>';
|
|||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print load_fiche_titre($langs->trans("DolibarrModules"), '', '');
|
print load_fiche_titre($langs->trans("Modules"), '', 'folder');
|
||||||
|
|
||||||
// Module log
|
// Module log
|
||||||
print '<strong>'.$langs->trans("Syslog").'</strong>: ';
|
print '<strong>'.$langs->trans("Syslog").'</strong>: ';
|
||||||
@ -133,10 +134,12 @@ print '<br>';
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print load_fiche_titre($langs->trans("Menu").' '.$langs->trans("SecuritySetup"), '', '');
|
print load_fiche_titre($langs->trans("Menu").' '.$langs->trans("SecuritySetup"), '', 'folder');
|
||||||
|
|
||||||
//print '<strong>'.$langs->trans("PasswordEncryption").'</strong>: ';
|
//print '<strong>'.$langs->trans("PasswordEncryption").'</strong>: ';
|
||||||
print '<strong>MAIN_SECURITY_HASH_ALGO</strong> = '.$conf->global->MAIN_SECURITY_HASH_ALGO." (Recommanded value: 'password_hash')<br>";
|
print '<strong>MAIN_SECURITY_HASH_ALGO</strong> = '.(empty($conf->global->MAIN_SECURITY_HASH_ALGO) ? 'unset' : '')." ";
|
||||||
|
print '<span class="opacitymedium"> If unset: \'md5\'</span> ';
|
||||||
|
print '<span class="opacitymedium"> - Recommanded value: \'password_hash\'</span><br>';
|
||||||
print '<strong>MAIN_SECURITY_SALT</strong> = '.$conf->global->MAIN_SECURITY_SALT.'<br>';
|
print '<strong>MAIN_SECURITY_SALT</strong> = '.$conf->global->MAIN_SECURITY_SALT.'<br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
// TODO
|
// TODO
|
||||||
@ -153,10 +156,20 @@ print '<br>';
|
|||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print '<strong>'.$langs->trans("SecurityAudit").'</strong>: ';
|
$securityevent = new Events($db);
|
||||||
// TODO Disabled or enabled ?
|
$eventstolog = $securityevent->eventstolog;
|
||||||
print '<br>';
|
|
||||||
|
|
||||||
|
print '<strong>'.$langs->trans("LogEvents").'</strong>: ';
|
||||||
|
// Loop on each event type
|
||||||
|
foreach ($eventstolog as $key => $arr)
|
||||||
|
{
|
||||||
|
if ($arr['id'])
|
||||||
|
{
|
||||||
|
$key = 'MAIN_LOGEVENTS_'.$arr['id'];
|
||||||
|
$value = empty($conf->global->$key) ? '' : $conf->global->$key;
|
||||||
|
if ($value) print $key.', ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -410,7 +410,7 @@ print '</td></tr>';
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<div class="center">';
|
print '<div class="center">';
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button button-save" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -280,7 +280,7 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE))
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!$conf->use_javascript_ajax) {
|
if (!$conf->use_javascript_ajax) {
|
||||||
print '<tr class="impair"><td colspan="3" align="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></td>';
|
print '<tr class="impair"><td colspan="3" align="center"><input type="submit" class="button button-save" value="'.$langs->trans("Save").'"></td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -410,7 +410,7 @@ if (!empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE))
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '<div class="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
|
print '<div class="center"><input type="submit" class="button button-save" value="'.$langs->trans("Save").'"></div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -209,12 +209,9 @@ if (empty($conf->global->MAIN_ENABLE_OVERWRITE_TRANSLATION))
|
|||||||
|
|
||||||
print load_fiche_titre($langs->trans("Translation"), $enabledisablehtml, 'title_setup');
|
print load_fiche_titre($langs->trans("Translation"), $enabledisablehtml, 'title_setup');
|
||||||
|
|
||||||
//print '<span class="opacitymedium">'.$langs->trans("TranslationDesc")."</span><br>\n";
|
|
||||||
//print "<br>\n";
|
|
||||||
|
|
||||||
$current_language_code = $langs->defaultlang;
|
$current_language_code = $langs->defaultlang;
|
||||||
$s = picto_from_langcode($current_language_code);
|
$s = picto_from_langcode($current_language_code);
|
||||||
print '<span class="opacitymedium">'.$form->textwithpicto($langs->trans("CurrentUserLanguage").': <strong>'.$s.' '.$current_language_code.'</strong>', $langs->trans("TranslationDesc")).'</span><br>';
|
print $form->textwithpicto('<span class="opacitymedium">'.$langs->trans("CurrentUserLanguage").':</span> <strong>'.$s.' '.$current_language_code.'</strong>', $langs->trans("TranslationDesc")).'</span><br>';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
@ -344,9 +341,9 @@ if ($mode == 'overwrite')
|
|||||||
if ($action == 'edit' && $obj->rowid == GETPOST('rowid', 'int'))
|
if ($action == 'edit' && $obj->rowid == GETPOST('rowid', 'int'))
|
||||||
{
|
{
|
||||||
print '<input type="hidden" class="button" name="rowid" value="'.$obj->rowid.'">';
|
print '<input type="hidden" class="button" name="rowid" value="'.$obj->rowid.'">';
|
||||||
print '<input type="submit" class="button buttongen" name="save" value="'.dol_escape_htmltag($langs->trans("Save")).'">';
|
print '<input type="submit" class="button buttongen button-save" name="save" value="'.dol_escape_htmltag($langs->trans("Save")).'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print '<input type="submit" class="button buttongen" name="cancel" value="'.dol_escape_htmltag($langs->trans("Cancel")).'">';
|
print '<input type="submit" class="button buttongen button-cancel" name="cancel" value="'.dol_escape_htmltag($langs->trans("Cancel")).'">';
|
||||||
} else {
|
} else {
|
||||||
print '<a class="reposition editfielda paddingrightonly" href="'.$_SERVER['PHP_SELF'].'?rowid='.$obj->rowid.'&entity='.$obj->entity.'&action=edit'.((empty($user->entity) && $debug) ? '&debug=1' : '').'">'.img_edit().'</a>';
|
print '<a class="reposition editfielda paddingrightonly" href="'.$_SERVER['PHP_SELF'].'?rowid='.$obj->rowid.'&entity='.$obj->entity.'&action=edit'.((empty($user->entity) && $debug) ? '&debug=1' : '').'">'.img_edit().'</a>';
|
||||||
print ' ';
|
print ' ';
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||||
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
|
||||||
|
* Copyright (C) 2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -42,6 +43,8 @@ $action = GETPOST('action', 'aZ09');
|
|||||||
$backtopage = GETPOST('backtopage', 'alpha');
|
$backtopage = GETPOST('backtopage', 'alpha');
|
||||||
|
|
||||||
$value = GETPOST('value', 'alpha');
|
$value = GETPOST('value', 'alpha');
|
||||||
|
$label = GETPOST('label', 'alpha');
|
||||||
|
$scandir = GETPOST('scandir', 'alpha');
|
||||||
$type = 'user';
|
$type = 'user';
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -567,7 +567,7 @@ if ($id)
|
|||||||
if (empty($reshook)) fieldListWebsites($fieldlist, $obj, $tabname[$id], 'edit');
|
if (empty($reshook)) fieldListWebsites($fieldlist, $obj, $tabname[$id], 'edit');
|
||||||
|
|
||||||
print '<td colspan="3" class="right"><a name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"> </a><input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
print '<td colspan="3" class="right"><a name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"> </a><input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
|
||||||
print ' <input type="submit" class="button" name="actioncancel" value="'.$langs->trans("Cancel").'"></td>';
|
print ' <input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'"></td>';
|
||||||
} else {
|
} else {
|
||||||
$tmpaction = 'view';
|
$tmpaction = 'view';
|
||||||
$parameters = array('var'=>$var, 'fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
$parameters = array('var'=>$var, 'fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
|
||||||
|
|||||||
@ -116,7 +116,7 @@ if ($action == 'edit')
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
print '<br><div class="center">';
|
print '<br><div class="center">';
|
||||||
print '<input class="button" type="submit" value="'.$langs->trans("Save").'">';
|
print '<input class="button button-save" type="submit" value="'.$langs->trans("Save").'">';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|||||||
@ -129,7 +129,7 @@ print ' '.$langs->trans("Example").': '.$langs->trans("IPListExample");
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td><input type="text" name="API_RESTRICT_ON_IP" value="'.dol_escape_htmltag($conf->global->API_RESTRICT_ON_IP).'"></td>';
|
print '<td><input type="text" name="API_RESTRICT_ON_IP" value="'.dol_escape_htmltag($conf->global->API_RESTRICT_ON_IP).'"></td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print '<input type="submit" class="button" name="save" value="'.dol_escape_htmltag($langs->trans("Save")).'"></td>';
|
print '<input type="submit" class="button button-save" name="save" value="'.dol_escape_htmltag($langs->trans("Save")).'"></td>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user