Aller au contenu principal

Extension WP Media Folder : intégration OneDrive Business

1. Connexion à OneDrive Business depuis WP Media Folder

Afin de connecter le compte OneDrive Business dans WP Media Folder, veuillez naviguer vers le menu Paramètres > WP Media Folder > Cloud & Media offload > Connecteurs cloud > section OneDrive Business

Tout d'abord, vous pouvez définir la miniature pour les images.

Générer la miniature d'image : Cette option générera des miniatures d'images et les stockera sur votre compte cloud. Les miniatures d'images seront générées selon WordPress Thing paramètres et utilisées lorsque vous intégrez des images (à des fins de performance)

 

generate-image-thumbnail-

 

Veuillez sélectionner votre type de lien média:

  • Lien public : génère un lien public accessible pour vos fichiers et affecte les droits appropriés sur les fichiers cloud (lien partagé)
  • Private link: AJAX link, hide the cloud link to keep the original access right of your file 

 

media-link-type

 

Then you can connect to OneDrive Business account with Automatic mode or Manual mode:

Mode automatique

From now, you can save a lot of time while connecting to the OneDrive server. At OneDrive Business section click on Connect OneDrive Business button.

 

connect-auto-onedrive-business

 

Suivez ensuite les étapes suivantes pour terminer la connexion.

 

connected-auto-onedrive-business

 

It's so quickly, right? Yes, we know it. :) 

 

Mode manuel

Avec les identifiants de l’étape précédente, dans la section OneDrive Business, collez ce qui suit dans les champs du formulaire :

  • ID client
  • Secret client

 

credentials-copy-business

 

Après cela, vous enregistrez la configuration et cliquez sur Connecter OneDrive Business le bouton.

 

connect-onedrive-business

 

Vous devrez valider l'autorisation d'accès pour accorder l'accès à WordPress Thing; cliquez simplement sur Oui dans la nouvelle fenêtre.

 

autorisation d'application

 

La connexion devrait être un succès ☺ Si elle réussit, vous pouvez créer des dossiers et des sous-dossiers dans OneDrive Business et dans WP Media Folder - tout sera synchronisé automatiquement !

2. Comment ça fonctionne ? Que puis‑je faire avec OneDrive Business ?

Comment ça fonctionne ? 

WP Media Folder générera un dossier racine sur votre OneDrive Business avec le nom du site.

 

modifier-onedrive-business-from-wordpress thing

 

Tous les dossiers et sous-dossiers ajoutés dans WP Media Folder OneDrive Business seront synchronisés sous ce dossier (WP Media Folder - {sitename}). Et inversement, tous vos médias provenant de ce dossier racine sur OneDrive Business seront synchronisés vers votre bibliothèque média sur WordPress Thing.

 

Quelles sont les directions de synchronisation ?

Cela fonctionne dans les deux sens ! Vous pouvez ajouter un fichier à OneDrive Business et le voir dans WP Media Folder, ou ajouter un fichier dans WP Media Folder et le voir dans OneDrive Business. Cela signifie également que vous pouvez gérer les fichiers WP Media Folder depuis votre bureau en utilisant le logiciel de synchronisation OneDrive.

L'intégration OneDrive Business de WP Media Folder vous permet d'effectuer 3 types d'actions avec vos médias :

  • Importer les médias OneDrive Business dans le dossier WP Media (fonctionne automatiquement après la connexion)
  • Importer les médias OneDrive Business dans la bibliothèque multimédia WordPress Thing

 

Importer-Médias-OneDrive-entreprise

 

  • Intégrer les médias OneDrive Business directement dans votre contenu. Dans ce cas, les médias seront chargés dans votre contenu depuis OneDrive Business, et non depuis votre serveur.

 

intégrer-OneDrive-entreprise-image

 

3. Enregistrement de l’application Microsoft OneDrive Business


L'intégration OneDrive Business est distribuée sous forme d'un module complémentaire séparé. Vous devez installer cet add-on (plugin) en plus de WP Media Folder. Le module comprend également l'intégration pour Google Drive, Google Photo, Dropbox, OneDrive Personnel et Amazon S3.

Tout d'abord, vous avez besoin d'une application Microsoft Azure pour connecter votre site web à un compte OneDrive Business. Allez à https://portal.azure.com/, connectez-vous et cliquez sur Nouvelle inscription bouton.

 

add-microsoft-app

 

Sur le formulaire d'enregistrement d'une application, définissez un nom d'application et copiez l'URL de votre site Web dans le champ URL de redirection et cliquez sur le Enregistrer bouton.

Dans la section Types de comptes pris en charge, vous devez sélectionner "Comptes dans n'importe quel répertoire organisationnel (Tout répertoire Azure AD - multitenant) et comptes Microsoft personnels (ex. Skype, Xbox)" option.
 

