Plugin Località 🌍

Controlla l’impostazione location users map limit. Se è inferiore al numero di utenti che hanno aggiunto la propria posizione, quelli dopo il numero limite non verranno visualizzati sulla mappa.

5 Mi Piace

Era tutto. Grazie. :smile:

2 Mi Piace

Alcuni miei utenti incontrano un limite di frequenza con il provider predefinito (nominatim) che li fa attendere un minuto prima di riprovare.

Stranamente, non incontro alcun tipo di limite.

Vedi: The location field in profile is kind of broken - Forum Feedback - Unicyclist.com

  1. Hai qualche idea sul perché non incontro limiti mentre alcuni utenti li incontrano? Ho provato a scrivere nomi di luoghi lunghi mentre digitavo velocemente.
  2. Quale sarebbe la tua seconda scelta per l’impostazione location_geocoding_provider (per un uso gratuito)?
  3. Cos’è l’impostazione location_geocoding_debounce?

Vedo che nella policy di utilizzo di nominatim si afferma che “Ricerca di completamento automatico Questa non è ancora supportata da Nominatim e non devi implementare tale servizio sul lato client utilizzando l’API.”

Non c’è completamento automatico nel pulsante della posizione su un nuovo argomento, ma ce n’è uno nel campo utente personalizzato:

image

image

chrome_tOtNSZ2dXy

  1. Questo è un uso proibito? :thinking:

Sì e no. Principalmente no. Può essere contro il GDPR, se la posizione viene acquisita automaticamente senza l’azione dell’utente E il sito è gestito da un’azienda o una community, non da una persona privata, E non è necessaria.

Ma… la geolocalizzazione è davvero imprecisa. Non so come siano le cose in Francia, ma in Finlandia tutti gli operatori agiscono a livello nazionale, quindi ogni volta che il mio IP cambia, cambia la mia posizione e ogni volta indica la città sbagliata.

E l’IP non è considerato un dato personale, ma più o meno un dato pubblico che non può essere utilizzato per identificare una singola persona.

Ma nell’uso del plugin la geolocalizzazione non è vietata, proibita o illegale, perché un utente vuole mostrarla. E usare l’IP come fonte di localizzazione non è mai illegale.

Ci possono essere alcune questioni morali, però. Ma dipende dal forum.

Potrei fraintendere il funzionamento del plugin. Dovrò leggere tutto questo argomento. Grazie per la tua risposta. :slight_smile:

Puoi usare Nominatim solo per i test. Per la produzione, consiglierei

2 Mi Piace

Sto dando seguito a questo dal mese scorso, mi scuso, in qualche modo mi sono perso tutte le notifiche alle risposte :man_facepalming:

Il nostro altro sito, che visualizza il testo più grande, utilizza Leaflet v1.5.1

Vedo che il plugin Locations era 1.3.4 e ora è 1.7.1, il che significa che la versione non è un problema.

Concordo.

Solo per ricordare a tutti, il testo sulla nostra mappa Locations è così piccolo che è illeggibile.

Esempio con screenshot qui: Locations Plugin 🌍 - #736 by Richie

Grazie Robert @merefield sì, ho accesso al codice sorgente dell’altro sito dove il testo è più grande ma sulla stessa mappa di base.

La differenza, credo, è che viene passato un parametro aggiuntivo:

tileSize: 512

È applicato in questo contesto:


// Attribuzione
var mbAttr = 'Mappa &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a>, Immagini © <a href="https://www.mapbox.com/">Mapbox</a>, Contenuto &copy; <a href="https://GreyArro.ws/">Grey Arrows Drone Club</a>',
	mbUrl = 'https://api.mapbox.com/styles/v1/mapbox/{id}/tiles/{z}/{x}/{y}?access_token=%3C%=Variabs.GlobalVariables.strOpenStreetMapKey%%3E',
	mbMaxZoom = '20'
;


// Mappe di base
var
	// Elenco completo: https://gis.stackexchange.com/a/244797/145060
	// Elenco completo: https://docs.mapbox.com/help/troubleshooting/migrate-legacy-static-tiles-api/#which-classic-styles-are-being-deprecated
	// Elenco completo: https://docs.mapbox.com/api/maps/#mapbox-styles
	dark = L.tileLayer(mbUrl, { id: 'dark-v10', maxZoom: mbMaxZoom, attribution: mbAttr, tileSize: 512, zoomOffset: -1 }),
	road = L.tileLayer(mbUrl, { id: 'outdoors-v11', maxZoom: mbMaxZoom, attribution: mbAttr, tileSize: 512, zoomOffset: -1 }),
	satellite = L.tileLayer(mbUrl, { id: 'satellite-v9', maxZoom: mbMaxZoom, attribution: mbAttr, tileSize: 512, zoomOffset: -1 }),
	hybrid = L.tileLayer(mbUrl, { id: 'satellite-streets-v11', maxZoom: mbMaxZoom, attribution: mbAttr, tileSize: 512, zoomOffset: -1 })
;

Pertanto, penso di avere una richiesta di funzionalità :slight_smile:

Per favore, possiamo aggiungere un tileSize alle impostazioni del plugin?

A meno che non possa in qualche modo passare la dimensione delle tessere desiderata nell’impostazione Map tile layer uri? :thinking:

Ciao,

Ho notato un problema con il pulsante di posizione del composer, credo.
Versione di Discourse a6abf8d07a

Grazie :slightly_smiling_face:

