From 02242e4fc3d7d9723e277f1dec705db279d4f0b0 Mon Sep 17 00:00:00 2001 From: Michele Somma Date: Sat, 23 Jun 2012 22:58:20 +0300 Subject: [PATCH 01/46] Wrong place of "," --- system/cms/modules/widgets/models/widget_m.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/cms/modules/widgets/models/widget_m.php b/system/cms/modules/widgets/models/widget_m.php index f2b89100aa1..b5851ae2319 100644 --- a/system/cms/modules/widgets/models/widget_m.php +++ b/system/cms/modules/widgets/models/widget_m.php @@ -276,8 +276,8 @@ public function update_instance($instance_id, $input) return $this->db->update('widget_instances', array( 'title' => $input['title'], 'widget_area_id' => $input['widget_area_id'], - 'options' => $input['options'] - 'updated_on' => now(), + 'options' => $input['options'], + 'updated_on' => now() )); } From 43a9f5ceb85f91e096a44a314fda784fd30c96ca Mon Sep 17 00:00:00 2001 From: Michele Somma Date: Sat, 23 Jun 2012 23:20:06 +0300 Subject: [PATCH 02/46] Missing global:slug and global:user vars --- system/cms/language/italian/global_lang.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/system/cms/language/italian/global_lang.php b/system/cms/language/italian/global_lang.php index c85ce60c10d..d1d4e20b156 100644 --- a/system/cms/language/italian/global_lang.php +++ b/system/cms/language/italian/global_lang.php @@ -9,6 +9,9 @@ $lang['version_label'] = 'Versione'; $lang['global:author'] = 'Autore'; $lang['global:action'] = 'Azione'; +$lang['global:slug'] = 'Slug'; +$lang['global:user'] = 'User'; + $lang['dialog.delete_message'] = 'Sei sicuro di volerlo eliminare? L\'azione non può essere annullata.'; $lang['dialog.confirm'] = 'Conferma'; From e548762785d6de126314990600222b2a52bba266 Mon Sep 17 00:00:00 2001 From: RyanThompson Date: Wed, 27 Jun 2012 08:52:19 -0500 Subject: [PATCH 03/46] Update 2.1/develop --- .../streams_core/field_types/datetime/field.datetime.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/cms/modules/streams_core/field_types/datetime/field.datetime.php b/system/cms/modules/streams_core/field_types/datetime/field.datetime.php index bcff1eb5139..62569da2d88 100644 --- a/system/cms/modules/streams_core/field_types/datetime/field.datetime.php +++ b/system/cms/modules/streams_core/field_types/datetime/field.datetime.php @@ -448,7 +448,7 @@ public function form_output($data, $entry_id, $field) $hour_count++; } - $date_input .= form_dropdown($data['form_slug'].'_hour', $hours, $date['hour']); + $date_input .= 'at  '.form_dropdown($data['form_slug'].'_hour', $hours, $date['hour'], 'style="min-width: 100px; width:100px;"'); // Minute $minute_count = 0; @@ -469,7 +469,7 @@ public function form_output($data, $entry_id, $field) $minute_count++; } - $date_input .= form_dropdown($data['form_slug'].'_minute', $minutes, $date['minute']); + $date_input .= form_dropdown($data['form_slug'].'_minute', $minutes, $date['minute'], 'style="min-width: 100px; width:100px;"'); // AM/PM $am_pm = array('am' => 'am', 'pm' => 'pm'); @@ -492,7 +492,7 @@ public function form_output($data, $entry_id, $field) } } - $date_input .= form_dropdown($data['form_slug'].'_am_pm', $am_pm, $am_pm_current, 'style="small_select"'); + $date_input .= form_dropdown($data['form_slug'].'_am_pm', $am_pm, $am_pm_current, 'style="min-width: 100px; width:100px;"'); } From de13e672169be300c6303866185de252c1c2a129 Mon Sep 17 00:00:00 2001 From: Christian Giupponi Date: Sun, 1 Jul 2012 16:17:36 +0200 Subject: [PATCH 04/46] Update installer italian lang Update italian language for intallation --- .gitignore | 50 ------------------- installer/language/italian/complete_lang.php | 2 +- installer/language/italian/global_lang.php | 4 +- installer/language/italian/step_1_lang.php | 8 +-- installer/language/italian/step_4_lang.php | 8 +-- .../contact/language/italian/contact_lang.php | 4 +- 6 files changed, 13 insertions(+), 63 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 131f98b0d48..00000000000 --- a/.gitignore +++ /dev/null @@ -1,50 +0,0 @@ -.DS_Store -.buildpath -.project -.settings -assets/cache/* -system/cms/cache/* -system/cms/config/database.php -system/cms/logs/log-*.php -nbproject/ -uploads/* - -addons/* -!addons/shared_addons -addons/shared_addons/* - -!addons/shared_addons/helpers -addons/shared_addons/helpers/* -!addons/shared_addons/helpers/index.html - -!addons/shared_addons/libraries -addons/shared_addons/libraries/* -!addons/shared_addons/libraries/index.html - -!addons/shared_addons/modules -addons/shared_addons/modules/* -!addons/shared_addons/modules/galleries -!addons/shared_addons/modules/index.html - -!addons/shared_addons/widgets -addons/shared_addons/widgets/* -!addons/shared_addons/widgets/google_maps -!addons/shared_addons/widgets/twitter_feed -!addons/shared_addons/widgets/index.html - -!addons/shared_addons/themes -addons/shared_addons/themes/* -!addons/shared_addons/themes/conjuction -!addons/shared_addons/themes/minimal -!addons/shared_addons/themes/index.html - -!addons/shared_addons/plugins -addons/shared_addons/plugins/* -!addons/shared_addons/plugins/robots.php -!addons/shared_addons/plugins/example.php -!addons/shared_addons/plugins/index.html - -!addons/shared_addons/field_types -addons/shared_addons/field_types/* -!addons/shared_addons/field_types/index.html -system/cms/config/config.php diff --git a/installer/language/italian/complete_lang.php b/installer/language/italian/complete_lang.php index b0377fa4451..1164d5f32f9 100644 --- a/installer/language/italian/complete_lang.php +++ b/installer/language/italian/complete_lang.php @@ -5,7 +5,7 @@ $lang['intro_text'] = 'PyroCMS è stato installato ed è pronot! Per favore entra nel pannello di controllo con i seguenti parametri.'; $lang['email'] = 'E-mail'; $lang['password'] = 'Password'; -$lang['show_password'] = 'Show Password?'; #translate +$lang['show_password'] = 'Mostrare password?'; $lang['outro_text'] = 'Ed infine, elimina la cartella installer dal tuo server perchè se lasciata al suo posto può permettere l\'hackeraggio del tuo sito.'; $lang['go_website'] = 'Vai al sito'; diff --git a/installer/language/italian/global_lang.php b/installer/language/italian/global_lang.php index 714edd2381d..e1e3d1b66c4 100644 --- a/installer/language/italian/global_lang.php +++ b/installer/language/italian/global_lang.php @@ -7,5 +7,5 @@ $lang['step4'] = 'Passo #4'; $lang['final'] = 'Passo Finale'; -$lang['installer.passwords_match'] = "Passwords Match."; #translate -$lang['installer.passwords_dont_match'] = "Passwords Don\'t Match."; #translate \ No newline at end of file +$lang['installer.passwords_match'] = "Le password coincidono."; +$lang['installer.passwords_dont_match'] = "Le password non coincidono."; \ No newline at end of file diff --git a/installer/language/italian/step_1_lang.php b/installer/language/italian/step_1_lang.php index 3c7fa3fb6cf..0f02c70bddf 100644 --- a/installer/language/italian/step_1_lang.php +++ b/installer/language/italian/step_1_lang.php @@ -6,7 +6,7 @@ $lang['db_settings'] = 'Impostazioni del Database'; $lang['db_text'] = 'Per verificare la versione del tuo server MySQL devi inserire hostname, username e password nel modulo sottostante. Questi parametri saranno inoltre usati per installare il database.'; -$lang['db_missing'] = 'The mysql database driver for PHP were not found, installation cannot continue. Ask your host or server administrator to install it.'; #translate +$lang['db_missing'] = 'I drivere PHP per il database MySQL non sono stati trovati, non è possibile continuare con l\'installazione. Chiedi all\'amminsitratore del tuo server o al tuo hosting di installarli.'; $lang['server'] = 'Server'; $lang['username'] = 'Username'; @@ -14,9 +14,9 @@ $lang['portnr'] = 'Porta'; $lang['server_settings']= 'Impostazioni Server'; $lang['httpserver'] = 'HTTP Server'; -$lang['httpserver_text']= 'PyroCMS requires a HTTP Server to display dynamic content when a user goes to your website. It looks like you already have one by the fact that you can see this page, but if know exactly which type then PyroCMS can configure itself even better. If you do not know what any of this means just ignore it and carry on with the installation.'; #translate -$lang['rewrite_fail'] = 'You have selected "(Apache with mod_rewrite)" but we are unable to tell if mod_rewrite is enabled on your server. Ask your host if mod_rewrite is enabled or simply install at your own risk.'; -$lang['mod_rewrite'] = 'You have selected "(Apache with mod_rewrite)" but your server does not have the rewrite module enabled. Ask your host to enable it or install PyroCMS using the "Apache (without mod_rewrite)" option.'; +$lang['httpserver_text']= 'PyroCMS richiede un Server HTTP per mostrare il contenuto dinamico quando un utente visita il tuo sito. Sembra che ne possiedi già uno, infatti puoi vedere questa pagina, ma se sai esattamente quale PyroCMS puà configurarsi automaticamente al meglio. Se non sai quale è o non sai cosa tutto questo vuol dire ignora semplicemente il messaggio e vai avanti con l\'installazione.'; +$lang['rewrite_fail'] = 'Hai selezionato "(Apache con mod_rewrite)" ma non siamo in grado di assicurarti che il mod_rewrite sia abilitato sul tuo server. Prova a chiedere al tuo hosting se il mod_rewrite è abilitato o prova ad installarlo a tuo rischio.'; +$lang['mod_rewrite'] = 'Hai selezionato "(Apache con mod_rewrite)" ma il tuo server non ha il modulo abilitato. Chiedi al tuo hosting di abilitarlo o installa PyroCMS utilizzando l\'opzione "(Apache senza mod_rewrite)".'; $lang['step2'] = 'Passo 2'; // messages diff --git a/installer/language/italian/step_4_lang.php b/installer/language/italian/step_4_lang.php index ded435b358a..6a480bc08b4 100644 --- a/installer/language/italian/step_4_lang.php +++ b/installer/language/italian/step_4_lang.php @@ -2,15 +2,15 @@ // labels $lang['header'] = 'Passo 4: Crea il Database'; -$lang['intro_text'] = 'Complete the form below and hit the button labelled "Install" to install PyroCMS. Be sure to install PyroCMS into the right database since all existing changes will be lost!'; +$lang['intro_text'] = 'Completa i campi seguenti e clicca sul pulsante "Installa" per installare PyroCMS. Assicurati di installare PyroCMS nel database corretto perchè tutte le modifiche esistenti saranno perse!'; $lang['db_settings'] = 'Impstazioni Database'; $lang['db_create'] = 'Crea il Database'; $lang['db_notice'] = 'Potrebbe essere necessario farlo da soli'; $lang['default_user'] = 'Utente di Default'; $lang['database'] = 'Database'; -$lang['site_settings'] = 'Site Settings'; #translate -$lang['site_ref'] = 'Site Ref'; #translate +$lang['site_settings'] = 'Impostazioni Sito'; +$lang['site_ref'] = 'Site Ref'; $lang['user_name'] = 'Username'; $lang['first_name'] = 'Nome'; $lang['last_name'] = 'Cognome'; @@ -19,7 +19,7 @@ $lang['conf_password'] = 'Conferma Password'; $lang['finish'] = 'Installa'; -$lang['invalid_db_name'] = 'The database name you entered is invalid. Please use only alphanumeric characters and underscores.'; #translate +$lang['invalid_db_name'] = 'Il nome del database che hai inserito non è valido. Per favore usa solo caratteri alfanumerici e underscores (trattini bassi).'; $lang['error_101'] = 'Il database non è stato trovato. Se hai chiesto all\' installer di crearlo, il problema potrebbero essere i permessi non corretti.'; $lang['error_102'] = 'L\' installer non può aggiungere nessuna tabella al database.'; $lang['error_103'] = 'L\' installer non può inserire dati nel database.'; diff --git a/system/cms/modules/contact/language/italian/contact_lang.php b/system/cms/modules/contact/language/italian/contact_lang.php index 4550b0796f1..07a4e279e19 100644 --- a/system/cms/modules/contact/language/italian/contact_lang.php +++ b/system/cms/modules/contact/language/italian/contact_lang.php @@ -11,6 +11,6 @@ * @since Version 0.9.8 * @filesource */ -$lang['contact_submit_error'] = 'Spiacenti. Sembra che tu abbia provato a inviare il messaggio in modo diretto, questo non &eacuta; consentito.'; +$lang['contact_submit_error'] = 'Spiacenti. Sembra che tu abbia provato a inviare il messaggio in modo diretto, questo non è consentito.'; $lang['contact_sent_text'] = 'Il tuo messaggio è stato inviato. Ti risponderemo il prima possibile.'; -$lang['contact_error_message'] = 'Si &eacuta; verificato un problema durante l\'invio del messaggio. Per favore riprova più tardi.'; \ No newline at end of file +$lang['contact_error_message'] = 'Si è verificato un problema durante l\'invio del messaggio. Per favore riprova più tardi.'; \ No newline at end of file From 5cb9a901f607165b030e8b0c4d1e19e2832830b5 Mon Sep 17 00:00:00 2001 From: Christian Giupponi Date: Sun, 1 Jul 2012 17:11:42 +0200 Subject: [PATCH 05/46] Italian language for Files module Create italian language for Files module --- .../files/language/italian/files_lang.php | 100 ++++++++++++++++++ .../files/language/italian/help_lang.php | 50 +++++++++ .../language/italian/permission_lang.php | 14 +++ 3 files changed, 164 insertions(+) create mode 100644 system/cms/modules/files/language/italian/files_lang.php create mode 100644 system/cms/modules/files/language/italian/help_lang.php create mode 100644 system/cms/modules/files/language/italian/permission_lang.php diff --git a/system/cms/modules/files/language/italian/files_lang.php b/system/cms/modules/files/language/italian/files_lang.php new file mode 100644 index 00000000000..d7700bd0b32 --- /dev/null +++ b/system/cms/modules/files/language/italian/files_lang.php @@ -0,0 +1,100 @@ +oppure
Clicca per selezionare i file'; + +// Context Menu +$lang['files:open'] = 'Apri'; +$lang['files:new_folder'] = 'Nuova cartella'; +$lang['files:upload'] = 'Carica'; +$lang['files:rename'] = 'Rinomina'; +$lang['files:delete'] = 'Cancella'; +$lang['files:edit'] = 'Modifica'; +$lang['files:details'] = 'Dettagli'; + +// Folders + +$lang['files:no_folders'] = 'File e cartelle sono gestite come faresti sul tuo computer. Clicca con il tasto destro del mouse nell\'area sottostante per creare la prima cartella. Poi sempre con il tasto destro sulla cartella creata potrai rinominarla, cancellarla e caricare file al suo interno o su un servizio cloud.'; +$lang['files:no_folders_places'] = 'Le cartelle che creerai saranno mostrate qui sottoforma di albero che puoi espandere e contrarre. Clicca su "Cartelle" per vedere la root principale.'; +$lang['files:no_folders_wysiwyg'] = 'Non sono ancora state create cartelle'; +$lang['files:new_folder_name'] = 'Cartella senza nome'; +$lang['files:folder'] = 'Cartella'; +$lang['files:folders'] = 'Cartelle'; +$lang['files:select_folder'] = 'Seleziona una cartella'; +$lang['files:subfolders'] = 'Sottocartelle'; +$lang['files:root'] = 'Root'; +$lang['files:no_subfolders'] = 'Non ci sono sottocartelle'; +$lang['files:folder_not_empty'] = 'Devi prima cancellare il contenuto di "%s"'; +$lang['files:mkdir_error'] = 'Non è stato possibile creare %s. Devi crearla manualmente'; +$lang['files:chmod_error'] = 'La cartella di upload non è scrivibile. Deve avere i permessi a 0777'; +$lang['files:location_saved'] = 'La locazione della cartella è stata salvata'; +$lang['files:container_exists'] = '"%s" esiste di già. Salva per linkare i contenuti a questa cartella'; +$lang['files:container_not_exists'] = '"%s" non esiste nel tuo account. Salva per provare a crearla'; +$lang['files:error_container'] = '"%s" non puà essere creata e non si riesce a determinarne il motivo'; +$lang['files:container_created'] = '"%s" è stata creata e ora è linkata a questa cartella'; +$lang['files:unwritable'] = '"%s" non è scrivibile, per favore imposta i suoi permessi a 0777'; +$lang['files:specify_valid_folder'] = 'Devi indicare una cartella per caricare i file'; +$lang['files:enable_cdn'] = 'Devi abilitare il CDN per "%s" attraverso il tuo pannello di controllo Rackspace prima di poter sincronizzare'; +$lang['files:synchronization_started'] = 'Avvio sincronizzazione'; +$lang['files:synchronization_complete'] = 'Sincronizzazione per "%s" terminata'; +$lang['files:untitled_folder'] = 'Cartella senza nome'; + +// Files +$lang['files:no_files'] = 'File non trovato'; +$lang['files:file_uploaded'] = '"%s" è stato caricato'; +$lang['files:unsuccessful_fetch'] = 'Non è stato possibile leggere "%s". Sicuro che sia un file pubblico?'; +$lang['files:invalid_container'] = '"%s" sembra non essere un contenitore valido.'; +$lang['files:no_records_found'] = 'Non sono stati trovati risultati'; +$lang['files:invalid_extension'] = '"%s" ha una estensione che non è ammessa'; +$lang['files:upload_error'] = 'L\'upload del fil è fallito'; +$lang['files:description_saved'] = 'La descrizione del file è stata salvata'; +$lang['files:file_moved'] = '"%s" è stato spostato con successo'; +$lang['files:exceeds_server_setting'] = 'Il server non può gestire file così grossi'; +$lang['files:exceeds_allowed'] = 'Il file eccede la dimensione massima'; +$lang['files:file_type_not_allowed'] = 'Questo tipo di file non è ammesso'; +$lang['files:type_a'] = 'Audio'; +$lang['files:type_v'] = 'Video'; +$lang['files:type_d'] = 'Documento'; +$lang['files:type_i'] = 'Immagine'; +$lang['files:type_o'] = 'Altro'; + +/* End of file files_lang.php */ \ No newline at end of file diff --git a/system/cms/modules/files/language/italian/help_lang.php b/system/cms/modules/files/language/italian/help_lang.php new file mode 100644 index 00000000000..a354d9dd524 --- /dev/null +++ b/system/cms/modules/files/language/italian/help_lang.php @@ -0,0 +1,50 @@ +Overview
+

