Ga naar hoofdinhoud

WP Media Folder Addon: Dropbox-integratie

1. Inloggen op Dropbox in WP Media Folder

Om de integratie te voltooien, ga terug naar de WordPress Thing dashboard en klik op het menu Instellingen > WP Media Folder > Cloud > Dropbox tab. Eerst kun je de miniatuur voor afbeeldingen instellen.

Genereer afbeelding miniatuur: Deze optie genereert afbeelding miniaturen en slaat ze op uw cloudaccount. Afbeelding miniaturen worden gegenereerd volgens WordPress Thing instellingen en worden gebruikt wanneer u afbeeldingen insluit (voor prestatie doeleinden)

 

generate-image-thumbnail-

 

 Selecteer vervolgens uw Media linktype:

  • Publieke link: genereer een publiek toegankelijke link voor uw bestanden en pas de juiste rechten toe op de cloudbestanden (Gedeelde link)
  • Privélink: AJAX-link, verbergt de cloudlink om het oorspronkelijke toegangsrecht van uw bestand te behouden 

 

media-link-type

 

Vervolgens kunt u verbinding maken met Dropbox-account met Automatische modus of Handmatige modus:

Automatische modus

Vanaf nu kun je veel tijd besparen tijdens het verbinden met de Dropbox-server. Eerst, om deze functie te gebruiken, moet je je Joomunited-account koppelen bij Menu Instellingen > Algemeen, klik dan op de WordPress Thing instellingenlink als je nog niet verbonden bent.

 

niet-verbonden-dropbox

 

Ga dan terug naar de plugin Instellingen > WP Media Folder > Cloud > Dropbox tab en klik gewoon op Verbind Dropbox knop in de rechterhoek.

 

verbind-auto-dropbox

 

Volg vervolgens de volgende stappen om de verbinding te voltooien.

 

connected-auto-dropbox

 

Het gaat zo snel, toch? Ja, dat weten we. :) 

 

Handmatige modus

Met de inloggegevens uit de vorige stap, ga naar WordPress Thing admin en klik op het menu Instellingen > WP Media Folder > Cloud Connection tabblad > Dropbox instellingen sectie en plak uw

  • App-sleutel
  • App-geheim

Dan u Opslaan de configuratie, daarna klikt u op Connect Dropbox knop.

 

dropbox-wp-connection

 

U moet de toegangsautorisatie voor app-toegang valideren - klik eenvoudig op de Toestaan knop.

 

dropbox-app-allow

 

De verbinding zou een succes moeten zijn ☺ Als het succesvol is, kunt u mappen en submappen maken in Dropbox en in WP Media Folder. Alles wordt automatisch gesynchroniseerd!

Update van Dropbox v1 API naar v2 API-versie