register-app-business


 
Vous avez presque fini - à partir d'ici vous avez un ID d'application (ID client), il ne manque que le mot de passe. Dans le menu de gauche, allez à Certificats & secrets, puis cliquez sur le Nouveau secret client bouton pour en créer un. Après cela, remplissez le Description et définissez le Expiration pour cela.

 

new-password-1

 

Un mot de passe (Secret client) est généré immédiatement après avoir cliqué sur Ajouter bouton ; copiez-le car vous en aurez bientôt besoin.

 

nouveau-mot-de-passe-entreprise

 

Deadlock found when trying to get lock; try restarting transaction (500 Whoops, looks like something went wrong.)

mysqli_sql_exception

HTTP 500 Whoops, looks like something went wrong.

Deadlock found when trying to get lock; try restarting transaction

Exception

mysqli_sql_exception

Show exception properties
mysqli_sql_exception {#896
  #sqlstate: "40001"
}
  1. foreach ($urls as $translation => $source) {
  2. $elements[] = '("'.mysqli_real_escape_string($this->_database, Request::getInstance()->getLanguage()).'", "'.mysqli_real_escape_string($this->_database, $source).'", "'.mysqli_real_escape_string($this->_database, $translation).'", "'.md5($source).'", "'.md5($translation).'")';
  3. }
  4. $query .= implode(',', $elements);
  5. $query .= ' ON DUPLICATE KEY UPDATE source=VALUES(source), translation=VALUES(translation), hash_source=VALUES(hash_source), hash_translation=VALUES(hash_translation)';
  6. $this->_database->query($query);
  7. }
  8. public function removeUrls($urls)
  9. {
  10. $query = 'DELETE FROM '.mysqli_real_escape_string($this->_database, $this->_database_table_urls).' WHERE (hash_source) IN ';
  1. foreach ($urls as $translation => $source) {
  2. $elements[] = '("'.mysqli_real_escape_string($this->_database, Request::getInstance()->getLanguage()).'", "'.mysqli_real_escape_string($this->_database, $source).'", "'.mysqli_real_escape_string($this->_database, $translation).'", "'.md5($source).'", "'.md5($translation).'")';
  3. }
  4. $query .= implode(',', $elements);
  5. $query .= ' ON DUPLICATE KEY UPDATE source=VALUES(source), translation=VALUES(translation), hash_source=VALUES(hash_source), hash_translation=VALUES(hash_translation)';
  6. $this->_database->query($query);
  7. }
  8. public function removeUrls($urls)
  9. {
  10. $query = 'DELETE FROM '.mysqli_real_escape_string($this->_database, $this->_database_table_urls).' WHERE (hash_source) IN ';
  1. public function saveUrls($urls) {
  2. if (empty($urls)) {
  3. return;
  4. }
  5. return $this->_database->saveUrls($urls);
  6. }
  7. public function removeUrls($urls) {
  8. if (empty($urls)) {
  9. return;
  1. if (isset($result->url_translations)) {
  2. Defer::getInstance()->defer(function() use ($result) {
  3. $new_urls = $result->url_translations;
  4. $new_urls = get_object_vars($new_urls);
  5. Database::getInstance()->saveUrls((array)$new_urls);
  6. });
  7. }
  8. if (isset($result->urls_untranslated)) {
  9. Defer::getInstance()->defer(function() use ($result) {
Translation->Linguise\Script\Core\{closure}()
  1. }
  2. public function finalize()
  3. {
  4. foreach ($this->_actions as $action) {
  5. call_user_func($action['function'], $action['args']);
  6. }
  7. }
  8. }
  1. Helper::prepareDataDir();
  2. // Finalize defer actions on shutdown
  3. // @codeCoverageIgnoreStart
  4. register_shutdown_function(function() {
  5. Defer::getInstance()->finalize();
  6. Database::getInstance()->close();
  7. });
  8. // @codeCoverageIgnoreEnd
  9. }
Processor->Linguise\Script\Core\{closure}()

Stack Trace

mysqli_sql_exception
mysqli_sql_exception:
Deadlock found when trying to get lock; try restarting transaction

  at /var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Databases/Mysql.php:170
  at mysqli->query()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Databases/Mysql.php:170)
  at Linguise\Script\Core\Databases\Mysql->saveUrls()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Database.php:232)
  at Linguise\Script\Core\Database->saveUrls()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Translation.php:119)
  at Linguise\Script\Core\Translation->Linguise\Script\Core\{closure}()
  at call_user_func()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Defer.php:42)
  at Linguise\Script\Core\Defer->finalize()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Processor.php:31)
  at Linguise\Script\Core\Processor->Linguise\Script\Core\{closure}()