Suite

Existe-t-il un moyen d'obtenir par programme le nom d'alias de la FeatureClass ?

Existe-t-il un moyen d'obtenir par programme le nom d'alias de la FeatureClass ?


J'aimerais obtenir le nom d'alias d'une FeatureClass, mais je ne trouve pas d'interface exposant ce champ.

METTRE À JOUR:

en utilisant IClassSchemaEdit, je peux spécifier un nom d'alias, mais je ne parviens toujours pas à le récupérer.


L'interface IFeatureClass expose l'AliasName.


Individuel les nœuds n'ont pas de noms de machine dans Drupal 6 ou 7, donc vous ne pouvez pas.

Si vous voulez un ID unique pour chaque nœud et que l'ID de nœud ne convient pas (pour le transfert ou la migration par exemple), essayez de jeter un œil au module UUID.

Ce module fournit une API pour ajouter des identifiants universellement uniques (UUID) aux objets Drupal, notamment les entités.

  • Génération automatique d'UUID pour les nœuds, les révisions de nœuds, les utilisateurs et la taxonomie.
  • Permet de choisir les types de contenu et les vocabulaires pour lesquels créer des UUID.
  • Possibilité de créer par lots des UUID pour les objets qui ne l'ont pas déjà.

Si, toutefois, vous voulez que le nœud TYPE soit disponible pour votre modèle et que vous avez l'objet nœud, il doit être sous $node->type , ou peut-être $vars['type'] .


3 réponses 3

Une façon que je connais d'obtenir de telles informations est d'utiliser PowerShell dans la console du gestionnaire de packages, depuis l'intérieur Visual Studio.

La console du gestionnaire de packages est une console PowerShell dans Visual Studio utilisée pour interagir avec NuGet et automatiser Visual Studio.

Fondamentalement, vous pouvez utiliser l'applet de commande Get-Package pour obtenir une liste de packages référencés dans un projet spécifique (ou dans une solution entière). En ce qui concerne les informations de licence pour chaque package, pour ce que j'ai vu, vous ne pouvez obtenir que l'URL de la licence et pas seulement une courte chaîne représentant le type de licence.

Voici un exemple d'une de mes solutions renvoyant une liste d'entrées, chacune composée de l'identifiant du package et du lien vers la licence :


Étant donné que vous pouvez avoir plusieurs interfaces réseau, chacune pouvant avoir plusieurs adresses IP, et qu'une seule adresse IP peut avoir plusieurs noms pouvant y être résolus, il peut y en avoir plusieurs.

Si vous voulez connaître tous les noms par lesquels votre serveur DNS connaît votre machine, vous pouvez les parcourir tous comme ceci :

Si vous avez besoin de la description de l'ordinateur, elle est stockée dans le registre :

  • clé : HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters
  • nom de la valeur : srvcomment
  • type de données : REG_SZ (chaîne)

AFAIK, cela n'a rien à voir avec un serveur de domaine ou avec le réseau auquel le PC est connecté.

Pour tout ce qui concerne le réseau, j'utilise ce qui suit :

  • Nom NETBIOS : System.Environment.MachineName
  • nom d'hôte : System.Net.Dns.GetHostName()
  • Nom DNS : System.Net.Dns.GetHostEntry("LocalHost").HostName

Si le PC a plusieurs noms NETBIOS, je ne connais pas d'autre méthode que de regrouper les noms en fonction de l'adresse IP à laquelle ils résolvent, et même cela n'est pas fiable si le PC a plusieurs interfaces réseau.


7 réponses 7

C'est ce qu'on appelle un favicon, et tout ce que vous avez à faire est de :

  1. S'il y a une icône sur /favicon.ico , utilisez-la.
  2. Sinon, récupérez le contenu de la page et extrayez l'emplacement de <link rel="shortcut icon" href /> . Vous devrez utiliser un analyseur HTML et trouver le <link> avec un rel d'icône ou d'icône de raccourci .

Il trouvera tous les logos d'un site Web dans plusieurs tailles et renverra une belle chaîne json avec des métadonnées, y compris l'URL de l'icône. Vous remplacez simplement www.stackoverflow.com par votre domaine.

Le site dispose également d'une interface graphique pour entrer manuellement dans les sites Web si vous préférez :

Voici un exemple de chaîne renvoyé par l'interrogation du site Web de débordement de pile :