Door een grote wijziging in de Dropbox API op 19 februari 2022 vereisen de eerder aangemaakte Dropbox‑apps een update naar API v2 om weer te functioneren. Als uw app kort voor de genoemde datum is aangemaakt of u de automatische connector heeft gebruikt (u didn't een aangepaste app hebt gemaakt), is er een kans dat u alleen hoeft uitloggen/inloggen om het probleem op te lossen.
Als dat niet het geval is, moet u deze stappen volgen om uw gegevens van de oude Dropbox‑app naar een nieuwe app te verplaatsen.

 

Optie 1: Blijf uw oude Dropbox-app gebruiken

Geval 1: U gebruikte de automatische connector

Dit is het gemakkelijkste scenario. Open gewoon de plug-in Instellingen > WP Media Folder > Cloudverbinding > Dropbox tabblad en Ontkoppel/Herverbinden van uw Dropbox-account om het probleem op te lossen.

 

verbind-auto-dropbox

 

Geval 2: U gebruikte een recent aangemaakte aangepaste Dropbox-app

Probeer alstublieft geautoriseerde omleidings-URI's toe te voegen in de Dropbox-instellingen aan uw Dropbox-app en maak opnieuw verbinding met het Dropbox-account in WP Media Folder. Als het werkt, dat’s alles wat u moet doen.
Als deze procedure niet werkt, moet u naar optie 2 hieronder gaan.

Voeg de geautoriseerde omleidings-URI's toe onder OAuth 2:

 

redirect-url-mf

 

En op het Permissies tabblad, moet u de permissies instellen zoals op de afbeelding hieronder. Klik vervolgens op Migreren knop.

 

permission-dropbox-setup

 

Verbind de app vervolgens opnieuw vanuit de WP Media Folder-instellingen

 

dropbox-wp-connection

 

Optie 2: Verbind een nieuwe Dropbox-app en verplaats bestanden

Stap 1. u moet een nieuwe Dropbox-app en verbind uw Dropbox-account vanuit de WP Media Folder-instellingen. Volg alstublieft deze stappen die in hoofdstuk 1 van deze documentatie worden beschreven om verder te gaan.

 

maak-app

 

Stap 2. verplaats uw Dropbox-bestanden en synchroniseer opnieuw

Na het verbinden van uw nieuwe Dropbox-app met uw WordPress Thing website, moet u alle mappen en bestanden verplaatsen van de oude app-hoofdmap in Dropbox. Gewoon drag'n drop al uw mappen onder de nieuwe map die door de nieuwe app wordt gebruikt.
Wacht vervolgens op de volledige synchronisatie; afhankelijk van de hoeveelheid data kan dit even duren.

 

nieuwe-app-bestand-verplaats

 

2. Hoe werkt het? Wat kan ik doen met Dropbox?

Hoe werkt het? 

WP Media Folder zal genereren een hoofdmap op uw Dropbox met de sitenaam.

 

dropbox-web

 

Alle mappen en submappen die zijn toegevoegd in WP Media Folder Dropbox worden gesynchroniseerd onder deze map (WP Media Folder - {sitename}). En omgekeerd, al uw media van die hoofdmap op Dropbox wordt gesynchroniseerd naar uw mediabibliotheek op WordPress Thing.


Wat zijn de synchronisatierichtingen?

Het werkt in beide richtingen! Je kunt een bestand toevoegen aan Dropbox en het zien in WP Media Folder, of een bestand toevoegen via WP Media Folder en het zien in Dropbox. Het betekent ook dat je WP Media Folder‑bestanden kunt beheren vanaf je desktop met Dropbox‑synchronisatiesoftware. Dat’s gek - we weten het! ☺

 

Dropbox-twee-weg-synchronisatie

 

De WP Media Folder Dropbox-integratie stelt je in staat om 2 soorten acties met je media uit te voeren:

De eerste optie is om Importeer de Dropbox media in WP Media Folder door een map te selecteren om te kopiëren.

 

import-dropbox-folder

 

De tweede alternatieve is om Insluiten van de Dropbox media in uw inhoud direct. In dit geval wordt de media geladen in uw inhoud vanaf Dropbox, niet vanaf uw server.

 

dropbox-media-embed

 

3. Maak een Dropbox-app


De Dropbox-integratie wordt verspreid als een aparte add‑on. Je moet deze add‑on (plugin) extra installeren voor WP Media Folder. De add‑on bevat integratie voor Google Drive, OneDrive Personal, OneDrive Business en Amazon S3 ook.

Eerst heb je een Dropbox‑app nodig om je website te verbinden met een Dropbox‑account. Ga naar https://www.dropbox.com/developers en maak een nieuwe app. 

 

maak-dropbox-app

 

Stel vervolgens een app‑type in: "Dropbox API", "Volledige Dropbox" of "App Folder" en geef een app‑naam.

Volledige Dropbox: Bestandscategorieën van WP Media Folder worden toegevoegd als mappen in de hoofdmap van uw Dropbox-account (één website = één Dropbox-account).
"App map": alle mappen/bestanden worden opgeslagen in één map (om rommel in uw Dropbox-account te voorkomen).

 

dropbox-app-info

 

Je bent bijna klaar - je app is aangemaakt en je hebt je app-sleutel en geheim.

 

app-create-dropbox

 

Op OAuth 2 sectie, plak de Redirect-URL van de WP Media Folder Dropbox-instellingen op de Redirect-URL's veld, klik vervolgens op Toevoegen knop. De URL moet er als volgt uitzien: "https://joomunited.com/wp-admin/options-general.php?page=option-folder&task=wpmf&function=dropbox_authenticate"

 

redirect-url-mf

 

Voor meer beveiliging in de toekomst moet je de "Short-lived" optie bij OAuth 2 sectie > Toegangstoken vervaldatum.

 

token-expired-dropbox-mf

 

En op de Machtigingen tab, moet je machtigingen instellen zoals op de afbeelding hieronder.

 

permission-dropbox-setup

Duplicate entry 'cc46bdf9d2ec3413199a4ce0a0d95031-nl' for key 'bk24_linguise_urls.hash_translation' (500 Whoops, looks like something went wrong.)

mysqli_sql_exception

HTTP 500 Whoops, looks like something went wrong.

Duplicate entry 'cc46bdf9d2ec3413199a4ce0a0d95031-nl' for key 'bk24_linguise_urls.hash_translation'

Exception

mysqli_sql_exception

Show exception properties
mysqli_sql_exception {#896
  #sqlstate: "23000"
}
  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:
Duplicate entry 'cc46bdf9d2ec3413199a4ce0a0d95031-nl' for key 'bk24_linguise_urls.hash_translation'

  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}()