web-dev-qa-db-fra.com

Ajout de champs supplémentaires au "Nouvel élément" dans le composant de menu

comme le dit le titre. Est-il possible d'ajouter un champ supplémentaire au "Nouvel élément" dans le panneau d'administration? juste en dessous du "titre", je veux le même champ appelé "titre 2", puis je l'affiche dans le frontal? est-il possible en quelque sorte sans télécharger beaucoup d'extensions, etc.?

il y a ce tutoriel, mais cela ne concerne que les champs de la nouvelle page de l'article. veulent le même mais pour le nouvel élément de menu.

http://andresgallo.com/2011/08/28/add-custom-content-fields-to-joomla-pt-2-on-the-front-end/

en utilisant joomla 3.8 edit: Donc, je suis un peu plus loin. J'ai maintenant ajouté un à: Administrateur/Composants/com_menus/model/form/menu.xml

<field
            name="title_danish"
            type="title_danish"
            label="COM_MENUS_ITEM_FIELD_TITLE_LABEL"
            description="COM_MENUS_ITEM_FIELD_TITLE_DESC"
            class="input-xxlarge input-large-text"
            size="40"/>

alors j'ai ajouté cette ligne à Administrator/Components/com_menus/views/item/tmpl/edit.php

  <?php echo $this->form->getInput('title_danish', null, $this->userID); ?>

et aussi j'ai dupliqué le titre à title_danish dans la base de données, ainsi il l'enregistre.

la seule chose qui reste à faire est d'afficher le résultat de title_danish dans mon com_content dans ma façade. Je ne sais pas comment faire ça. Quelqu'un peut-il aider ici?

btw la façon ci-dessus je l'ai fait. est-ce la bonne façon ou est-ce qu'ils sont plus faciles?

1
Peter

Vous avez commis des erreurs:

  1. Vous devez remplacer le menu par le type de contenu que vous souhaitez afficher.

Si vous voulez le menu de page d'accueil par défaut; l’élément de menu en vedette, puis recherchez /components/com_content/views/featured/tmpl/default.xml et idem default.php et default _ *. php, puis copiez-les dans/templates/yourtemplate/html/com_content/selected /. Vous êtes maintenant prêt à apporter vos modifications. Changez le fichier XML comme ceci:

Section de mise en page:

<layout title="Special view with danish and english title" 
option="COM_CONTENT_FEATURED_VIEW_DEFAULT_OPTION">

Et dans l'article fieldset, ajoutez

<field
  name="title_danish" type="text" label="Dansk tittel"
  description="Her er dansk tittel"
  class="input-xxlarge input-large-text"
  size="40"/>

Utilisez type = text, pas type = title_danish comme dans votre question

  1. Créez un élément de menu et remplissez le nouveau titre. Vous devriez trouver le nouveau champ sous l'onglet - Options dans l'administration du menu pour le type de menu présenté. Si vous souhaitez un autre type de menu, remplacez ce type de contenu.

  2. Sortez votre nouveau champ dans le frontend.

Le champ est enregistré dans les paramètres d'élément de menu. Pour l'obtenir, vous devez utiliser quelque chose comme:

echo $this->params->get('title_danish');

Vous pouvez l'ajouter où bon vous semble, mais je suppose que votre nouveau fichier /templates/yourtemplate/html/com_content/featured/default.php est un bon choix. J'espère que cela clarifie certaines choses ...

1
jonasfh

s'il vous plaît essayez de mettre cette ligne sous ou en haut du champ du titre principal

Recherchez cette ligne dans le fichier: /home/web/public_html/joomla/components/com_content/views/form/tmpl/edit.php

<?php echo $this->form->renderField('title'); ?>

et placez cette ligne avant ou après:

<?php echo $this->form->renderField('title_danish'); ?>

J'espère que ça aide

0
TheNextStage