The files module is an excellent way for the site admin to manage the files in use on the site. +All images or files that are inserted into pages, galleries, or blog posts are stored here. +For page content images you may upload them directly from the WYSIWYG editor or you can upload them here and just insert them via WYSIWYG.

+

The files interface works much like a local file system: it uses the right click to show a context menu. Everything in the middle pane is clickable.

+ +
Managing Folders
+

After you create the top level folder or folders you may create as many subfolders as you need such as blog/images/screenshots/ or pages/audio/. +The folder names are for your use only, the name is not displayed in the download link on the front end. +To manage a folder either right click on it and select an action from the resulting menu or double click on the folder to open it. +You can also click on folders in the left column to open them.

+

If cloud providers are enabled you will be able to set the location of the folder by right clicking on the folder and then selecting Details. +You can then select a location (for example \"Amazon S3\") and put in the name of your remote bucket or container. If the bucket or container does +not exist it will be created when you click Save. Note that you can only change the location of an empty folder.

+ +
Managing Files
+

To manage files navigate to the folder using the folder tree in the left column or by clicking on the folder in the center pane. +Once you are viewing the files you may edit them by right clicking on them. You can also order them by dragging them into position. Note +that if you have folders and files in the same parent folder the folders will always be displayed first followed by the files.

+ +
Uploading Files
+

After right clicking the desired folder an upload window will appear. +You may add files by either dropping them in the Upload Files box or by clicking in the box and choosing the files from your standard file dialog. +You can select multiple files by holding your Control/Command or Shift key while clicking them. The selected files will display in a list at the bottom of the screen. +You may then either delete unnecessary files from the list or if satisfied click Upload to start the upload process.

+

If you get a warning about the files size being too large be advised that many hosts do not allow file uploads over 2MB. +Many modern cameras produce images in exess of 5MB so it is very common to run into this issue. +To remedy this limitation you may either ask your host to change the upload limit or you may wish to resize your images before uploading. +Resizing has the added advantage of faster upload times. You may change the upload limit in +CP > Files > Settings also but it is secondary to the host's limitation. For example if the host allows a 50MB upload you can still limit the size +of the upload by setting a maximum of \"20\" (for example) in CP > Files > Settings.

+ +
Synchronizing Files
+

If you are storing files with a cloud provider you may want to use the Synchronize function. This allows you to \"refresh\" +your database of files to keep it up to date with the remote storage location. For example if you have another service +that dumps files into a folder on Amazon that you want to display in your weekly blog post you can simply go to your folder +that is linked to that bucket and click Synchronize. This will pull down all the available information from Amazon and +store it in the database as if the file was uploaded via the Files interface. The files are now available to be inserted into page content, +your blog post, or etc. If files have been deleted from the remote bucket since your last Synchronize they will now be removed from +the database also.

+ +
Search
+

You may search all of your files and folders by typing a search term in the right column and then hitting Enter. The first +5 folder matches and the first 5 file matches will be returned. When you click on an item its containing folder will be displayed +and the items that match your search will be highlighted. Items are searched using the folder name, file name, extension, +location, and remote container name.

"; \ No newline at end of file diff --git a/system/cms/modules/files/language/italian/permission_lang.php b/system/cms/modules/files/language/italian/permission_lang.php new file mode 100644 index 00000000000..bb8a7ddc8e3 --- /dev/null +++ b/system/cms/modules/files/language/italian/permission_lang.php @@ -0,0 +1,14 @@ + Date: Sun, 1 Jul 2012 17:13:46 +0200 Subject: [PATCH 06/46] Update Italian Group module Update italian language --- system/cms/modules/groups/language/italian/group_lang.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/cms/modules/groups/language/italian/group_lang.php b/system/cms/modules/groups/language/italian/group_lang.php index bd4ce46db96..179ac96bc67 100644 --- a/system/cms/modules/groups/language/italian/group_lang.php +++ b/system/cms/modules/groups/language/italian/group_lang.php @@ -5,7 +5,7 @@ // labels $lang['groups.title'] = 'Title'; $lang['groups.name'] = 'Nome'; -$lang['groups.short_name'] = 'Short Name'; #translate +$lang['groups.short_name'] = 'Soprannome'; // titles $lang['groups.index_title'] = 'Elenco dei Gruppi'; @@ -19,7 +19,7 @@ $lang['groups.edit_success'] = 'Il gruppo "%s" è stato salvato.'; $lang['groups.edit_error'] = 'Il gruppo "%s" non può essere salvato.'; $lang['groups.delete_success'] = 'Il gruppo è stato eliminato con successo.'; -$lang['groups.delete_error'] = 'There was an error deleting this group. You must delete all users associated with this group before deleting the group.'; +$lang['groups.delete_error'] = 'Si è verificato un errore nel cancelalre questo gruppo. Devi cancellare prima tutti gli utenti che sono associati al gruppo.'; $lang['groups.already_exist_error'] = 'Esiste già un gruppo chiamato "%s".'; /* End of file group_lang.php */ \ No newline at end of file From cb466fa286c6c13807069d663355f6ebb1ee1a56 Mon Sep 17 00:00:00 2001 From: Christian Giupponi Date: Sun, 1 Jul 2012 17:16:39 +0200 Subject: [PATCH 07/46] Fixed typo Fixed typo --- .../cms/modules/redirects/language/italian/redirects_lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/cms/modules/redirects/language/italian/redirects_lang.php b/system/cms/modules/redirects/language/italian/redirects_lang.php index 75cc42dd3bd..fed258aab4b 100644 --- a/system/cms/modules/redirects/language/italian/redirects_lang.php +++ b/system/cms/modules/redirects/language/italian/redirects_lang.php @@ -24,7 +24,7 @@ $lang['redirects.add_error'] = 'Il nuovo reindirizamento non può essere salvato, riprova più tardi.'; $lang['redirects.edit_success'] = 'Le modifiche a questo reindirizamento sono state salvate.'; $lang['redirects.edit_error'] = 'Le modifiche a questo reindirizamento non possono essere salvate, riprova più tardi.'; -$lang['redirects.mass_delete_error'] = 'C\'è stato un errore nell\ eliminare il reindirizamento "%s".'; +$lang['redirects.mass_delete_error'] = 'C\'è stato un errore nell\' eliminare il reindirizamento "%s".'; $lang['redirects.mass_delete_success'] = '%s reindirizamenti su %s eliminati con successo.'; $lang['redirects.no_select_error'] = 'Devi selezionare almeno un reindirizamento da eliminare.'; $lang['redirects.request_conflict_error'] = 'Esiste già un reindirizamento per "%s".'; \ No newline at end of file From eaeaee809641daea6ce403654b0103ac4e46190b Mon Sep 17 00:00:00 2001 From: Christian Giupponi Date: Sun, 1 Jul 2012 17:18:11 +0200 Subject: [PATCH 08/46] Created italian lang for search module Italian Lang --- .../cms/modules/search/language/italian/search_lang.php | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 system/cms/modules/search/language/italian/search_lang.php diff --git a/system/cms/modules/search/language/italian/search_lang.php b/system/cms/modules/search/language/italian/search_lang.php new file mode 100644 index 00000000000..5aa86fc098c --- /dev/null +++ b/system/cms/modules/search/language/italian/search_lang.php @@ -0,0 +1,8 @@ + Date: Sun, 1 Jul 2012 17:21:30 +0200 Subject: [PATCH 09/46] Fixed typo Fixed typo --- .../templates/language/italian/templates_lang.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/system/cms/modules/templates/language/italian/templates_lang.php b/system/cms/modules/templates/language/italian/templates_lang.php index ebb10ddc888..4bcd2358a5e 100644 --- a/system/cms/modules/templates/language/italian/templates_lang.php +++ b/system/cms/modules/templates/language/italian/templates_lang.php @@ -16,17 +16,17 @@ $lang['templates.user_defined_title'] = 'Template definiti dall\'utente'; // Messages -$lang['templates.tmpl_create_success'] = 'Il template email "%s" &eacuta; stato salvato.'; -$lang['templates.tmpl_create_error'] = 'Il template email "%s" non &eacuta; stato salvato.'; +$lang['templates.tmpl_create_success'] = 'Il template email "%s" é stato salvato.'; +$lang['templates.tmpl_create_error'] = 'Il template email "%s" non é stato salvato.'; $lang['templates.tmpl_edit_success'] = 'Le modifiche effettuate al template email "%s" sono state salvate.'; $lang['templates.tmpl_edit_error'] = 'Le modifiche effettuate al template email "%s" non sono state salvate.'; -$lang['templates.tmpl_clone_success'] = '"%s" &eacuta; stato clonato. Ora puoi modificarlo come preferisci.'; +$lang['templates.tmpl_clone_success'] = '"%s" é stato clonato. Ora puoi modificarlo come preferisci.'; $lang['templates.tmpl_clone_error'] = '"%s" non &acuta; stato possibile clonarlo. Per favore riprova.'; -$lang['templates.single_delete_success'] = 'Il template email &eacuta; stato cancellato.'; +$lang['templates.single_delete_success'] = 'Il template email é stato cancellato.'; $lang['templates.mass_delete_success'] = 'Cancellati con successo %s template email su %s.'; -$lang['templates.mass_delete_error'] = 'Si &eacuta; verificato un errore nel tentativo di cancellare il template "%s".'; -$lang['templates.default_delete_error'] = 'Si &eacuta; verificato un errore. Il template di default non può essere eliminato.'; +$lang['templates.mass_delete_error'] = 'Si é verificato un errore nel tentativo di cancellare il template "%s".'; +$lang['templates.default_delete_error'] = 'Si é verificato un errore. Il template di default non può essere eliminato.'; $lang['templates.no_select_error'] = 'Devi prima selezionare un template.'; -$lang['templates.already_exist_error'] = 'Un email template dal nome "%s" esiste di già.'; +$lang['templates.already_exist_error'] = 'Un email template dal nome "%s" esiste di già.'; /* End of file templates_lang.php */ \ No newline at end of file From 0ebeda5ce7c0c8dcd32d57d2a2fa68d00b73159d Mon Sep 17 00:00:00 2001 From: Christian Giupponi Date: Sun, 1 Jul 2012 17:22:55 +0200 Subject: [PATCH 10/46] fixed typo fixed typo --- system/cms/modules/users/language/italian/ion_auth_lang.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/cms/modules/users/language/italian/ion_auth_lang.php b/system/cms/modules/users/language/italian/ion_auth_lang.php index e03d4ac0e77..ef8a60df0fa 100644 --- a/system/cms/modules/users/language/italian/ion_auth_lang.php +++ b/system/cms/modules/users/language/italian/ion_auth_lang.php @@ -18,8 +18,8 @@ // Account Creation $lang['account_creation_successful'] = 'Account creato con successo.'; $lang['account_creation_unsuccessful'] = 'Impossibile creare l\'account.'; -$lang['account_creation_duplicate_email'] = 'Email già in uso o non valida.'; -$lang['account_creation_duplicate_username'] = 'Nome utente già in uso o non valido.'; +$lang['account_creation_duplicate_email'] = 'Email già in uso o non valida.'; +$lang['account_creation_duplicate_username'] = 'Nome utente già in uso o non valido.'; // Password From e3e631758bf597263ac63e7a4863395edec40da4 Mon Sep 17 00:00:00 2001 From: Christian Giupponi Date: Sun, 1 Jul 2012 18:04:16 +0200 Subject: [PATCH 11/46] Other italian language fixes Fixes --- .../language/italian/calendar_lang.php | 10 +++++----- .../language/italian/form_validation_lang.php | 15 ++++++++------- .../codeigniter/language/italian/ftp_lang.php | 2 +- .../language/italian/imglib_lang.php | 12 ++++++------ .../language/italian/profiler_lang.php | 4 ++-- .../language/italian/upload_lang.php | 18 +++++++++--------- 6 files changed, 31 insertions(+), 30 deletions(-) diff --git a/system/codeigniter/language/italian/calendar_lang.php b/system/codeigniter/language/italian/calendar_lang.php index 16372546d70..0a5881c6c71 100644 --- a/system/codeigniter/language/italian/calendar_lang.php +++ b/system/codeigniter/language/italian/calendar_lang.php @@ -19,11 +19,11 @@ $lang['cal_fri'] = "Ven"; $lang['cal_sat'] = "Sab"; $lang['cal_sunday'] = "Domenica"; -$lang['cal_monday'] = "Lunedì"; -$lang['cal_tuesday'] = "Martedì"; -$lang['cal_wednesday'] = "Mercoledì"; -$lang['cal_thursday'] = "Giovedì"; -$lang['cal_friday'] = "Venerdì"; +$lang['cal_monday'] = "Lunedì"; +$lang['cal_tuesday'] = "Martedì"; +$lang['cal_wednesday'] = "Mercoledì"; +$lang['cal_thursday'] = "Giovedì"; +$lang['cal_friday'] = "Venerd'"; $lang['cal_saturday'] = "Sabato"; $lang['cal_jan'] = "Gen"; $lang['cal_feb'] = "Feb"; diff --git a/system/codeigniter/language/italian/form_validation_lang.php b/system/codeigniter/language/italian/form_validation_lang.php index 9cfbc232944..fd31f11ac8a 100644 --- a/system/codeigniter/language/italian/form_validation_lang.php +++ b/system/codeigniter/language/italian/form_validation_lang.php @@ -2,26 +2,27 @@ /* Translation made By Alessandro Piconi: all update on invernomuto.net */ /* Date 18/09/2009 */ /* Modified by Nicola Tudino */ +/* Update by Christian Giupponi */ /* Date 04/11/2010 */ -$lang['required'] = "Il campo %s è necessario."; +$lang['required'] = "Il campo %s è necessario."; $lang['isset'] = "Il campo %s deve avere un valore."; $lang['valid_email'] = "Il campo %s deve contenere un indirizzo email valido."; $lang['valid_emails'] = "Il campo %s deve contenere tutti indirizzi email validi."; $lang['valid_url'] = "Il campo %s deve contenere un URL valido."; -$lang['valid_ip'] = "Il campo %s deve contenenre un indirizzo IP valido."; +$lang['valid_ip'] = "Il campo %s deve contenere un indirizzo IP valido."; $lang['min_length'] = "Il campo %s deve essere composto da almeno %s caratteri."; $lang['max_length'] = "Il campo %s deve essere composto da meno di %s caratteri."; -$lang['exact_length'] = "Il campo %s deve essere composto esattamente da %s caratetteri."; -$lang['alpha'] = "Il campo %s deve contenere solo caratterti alfabetici."; +$lang['exact_length'] = "Il campo %s deve essere composto esattamente da %s caratteri."; +$lang['alpha'] = "Il campo %s deve contenere solo caratteri alfabetici."; $lang['alpha_numeric'] = "Il campo %s deve contenere solo caratteri alfa-numerici."; $lang['alpha_dash'] = "Il campo %s deve contenere solo caratteri alfa-numerici, underscore e trattini."; $lang['numeric'] = "Il campo %s deve contenere un numero."; $lang['is_numeric'] = "Il campo %s deve contenere un numero."; $lang['integer'] = "Il campo %s deve contenere un intero."; -$lang['regex_match'] = "The %s field is not in the correct format."; #translate -$lang['matches'] = "Il campo %s non è uguale al campo %s."; -$lang['is_natural'] = "Il campo %s deve contenenre un numero."; +$lang['regex_match'] = "Il campo %s non è nel formato corretto."; +$lang['matches'] = "Il campo %s non è uguale al campo %s."; +$lang['is_natural'] = "Il campo %s deve contenere un numero."; $lang['is_natural_no_zero'] = "Il campo %s deve contenere un numero più grande di zero."; diff --git a/system/codeigniter/language/italian/ftp_lang.php b/system/codeigniter/language/italian/ftp_lang.php index ab90a44af7b..5dd63c056c0 100644 --- a/system/codeigniter/language/italian/ftp_lang.php +++ b/system/codeigniter/language/italian/ftp_lang.php @@ -9,7 +9,7 @@ $lang['ftp_unable_to_login'] = "Impossibile effettuare il login al server FTP. Controllare username e password."; $lang['ftp_unable_to_makdir'] = "Impossibile creare la directory specificata."; $lang['ftp_unable_to_changedir'] = "Impossibile cambiare directory."; -$lang['ftp_unable_to_chmod'] = "Impossibile settare i permessi del file. Controllare l'indirizzo. Note: Questa funzionalità è disponibile solo con PHP 5 o superiore."; +$lang['ftp_unable_to_chmod'] = "Impossibile settare i permessi del file. Controllare l'indirizzo. Note: Questa funzionalità è disponibile solo con PHP 5 o superiore."; $lang['ftp_unable_to_upload'] = "Impossibile eseguire l'upload del file specificato. Controllare l'indirizzo."; $lang['ftp_no_source_file'] = "Impossibile localizzare il file sorgente. Controllare l'indirizzo."; $lang['ftp_unable_to_rename'] = "Impossibile rinominare il file."; diff --git a/system/codeigniter/language/italian/imglib_lang.php b/system/codeigniter/language/italian/imglib_lang.php index f8675d021cf..2b8194434c6 100644 --- a/system/codeigniter/language/italian/imglib_lang.php +++ b/system/codeigniter/language/italian/imglib_lang.php @@ -5,21 +5,21 @@ /* Date 04/11/2010 */ $lang['imglib_source_image_required'] = "Occorre specificare una immagine nelle preferenze."; -$lang['imglib_gd_required'] = "La libreria GD è necessaria per questa funzionalità."; +$lang['imglib_gd_required'] = "La libreria GD è necessaria per questa funzionalità."; $lang['imglib_gd_required_for_props'] = "Il tuo server deve supportare la libreria GD per poter determinare le proprietà dell\'immagine."; $lang['imglib_unsupported_imagecreate'] = "Il tuo server non supporta la libreria GD, necessaria a elaborare questo tipo di immagine."; $lang['imglib_gif_not_supported'] = "Le immagini GIF sono spesso non supportate a causa delle restrizioni della licenza. E' necessario utilizzare il formato JPG o PNG."; $lang['imglib_jpg_not_supported'] = "Le immagini JPG non sono supportate."; $lang['imglib_png_not_supported'] = "Le immagini PNG non sono supportate."; $lang['imglib_jpg_or_png_required'] = "Il protocollo per il resize delle immagini specificato nelle preferenze funziona esclusivamente con immagini di tipo JPEG or PNG."; -$lang['imglib_copy_error'] = "Si è verificato un errore durante il tentativo di sostituire il file. Assicurarsi che la directory sia scrivibile."; +$lang['imglib_copy_error'] = "Si è verificato un errore durante il tentativo di sostituire il file. Assicurarsi che la directory sia scrivibile."; $lang['imglib_rotate_unsupported'] = "La rotazione delle immagini sembra non essere supportata dal tuo server."; -$lang['imglib_libpath_invalid'] = "L'indirizzo della libreria delle immagini non è corretto. Impostare l'indirizzo corretto nei settaggi delle immagini."; +$lang['imglib_libpath_invalid'] = "L'indirizzo della libreria delle immagini non è corretto. Impostare l'indirizzo corretto nei settaggi delle immagini."; $lang['imglib_image_process_failed'] = "Lavorazione dell'immagine fallita. Verificare che il server supporti il protocollo scelto e che l'indirizzo della libreria delle immagini sia corretto."; -$lang['imglib_rotation_angle_required'] = "Un angolo di rotazione è necessario per poter eseguire la rotazione di una immagine."; +$lang['imglib_rotation_angle_required'] = "Un angolo di rotazione è necessario per poter eseguire la rotazione di una immagine."; $lang['imglib_writing_failed_gif'] = "immagine GIF."; -$lang['imglib_invalid_path'] = "L'indirizzo dell'immagine non è corretto."; -$lang['imglib_copy_failed'] = "Il tentativo di copiare l'immagine è fallito."; +$lang['imglib_invalid_path'] = "L'indirizzo dell'immagine non è corretto."; +$lang['imglib_copy_failed'] = "Il tentativo di copiare l'immagine è fallito."; $lang['imglib_missing_font'] = "Impossibile trovare la font da utilizzare."; $lang['imglib_save_failed'] = "Impossibile salvare l'immagine. Verificare che l'immagine e la directory siano scrivibili."; diff --git a/system/codeigniter/language/italian/profiler_lang.php b/system/codeigniter/language/italian/profiler_lang.php index 33e0a6c871a..3c91dea92e8 100644 --- a/system/codeigniter/language/italian/profiler_lang.php +++ b/system/codeigniter/language/italian/profiler_lang.php @@ -12,8 +12,8 @@ $lang['profiler_post_data'] = 'POST DATA'; $lang['profiler_uri_string'] = 'URI STRING'; $lang['profiler_memory_usage'] = 'MEMORY USAGE'; -$lang['profiler_no_db'] = 'Il driver del database non è attualmente caricato'; -$lang['profiler_no_queries'] = 'Nessuna query è stata eseguita'; +$lang['profiler_no_db'] = 'Il driver del database non è attualmente caricato'; +$lang['profiler_no_queries'] = 'Nessuna query è stata eseguita'; $lang['profiler_no_post'] = 'Nessun POST esistente'; $lang['profiler_no_get'] = 'Nessun GET esistente'; $lang['profiler_no_uri'] = 'Nessun URI esistente'; diff --git a/system/codeigniter/language/italian/upload_lang.php b/system/codeigniter/language/italian/upload_lang.php index a55ede96db5..ee197b0d6f2 100644 --- a/system/codeigniter/language/italian/upload_lang.php +++ b/system/codeigniter/language/italian/upload_lang.php @@ -7,19 +7,19 @@ $lang['upload_userfile_not_set'] = "Impossibile trovare nel post una variabile chiamata userfile."; $lang['upload_file_exceeds_limit'] = "Il file supera le dimensioni massime consentite nel file di configurazione del PHP."; $lang['upload_file_exceeds_form_limit'] = "Il file supera le dimensioni massime consentite dall'invio del form."; -$lang['upload_file_partial'] = "Il file &egravae; stato ricevuto solo parzialmente."; -$lang['upload_no_temp_directory'] = "La cartella temporanea è mancante."; +$lang['upload_file_partial'] = "Il file è stato ricevuto solo parzialmente."; +$lang['upload_no_temp_directory'] = "La cartella temporanea è mancante."; $lang['upload_unable_to_write_file'] = "Il file non può essere scritto su disco."; -$lang['upload_stopped_by_extension'] = "L'upload del file è stato interrotto dall\'estensione."; -$lang['upload_no_file_selected'] = "Non è stato selezionato nessun file da caricare."; -$lang['upload_invalid_filetype'] = "Il tipo di file che si sta cercando di caricare non è consentito."; +$lang['upload_stopped_by_extension'] = "L'upload del file è stato interrotto dall\'estensione."; +$lang['upload_no_file_selected'] = "Non è stato selezionato nessun file da caricare."; +$lang['upload_invalid_filetype'] = "Il tipo di file che si sta cercando di caricare non è consentito."; $lang['upload_invalid_filesize'] = "La dimensione del file che si sta cercando di caricare supera il limite consentito."; $lang['upload_invalid_dimensions'] = "L'immagine che si sta cercando di caricare supera il limite massimo di altezza e larghezza."; -$lang['upload_destination_error'] = "Si è verificato un problema durante il tentativo di spostamento del file alla sua destinazione finale."; -$lang['upload_no_filepath'] = "Il percorso di upload non è valido."; +$lang['upload_destination_error'] = "Si è verificato un problema durante il tentativo di spostamento del file alla sua destinazione finale."; +$lang['upload_no_filepath'] = "Il percorso di upload non è valido."; $lang['upload_no_file_types'] = "Non sono stati specificati i tipi di file permessi."; -$lang['upload_bad_filename'] = "Il nome del file che è stato inviato è già presente sul server."; -$lang['upload_not_writable'] = "La cartella di upload non è scrivibile."; +$lang['upload_bad_filename'] = "Il nome del file che è stato inviato è già presente sul server."; +$lang['upload_not_writable'] = "La cartella di upload non è scrivibile."; /* End of file upload_lang.php */ From cd9e2e95039930e0b13728121a89db775e689a54 Mon Sep 17 00:00:00 2001 From: Ryan Thompson Date: Sun, 1 Jul 2012 20:03:21 -0500 Subject: [PATCH 12/46] Lang changes Added some small but useful words for connecting potential inputs / dropdowns. --- system/cms/language/english/global_lang.php | 4 ++++ .../streams_core/field_types/datetime/field.datetime.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/system/cms/language/english/global_lang.php b/system/cms/language/english/global_lang.php index 67a5725925d..2cf9310f369 100644 --- a/system/cms/language/english/global_lang.php +++ b/system/cms/language/english/global_lang.php @@ -92,4 +92,8 @@ $lang['global:keywords'] = 'Keywords'; +$lang['global:or'] = 'or'; +$lang['global:and'] = 'and'; +$lang['global:at'] = 'at'; + /* End of file main_lang.php */ \ No newline at end of file diff --git a/system/cms/modules/streams_core/field_types/datetime/field.datetime.php b/system/cms/modules/streams_core/field_types/datetime/field.datetime.php index 62569da2d88..daae782f832 100644 --- a/system/cms/modules/streams_core/field_types/datetime/field.datetime.php +++ b/system/cms/modules/streams_core/field_types/datetime/field.datetime.php @@ -448,7 +448,7 @@ public function form_output($data, $entry_id, $field) $hour_count++; } - $date_input .= 'at  '.form_dropdown($data['form_slug'].'_hour', $hours, $date['hour'], 'style="min-width: 100px; width:100px;"'); + $date_input .= lang('global:at').'  '.form_dropdown($data['form_slug'].'_hour', $hours, $date['hour'], 'style="min-width: 100px; width:100px;"'); // Minute $minute_count = 0; From 4b9910ce5ffcb4b742dacedbd8c2698b74a9481a Mon Sep 17 00:00:00 2001 From: Christian Giupponi Date: Mon, 2 Jul 2012 15:02:07 +0200 Subject: [PATCH 13/46] Fix language Fix language --- system/cms/modules/files/language/italian/files_lang.php | 2 +- system/cms/modules/files/language/italian/help_lang.php | 2 +- system/cms/modules/files/language/italian/permission_lang.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/system/cms/modules/files/language/italian/files_lang.php b/system/cms/modules/files/language/italian/files_lang.php index d7700bd0b32..7198b5e39b9 100644 --- a/system/cms/modules/files/language/italian/files_lang.php +++ b/system/cms/modules/files/language/italian/files_lang.php @@ -1,7 +1,7 @@ Overview

The files module is an excellent way for the site admin to manage the files in use on the site. All images or files that are inserted into pages, galleries, or blog posts are stored here. diff --git a/system/cms/modules/files/language/italian/permission_lang.php b/system/cms/modules/files/language/italian/permission_lang.php index bb8a7ddc8e3..1f44e95b414 100644 --- a/system/cms/modules/files/language/italian/permission_lang.php +++ b/system/cms/modules/files/language/italian/permission_lang.php @@ -3,7 +3,7 @@ // Files Permissions $lang['files.role_wysiwyg'] = 'Gestisci file tramite WYSIWYG'; $lang['files.role_upload'] = 'Caricamento file'; -$lang['files.role_download_file'] = 'Download File'; +$lang['files.role_download_file'] = 'Download File'; $lang['files.role_edit_file'] = 'Modifica File'; $lang['files.role_delete_file'] = 'Cancella File'; From 7320eecb2815dae9f599d36fec50a5396a7a47a8 Mon Sep 17 00:00:00 2001 From: Christian Giupponi Date: Mon, 2 Jul 2012 15:18:38 +0200 Subject: [PATCH 14/46] fix fix --- installer/language/italian/index_lang.php | 1 + 1 file changed, 1 insertion(+) diff --git a/installer/language/italian/index_lang.php b/installer/language/italian/index_lang.php index 5972a851ffe..4d3d0868ae4 100644 --- a/installer/language/italian/index_lang.php +++ b/installer/language/italian/index_lang.php @@ -5,3 +5,4 @@ $lang['text'] = 'Installare PyroCMS è molto semplice, segui i passaggi ed i messaggi a schermo. In caso di problemi nell\'installazione del sistema non preoccuparti, ti verrà spiegato cosa fare.'; $lang['step1'] = 'Passo 1'; $lang['link'] = 'Vai al primo passo'; + \ No newline at end of file From 6833eb8f86c1da9943c7cc8055c5723358bb930b Mon Sep 17 00:00:00 2001 From: Donald Allen Date: Mon, 2 Jul 2012 08:50:48 -0600 Subject: [PATCH 15/46] Fixed bug for parsing attribute contents with escaped quotes. Orig: https://github.com/happyninjas/lex/commit/ff9aa30554fce47a8bfb6dc7c94143afc2fd8f93 --- system/cms/libraries/Lex/Parser.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/cms/libraries/Lex/Parser.php b/system/cms/libraries/Lex/Parser.php index e1e60ee40ba..503f358631c 100644 --- a/system/cms/libraries/Lex/Parser.php +++ b/system/cms/libraries/Lex/Parser.php @@ -774,12 +774,12 @@ protected function parse_parameters($parameters, $data, $callback) $parameters = $this->inject_extractions($parameters, '__param_str'); $this->in_condition = false; - if (preg_match_all('/(.*?)\s*=\s*(\'|"|&#?\w+;)(.*?)\2/s', trim($parameters), $matches)) + if (preg_match_all('/(.*?)\s*=\s*(\'|"|&#?\w+;)(.*?)(? $attr) { - $return[trim($matches[1][$i])] = $matches[3][$i]; + $return[trim($matches[1][$i])] = stripslashes($matches[3][$i]); } return $return; From 864809a4aff375ad554849ecf2bc96d4f321bd2e Mon Sep 17 00:00:00 2001 From: Christian Giupponi Date: Tue, 3 Jul 2012 11:29:13 +0200 Subject: [PATCH 16/46] gitignore gitignore --- .gitignore | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000000..176c075ede6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,50 @@ +.DS_Store +.buildpath +.project +.settings +assets/cache/* +system/cms/cache/* +system/cms/config/database.php +system/cms/logs/log-*.php +nbproject/ +uploads/* + +addons/* +!addons/shared_addons +addons/shared_addons/* + +!addons/shared_addons/helpers +addons/shared_addons/helpers/* +!addons/shared_addons/helpers/index.html + +!addons/shared_addons/libraries +addons/shared_addons/libraries/* +!addons/shared_addons/libraries/index.html + +!addons/shared_addons/modules +addons/shared_addons/modules/* +!addons/shared_addons/modules/galleries +!addons/shared_addons/modules/index.html + +!addons/shared_addons/widgets +addons/shared_addons/widgets/* +!addons/shared_addons/widgets/google_maps +!addons/shared_addons/widgets/twitter_feed +!addons/shared_addons/widgets/index.html + +!addons/shared_addons/themes +addons/shared_addons/themes/* +!addons/shared_addons/themes/conjuction +!addons/shared_addons/themes/minimal +!addons/shared_addons/themes/index.html + +!addons/shared_addons/plugins +addons/shared_addons/plugins/* +!addons/shared_addons/plugins/robots.php +!addons/shared_addons/plugins/example.php +!addons/shared_addons/plugins/index.html + +!addons/shared_addons/field_types +addons/shared_addons/field_types/* +!addons/shared_addons/field_types/index.html +system/cms/config/config.php \ No newline at end of file From 8cd5d5bc5836ab437900b39a19496f78df2824c7 Mon Sep 17 00:00:00 2001 From: Christian Giupponi Date: Tue, 3 Jul 2012 11:33:06 +0200 Subject: [PATCH 17/46] fixed italian language Fixed italian language --- system/cms/modules/files/language/italian/files_lang.php | 2 +- system/cms/modules/files/language/italian/help_lang.php | 2 +- system/cms/modules/files/language/italian/permission_lang.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/system/cms/modules/files/language/italian/files_lang.php b/system/cms/modules/files/language/italian/files_lang.php index 7198b5e39b9..c3151af3522 100644 --- a/system/cms/modules/files/language/italian/files_lang.php +++ b/system/cms/modules/files/language/italian/files_lang.php @@ -85,7 +85,7 @@ $lang['files:invalid_container'] = '"%s" sembra non essere un contenitore valido.'; $lang['files:no_records_found'] = 'Non sono stati trovati risultati'; $lang['files:invalid_extension'] = '"%s" ha una estensione che non è ammessa'; -$lang['files:upload_error'] = 'L\'upload del fil è fallito'; +$lang['files:upload_error'] = 'L\'upload del file è fallito'; $lang['files:description_saved'] = 'La descrizione del file è stata salvata'; $lang['files:file_moved'] = '"%s" è stato spostato con successo'; $lang['files:exceeds_server_setting'] = 'Il server non può gestire file così grossi'; diff --git a/system/cms/modules/files/language/italian/help_lang.php b/system/cms/modules/files/language/italian/help_lang.php index fcf871c6568..12597139fd8 100644 --- a/system/cms/modules/files/language/italian/help_lang.php +++ b/system/cms/modules/files/language/italian/help_lang.php @@ -47,4 +47,4 @@

You may search all of your files and folders by typing a search term in the right column and then hitting Enter. The first 5 folder matches and the first 5 file matches will be returned. When you click on an item its containing folder will be displayed and the items that match your search will be highlighted. Items are searched using the folder name, file name, extension, -location, and remote container name.

"; \ No newline at end of file +location, and remote container name.

"; \ No newline at end of file diff --git a/system/cms/modules/files/language/italian/permission_lang.php b/system/cms/modules/files/language/italian/permission_lang.php index 1f44e95b414..9f095e70764 100644 --- a/system/cms/modules/files/language/italian/permission_lang.php +++ b/system/cms/modules/files/language/italian/permission_lang.php @@ -10,5 +10,5 @@ $lang['files.role_create_folder'] = 'Crea cartelle'; $lang['files.role_set_location'] = 'Imposta un Cloud Provider'; $lang['files.role_synchronize'] = 'Sincronizzazione con il Cloud'; -$lang['files.role_edit_folder'] = 'MOdifica cartelle'; +$lang['files.role_edit_folder'] = 'Modifica cartelle'; $lang['files.role_delete_folder'] = 'Cancella cartelle'; \ No newline at end of file From 1f4a1b344eb714bcdb836032ad4eb805fd598cc9 Mon Sep 17 00:00:00 2001 From: Christian Giupponi Date: Tue, 3 Jul 2012 11:58:43 +0200 Subject: [PATCH 18/46] fixed typo fixed typo --- installer/language/italian/step_1_lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/language/italian/step_1_lang.php b/installer/language/italian/step_1_lang.php index 0f02c70bddf..4370e930048 100644 --- a/installer/language/italian/step_1_lang.php +++ b/installer/language/italian/step_1_lang.php @@ -6,7 +6,7 @@ $lang['db_settings'] = 'Impostazioni del Database'; $lang['db_text'] = 'Per verificare la versione del tuo server MySQL devi inserire hostname, username e password nel modulo sottostante. Questi parametri saranno inoltre usati per installare il database.'; -$lang['db_missing'] = 'I drivere PHP per il database MySQL non sono stati trovati, non è possibile continuare con l\'installazione. Chiedi all\'amminsitratore del tuo server o al tuo hosting di installarli.'; +$lang['db_missing'] = 'I driver PHP per il database MySQL non sono stati trovati, non è possibile continuare con l\'installazione. Chiedi all\'amminsitratore del tuo server o al tuo hosting di installarli.'; $lang['server'] = 'Server'; $lang['username'] = 'Username'; From b275b11ff56a515a7c83034f16f5f3fcba3d2903 Mon Sep 17 00:00:00 2001 From: khaliltabbal Date: Tue, 3 Jul 2012 10:26:15 -0400 Subject: [PATCH 19/46] French translations --- system/cms/modules/blog/language/french/blog_lang.php | 4 ++-- .../modules/contact/language/french/contact_lang.php | 2 +- .../cms/modules/files/language/french/files_lang.php | 2 +- .../modules/settings/language/french/settings_lang.php | 4 ++-- .../cms/modules/sitemap/language/french/help_lang.php | 10 ++++------ .../streams_core/language/french/pyrostreams_lang.php | 4 ++-- 6 files changed, 12 insertions(+), 14 deletions(-) diff --git a/system/cms/modules/blog/language/french/blog_lang.php b/system/cms/modules/blog/language/french/blog_lang.php index 4cd44645398..dc4c562e4f3 100644 --- a/system/cms/modules/blog/language/french/blog_lang.php +++ b/system/cms/modules/blog/language/french/blog_lang.php @@ -1,7 +1,7 @@ CKEditor\'s documentation.'; #translate +$lang['settings_ckeditor_config'] = 'Configuration CKEditor'; +$lang['settings_ckeditor_config_desc'] = 'Vous pouvez trouver une liste d\'éléments de configuration dans la documentation de CKEditor.'; $lang['settings_enable_registration'] = 'Activer l\'enregistrement des utilisateurs'; $lang['settings_enable_registration_desc'] = 'Autoriser les utilisateurs à s\'inscrire sur votre siteAllow .'; diff --git a/system/cms/modules/sitemap/language/french/help_lang.php b/system/cms/modules/sitemap/language/french/help_lang.php index 3e0a180bc33..b2309c0b91e 100644 --- a/system/cms/modules/sitemap/language/french/help_lang.php +++ b/system/cms/modules/sitemap/language/french/help_lang.php @@ -1,9 +1,7 @@ Overview -

The sitemap module automatically generates an index page and an XML file suitable for search crawlers. -See sitemaps.org for more information. -

'; #translate \ No newline at end of file +$lang['help_body'] = '

Général

+

Le module Sitemap, génère automatiquement une page d\'index et un fichier XML optimisé pour les moteurs de recherche. +Vous référer à sitemaps.org pour plus d\'informations. +

'; \ No newline at end of file diff --git a/system/cms/modules/streams_core/language/french/pyrostreams_lang.php b/system/cms/modules/streams_core/language/french/pyrostreams_lang.php index ca19d066cb4..95a10bafd5b 100644 --- a/system/cms/modules/streams_core/language/french/pyrostreams_lang.php +++ b/system/cms/modules/streams_core/language/french/pyrostreams_lang.php @@ -55,7 +55,7 @@ $lang['streams.stream_slug_not_unique'] = "Ce slug de Flux est déjà utilisé."; $lang['streams.field_unique'] = "Le Champ %s doit être unique."; $lang['streams.field_is_required'] = "Le Champ %s est requis."; -$lang['streams.date_out_or_range'] = "The date you have chosen is out of the acceptable range."; #translate +$lang['streams.date_out_or_range'] = "La date que vous avez sélectionnée est en dehors de l\intervalle de temps acceptable."; /* Field Labels */ @@ -97,7 +97,7 @@ $lang['streams.stream_admin'] = "Administration des Flux"; $lang['streams.list_streams'] = "Lister les Flux"; $lang['streams.sure'] = "Êtes vous sur ?"; -$lang['streams.field_assignments'] = "Stream Field Assignments"; // #translate +$lang['streams.field_assignments'] = "Assignement des Champs de Flux"; $lang['streams.stream_name'] = "Nom du Flux"; $lang['streams.stream_slug'] = "Slug du Flux"; $lang['streams.about'] = "A propos"; From 8a576088e20209cceee69ab1d8e061264b817648 Mon Sep 17 00:00:00 2001 From: khaliltabbal Date: Wed, 4 Jul 2012 12:57:00 -0400 Subject: [PATCH 20/46] 2.1/develop : french translations --- .../users/language/french/user_lang.php | 221 +++++++++--------- 1 file changed, 110 insertions(+), 111 deletions(-) diff --git a/system/cms/modules/users/language/french/user_lang.php b/system/cms/modules/users/language/french/user_lang.php index 2ee62dd623c..3b314d7a822 100644 --- a/system/cms/modules/users/language/french/user_lang.php +++ b/system/cms/modules/users/language/french/user_lang.php @@ -1,40 +1,40 @@ Etape 1 : Enregistrez-vous'; -$lang['user_register_step2'] = 'Etape 2 : Activation'; +$lang['user_register_header'] = 'Enregistrement'; +$lang['user_register_step1'] = 'Etape 1 : Enregistrez-vous'; +$lang['user_register_step2'] = 'Etape 2 : Activation'; -$lang['user_login_header'] = 'Login'; +$lang['user_login_header'] = 'Login'; // titles -$lang['user_add_title'] = 'Créer un utilisateur'; -$lang['user_list_title'] = 'Lister les utilisateurs'; -$lang['user_inactive_title'] = 'Utilisateurs inactifs'; -$lang['user_active_title'] = 'Utilisateurs actifs'; +$lang['user_add_title'] = 'Créer un utilisateur'; +$lang['user_list_title'] = 'Lister les utilisateurs'; +$lang['user_inactive_title'] = 'Utilisateurs inactifs'; +$lang['user_active_title'] = 'Utilisateurs actifs'; $lang['user_registred_title'] = 'Utilisateurs enregistrés'; // labels -$lang['user_edit_title'] = 'Modifier l\'utilisateur "%s"'; -$lang['user_details_label'] = 'Détails'; -$lang['user_first_name_label'] = 'Prénom'; -$lang['user_last_name_label'] = 'Nom'; -$lang['user_email_label'] = 'E-mail'; -$lang['user_group_label'] = 'Rôle'; -$lang['user_activate_label'] = 'Activé'; -$lang['user_password_label'] = 'Mot de passe'; +$lang['user_edit_title'] = 'Modifier l\'utilisateur "%s"'; +$lang['user_details_label'] = 'Détails'; +$lang['user_first_name_label'] = 'Prénom'; +$lang['user_last_name_label'] = 'Nom'; +$lang['user_email_label'] = 'E-mail'; +$lang['user_group_label'] = 'Rôle'; +$lang['user_activate_label'] = 'Activé'; +$lang['user_password_label'] = 'Mot de passe'; $lang['user_password_confirm_label'] = 'Confirmez mot de passe'; -$lang['user_name_label'] = 'Surnom'; -$lang['user_joined_label'] = 'Inscrit'; -$lang['user_last_visit_label'] = 'Dernière visite'; -$lang['user_never_label'] = 'Jamais'; +$lang['user_name_label'] = 'Surnom'; +$lang['user_joined_label'] = 'Inscrit'; +$lang['user_last_visit_label'] = 'Dernière visite'; +$lang['user_never_label'] = 'Jamais'; $lang['user_no_inactives'] = 'Il n\'y a aucun utilisateurs actifs.'; $lang['user_no_registred'] = 'Il n\'y a aucun utilisateurs enregistrés.'; @@ -45,131 +45,130 @@ // -- Registration / Activation / Reset Password ---------------------------------------------------------- -$lang['user_register_title'] = 'Enregistrez-vous'; -$lang['user_activate_account_title'] = 'Activez le compte'; -$lang['user_activate_label'] = 'Activez'; +$lang['user_register_title'] = 'Enregistrez-vous'; +$lang['user_activate_account_title'] = 'Activez le compte'; +$lang['user_activate_label'] = 'Activez'; $lang['user_activated_account_title'] = 'Compte activé'; -$lang['user_reset_password_title'] = 'Réinitialisez le mot de passe'; -$lang['user_password_reset_title'] = 'Mot de passe réinitialisé'; +$lang['user_reset_password_title'] = 'Réinitialisez le mot de passe'; +$lang['user_password_reset_title'] = 'Mot de passe réinitialisé'; -$lang['user_error_username'] = 'Le nom d\'utilisateur que vous avez entré est déjà utilisé'; -$lang['user_error_email'] = 'L\'adresse email que vous avez entré est déjà utilisée'; +$lang['user_error_username'] = 'Le nom d\'utilisateur que vous avez entré est déjà utilisé'; +$lang['user_error_email'] = 'L\'adresse email que vous avez entré est déjà utilisée'; -$lang['user_full_name'] = 'Nom Complet'; -$lang['user_first_name'] = 'Prénom'; -$lang['user_last_name'] = 'Nom'; -$lang['user_username'] = 'Nom Utilisateur'; -$lang['user_display_name'] = 'Pseudonyme'; -$lang['user_email_use'] = 'utilisé pour se connecter'; -$lang['user_email'] = 'E-mail'; -$lang['user_confirm_email'] = 'Confirmez E-mail'; -$lang['user_password'] = 'Mot de passe'; -$lang['user_remember'] = 'Rester connecté'; -$lang['user_group_id_label'] = 'ID Groupe'; +$lang['user_full_name'] = 'Nom Complet'; +$lang['user_first_name'] = 'Prénom'; +$lang['user_last_name'] = 'Nom'; +$lang['user_username'] = 'Nom Utilisateur'; +$lang['user_display_name'] = 'Pseudonyme'; +$lang['user_email_use'] = 'utilisé pour se connecter'; +$lang['user_email'] = 'E-mail'; +$lang['user_confirm_email'] = 'Confirmez E-mail'; +$lang['user_password'] = 'Mot de passe'; +$lang['user_remember'] = 'Rester connecté'; +$lang['user_group_id_label'] = 'ID Groupe'; -$lang['user_level'] = 'Rôle utilisateur'; -$lang['user_active'] = 'Activez'; -$lang['user_lang'] = 'Langue'; +$lang['user_level'] = 'Rôle utilisateur'; +$lang['user_active'] = 'Activez'; +$lang['user_lang'] = 'Langue'; $lang['user_activation_code'] = 'Code d\'activation'; -$lang['user_reset_instructions'] = 'Entre votre email ou votre Nom Utilisateur'; +$lang['user_reset_instructions'] = 'Entre votre email ou votre Nom Utilisateur'; $lang['user_reset_password_link'] = 'Mot de passe oublié ?'; $lang['user_activation_code_sent_notice'] = 'Un e-mail vous a été envoyé avec votre code d\'activation.'; -$lang['user_activation_by_admin_notice'] = 'Votre enregistrement est en attente d\'approbation par l\'administrateur.'; -$lang['user_registration_disabled'] = 'Désolé, l\'inscription de nouveaux utilisateurs est désactivée.'; +$lang['user_activation_by_admin_notice'] = 'Votre enregistrement est en attente d\'approbation par l\'administrateur.'; +$lang['user_registration_disabled'] = 'Désolé, l\'inscription de nouveaux utilisateurs est désactivée.'; // -- Settings --------------------------------------------------------------------------------------------- -$lang['user_details_section'] = 'Nom'; -$lang['user_password_section'] = 'Changer de mot de passe'; +$lang['user_details_section'] = 'Nom'; +$lang['user_password_section'] = 'Changer de mot de passe'; $lang['user_other_settings_section'] = 'Autres paramètres'; -$lang['user_settings_saved_success'] = 'Les paramètres de votre compte utilisateur ont été enregistrées.'; -$lang['user_settings_saved_error'] = 'Une erreur est survenue.'; +$lang['user_settings_saved_success'] = 'Les paramètres de votre compte utilisateur ont été enregistrées.'; +$lang['user_settings_saved_error'] = 'Une erreur est survenue.'; // -- Buttons ---------------------------------------------------------------------------------------------- -$lang['user_register_btn'] = 'Enregistrement'; -$lang['user_activate_btn'] = 'Activation'; -$lang['user_reset_pass_btn'] = 'Réinit Mot de passe'; -$lang['user_login_btn'] = 'Connexion'; -$lang['user_settings_btn'] = 'Sauvegarder les paramètres'; +$lang['user_register_btn'] = 'Enregistrement'; +$lang['user_activate_btn'] = 'Activation'; +$lang['user_reset_pass_btn'] = 'Réinit Mot de passe'; +$lang['user_login_btn'] = 'Connexion'; +$lang['user_settings_btn'] = 'Sauvegarder les paramètres'; // -- Errors & Messages ------------------------------------------------------------------------------------ - // Create -$lang['user_added_and_activated_success'] = 'Un nouvel utilisateur a été créé et activé.'; -$lang['user_added_not_activated_success'] = 'Un nouvel utilisateur a été créé, le compte a besoin d\'être activé.'; +$lang['user_added_and_activated_success'] = 'Un nouvel utilisateur a été créé et activé.'; +$lang['user_added_not_activated_success'] = 'Un nouvel utilisateur a été créé, le compte a besoin d\'être activé.'; // Edit -$lang['user_edit_user_not_found_error'] = 'Utilisateur non trouvé.'; -$lang['user_edit_success'] = 'Utilisateur mis à jour avec succès.'; -$lang['user_edit_error'] = 'Une erreur est survenue en cours de mise à jour de l\'utilisateur.'; +$lang['user_edit_user_not_found_error'] = 'Utilisateur non trouvé.'; +$lang['user_edit_success'] = 'Utilisateur mis à jour avec succès.'; +$lang['user_edit_error'] = 'Une erreur est survenue en cours de mise à jour de l\'utilisateur.'; // Activate -$lang['user_activate_success'] = '%s utilisateurs sur %s activés avec succès.'; -$lang['user_activate_error'] = 'Vous devez d\'abord seclectionner un utilisateur.'; +$lang['user_activate_success'] = '%s utilisateurs sur %s activés avec succès.'; +$lang['user_activate_error'] = 'Vous devez d\'abord seclectionner un utilisateur.'; // Delete -$lang['user_delete_self_error'] = 'Vous ne pouvez pas vous supprimer !'; -$lang['user_mass_delete_success'] = '%s utilisateurs sur %s supprimés avec succès.'; -$lang['user_mass_delete_error'] = 'Vous devez d\'abord seclectionner des utilisateurs.'; +$lang['user_delete_self_error'] = 'Vous ne pouvez pas vous supprimer !'; +$lang['user_mass_delete_success'] = '%s utilisateurs sur %s supprimés avec succès.'; +$lang['user_mass_delete_error'] = 'Vous devez d\'abord seclectionner des utilisateurs.'; // Register $lang['user_email_pass_missing'] = 'l\'e-mail ou le mot de passe ne sont pas renseignés.'; -$lang['user_email_exists'] = 'L\'adresse e-mail choisie est déjà affectée à un autre utilisateur.'; -$lang['user_register_error'] = 'Nous pensons que vous êtes un robot. Si nous faisons erreur, merci d\'daccepter nos excuses.'; -$lang['user_register_reasons'] = 'Abonnez-vous pour accéder aux espaces réservés. Vos paramètres seront enregistrés, plus de contenu et moins de publicité.'; +$lang['user_email_exists'] = 'L\'adresse e-mail choisie est déjà affectée à un autre utilisateur.'; +$lang['user_register_error'] = 'Nous pensons que vous êtes un robot. Si nous faisons erreur, merci d\'daccepter nos excuses.'; +$lang['user_register_reasons'] = 'Abonnez-vous pour accéder aux espaces réservés. Vos paramètres seront enregistrés, plus de contenu et moins de publicité.'; // Activation -$lang['user_activation_incorrect'] = 'L\'activation s\'est mal déroulée. S\'il vous plaît revoyer vos détails et assurez vous que les MAJUSCULES (CAPS LOCK) ne sont pas actives.'; -$lang['user_activated_message'] = 'Votre compte a été activé, vous pouvez maintenant vous y connecter.'; +$lang['user_activation_incorrect'] = 'L\'activation s\'est mal déroulée. S\'il vous plaît revoyer vos détails et assurez vous que les MAJUSCULES (CAPS LOCK) ne sont pas actives.'; +$lang['user_activated_message'] = 'Votre compte a été activé, vous pouvez maintenant vous y connecter.'; // Login -$lang['user_logged_in'] = 'Vous êtes connecté.'; +$lang['user_logged_in'] = 'Vous êtes connecté.'; $lang['user_already_logged_in'] = 'Vous êtes déjà connecté. S\'il vous plaît déconnectez-vous avant de ré-essayer.'; -$lang['user_login_incorrect'] = 'L\'email ou le mot de passe sont erronés. S\'il vous plaît vérifiez votre login et assurez vous que les MAJUSCULES (CAPS LOCK) ne sont pas actives.'; -$lang['user_inactive'] = 'Le compte que vous tentez d\'accéder est inactif.
Vérifiez vos mails concernant l\'activation de votre compte - il est peut être dans les spams.'; +$lang['user_login_incorrect'] = 'L\'email ou le mot de passe sont erronés. S\'il vous plaît vérifiez votre login et assurez vous que les MAJUSCULES (CAPS LOCK) ne sont pas actives.'; +$lang['user_inactive'] = 'Le compte que vous tentez d\'accéder est inactif.
Vérifiez vos mails concernant l\'activation de votre compte - il est peut être dans les spams.'; // Logged Out -$lang['user_logged_out'] = 'Vous avez été déconnecté.'; +$lang['user_logged_out'] = 'Vous avez été déconnecté.'; // Forgot Pass -$lang['user_forgot_incorrect'] = "Aucun compte correspondant à ces données n\'a été trouvé."; +$lang['user_forgot_incorrect'] = "Aucun compte correspondant à ces données n\'a été trouvé."; -$lang['user_password_reset_message'] = "Votre mot de passe a été ré-initialisé. Vous devriez recevoir un e-mail dans les 2 heures suivantes. Sinon, il est peut être dans les spams par accident."; +$lang['user_password_reset_message'] = "Votre mot de passe a été ré-initialisé. Vous devriez recevoir un e-mail dans les 2 heures suivantes. Sinon, il est peut être dans les spams par accident."; -// Emails ---------------------------------------------------------------------------------------------------- +// Emails ---------------------------------------------------------------------------------------------------- // Activation $lang['user_activation_email_subject'] = 'Activation requise'; -$lang['user_activation_email_body'] = 'Merci d\'avoir activé votre compte chez %s. Pour vous connecter au site, veuillez cliquer le lien ci-dessous:'; +$lang['user_activation_email_body'] = 'Merci d\'avoir activé votre compte chez %s. Pour vous connecter au site, veuillez cliquer le lien ci-dessous:'; -$lang['user_activated_email_subject'] = 'Activation Réussie'; +$lang['user_activated_email_subject'] = 'Activation Réussie'; $lang['user_activated_email_content_line1'] = 'Merci de vous être enregistré à %s. Avant de pouvoir activer votre compte, veuillez suivre entièrement le processus d\'enregistrement en cliquant sur le lien suivant :'; $lang['user_activated_email_content_line2'] = 'Si votre programme mail ne reconnaît pas le lien ci-dessus, entrez l\'URL suivante dans votre navigateur et saisissez le code d\'activation :'; // Reset Pass $lang['user_reset_pass_email_subject'] = 'Mot de passe ré-initialisé'; -$lang['user_reset_pass_email_body'] = 'Votre mot de passe à %s a été ré-initialisé. Si vous n\'avez pas demandé ce changement, veuillez nous envoyer un e-mail à %s et nous résoudrons la situation.'; +$lang['user_reset_pass_email_body'] = 'Votre mot de passe à %s a été ré-initialisé. Si vous n\'avez pas demandé ce changement, veuillez nous envoyer un e-mail à %s et nous résoudrons la situation.'; // Profile $lang['profile_of_title'] = 'Profil de %s'; $lang['profile_user_details_label'] = 'Détails utilisateur'; -$lang['profile_display_name'] = 'Pseudonyme'; -$lang['profile_role_label'] = 'Rôle'; +$lang['profile_role_label'] = 'Rôle'; $lang['profile_registred_on_label'] = 'Enregistré sur'; -$lang['profile_last_login_label'] = 'Dernière connexion'; -$lang['profile_male_label'] = 'Homme'; -$lang['profile_female_label'] = 'Femme'; +$lang['profile_last_login_label'] = 'Dernière connexion'; +$lang['profile_male_label'] = 'Homme'; +$lang['profile_female_label'] = 'Femme'; +$lang['user_profile_fields_label'] = 'Champs de Profil'; $lang['profile_not_set_up'] = 'Cet utilisateur n\'a pas de profil configuré.'; @@ -177,32 +176,32 @@ $lang['profile_personal_section'] = 'Privé'; -$lang['profile_dob'] = 'Date de naissance'; -$lang['profile_dob_day'] = 'Jour'; -$lang['profile_dob_month'] = 'Mois'; -$lang['profile_dob_year'] = 'Année'; -$lang['profile_gender'] = 'Civilité'; -$lang['profile_gender_nt'] = 'Non spécifié'; -$lang['profile_gender_male'] = 'Masculin'; -$lang['profile_gender_female'] = 'Féminin'; -$lang['profile_bio'] = 'A mon sujet'; +$lang['profile_display_name'] = 'Nom Affiché'; +$lang['profile_dob'] = 'Date de naissance'; +$lang['profile_dob_day'] = 'Jour'; +$lang['profile_dob_month'] = 'Mois'; +$lang['profile_dob_year'] = 'Année'; +$lang['profile_gender'] = 'Civilité'; +$lang['profile_gender_nt'] = 'Non spécifié'; +$lang['profile_gender_male'] = 'Masculin'; +$lang['profile_gender_female'] = 'Féminin'; +$lang['profile_bio'] = 'A mon sujet'; $lang['profile_contact_section'] = 'Contact'; -$lang['profile_phone'] = 'Téléphone'; -$lang['profile_mobile'] = 'Mobile'; -$lang['profile_address'] = 'Adresse'; -$lang['profile_address_line1'] = 'Ligne 1'; -$lang['profile_address_line2'] = 'Ligne 2'; -$lang['profile_address_line3'] = 'Ligne 3'; +$lang['profile_phone'] = 'Téléphone'; +$lang['profile_mobile'] = 'Mobile'; +$lang['profile_address'] = 'Adresse'; +$lang['profile_address_line1'] = 'Ligne 1'; +$lang['profile_address_line2'] = 'Ligne 2'; +$lang['profile_address_line3'] = 'Village/Ville'; $lang['profile_address_postcode'] = 'Code Postal'; +$lang['profile_website'] = 'Site Internet'; -$lang['profile_messenger_section'] = 'Messageries instantanées'; +$lang['profile_api_section'] = 'Accès API'; -$lang['profile_msn_handle'] = 'MSN'; -$lang['profile_aim_handle'] = 'AIM'; -$lang['profile_yim_handle'] = 'Yahoo! messenger'; -$lang['profile_gtalk_handle'] = 'GTalk'; +$lang['profile_edit_success'] = 'Votre profil à bien été sauvegardé.'; +$lang['profile_edit_error'] = 'Une erreur à eu lieu.'; // -- Buttons ------------------------------------------------------------------------------------------------ From 04fbf092c8dfb3e3e4e4033ff1ed8ca9355cb31a Mon Sep 17 00:00:00 2001 From: Adam Fairholm Date: Thu, 5 Jul 2012 22:03:41 -0400 Subject: [PATCH 21/46] Adjusting two looping variable defaults in Streams. These had the incorrect values. The correct values were listed in the PyroStreams docs, causing some confusion. --- system/cms/libraries/Streams/drivers/Streams_entries.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/cms/libraries/Streams/drivers/Streams_entries.php b/system/cms/libraries/Streams/drivers/Streams_entries.php index 69c3324a31f..f10764485e8 100755 --- a/system/cms/libraries/Streams/drivers/Streams_entries.php +++ b/system/cms/libraries/Streams/drivers/Streams_entries.php @@ -36,8 +36,8 @@ class Streams_entries extends CI_Driver { 'include' => null, 'include_by' => 'id', 'disable' => null, - 'order_by' => null, - 'sort' => 'asc', + 'order_by' => 'created', + 'sort' => 'desc', 'exclude_called' => 'no', 'paginate' => 'no', 'pag_segment' => 2, From 9d38f54e125e7bc54431247e81a027e4c525d5e9 Mon Sep 17 00:00:00 2001 From: Adam Fairholm Date: Thu, 5 Jul 2012 22:09:25 -0400 Subject: [PATCH 22/46] Removing a todo that was done in the streams row parser. --- system/cms/modules/streams_core/models/row_m.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/system/cms/modules/streams_core/models/row_m.php b/system/cms/modules/streams_core/models/row_m.php index f8569f90d2a..1c18b828b74 100644 --- a/system/cms/modules/streams_core/models/row_m.php +++ b/system/cms/modules/streams_core/models/row_m.php @@ -330,9 +330,6 @@ public function get_rows($params, $fields, $stream) // ------------------------------------- // Show Upcoming // ------------------------------------- - // @todo - check to see if this is a - // mysql date or a UNIX one. - // ------------------------------------- if (isset($show_upcoming) and $show_upcoming == 'no') { From 631f74cfa8b0f1e90230d82069f3714a3c3448a6 Mon Sep 17 00:00:00 2001 From: Adam Fairholm Date: Fri, 6 Jul 2012 16:41:35 -0400 Subject: [PATCH 23/46] Fixes for ReCAPTCHA Support in streams core. The reCAPTCHA library wasn't loading the config correctly. --- system/cms/libraries/MY_Form_validation.php | 2 +- system/cms/modules/streams_core/libraries/Fields.php | 2 +- system/cms/modules/streams_core/libraries/Recaptcha.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/system/cms/libraries/MY_Form_validation.php b/system/cms/libraries/MY_Form_validation.php index cfcec32ed25..c48e28a65e0 100644 --- a/system/cms/libraries/MY_Form_validation.php +++ b/system/cms/libraries/MY_Form_validation.php @@ -31,7 +31,7 @@ function alpha_dot_dash($str) /** * Sneaky function to get field data from - * the form validation libraru + * the form validation library * * @access public * @param string diff --git a/system/cms/modules/streams_core/libraries/Fields.php b/system/cms/modules/streams_core/libraries/Fields.php index 3902479ab17..b393a4d0b04 100644 --- a/system/cms/modules/streams_core/libraries/Fields.php +++ b/system/cms/modules/streams_core/libraries/Fields.php @@ -160,7 +160,7 @@ public function build_form($stream, $method, $row = false, $plugin = false, $rec $this->CI->config->load('streams_core/recaptcha'); $this->CI->load->library('streams_core/Recaptcha'); - $this->CI->validation->set_rules('recaptcha_response_field', 'lang:recaptcha_field_name', 'required|check_captcha'); + $this->CI->form_validation->set_rules('recaptcha_response_field', 'lang:recaptcha_field_name', 'required|check_captcha'); } // ------------------------------------- diff --git a/system/cms/modules/streams_core/libraries/Recaptcha.php b/system/cms/modules/streams_core/libraries/Recaptcha.php index d6f2dd54de3..36c23275228 100644 --- a/system/cms/modules/streams_core/libraries/Recaptcha.php +++ b/system/cms/modules/streams_core/libraries/Recaptcha.php @@ -155,7 +155,7 @@ function get_html ($lang = 'en',$use_ssl = false) ); //load a view - more configurable than embedding HTML in the library - return $this->_CI->load->view('streams/recaptcha',$html_data,TRUE); + return $this->_CI->load->view('streams_core/recaptcha', $html_data, true); } /** From 686251c7fd0b2b7c2e91b76908b867b9bc71cc90 Mon Sep 17 00:00:00 2001 From: Adam Fairholm Date: Fri, 6 Jul 2012 17:32:34 -0400 Subject: [PATCH 24/46] Changing the version number to 2.1.3-dev This was previously overwritten to be 2.2-dev. --- system/cms/config/constants.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/cms/config/constants.php b/system/cms/config/constants.php index ef4a2b5b521..c7027842928 100644 --- a/system/cms/config/constants.php +++ b/system/cms/config/constants.php @@ -85,7 +85,7 @@ | */ -define('CMS_VERSION', '2.2.0-dev'); +define('CMS_VERSION', '2.1.3-dev'); /* |-------------------------------------------------------------------------- From f9f660b8ece608d809a59bf8a379f6a494a35fcc Mon Sep 17 00:00:00 2001 From: Luis Escobar Bravo Date: Fri, 6 Jul 2012 18:47:29 -0400 Subject: [PATCH 25/46] Fix: field name should be "active" instead of "is_active" in table users --- system/cms/modules/users/models/user_m.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/cms/modules/users/models/user_m.php b/system/cms/modules/users/models/user_m.php index 1f07d89fc7f..be64f73143e 100644 --- a/system/cms/modules/users/models/user_m.php +++ b/system/cms/modules/users/models/user_m.php @@ -100,7 +100,7 @@ public function add($input = array()) 'password' => $input->password, 'salt' => $input->salt, 'role' => empty($input->role) ? 'user' : $input->role, - 'is_active' => 0, + 'active' => 0, 'lang' => $this->config->item('default_language'), 'activation_code' => $input->activation_code, 'created_on' => now(), @@ -132,7 +132,7 @@ public function update_last_login($id) */ function activate($id) { - return parent::update($id, array('is_active' => 1, 'activation_code' => '')); + return parent::update($id, array('active' => 1, 'activation_code' => '')); } // -------------------------------------------------------------------------- From 95c551bae7c715d460967fde9ca1e5b36f012083 Mon Sep 17 00:00:00 2001 From: dadaxr Date: Sat, 7 Jul 2012 03:30:54 +0300 Subject: [PATCH 26/46] Update 2.1/develop --- .../cms/libraries/Streams/drivers/Streams_entries.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/system/cms/libraries/Streams/drivers/Streams_entries.php b/system/cms/libraries/Streams/drivers/Streams_entries.php index 69c3324a31f..61141c8711c 100755 --- a/system/cms/libraries/Streams/drivers/Streams_entries.php +++ b/system/cms/libraries/Streams/drivers/Streams_entries.php @@ -57,25 +57,26 @@ class Streams_entries extends CI_Driver { * @var array */ public $pagination_config = array( - 'num_links' => 3, + 'num_links' => 3, 'full_tag_open' => '

', 'full_tag_close' => '

', 'first_link' => 'First', 'first_tag_open' => '
', 'first_tag_close' => '
', - 'last_link' => 'Last', + 'last_link' => 'Last', 'last_tag_open' => '
', 'last_tag_close' => '
', - 'next_link' => '>', + 'next_link' => '>', 'next_tag_open' => '
', 'next_tag_close' => '
', - 'prev_link' => '<', + 'prev_link' => '<', 'prev_tag_open' => '
', 'prev_tag_close' => '
', 'cur_tag_open' => '', 'cur_tag_close' => '', 'num_tag_open' => '
', - 'num_tag_close' => '
' + 'num_tag_close' => '', + 'display_pages' => true ); // -------------------------------------------------------------------------- From 2bcaeb8e98696043f0a4c5bf3441921754b22663 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Sat, 7 Jul 2012 15:24:08 +0100 Subject: [PATCH 27/46] Fixed issue #1550: Incorrect min password length. --- system/cms/modules/users/controllers/users.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/cms/modules/users/controllers/users.php b/system/cms/modules/users/controllers/users.php index efb33c93a17..f875cf7216b 100644 --- a/system/cms/modules/users/controllers/users.php +++ b/system/cms/modules/users/controllers/users.php @@ -74,7 +74,7 @@ public function login() } // Get the user data - $user = (object)array( + $user = (object) array( 'email' => $this->input->post('email'), 'password' => $this->input->post('password') ); @@ -88,7 +88,7 @@ public function login() array( 'field' => 'password', 'label' => lang('user_password_label'), - 'rules' => 'required|min_length[6]|max_length[20]' + 'rules' => 'required|min_length['.$this->config->item('min_password_length').']|max_length['.$this->config->item('max_password_length').']' ), ); @@ -192,7 +192,7 @@ public function register() array( 'field' => 'password', 'label' => lang('user_password'), - 'rules' => 'required|min_length[6]|max_length[20]' + 'rules' => 'required|min_length['.$this->config->item('min_password_length').']|max_length['.$this->config->item('max_password_length').']' ), array( 'field' => 'email', From 5606ebc4f01d133ae75f7b00dffc98e8bddc2fb1 Mon Sep 17 00:00:00 2001 From: Matt Frost Date: Sat, 7 Jul 2012 16:46:15 -0500 Subject: [PATCH 28/46] fixing ternary operator ? was missing, and throwing a syntax error --- system/cms/modules/comments/views/comments.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 system/cms/modules/comments/views/comments.php diff --git a/system/cms/modules/comments/views/comments.php b/system/cms/modules/comments/views/comments.php old mode 100644 new mode 100755 index 6507f4e444d..8c4cd0772be --- a/system/cms/modules/comments/views/comments.php +++ b/system/cms/modules/comments/views/comments.php @@ -15,7 +15,7 @@

- website, $item->name, 'rel="external nofollow"') : $item->name; ?> + website ? anchor($item->website, $item->name, 'rel="external nofollow"') : $item->name; ?>