Vous n'avez pas spécifié quel est votre environnement, mais si vous utilisez Unix, je pense qu'une combinaison de dig et grep devrait fonctionner. ns.example.com doit être le nom d'hôte de votre serveur de noms, example.com est le domaine dont fait partie votre hôte et HOST est l'hôte pour lequel vous voulez trouver tous les enregistrements CNAME. C'est en fait un caractère de tabulation dans la commande grep, pas littéralement <TAB> (vous devrez peut-être ajuster la chaîne grep).

De plus, votre serveur de noms doit être configuré pour autoriser les transferts de zone, dont les détails dépendront de l'implémentation.

Ou si vous êtes sous Windows, vous pouvez utiliser nslookup :

Cela devrait générer tous les enregistrements du domaine example.com que ns.example.com "connaît" dans FILE. Vous pouvez ensuite utiliser l'outil de votre choix pour trier le fichier texte à la recherche du CNAMES correspondant.

Ou avec ça non testé (mais d'apparence correcte) script perl :


10 réponses 10

Le haut de l'outil classique affiche les processus par défaut mais peut être dit d'afficher les threads avec la touche H ou l'option de ligne de commande -H. Il y a aussi htop, qui est similaire à top mais a un défilement et des couleurs, il montre tous les threads par défaut (mais cela peut être désactivé). ps a également quelques options pour afficher les threads, en particulier H et -L .

Il existe également des outils GUI qui peuvent afficher des informations sur les threads, par exemple qps (un simple wrapper GUI autour de ps ) ou conky (un moniteur système avec de nombreuses options de configuration).

Pour chaque processus, de nombreuses informations sont disponibles dans /proc/12345 où 12345 est l'ID du processus. Les informations sur chaque thread sont disponibles dans /proc/12345/task/67890 où 67890 est l'ID du thread du noyau. C'est là que ps , top et d'autres outils obtiennent leurs informations.


Rediriger par programme vers le nœud/nid ne redirige pas vers l'alias d'URL

D'après ce que j'ai compris, le module 'GlobalRedirect' a été fusionné dans le module 'Redirect'. Ainsi, le module de redirection doit également rediriger les liens en tant que nœud/nid vers son alias d'URL. Lors de la création de redirections via l'interface, cela fonctionne parfaitement. Mais si je fais par programme une redirection vers une page node/nid, elle n'est pas redirigée vers son alias d'URL. Je ne sais pas s'il s'agit d'un mauvais codage de ma part ou d'une fonctionnalité non implémentée dans le module.

J'utilise ce code pour rediriger un groupe de produits vers son premier nœud d'entité référencé, qui utilise une structure d'URL automatisée générée par un modèle pathauto, mais l'alias d'URL n'est pas affiché après la redirection, il affiche node/nid. J'ai vérifié que l'alias d'URL sur cette page fonctionne réellement, et j'ai même ajouté une redirection de ce nœud/nid spécifique à son alias d'URL via l'interface, mais pas de chance.

Est-ce que je fais quelque chose de mal? Est-ce que cela fonctionne comme prévu? Existe-t-il un moyen plus propre/meilleur pour moi de rediriger ? Encore assez nouveau sur Drupal 8..

En utilisant:
Drupal 8.1.3
Redirection 8.x-1.0-alpha1
Pathauto 8.x-1.0-alpha3


Drupal : Comment créer par programmation un alias d'URL pour un nœud qui a déjà un alias lors de la sauvegarde du nœud ?

J'ai un module personnalisé qui implémente le hook nodeapi pour exécuter du code lorsque le nœud est créé ou mis à jour.

Fondamentalement, je souhaite créer un alias basé sur l'alias généré automatiquement lors de la sauvegarde ou de la mise à jour du nœud.

En ce moment, j'utilise un appel à path_set_alias et je veux uniquement le faire avec un type de contenu spécifique, "produit".

Voici mon appel nodeapi pour me lancer

Ensuite, j'ai cette fonction, celle que j'essaie d'obtenir pour enregistrer mon deuxième alias d'URL pour moi.

Cependant, cela ne définit pas l'alias, il crée simplement un duplicata de l'alias d'origine du produit. Donc, si je commençais avec mon produit étant "Green Fern". Je le sauverais, et il utiliserait pathauto pour générer des produits/green-fern puis après appeler mon code de module et créer un alias "alt/products/green-fern" et le faire toujours pointer vers le chemin "node/nid" .

Cependant, lorsque j'exécute ce code, un doublon dans la base de données est créé. J'enregistre donc Green Fern une fois et tout d'un coup, je vois deux enregistrements en double à la fin de l'url_alias dans la base de données. "produits/vert-fougère" et "produits/vert-fougère"

J'ai l'impression d'y penser d'une manière beaucoup trop complexe. Mon client est conscient du succès SEO qu'il obtient lorsqu'il fait pointer plus d'un alias vers le même nœud, il veut juste qu'il le fasse. Halte !


Champs et propriétés de champ

Lorsque vous créez une classe d'entités dans ArcCatalog ou la fenêtre Catalogue, vous pouvez spécifier les champs à inclure dans la classe d'entités. Vous pouvez également spécifier des propriétés pour les champs, telles que le type de champ et la taille maximale des données pouvant être stockées dans le champ. Chaque type de champ a des propriétés spéciales.

Tous les champs ont des propriétés, telles que les suivantes :

  • Alias: Il s'agit d'un autre nom pour le champ de classe d'entités. Contrairement au vrai nom d'un champ, un alias n'a pas à respecter les limitations de la base de données et peut donc contenir des espaces et des caractères spéciaux et commencer par un nombre. Vous pouvez uniquement spécifier des alias de champ pour les classes d'entités dans les géodatabases.
  • Autoriser les valeurs NULL : Cela contrôle si le champ aura une contrainte NOT NULL lors de sa création. Si Autoriser les valeurs nulles est défini sur Non, la définition de champ dans la base de données contiendra la contrainte NOT NULL. Si, par contre, vous restez avec la valeur par défaut de Oui, le champ sera NULLABLE.

Le modèle de géodatabase est tel qu'il insère une valeur vide (numérique = 0, texte = "") au lieu d'une base de données NULL si, et seulement si, le champ de la base de données comporte une contrainte NOT NULL.

Toutes les classes d'entités ont un ensemble de champs obligatoires nécessaires pour enregistrer l'état d'un objet particulier dans la classe d'entités. Ces champs obligatoires sont créés automatiquement lorsque vous créez une classe d'entités et ils ne peuvent pas être supprimés. Les champs obligatoires peuvent également avoir des propriétés obligatoires telles que leur propriété de domaine. Vous ne pouvez pas modifier la propriété requise d'un champ obligatoire.

Par exemple, dans une classe d'entités surfaciques, OBJECTID et Shape sont des champs obligatoires. Ils ont des propriétés, telles que leur type de géométrie, que vous pouvez modifier, mais ces champs ne peuvent pas être supprimés.

Si vous créez une classe d'entités linéaires dans une géodatabase, un champ supplémentaire est automatiquement ajouté à la classe d'entités pour enregistrer la longueur de la ligne. Si vous créez une classe d'entités surfaciques, deux champs supplémentaires sont ajoutés automatiquement pour enregistrer la longueur (périmètre) et la superficie de chaque entité surfacique. Les unités de mesure de ces valeurs dépendent de la référence spatiale définie pour la classe d'entités. Les noms de ces champs varient en fonction de la base de données et du type spatial que vous utilisez. Ces champs sont obligatoires et ne peuvent pas être modifiés.

Certains noms de champs apparaissent dans ArcGIS avec leurs noms complets pour les classes d'entités stockées dans une géodatabase d'entreprise. Par exemple, si vous créez ou importez une classe d'entités surfaciques qui contient un champ nommé Aire, la base de données, le schéma et le nom de la classe d'entités lui sont ajoutés. C'est le nom que vous verrez dans la table attributaire de la classe d'entités. Cela signifie que pour une classe d'entités surfaciques nommée archsites stockée dans le schéma prof de la base de données du musée, le champ Area ressemble à ceci :

La liste suivante contient tous les noms de champ entièrement qualifiés dans une géodatabase d'entreprise :

FID, ZONE, LEN, POINTS, NUMOFPTS, ENTITY, EMINX, EMINY, EMAXX, EMAXY, EMINZ, EMAXZ, MIN_MEASURE, MAX_MEASURE

Pour des cas comme celui-ci, vous pouvez envisager d'utiliser un nom de champ différent ou un alias de champ.

Importation de champs

Lorsque vous créez une classe d'entités, vous avez la possibilité d'importer des champs d'une autre classe d'entités ou table. Cette option vous permet d'utiliser une autre classe d'entités ou table comme modèle pour les définitions de champ de celle que vous créez. Une fois que vous avez importé les champs, vous pouvez modifier les noms des champs, leur type de données et leurs propriétés.

Lorsque vous importez des champs lors de la création d'une classe d'entités, les champs obligatoires ne sont pas affectés. Par exemple, si vous avez défini la propriété Type de géométrie pour la nouvelle classe d'entités sur Point, l'importation de définitions de champ à partir d'une classe d'entités dans laquelle la propriété de type Géométrie du champ SHAPE est polygone n'écrasera pas la propriété Point.