1 Mi Piace

Grazie @Don Posso riprodurlo, anche se non sembra interrompere lo spettacolo, ci darò un’occhiata molto presto

2 Mi Piace

È dovuto a una modifica che introduce incompatibilità retroattiva da questo commit nel core: FIX: Use CSS transition to make room for composer (#16750) · discourse/discourse@9ea8a4a (github.com)

Ho implementato una correzione insieme ad alcune piccole modifiche di formattazione per migliorare L&F:

4 Mi Piace

Grazie Robert :slightly_smiling_face: Apprezzo molto che tu abbia risolto questo problema così rapidamente al di fuori dell’orario di manutenzione. Aggiornerò presto e aggiornerò anche questo post su come funziona. :slightly_smiling_face:

Funziona benissimo, grazie ancora! :slightly_smiling_face:

1 Mi Piace

Ciao. Qualcuno sa se è in qualche modo possibile aggiungere una posizione a una mappa lasciando cadere un segnaposto con questo plugin?

Le posizioni di alcune comunità si trovano in luoghi difficili da identificare senza l’uso di coordinate, il che potrebbe scoraggiare alcuni utenti dall’aggiungere una posizione. Grazie!

2 Mi Piace

Ero sicuro che qualcuno l’avesse già richiesto, ma per quanto ne so non è presente nell’elenco attuale.

Le richieste di funzionalità possono essere effettuate qui: Pavilion

Ma si noti che di solito siamo abbastanza impegnati a mantenere i plugin che le nuove funzionalità sono rare senza che qualcuno sponsorizzi il lavoro.

Accoglieremmo anche le PR. Questa è una funzionalità particolarmente buona da aggiungere.

5 Mi Piace

Ciao,

Ho notato un problema con la posizione sotto il titolo dell’argomento. Se un utente rimuove una posizione aggiunta in precedenza da /preferences/profile
Quindi mostrerà una posizione vuota sotto il titolo dell’argomento invece di rimuoverla.

Grazie :slightly_smiling_face:

Ciao!

Ho modificato il template list/topic-list-item.raw per visualizzare la posizione nell’elenco degli argomenti:

    {{#if topic.location}}
      <div>
        {{d-icon 'map-marker-alt'}} {{location-format topic.location opts}}{{location-label-container}}
      </div>
    {{/if}}

Ma penso che la mia condizione non sia scritta correttamente, perché se disabilito il plugin, il ciclo dell’elenco degli argomenti si interrompe.

Quale sarebbe il modo corretto per verificare se la posizione dell’argomento esiste nel template handlebars?

1 Mi Piace

Sovrascrivere questo sembra un po’ estremo, perché non usare i connettori?:

topic-list-after-title OPPURE
topic-list-before-category

Dai un’occhiata a An interesting strategy for passing properties via raw template plugin outlets

2 Mi Piace

Perché non ho trovato quelli giusti (o forse non esistevano al momento in cui ho modificato il template, circa 2 anni fa) :sweat_smile:

Probabilmente sarà più facile in questo modo, ci proverò, grazie!


Uh… Non riesco a usare questi connettori.

Roba noiosa che ho provato e guardato

Ho letto Developing Discourse Themes & Theme Components.

Supponendo che sia così che aggiungiamo codice HTML in un connettore:

<script type="text/x-handlebars" data-template-name="/connectors/topic-above-post-stream/test">
  <div style="height: 200px; width: 200px;background: red"></div>
</script>

Ho provato

<script type="text/x-handlebars" data-template-name="/connectors/topic-list-after-title/test">
  <div style="height: 200px; width: 200px;background: red"></div>
</script>

Ma non ha funzionato. È perché topic-list-item è un file .hbr e non un file .hbs?

Ho usato (deprecated) Plugin outlet locations theme component ma gli outlet all’interno dell’elenco degli argomenti non vengono visualizzati.

Ho anche guardato questo What is the difference between raw.hbs handlerbar files and only .hbs handlerbar files?.

O forse devo solo creare un componente tema con un file aggiuntivo, come questo https://github.com/discourse/discourse-topic-thumbnails/blob/main/javascripts/discourse/connectors/topic-list-before-link/topic-thumbnail.hbr?

Ma qui, vengono creati nuovi connettori, mentre topic-list-after-title e topic-list-before-category esistono già… Quindi sono un po’ perplesso qui.

2 Mi Piace

Forse questo aiuta?:

image

image

{{context.topic.location.street}}

image

o ancora meglio:

{{location-format context.topic.location}}

il che porta a:
image

che puoi poi perfezionare con CSS (ad esempio, spostare su una nuova riga).

2 Mi Piace

Sì, perfetto, grazie mille Robert!

Quindi, per chi fosse interessato, questo componente tematico aggiunge semplicemente le posizioni all’elenco degli argomenti.

3 Mi Piace

Usare l’outlet è molto più elegante, ma c’è un problema.

La posizione dell’outlet è subito dopo il titolo dell’argomento… E prima della div dei badge (dove mostra il punto che indica messaggi non letti o argomenti nuovi). Il risultato:

Non vedo una soluzione facile per risolvere questo problema, nemmeno con CSS (ho provato delle cose).

Penso anche che chiedere un nuovo outlet in Feature non sarebbe abbastanza interessante per essere aggiunto a Discourse.


Modifica: Ho fatto in modo che il badge sia accanto alla posizione. Andrà bene.

image

1 Mi Piace