@@ -77,4 +77,4 @@ -
\ No newline at end of file +
From 926901373de1c8ac831e0afd31de2f3e0689dd99 Mon Sep 17 00:00:00 2001 From: jerel Date: Sat, 7 Jul 2012 23:24:45 -0500 Subject: [PATCH 29/46] Fixed "not an object" error in page plugin --- system/cms/modules/pages/plugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/cms/modules/pages/plugin.php b/system/cms/modules/pages/plugin.php index 63199e11dcf..7ff09440ff8 100644 --- a/system/cms/modules/pages/plugin.php +++ b/system/cms/modules/pages/plugin.php @@ -23,7 +23,7 @@ public function url() $id = $this->attribute('id'); $page = $this->pyrocache->model('page_m', 'get', array($id)); - return site_url($page ? $page->uri : ''); + return site_url($page ? $page['uri'] : ''); } /** From e49b3ea5744f747230fbe5ab09d2ba9c7123b3b4 Mon Sep 17 00:00:00 2001 From: jerel Date: Sat, 7 Jul 2012 23:43:57 -0500 Subject: [PATCH 30/46] Fixes #1511 show_404() was not working properly --- system/cms/core/MY_Exceptions.php | 2 +- system/cms/modules/pages/controllers/pages.php | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/system/cms/core/MY_Exceptions.php b/system/cms/core/MY_Exceptions.php index 50fb0ad90cd..8bce1f53161 100644 --- a/system/cms/core/MY_Exceptions.php +++ b/system/cms/core/MY_Exceptions.php @@ -24,7 +24,7 @@ function show_404($page = '', $log_error = TRUE) // Set the HTTP Status header set_status_header(404); - echo Modules::run('pages/_remap', '404'); + Modules::run('pages/_remap', '404'); } } \ No newline at end of file diff --git a/system/cms/modules/pages/controllers/pages.php b/system/cms/modules/pages/controllers/pages.php index f3f8612f387..ace4ce5bf09 100644 --- a/system/cms/modules/pages/controllers/pages.php +++ b/system/cms/modules/pages/controllers/pages.php @@ -231,10 +231,12 @@ public function _page($url_segments) if ($page->slug == '404') { log_message('error', 'Page Missing: '.$this->uri->uri_string()); + + // things behave a little differently when called by MX from MY_Exceptions' show_404() + exit($this->template->build('pages/page', array('page' => $page), FALSE, FALSE)); } - $this->template->set('page', $page) - ->build('pages/page', NULL, FALSE, FALSE); + $this->template->build('page', array('page' => $page), FALSE, FALSE); } /** From 74666ddbf598c6ce794ce302c7ce866f1e61c539 Mon Sep 17 00:00:00 2001 From: Adam Fairholm Date: Sun, 8 Jul 2012 20:15:09 -0400 Subject: [PATCH 31/46] Fixing images in the WYSIWYG editor. This is sort of a hack, but since we are not parsing full tags in the WYSIWYG editor (in fact, all tags are currently converted to html characters by default), we are just replacing the converted string that we know will be present for images. Fixes #1545. --- .../field_types/wysiwyg/field.wysiwyg.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/system/cms/modules/streams_core/field_types/wysiwyg/field.wysiwyg.php b/system/cms/modules/streams_core/field_types/wysiwyg/field.wysiwyg.php index 80d801b2d28..715171b56db 100644 --- a/system/cms/modules/streams_core/field_types/wysiwyg/field.wysiwyg.php +++ b/system/cms/modules/streams_core/field_types/wysiwyg/field.wysiwyg.php @@ -45,6 +45,22 @@ public function event() // -------------------------------------------------------------------------- + /** + * Pre-Ouput WYSUWYG content + * + * @access public + * @param string + * @return string + */ + public function pre_output($input) + { + // No matter what, we are going to replace {{ url:site }} with it's + // rightful value. + return str_replace('{{ url:site }}', site_url().'/', $input); + } + + // -------------------------------------------------------------------------- + /** * Output form input * From 8766ffd673ae743c7756c7776045ac4eb6af253b Mon Sep 17 00:00:00 2001 From: jerel Date: Mon, 9 Jul 2012 12:09:53 -0500 Subject: [PATCH 32/46] Fixed missing config key for password length checks --- system/cms/modules/users/controllers/users.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/cms/modules/users/controllers/users.php b/system/cms/modules/users/controllers/users.php index 2726e0cc7cc..0c13895a509 100644 --- a/system/cms/modules/users/controllers/users.php +++ b/system/cms/modules/users/controllers/users.php @@ -88,7 +88,7 @@ public function login() array( 'field' => 'password', 'label' => lang('user_password_label'), - 'rules' => 'required|min_length['.$this->config->item('min_password_length').']|max_length['.$this->config->item('max_password_length').']' + 'rules' => 'required|min_length['.$this->config->item('min_password_length', 'ion_auth').']|max_length['.$this->config->item('max_password_length', 'ion_auth').']' ), ); @@ -192,7 +192,7 @@ public function register() array( 'field' => 'password', 'label' => lang('user_password'), - 'rules' => 'required|min_length['.$this->config->item('min_password_length').']|max_length['.$this->config->item('max_password_length').']' + 'rules' => 'required|min_length['.$this->config->item('min_password_length', 'ion_auth').']|max_length['.$this->config->item('max_password_length', 'ion_auth').']' ), array( 'field' => 'email', From dc118c70e01261ebb4db77f7f48efaa3c77f84ba Mon Sep 17 00:00:00 2001 From: jerel Date: Mon, 9 Jul 2012 12:45:31 -0500 Subject: [PATCH 33/46] Fixed bug where admins were shown their own profile data when editing other user's --- system/cms/modules/users/controllers/users.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/system/cms/modules/users/controllers/users.php b/system/cms/modules/users/controllers/users.php index 0c13895a509..7934e50c109 100644 --- a/system/cms/modules/users/controllers/users.php +++ b/system/cms/modules/users/controllers/users.php @@ -591,6 +591,9 @@ public function edit($id = 0) if ($this->current_user AND $this->current_user->group === 'admin' AND $id > 0) { $user = $this->user_m->get(array('id' => $id)); + + // invalide user? Show them their own profile + $user or redirect('edit-profile'); } else { @@ -601,7 +604,7 @@ public function edit($id = 0) // Get the profile data $profile_row = $this->db->limit(1) - ->where('user_id', $this->current_user->id)->get('profiles')->row(); + ->where('user_id', $user->id)->get('profiles')->row(); // If we have API's enabled, load stuff if (Settings::get('api_enabled') and Settings::get('api_user_keys')) From 070c005694f0ea294f3cb105d3c6f03a2dad8438 Mon Sep 17 00:00:00 2001 From: jerel Date: Mon, 9 Jul 2012 12:47:52 -0500 Subject: [PATCH 34/46] Corrected formatting in profile edit view --- .../cms/modules/users/views/profile/edit.php | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/system/cms/modules/users/views/profile/edit.php b/system/cms/modules/users/views/profile/edit.php index d334420ff49..df19e0c34ab 100644 --- a/system/cms/modules/users/views/profile/edit.php +++ b/system/cms/modules/users/views/profile/edit.php @@ -22,18 +22,22 @@ - -
  • - - '.$field['instructions'].'

    '; } ?> -
    - -
    -
  • - + + +
  • + + + '.$field['instructions'].'

    '; ?> + +
    + +
    +
  • + + From fa0f0612d499b08f53954deac1ecfe1cbc5c086f Mon Sep 17 00:00:00 2001 From: jerel Date: Mon, 9 Jul 2012 13:04:36 -0500 Subject: [PATCH 35/46] Fixes #1581. File's mimetype column was too short (at 50 chars) for some ridiculously long mime types --- system/cms/config/migration.php | 2 +- .../migrations/098_Increase_mime_length.php | 18 ++++++++++++++++++ system/cms/modules/files/details.php | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 system/cms/migrations/098_Increase_mime_length.php diff --git a/system/cms/config/migration.php b/system/cms/config/migration.php index c32c57698c2..b5d0142121f 100644 --- a/system/cms/config/migration.php +++ b/system/cms/config/migration.php @@ -23,7 +23,7 @@ | */ -$config['migration_version'] = 97; +$config['migration_version'] = 98; /* |-------------------------------------------------------------------------- diff --git a/system/cms/migrations/098_Increase_mime_length.php b/system/cms/migrations/098_Increase_mime_length.php new file mode 100644 index 00000000000..a744d1cf166 --- /dev/null +++ b/system/cms/migrations/098_Increase_mime_length.php @@ -0,0 +1,18 @@ +dbforge->modify_column('files', array( + 'mimetype' => array('type' => 'VARCHAR', 'constraint' => 100, 'null' => false), + )); + } + + public function down() + { + $this->dbforge->modify_column('files', array( + 'mimetype' => array('type' => 'VARCHAR', 'constraint' => 50, 'null' => false), + )); + } +} \ No newline at end of file diff --git a/system/cms/modules/files/details.php b/system/cms/modules/files/details.php index 18d4a1fcd40..f21757a3b4f 100755 --- a/system/cms/modules/files/details.php +++ b/system/cms/modules/files/details.php @@ -86,7 +86,7 @@ public function install() 'path' => array('type' => 'VARCHAR', 'constraint' => 255, 'default' => ''), 'description' => array('type' => 'TEXT',), 'extension' => array('type' => 'VARCHAR', 'constraint' => 5,), - 'mimetype' => array('type' => 'VARCHAR', 'constraint' => 50,), + 'mimetype' => array('type' => 'VARCHAR', 'constraint' => 100,), 'width' => array('type' => 'INT', 'constraint' => 5, 'null' => true,), 'height' => array('type' => 'INT', 'constraint' => 5, 'null' => true,), 'filesize' => array('type' => 'INT', 'constraint' => 11, 'default' => 0,), From 2d5fdf47eabcbf5569c31401f2bb4fb3a23513c9 Mon Sep 17 00:00:00 2001 From: Steve Williamson Date: Tue, 10 Jul 2012 12:48:45 -0400 Subject: [PATCH 36/46] Trigger post_user_login event after login via admin controller --- system/cms/controllers/admin.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/system/cms/controllers/admin.php b/system/cms/controllers/admin.php index ecf35262c4e..91860c6bcbc 100644 --- a/system/cms/controllers/admin.php +++ b/system/cms/controllers/admin.php @@ -92,6 +92,8 @@ public function _check_login($email) { if ($this->ion_auth->login($email, $this->input->post('password'), (bool)$this->input->post('remember'))) { + Events::trigger('post_user_login'); + return true; } From 0dc9032a2b3b9faa963917211114b9b057a2020a Mon Sep 17 00:00:00 2001 From: Steve Williamson Date: Tue, 10 Jul 2012 13:06:10 -0400 Subject: [PATCH 37/46] Update trigger name to post_admin_login --- system/cms/controllers/admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/cms/controllers/admin.php b/system/cms/controllers/admin.php index 91860c6bcbc..28d7de668c9 100644 --- a/system/cms/controllers/admin.php +++ b/system/cms/controllers/admin.php @@ -92,7 +92,7 @@ public function _check_login($email) { if ($this->ion_auth->login($email, $this->input->post('password'), (bool)$this->input->post('remember'))) { - Events::trigger('post_user_login'); + Events::trigger('post_admin_login'); return true; } From 5eb26bfcbf2391894fdca794e80545877e8ba2ea Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Wed, 11 Jul 2012 11:12:04 +0100 Subject: [PATCH 38/46] Updated Akismet to contain our user agent. I don't mind hacking this library, it's old as hell and needs to be replaced. I'm not even 100% sure its reporting spam correctly. --- system/cms/libraries/Akismet.php | 422 +++++++++++++++---------------- 1 file changed, 208 insertions(+), 214 deletions(-) diff --git a/system/cms/libraries/Akismet.php b/system/cms/libraries/Akismet.php index d794faff597..06900d181ae 100644 --- a/system/cms/libraries/Akismet.php +++ b/system/cms/libraries/Akismet.php @@ -1,270 +1,264 @@ $value) { - foreach ($config as $key => $value) - { - $this->$key = $value; - } - - $this->set_comment($this->comment); - - $this->_connect(); - - if($this->errors_exist()) - { - $this->errors = array_merge($this->errors, $this->get_errors()); - } - - // Check if the API key is valid - if(!$this->_is_valid_api_key($this->api_key)) - { - $this->set_error('AKISMET_INVALID_KEY', "Your Akismet API key is not valid."); - } + $this->$key = $value; } - // Connect to the Akismet server and store that connection in the instance variable $con - function _connect() - { - if(!($this->con = @fsockopen($this->akismet_server, $this->api_port))) - { - $this->set_error('AKISMET_SERVER_NOT_FOUND', "Could not connect to akismet server."); - } - } + $this->set_comment($this->comment); + + $this->_connect(); - // Close the connection to the Akismet server - function _disconnect() + if($this->errors_exist()) { - @fclose($this->con); + $this->errors = array_merge($this->errors, $this->get_errors()); } - function get_response($request, $path, $type = "post", $response_length = 1160) + // Check if the API key is valid + if(!$this->_is_valid_api_key($this->api_key)) { - $this->_connect(); - - if($this->con && !$this->is_error('AKISMET_SERVER_NOT_FOUND')) - { - $request = - strToUpper($type)." /{$this->akismet_version}/$path HTTP/1.0\r\n" . - "Host: ".((!empty($this->api_key)) ? $this->api_key."." : null)."{$this->akismet_server}\r\n" . - "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n" . - "Content-Length: ".strlen($request)."\r\n" . - "User-Agent: Akismet CodeIgniter Library\r\n" . - "\r\n" . - $request - ; - $response = ""; - - @fwrite($this->con, $request); - - while(!feof($this->con)) - { - $response .= @fgets($this->con, $response_length); - } - - $response = explode("\r\n\r\n", $response, 2); - return $response[1]; - } - else - { - $this->set_error('AKISMET_RESPONSE_FAILED', "The response could not be retrieved."); - } - - $this->_disconnect(); + $this->set_error('AKISMET_INVALID_KEY', "Your Akismet API key is not valid."); } - - function set_error($name, $message) + } + + // Connect to the Akismet server and store that connection in the instance variable $con + private function _connect() + { + if(!($this->con = @fsockopen($this->akismet_server, $this->api_port))) { - $this->errors[$name] = $message; + $this->set_error('AKISMET_SERVER_NOT_FOUND', "Could not connect to akismet server."); } + } + + // Close the connection to the Akismet server + private function _disconnect() + { + @fclose($this->con); + } + + public function get_response($request, $path, $type = "post", $response_length = 1160) + { + $this->_connect(); - function get_error($name) + if($this->con && ! $this->is_error('AKISMET_SERVER_NOT_FOUND')) { - if($this->is_error($name)) + $request = + strToUpper($type)." /{$this->akismet_version}/$path HTTP/1.0\r\n" . + "Host: ".((!empty($this->api_key)) ? $this->api_key."." : null)."{$this->akismet_server}\r\n" . + "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n" . + "Content-Length: ".strlen($request)."\r\n" . + "User-Agent: PyroCMS ".CMS_VERSION."\r\n" . + "\r\n" . + $request + ; + $response = ""; + + @fwrite($this->con, $request); + + while(!feof($this->con)) { - return $this->errors[$name]; - } - else - { - return false; + $response .= @fgets($this->con, $response_length); } + + $response = explode("\r\n\r\n", $response, 2); + return $response[1]; } - - function get_errors() - { - return (array)$this->errors; - } - - function is_error($name) + else { - return isset($this->errors[$name]); + $this->set_error('AKISMET_RESPONSE_FAILED', "The response could not be retrieved."); } - function errors_exist() + $this->_disconnect(); + } + + public function set_error($name, $message) + { + $this->errors[$name] = $message; + } + + public function get_error($name) + { + if($this->is_error($name)) { - return (count($this->errors) > 0); + return $this->errors[$name]; } - - function is_spam() - { - $response = $this->get_response($this->_get_query_string(), 'comment-check'); - - return ($response == "true"); + else + { + return false; } + } + + public function get_errors() + { + return (array)$this->errors; + } + + public function is_error($name) + { + return isset($this->errors[$name]); + } + + public function errors_exist() + { + return (count($this->errors) > 0); + } + + public function is_spam() + { + $response = $this->get_response($this->_get_query_string(), 'comment-check'); + return ($response == "true"); + } + + + public function submit_spam() + { + $this->get_response($this->_get_querystring(), 'submit-spam'); + } + + + public function submit_ham() + { + $this->get_response($this->_get_query_string(), 'submit-ham'); + } + + public function set_comment($comment) + { + $this->comment = $comment; - function submit_spam() + if(!empty($comment)) { - $this->get_response($this->_get_querystring(), 'submit-spam'); + $this->_format_comment_array(); + $this->_fill_comment_values(); } + } + + public function get_comment() + { + return $this->comment; + } + + private function _is_valid_api_key($key) + { + $key_check = $this->get_response("key=".$this->api_key."&blog=".$this->blog_url, 'verify-key'); + + return ($key_check == "valid"); + } + + private function _format_comment_array() { + $format = array( + 'type' => 'comment_type', + 'author' => 'comment_author', + 'email' => 'comment_author_email', + 'website' => 'comment_author_url', + 'body' => 'comment_content' + ); - function submit_ham() - { - $this->get_response($this->_get_query_string(), 'submit-ham'); - } - - function set_comment($comment) + foreach($format as $short => $long) { - $this->comment = $comment; - - if(!empty($comment)) + if(isset($this->comment[$short])) { - $this->_format_comment_array(); - $this->_fill_comment_values(); + $this->comment[$long] = $this->comment[$short]; + unset($this->comment[$short]); } } - - function get_comment() + } + + + /** + * Fill any values not provided by the developer with available values. + * + * @return void + */ + + private function _fill_comment_values() + { + if(!isset($this->comment['user_ip'])) { - return $this->comment; + $this->comment['user_ip'] = ($_SERVER['REMOTE_ADDR'] != getenv('SERVER_ADDR')) ? $_SERVER['REMOTE_ADDR'] : getenv('HTTP_X_FORWARDED_FOR'); } - function _is_valid_api_key($key) + if(!isset($this->comment['user_agent'])) { - $key_check = $this->get_response("key=".$this->api_key."&blog=".$this->blog_url, 'verify-key'); - - return ($key_check == "valid"); + $this->comment['user_agent'] = $_SERVER['HTTP_USER_AGENT']; } - function _format_comment_array() { - - $format = array( - 'type' => 'comment_type', - 'author' => 'comment_author', - 'email' => 'comment_author_email', - 'website' => 'comment_author_url', - 'body' => 'comment_content' - ); - - foreach($format as $short => $long) - { - if(isset($this->comment[$short])) - { - $this->comment[$long] = $this->comment[$short]; - unset($this->comment[$short]); - } - } + if(!isset($this->comment['referrer']) && !empty($_SERVER['HTTP_REFERER'])) + { + $this->comment['referrer'] = $_SERVER['HTTP_REFERER']; } - - /** - * Fill any values not provided by the developer with available values. - * - * @return void - */ - - function _fill_comment_values() + if(!isset($this->comment['blog'])) { - if(!isset($this->comment['user_ip'])) - { - $this->comment['user_ip'] = ($_SERVER['REMOTE_ADDR'] != getenv('SERVER_ADDR')) ? $_SERVER['REMOTE_ADDR'] : getenv('HTTP_X_FORWARDED_FOR'); - } - - if(!isset($this->comment['user_agent'])) - { - $this->comment['user_agent'] = $_SERVER['HTTP_USER_AGENT']; - } - - if(!isset($this->comment['referrer']) && !empty($_SERVER['HTTP_REFERER'])) - { - $this->comment['referrer'] = $_SERVER['HTTP_REFERER']; - } - - if(!isset($this->comment['blog'])) - { - $this->comment['blog'] = $this->blog_url; - } + $this->comment['blog'] = $this->blog_url; } - - - function _get_query_string() + } + + + private function _get_query_string() + { + foreach($_SERVER as $key => $value) { - foreach($_SERVER as $key => $value) + if(!in_array($key, $this->ignore)) { - if(!in_array($key, $this->ignore)) + if($key == 'REMOTE_ADDR') { - if($key == 'REMOTE_ADDR') - { - $this->comment[$key] = $this->comment['user_ip']; - } - else - { - $this->comment[$key] = $value; - } + $this->comment[$key] = $this->comment['user_ip']; + } + else + { + $this->comment[$key] = $value; } } - - $query_string = ''; - - foreach($this->comment as $key => $data) - { - $query_string .= $key . '=' . urlencode(stripslashes($data)) . '&'; - } - - return $query_string; } + + $query_string = ''; + + foreach($this->comment as $key => $data) + { + $query_string .= $key . '=' . urlencode(stripslashes($data)) . '&'; + } + + return $query_string; } - -?> +} \ No newline at end of file From 6a1a811a61779b514015f6ca40a93521172ccc48 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Wed, 11 Jul 2012 11:52:16 +0100 Subject: [PATCH 39/46] Confirmed Akismet is working Made a few tweaks while confirming, but pretty sure it wasn't broken. viagra, porn, etc in subject, website or body will flag this as spam. --- system/cms/libraries/Akismet.php | 37 +++++++++---------- .../modules/comments/controllers/comments.php | 6 +-- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/system/cms/libraries/Akismet.php b/system/cms/libraries/Akismet.php index 06900d181ae..58e8f2d4101 100644 --- a/system/cms/libraries/Akismet.php +++ b/system/cms/libraries/Akismet.php @@ -48,22 +48,22 @@ public function init($config) $this->_connect(); - if($this->errors_exist()) + if ($this->errors_exist()) { $this->errors = array_merge($this->errors, $this->get_errors()); } // Check if the API key is valid - if(!$this->_is_valid_api_key($this->api_key)) + if ($this->_is_valid_api_key($this->api_key) === false) { - $this->set_error('AKISMET_INVALID_KEY', "Your Akismet API key is not valid."); + $this->set_error('AKISMET_INVALID_KEY', "The Akismet API key is not valid."); } } // Connect to the Akismet server and store that connection in the instance variable $con private function _connect() { - if(!($this->con = @fsockopen($this->akismet_server, $this->api_port))) + if ( ! ($this->con = @fsockopen($this->akismet_server, $this->api_port))) { $this->set_error('AKISMET_SERVER_NOT_FOUND', "Could not connect to akismet server."); } @@ -75,18 +75,18 @@ private function _disconnect() @fclose($this->con); } - public function get_response($request, $path, $type = "post", $response_length = 1160) + public function get_response($request, $path, $type = "POST", $response_length = 1160) { $this->_connect(); - if($this->con && ! $this->is_error('AKISMET_SERVER_NOT_FOUND')) + if ($this->con && ! $this->is_error('AKISMET_SERVER_NOT_FOUND')) { $request = - strToUpper($type)." /{$this->akismet_version}/$path HTTP/1.0\r\n" . - "Host: ".((!empty($this->api_key)) ? $this->api_key."." : null)."{$this->akismet_server}\r\n" . + strtoupper($type)." /{$this->akismet_version}/$path HTTP/1.1\r\n" . + "Host: ".$this->api_key.".{$this->akismet_server}\r\n" . "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n" . "Content-Length: ".strlen($request)."\r\n" . - "User-Agent: PyroCMS ".CMS_VERSION."\r\n" . + "User-Agent: PyroCMS/".CMS_VERSION."\r\n" . "\r\n" . $request ; @@ -94,7 +94,7 @@ public function get_response($request, $path, $type = "post", $response_length = @fwrite($this->con, $request); - while(!feof($this->con)) + while ( ! feof($this->con)) { $response .= @fgets($this->con, $response_length); } @@ -117,19 +117,17 @@ public function set_error($name, $message) public function get_error($name) { - if($this->is_error($name)) + if ($this->is_error($name)) { return $this->errors[$name]; } - else - { - return false; - } + + return false; } public function get_errors() { - return (array)$this->errors; + return (array) $this->errors; } public function is_error($name) @@ -180,8 +178,7 @@ public function get_comment() private function _is_valid_api_key($key) { $key_check = $this->get_response("key=".$this->api_key."&blog=".$this->blog_url, 'verify-key'); - - return ($key_check == "valid"); + return ($key_check === "valid"); } private function _format_comment_array() { @@ -194,9 +191,9 @@ private function _format_comment_array() { 'body' => 'comment_content' ); - foreach($format as $short => $long) + foreach ($format as $short => $long) { - if(isset($this->comment[$short])) + if (isset($this->comment[$short])) { $this->comment[$long] = $this->comment[$short]; unset($this->comment[$short]); diff --git a/system/cms/modules/comments/controllers/comments.php b/system/cms/modules/comments/controllers/comments.php index 86304b516d9..a668ef695ba 100644 --- a/system/cms/modules/comments/controllers/comments.php +++ b/system/cms/modules/comments/controllers/comments.php @@ -98,7 +98,7 @@ public function create($module = 'home', $id = 0) } // Run Akismet or the crazy CSS bot checker - if ($result['status'] == FALSE) + if ($result['status'] !== true) { $this->session->set_flashdata('comment', $comment); $this->session->set_flashdata('error', $result['message']); @@ -192,7 +192,7 @@ private function _allow_comment() $this->load->library('akismet'); $comment = array( - 'author' => $this->current_user ? $this->current_user->first_name.' '.$this->current_user->last_name : $this->input->post('name'), + 'author' => $this->current_user ? $this->current_user->display_name : $this->input->post('name'), 'email' => $this->current_user ? $this->current_user->email : $this->input->post('email'), 'website' => $this->current_user ? $this->current_user->website : $this->input->post('website'), 'body' => $this->input->post('body') @@ -200,7 +200,7 @@ private function _allow_comment() $config = array( 'blog_url' => BASE_URL, - 'api_key' => $this->settings->get('akismet_api_key'), + 'api_key' => Settings::get('akismet_api_key'), 'comment' => $comment ); From 31e0cb9b9b3351fa15de4c257fcbb8501ab238d6 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Wed, 11 Jul 2012 11:54:46 +0100 Subject: [PATCH 40/46] Blog PHP 5.4 fixes. --- system/cms/modules/blog/controllers/admin.php | 2 +- system/cms/modules/blog/controllers/blog.php | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/system/cms/modules/blog/controllers/admin.php b/system/cms/modules/blog/controllers/admin.php index c8c617931e4..1b39407f0c9 100644 --- a/system/cms/modules/blog/controllers/admin.php +++ b/system/cms/modules/blog/controllers/admin.php @@ -162,7 +162,6 @@ public function create() { $this->form_validation->set_rules($this->validation_rules); - if ($this->input->post('created_on')) { $created_on = strtotime(sprintf('%s %s:%s', $this->input->post('created_on'), $this->input->post('created_on_hour'), $this->input->post('created_on_minute'))); @@ -224,6 +223,7 @@ public function create() else { // Go through all the known fields and get the post values + $post = new stdClass; foreach ($this->validation_rules as $key => $field) { $post->$field['field'] = set_value($field['field']); diff --git a/system/cms/modules/blog/controllers/blog.php b/system/cms/modules/blog/controllers/blog.php index 982b7599b42..1e4f0ae6234 100644 --- a/system/cms/modules/blog/controllers/blog.php +++ b/system/cms/modules/blog/controllers/blog.php @@ -265,9 +265,11 @@ private function _single_view($post,$build='view') // Set some defaults else { - $post->category->id = 0; - $post->category->slug = ''; - $post->category->title = ''; + $post->category = (object) array( + 'id' => 0, + 'slug' => '', + 'title' => '', + ); } $this->session->set_flashdata(array('referrer' => $this->uri->uri_string)); From 9aa5447ec03732327892a8145383c6df2316e59f Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Wed, 11 Jul 2012 11:55:04 +0100 Subject: [PATCH 41/46] Litteral \n's were showing in the comment notification. --- system/cms/modules/templates/details.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/system/cms/modules/templates/details.php b/system/cms/modules/templates/details.php index 038365b03af..c9d8a822b75 100755 --- a/system/cms/modules/templates/details.php +++ b/system/cms/modules/templates/details.php @@ -101,12 +101,14 @@ public function install() 'name' => 'Comment Notification', 'description' => 'Email that is sent to admin when someone creates a comment', 'subject' => 'You have just received a comment from {{ name }}', - 'body' => '

    You have received a comment from {{ name }}

    - IP Address: {{ sender_ip }}\n - Operating System: {{ sender_os }}\n - User Agent: {{ sender_agent }}\n -
    {{ comment }}
    \n -
    View Comment:{{ redirect_url }}
    ', + 'body' => "

    You have received a comment from {{ name }}

    +

    + IP Address: {{ sender_ip }}
    + Operating System: {{ sender_os }}
    + User Agent: {{ sender_agent }} +

    +

    {{ comment }}

    +

    View Comment: {{ redirect_url }}

    ", 'lang' => 'en', 'is_default' => 1, 'module' => 'comments' From 9062cd70b1b3679ea844b7953e227e93d7a23857 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Wed, 11 Jul 2012 11:55:22 +0100 Subject: [PATCH 42/46] Footer in admin was breaking when the -dev suffix was in use. --- system/cms/themes/pyrocms/css/workless/responsive.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/cms/themes/pyrocms/css/workless/responsive.css b/system/cms/themes/pyrocms/css/workless/responsive.css index 0d84cc5ee35..0d308897c73 100644 --- a/system/cms/themes/pyrocms/css/workless/responsive.css +++ b/system/cms/themes/pyrocms/css/workless/responsive.css @@ -421,7 +421,7 @@ padding: 0px; margin: 0px; line-height: 60px; - width: 60%; + width: 65%; vertical-align: middle; } From 38c396c5647f1abd06b04ccdc485cf7bacd6dfd3 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Wed, 11 Jul 2012 15:53:35 +0100 Subject: [PATCH 43/46] Fixed issue #1588 --- system/cms/helpers/MY_array_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/cms/helpers/MY_array_helper.php b/system/cms/helpers/MY_array_helper.php index 6ace213e12e..ead439eec8d 100644 --- a/system/cms/helpers/MY_array_helper.php +++ b/system/cms/helpers/MY_array_helper.php @@ -111,7 +111,7 @@ function html_to_assoc($html_array) } -if (!function_exists('html_to_assoc')) +if (!function_exists('assoc_array_prop')) { /** * Associative array property From 58866844e4d7a18e02ff0f4f866ac2efacbc988b Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Wed, 11 Jul 2012 17:00:30 +0100 Subject: [PATCH 44/46] Updated REST_Controller. --- system/cms/core/REST_Controller.php | 310 ++++++++++++++++++---------- 1 file changed, 198 insertions(+), 112 deletions(-) diff --git a/system/cms/core/REST_Controller.php b/system/cms/core/REST_Controller.php index 1aea761c4bc..011c90d212d 100644 --- a/system/cms/core/REST_Controller.php +++ b/system/cms/core/REST_Controller.php @@ -1,20 +1,24 @@ 'application/xml', - 'rawxml' => 'application/xml', 'json' => 'application/json', 'jsonp' => 'application/javascript', 'serialized' => 'application/vnd.php.serialized', @@ -112,7 +129,7 @@ class REST_Controller extends MY_Controller */ protected function early_checks() { - + } /** @@ -123,16 +140,26 @@ public function __construct() { parent::__construct(); + $this->_zlib_oc = @ini_get('zlib.output_compression'); + // Lets grab the config and get ready to party $this->load->config('rest'); // How is this request being made? POST, DELETE, GET, PUT? + $this->request = new stdClass(); $this->request->method = $this->_detect_method(); + // Create argument container, if nonexistent + if ( ! isset($this->{'_'.$this->request->method.'_args'})) + { + $this->{'_'.$this->request->method.'_args'} = array(); + } + // Set up our GET variables $this->_get_args = array_merge($this->_get_args, $this->uri->ruri_to_assoc()); //$this->load->library('security'); + // This library is bundled with REST_Controller 2.5+, but will eventually be part of CodeIgniter itself $this->load->library('format'); @@ -142,53 +169,21 @@ public function __construct() // Some Methods cant have a body $this->request->body = NULL; - switch ($this->request->method) - { - case 'get': - // Grab proper GET variables - parse_str(parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY), $get); - - // Merge both the URI segements and GET params - $this->_get_args = array_merge($this->_get_args, $get); - break; - - case 'post': - $this->_post_args = $_POST; - - $this->request->format and $this->request->body = file_get_contents('php://input'); - break; - - case 'put': - // It might be a HTTP body - if ($this->request->format) - { - $this->request->body = file_get_contents('php://input'); - } - - // If no file type is provided, this is probably just arguments - else - { - parse_str(file_get_contents('php://input'), $this->_put_args); - } - - break; - - case 'delete': - // Set up out DELETE variables (which shouldn't really exist, but sssh!) - parse_str(file_get_contents('php://input'), $this->_delete_args); - break; - } + $this->{'_parse_' . $this->request->method}(); // Now we know all about our request, let's try and parse the body if it exists if ($this->request->format and $this->request->body) { $this->request->body = $this->format->factory($this->request->body, $this->request->format)->to_array(); + // Assign payload arguments to proper method container + $this->{'_'.$this->request->method.'_args'} = $this->request->body; } // Merge both for one mega-args variable - $this->_args = array_merge($this->_get_args, $this->_put_args, $this->_post_args, $this->_delete_args); + $this->_args = array_merge($this->_get_args, $this->_put_args, $this->_post_args, $this->_delete_args, $this->{'_'.$this->request->method.'_args'}); // Which format should the data be returned in? + $this->response = new stdClass(); $this->response->format = $this->_detect_output_format(); // Which format should the data be returned in? @@ -217,6 +212,7 @@ public function __construct() } } + $this->rest = new StdClass(); // Load DB if its enabled if (config_item('rest_database_group') AND (config_item('rest_enable_keys') OR config_item('rest_enable_logging'))) { @@ -236,7 +232,7 @@ public function __construct() } // only allow ajax requests - if (!$this->input->is_ajax_request() AND config_item('rest_ajax_only')) + if ( ! $this->input->is_ajax_request() AND config_item('rest_ajax_only')) { $this->response(array('status' => false, 'error' => 'Only AJAX requests are accepted.'), 505); } @@ -245,8 +241,8 @@ public function __construct() /** * Remap * - * Requests are not made to methods directly, the request will be for - * an "object". This simply maps the object and method to the correct + * Requests are not made to methods directly, the request will be for + * an "object". This simply maps the object and method to the correct * Controller method. * * @param string $object_called @@ -280,7 +276,7 @@ public function _remap($object_called, $arguments) } // Sure it exists, but can they do anything with it? - if (!method_exists($this, $controller_method)) + if ( ! method_exists($this, $controller_method)) { $this->response(array('status' => false, 'error' => 'Unknown method.'), 404); } @@ -317,7 +313,20 @@ public function _remap($object_called, $arguments) } // And...... GO! - call_user_func_array(array($this, $controller_method), $arguments); + $this->_fire_method(array($this, $controller_method), $arguments); + } + + /** + * Fire Method + * + * Fires the designated controller method with the given arguments. + * + * @param array $method The controller method to fire + * @param array $args The arguments to pass to the controller method + */ + protected function _fire_method($method, $args) + { + call_user_func_array($method, $args); } /** @@ -326,22 +335,36 @@ public function _remap($object_called, $arguments) * Takes pure data and optionally a status code, then creates the response. * * @param array $data - * @param null|int $http_code + * @param null|int $http_code */ public function response($data = array(), $http_code = null) { + global $CFG; + // If data is empty and not code provide, error and bail if (empty($data) && $http_code === null) { $http_code = 404; - //create the output variable here in the case of $this->response(array()); - $output = $data; + // create the output variable here in the case of $this->response(array()); + $output = NULL; } // Otherwise (if no data but 200 provided) or some data, carry on camping! else { + // Is compression requested? + if ($CFG->item('compress_output') === TRUE && $this->_zlib_oc == FALSE) + { + if (extension_loaded('zlib')) + { + if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) AND strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE) + { + ob_start('ob_gzhandler'); + } + } + } + is_numeric($http_code) OR $http_code = 200; // If the format method exists, call and return the output in that format @@ -369,19 +392,25 @@ public function response($data = array(), $http_code = null) } } - header('HTTP/1.1: '.$http_code); - header('Status: '.$http_code); - header('Content-Length: '.strlen($output)); + header('HTTP/1.1: ' . $http_code); + header('Status: ' . $http_code); + + // If zlib.output_compression is enabled it will compress the output, + // but it will not modify the content-length header to compensate for + // the reduction, causing the browser to hang waiting for more data. + // We'll just skip content-length in those cases. + if ( ! $this->_zlib_oc && ! $CFG->item('compress_output')) + { + header('Content-Length: ' . strlen($output)); + } exit($output); } - /** + /* * Detect input format * * Detect which format the HTTP Body is provided in - * - * @return null|string */ protected function _detect_input_format() { @@ -409,8 +438,8 @@ protected function _detect_input_format() * Detect format * * Detect which format should be used to output the data. - * - * @return string The output format. + * + * @return string The output format. */ protected function _detect_output_format() { @@ -460,13 +489,13 @@ protected function _detect_output_format() // HTML or XML have shown up as a match else { - // If it is truely HTML, it wont want any XML + // If it is truly HTML, it wont want any XML if ($format == 'html' AND strpos($this->input->server('HTTP_ACCEPT'), 'xml') === FALSE) { return $format; } - // If it is truely XML, it wont want any HTML + // If it is truly XML, it wont want any HTML elseif ($format == 'xml' AND strpos($this->input->server('HTTP_ACCEPT'), 'html') === FALSE) { return $format; @@ -475,8 +504,9 @@ protected function _detect_output_format() } } } // End HTTP_ACCEPT checking + // Well, none of that has worked! Let's see if the controller has a default - if (!empty($this->rest_format)) + if ( ! empty($this->rest_format)) { return $this->rest_format; } @@ -488,20 +518,27 @@ protected function _detect_output_format() /** * Detect method * - * Detect which method (POST, PUT, GET, DELETE) is being used - * - * @return string + * Detect which HTTP method is being used + * + * @return string */ protected function _detect_method() { $method = strtolower($this->input->server('REQUEST_METHOD')); - if ($this->config->item('enable_emulate_request') && $this->input->post('_method')) + if ($this->config->item('enable_emulate_request')) { - $method = $this->input->post('_method'); + if ($this->input->post('_method')) + { + $method = strtolower($this->input->post('_method')); + } + elseif ($this->input->server('HTTP_X_HTTP_METHOD_OVERRIDE')) + { + $method = strtolower($this->input->server('HTTP_X_HTTP_METHOD_OVERRIDE')); + } } - if (in_array($method, array('get', 'delete', 'post', 'put'))) + if (in_array($method, $this->allowed_http_methods) && method_exists($this, '_parse_' . $method)) { return $method; } @@ -513,12 +550,11 @@ protected function _detect_method() * Detect API Key * * See if the user has provided an API key - * - * @return boolean + * + * @return boolean */ protected function _detect_api_key() { - // Get the api key name variable set in the rest config file $api_key_variable = config_item('rest_key_name'); @@ -527,12 +563,13 @@ protected function _detect_api_key() $this->rest->key = NULL; $this->rest->level = NULL; + $this->rest->user_id = NULL; $this->rest->ignore_limits = FALSE; // Find the key from server or arguments if (($key = isset($this->_args[$api_key_variable]) ? $this->_args[$api_key_variable] : $this->input->server($key_name))) { - if (!($row = $this->rest->db->where('key', $key)->get(config_item('rest_keys_table'))->row())) + if ( ! ($row = $this->rest->db->where('key', $key)->get(config_item('rest_keys_table'))->row())) { return FALSE; } @@ -554,12 +591,12 @@ protected function _detect_api_key() * Detect language(s) * * What language do they want it in? - * + * * @return null|string The language code. */ protected function _detect_lang() { - if (!$lang = $this->input->server('HTTP_ACCEPT_LANGUAGE')) + if ( ! $lang = $this->input->server('HTTP_ACCEPT_LANGUAGE')) { return NULL; } @@ -589,9 +626,9 @@ protected function _detect_lang() * Log request * * Record the entry for awesomeness purposes - * + * * @param boolean $authorized - * @return object + * @return object */ protected function _log_request($authorized = FALSE) { @@ -611,13 +648,13 @@ protected function _log_request($authorized = FALSE) * * Check if the requests are coming in a tad too fast. * - * @param string $controller_method The method deing called. - * @return boolean + * @param string $controller_method The method being called. + * @return boolean */ protected function _check_limit($controller_method) { // They are special, or it might not even have a limit - if (!empty($this->rest->ignore_limits) OR !isset($this->methods[$controller_method]['limit'])) + if ( ! empty($this->rest->ignore_limits) OR !isset($this->methods[$controller_method]['limit'])) { // On your way sonny-jim. return TRUE; @@ -634,7 +671,7 @@ protected function _check_limit($controller_method) ->row(); // No calls yet, or been an hour since they called - if (!$result OR $result->hour_started < time() - (60 * 60)) + if ( ! $result OR $result->hour_started < time() - (60 * 60)) { // Right, set one up from scratch $this->rest->db->insert(config_item('rest_limits_table'), array( @@ -667,10 +704,10 @@ protected function _check_limit($controller_method) /** * Auth override check * - * Check if there is a specific auth type set for the current class/method + * Check if there is a specific auth type set for the current class/method * being called. * - * @return boolean + * @return boolean */ protected function _auth_override_check() { @@ -717,11 +754,60 @@ protected function _auth_override_check() return true; } - // Return false when there is an override value set but it does not match + // Return false when there is an override value set but it does not match // 'basic', 'digest', or 'none'. (the value was misspelled) return false; } + /** + * Parse GET + */ + protected function _parse_get() + { + // Grab proper GET variables + parse_str(parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY), $get); + + // Merge both the URI segments and GET params + $this->_get_args = array_merge($this->_get_args, $get); + } + + /** + * Parse POST + */ + protected function _parse_post() + { + $this->_post_args = $_POST; + + $this->request->format and $this->request->body = file_get_contents('php://input'); + } + + /** + * Parse PUT + */ + protected function _parse_put() + { + // It might be a HTTP body + if ($this->request->format) + { + $this->request->body = file_get_contents('php://input'); + } + + // If no file type is provided, this is probably just arguments + else + { + parse_str(file_get_contents('php://input'), $this->_put_args); + } + } + + /** + * Parse DELETE + */ + protected function _parse_delete() + { + // Set up out DELETE variables (which shouldn't really exist, but sssh!) + parse_str(file_get_contents('php://input'), $this->_delete_args); + } + // INPUT FUNCTION -------------------------------------------------------------- /** @@ -755,7 +841,7 @@ public function post($key = NULL, $xss_clean = TRUE) return $this->_post_args; } - return $this->input->post($key, $xss_clean); + return array_key_exists($key, $this->_post_args) ? $this->_xss_clean($this->_post_args[$key], $xss_clean) : FALSE; } /** @@ -812,7 +898,7 @@ protected function _xss_clean($val, $process) /** * Retrieve the validation errors. * - * @return array + * @return array */ public function validation_errors() { @@ -828,7 +914,7 @@ public function validation_errors() * * @param string $username The user's name * @param string $password The user's password - * @return boolean + * @return boolean */ protected function _check_login($username = '', $password = NULL) { @@ -839,7 +925,7 @@ protected function _check_login($username = '', $password = NULL) $valid_logins = & $this->config->item('rest_valid_logins'); - if (!array_key_exists($username, $valid_logins)) + if ( ! array_key_exists($username, $valid_logins)) { return FALSE; } @@ -854,7 +940,7 @@ protected function _check_login($username = '', $password = NULL) } /** - * @todo document this. + * @todo document this. */ protected function _prepare_basic_auth() { @@ -883,14 +969,14 @@ protected function _prepare_basic_auth() } } - if (!$this->_check_login($username, $password)) + if ( ! $this->_check_login($username, $password)) { $this->_force_login(); } } /** - * @todo Document this. + * @todo Document this. */ protected function _prepare_digest_auth() { @@ -916,7 +1002,7 @@ protected function _prepare_digest_auth() $digest_string = ""; } - // The $_SESSION['error_prompted'] variable is used to ask the password + // The $_SESSION['error_prompted'] variable is used to ask the password // again if none given or if the user enters wrong auth information. if (empty($digest_string)) { @@ -927,7 +1013,7 @@ protected function _prepare_digest_auth() preg_match_all('@(username|nonce|uri|nc|cnonce|qop|response)=[\'"]?([^\'",]+)@', $digest_string, $matches); $digest = array_combine($matches[1], $matches[2]); - if (!array_key_exists('username', $digest) OR !$this->_check_login($digest['username'])) + if ( ! array_key_exists('username', $digest) OR !$this->_check_login($digest['username'])) { $this->_force_login($uniqid); } @@ -962,7 +1048,7 @@ protected function _check_whitelist_auth() $ip = trim($ip); } - if (!in_array($this->input->ip_address(), $whitelist)) + if ( ! in_array($this->input->ip_address(), $whitelist)) { $this->response(array('status' => false, 'error' => 'Not authorized'), 401); } @@ -971,7 +1057,7 @@ protected function _check_whitelist_auth() /** * @todo Document this. * - * @param string $nonce + * @param string $nonce */ protected function _force_login($nonce = '') { @@ -991,12 +1077,12 @@ protected function _force_login($nonce = '') * Force it into an array * * @param object|array $data - * @return array + * @return array */ protected function _force_loopable($data) { // Force it to be something useful - if (!is_array($data) AND !is_object($data)) + if ( ! is_array($data) AND !is_object($data)) { $data = (array) $data; } @@ -1009,9 +1095,9 @@ protected function _force_loopable($data) /** * Encode as JSONP - * + * * @param array $data The input data. - * @return string The JSONP data string (loadable from Javascript). + * @return string The JSONP data string (loadable from Javascript). */ protected function _format_jsonp($data = array()) { From e71bddea06dda9b4cd61d6087ce05a6d07fe5268 Mon Sep 17 00:00:00 2001 From: jerel Date: Wed, 11 Jul 2012 19:45:08 -0500 Subject: [PATCH 45/46] Added events to the admin files controller --- .../cms/modules/files/controllers/admin.php | 36 +++++++++++++++---- system/cms/modules/files/libraries/Files.php | 2 +- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/system/cms/modules/files/controllers/admin.php b/system/cms/modules/files/controllers/admin.php index 970e5e62ce1..a8d354935c9 100644 --- a/system/cms/modules/files/controllers/admin.php +++ b/system/cms/modules/files/controllers/admin.php @@ -97,7 +97,11 @@ public function new_folder() $parent_id = $this->input->post('parent'); $name = $this->input->post('name'); - echo json_encode(Files::create_folder($parent_id, $name)); + $result = Files::create_folder($parent_id, $name); + + $result['status'] AND Events::trigger('file_folder_created', $result['data']); + + echo json_encode($result); } /** @@ -169,7 +173,11 @@ public function rename_folder() if ($id = $this->input->post('folder_id') AND $name = $this->input->post('name')) { - echo json_encode(Files::rename_folder($id, $name)); + $result = Files::rename_folder($id, $name); + + $result['status'] AND Events::trigger('file_folder_updated', $id); + + echo json_encode($result); } } @@ -186,7 +194,11 @@ public function delete_folder() if ($id = $this->input->post('folder_id')) { - echo json_encode(Files::delete_folder($id)); + $result = Files::delete_folder($id); + + $result['status'] AND Events::trigger('file_folder_deleted', $id); + + echo json_encode($result); } } @@ -205,7 +217,11 @@ public function upload() if ($input['folder_id'] AND $input['name']) { - echo json_encode(Files::upload($input['folder_id'], $input['name'], 'file', $input['width'], $input['height'], $input['ratio'])); + $result = Files::upload($input['folder_id'], $input['name'], 'file', $input['width'], $input['height'], $input['ratio']); + + $result['status'] AND Events::trigger('file_uploaded', $result['data']); + + echo json_encode($result); } } @@ -222,7 +238,11 @@ public function rename_file() if ($id = $this->input->post('file_id') AND $name = $this->input->post('name')) { - echo json_encode(Files::rename_file($id, $name)); + $result = Files::rename_file($id, $name); + + $result['status'] AND Events::trigger('file_updated', $result['data']); + + echo json_encode($result); } } @@ -293,7 +313,11 @@ public function delete_file() if ($id = $this->input->post('file_id')) { - echo json_encode(Files::delete_file($id)); + $result = Files::delete_file($id); + + $result['status'] AND Events::trigger('file_deleted', $id); + + echo json_encode($result); } } diff --git a/system/cms/modules/files/libraries/Files.php b/system/cms/modules/files/libraries/Files.php index 4703340ee75..dbc6a1abea8 100644 --- a/system/cms/modules/files/libraries/Files.php +++ b/system/cms/modules/files/libraries/Files.php @@ -852,7 +852,7 @@ public static function rename_file($id = 0, $name) // physical filenames cannot be changed because of the risk of breaking embedded urls so we just change the db ci()->file_m->update($id, array('name' => $name)); - return self::result(TRUE, lang('files:item_updated'), $name, array('name' => $name)); + return self::result(TRUE, lang('files:item_updated'), $name, array('id' => $id, 'name' => $name)); } // ------------------------------------------------------------------------ From 53859da7d9b8dd042a0c304e1dcbe7683fa05095 Mon Sep 17 00:00:00 2001 From: jerel Date: Wed, 11 Jul 2012 20:22:00 -0500 Subject: [PATCH 46/46] Added the ID to both folder and file details pane in Files manager --- system/cms/modules/files/js/functions.js | 1 + system/cms/modules/files/language/arabic/files_lang.php | 1 + system/cms/modules/files/language/dutch/files_lang.php | 1 + system/cms/modules/files/language/english/files_lang.php | 1 + system/cms/modules/files/language/french/files_lang.php | 1 + system/cms/modules/files/language/greek/files_lang.php | 1 + system/cms/modules/files/language/indonesian/files_lang.php | 1 + system/cms/modules/files/language/italian/files_lang.php | 1 + system/cms/modules/files/language/lithuanian/files_lang.php | 1 + system/cms/modules/files/language/portuguese/files_lang.php | 1 + system/cms/modules/files/language/swedish/files_lang.php | 1 + system/cms/modules/files/language/thai/files_lang.php | 1 + system/cms/modules/files/views/admin/index.php | 3 +++ 13 files changed, 15 insertions(+) diff --git a/system/cms/modules/files/js/functions.js b/system/cms/modules/files/js/functions.js index f91ef7f7f55..9fb801a5aba 100644 --- a/system/cms/modules/files/js/functions.js +++ b/system/cms/modules/files/js/functions.js @@ -712,6 +712,7 @@ jQuery(function($){ $item_details.find('li').hide(); if ($item) { + if ($item.id) $item_details.find('.id') .html($item.id).parent().show(); if ($item.name) $item_details.find('.name') .html($item.name).parent().show(); if ($item.slug) $item_details.find('.slug') .html($item.slug).parent().show(); if ($item.path) $item_details.find('.path') .val($item.path).parent().show(); diff --git a/system/cms/modules/files/language/arabic/files_lang.php b/system/cms/modules/files/language/arabic/files_lang.php index 081fe355c71..a5c617cde87 100644 --- a/system/cms/modules/files/language/arabic/files_lang.php +++ b/system/cms/modules/files/language/arabic/files_lang.php @@ -20,6 +20,7 @@ $lang['files:forward'] = 'تقدم'; $lang['files:start'] = 'ابدأ الرفع'; $lang['files:details'] = 'التفاصيل'; +$lang['files:id'] = 'ID'; #translate $lang['files:name'] = 'الاسم'; $lang['files:slug'] = 'المختصر'; $lang['files:path'] = 'المسار'; diff --git a/system/cms/modules/files/language/dutch/files_lang.php b/system/cms/modules/files/language/dutch/files_lang.php index 3dd44bb8461..d75fbe8030e 100644 --- a/system/cms/modules/files/language/dutch/files_lang.php +++ b/system/cms/modules/files/language/dutch/files_lang.php @@ -20,6 +20,7 @@ $lang['files:forward'] = 'Volgende'; $lang['files:start'] = 'Start Upload'; $lang['files:details'] = 'Details'; +$lang['files:id'] = 'ID'; #translate $lang['files:name'] = 'Naam'; $lang['files:slug'] = 'Slug'; $lang['files:path'] = 'Pad'; diff --git a/system/cms/modules/files/language/english/files_lang.php b/system/cms/modules/files/language/english/files_lang.php index bb1dcc14388..89ead3c2880 100644 --- a/system/cms/modules/files/language/english/files_lang.php +++ b/system/cms/modules/files/language/english/files_lang.php @@ -20,6 +20,7 @@ $lang['files:forward'] = 'Forward'; $lang['files:start'] = 'Start Upload'; $lang['files:details'] = 'Details'; +$lang['files:id'] = 'ID'; $lang['files:name'] = 'Name'; $lang['files:slug'] = 'Slug'; $lang['files:path'] = 'Path'; diff --git a/system/cms/modules/files/language/french/files_lang.php b/system/cms/modules/files/language/french/files_lang.php index 53dc5865acc..9b81eea5ad9 100644 --- a/system/cms/modules/files/language/french/files_lang.php +++ b/system/cms/modules/files/language/french/files_lang.php @@ -20,6 +20,7 @@ $lang['files:forward'] = 'Avant'; $lang['files:start'] = 'Commencer le téléchargement'; $lang['files:details'] = 'Details'; +$lang['files:id'] = 'ID'; #translate $lang['files:name'] = 'Nom'; $lang['files:slug'] = 'Slug'; $lang['files:path'] = 'Chemin'; diff --git a/system/cms/modules/files/language/greek/files_lang.php b/system/cms/modules/files/language/greek/files_lang.php index 30fba6416fc..38853a895e7 100644 --- a/system/cms/modules/files/language/greek/files_lang.php +++ b/system/cms/modules/files/language/greek/files_lang.php @@ -20,6 +20,7 @@ $lang['files:forward'] = 'Εμπρός'; $lang['files:start'] = 'Εκκίνηση'; $lang['files:details'] = 'Λεπτομέρειες'; +$lang['files:id'] = 'ID'; #translate $lang['files:name'] = 'Όνομα'; $lang['files:slug'] = 'Σύντομο όνομα'; $lang['files:path'] = 'Διαδρομή'; diff --git a/system/cms/modules/files/language/indonesian/files_lang.php b/system/cms/modules/files/language/indonesian/files_lang.php index 558fabfd16e..6076ba2a57d 100644 --- a/system/cms/modules/files/language/indonesian/files_lang.php +++ b/system/cms/modules/files/language/indonesian/files_lang.php @@ -20,6 +20,7 @@ $lang['files:forward'] = 'Maju'; $lang['files:start'] = 'Mulai Mengunggah'; $lang['files:details'] = 'Detail'; +$lang['files:id'] = 'ID'; #translate $lang['files:name'] = 'Nama'; $lang['files:slug'] = 'Slug'; $lang['files:path'] = 'Path'; diff --git a/system/cms/modules/files/language/italian/files_lang.php b/system/cms/modules/files/language/italian/files_lang.php index c3151af3522..764587e190f 100644 --- a/system/cms/modules/files/language/italian/files_lang.php +++ b/system/cms/modules/files/language/italian/files_lang.php @@ -20,6 +20,7 @@ $lang['files:forward'] = 'Avanti'; $lang['files:start'] = 'Inizia Upload'; $lang['files:details'] = 'Dettagli'; +$lang['files:id'] = 'ID'; #translate $lang['files:name'] = 'Nome'; $lang['files:slug'] = 'Slug'; $lang['files:path'] = 'Path'; diff --git a/system/cms/modules/files/language/lithuanian/files_lang.php b/system/cms/modules/files/language/lithuanian/files_lang.php index dd26680288f..993a8ff699f 100644 --- a/system/cms/modules/files/language/lithuanian/files_lang.php +++ b/system/cms/modules/files/language/lithuanian/files_lang.php @@ -20,6 +20,7 @@ $lang['files:forward'] = 'Pirmyn'; $lang['files:start'] = 'Pradėti įkęlimą'; $lang['files:details'] = 'Informacija'; +$lang['files:id'] = 'ID'; #translate $lang['files:name'] = 'Pavadinimas'; $lang['files:slug'] = 'Slug'; $lang['files:path'] = 'Kelias (path)'; diff --git a/system/cms/modules/files/language/portuguese/files_lang.php b/system/cms/modules/files/language/portuguese/files_lang.php index 72b18d302ea..4b5c70a82c9 100755 --- a/system/cms/modules/files/language/portuguese/files_lang.php +++ b/system/cms/modules/files/language/portuguese/files_lang.php @@ -20,6 +20,7 @@ $lang['files:forward'] = 'Seguir'; $lang['files:start'] = 'Começar Upload'; $lang['files:details'] = 'Detalhes'; +$lang['files:id'] = 'ID'; #translate $lang['files:name'] = 'Nome'; $lang['files:slug'] = 'Slug';#translate $lang['files:path'] = 'Caminho'; diff --git a/system/cms/modules/files/language/swedish/files_lang.php b/system/cms/modules/files/language/swedish/files_lang.php index 352f0b16a12..61b7dcc7d57 100644 --- a/system/cms/modules/files/language/swedish/files_lang.php +++ b/system/cms/modules/files/language/swedish/files_lang.php @@ -28,6 +28,7 @@ $lang['files:forward'] = 'Framåt'; $lang['files:start'] = 'Starta uppladdning'; $lang['files:details'] = 'Detaljer'; +$lang['files:id'] = 'ID'; #translate $lang['files:name'] = 'Namn'; $lang['files:slug'] = 'Slugg'; $lang['files:path'] = 'Sökväg'; diff --git a/system/cms/modules/files/language/thai/files_lang.php b/system/cms/modules/files/language/thai/files_lang.php index 78a377fd0a2..6e948c0e3cf 100644 --- a/system/cms/modules/files/language/thai/files_lang.php +++ b/system/cms/modules/files/language/thai/files_lang.php @@ -30,6 +30,7 @@ $lang['files:forward'] = 'ถัดไป'; $lang['files:start'] = 'เริ่มที่อัปโหลด'; $lang['files:details'] = 'รายละเอียด'; +$lang['files:id'] = 'ID'; #translate $lang['files:name'] = 'ชื่อ'; $lang['files:slug'] = 'Slug'; $lang['files:path'] = 'ที่อยู่'; diff --git a/system/cms/modules/files/views/admin/index.php b/system/cms/modules/files/views/admin/index.php index 305c0f42917..33c71ad5da3 100644 --- a/system/cms/modules/files/views/admin/index.php +++ b/system/cms/modules/files/views/admin/index.php @@ -70,6 +70,9 @@

      +
    • + +