web-dev-qa-db-fra.com

Séparer le lien et le titre de la fonction

J'ai une autre question à laquelle @Lodder a aimablement répondu:

Titre du type de champ de formulaire Echo Catégorie dans Module

Dans le lien créé, je souhaite séparer le lien et le titre de la catégorie, ce qui signifie que je peux ajouter le lien à un bouton parent et le titre à l'intérieur de ce bouton. Comment cela peut-il être fait à l'aide du code html suivant:

<div class="row">
    <div class="col-md-<?php echo $buttonWidth;?>">
        <div class="row">
        <a href="<?php echo $categoryLinkOne; ?>">
            <button class="btn btn-default col-md-12" type="button">
                <div class="col-md-4">
                    <img class="img-responsive center-block" src="<?php echo $moduleLoc,$iconOne; ?>" />
                </div>
                <div class="col-md-8">
                    <?php echo $categoryTitleOne; ?></h3>
                </div>
            </button>
        </a>
        </div>

    <?php if($showIntroTextOne==1):?>
        <div class="row">
            <div class="col-md-12">
                <p><?php echo $introTextOne; ?></p>
            </div>
        </div>
    <?php endif; ?>
    </div>

<?php if($params->get('useTwo')==1){?>  
    <div class="col-md-<?php echo $buttonWidth;?>">
        <div class="row">
        <a href="<?php echo $categoryLinkTwo; ?>">
            <button class="btn btn-default col-md-12" type="button">
                <div class="col-md-4">
                    <img class="img-responsive center-block" src="<?php echo $moduleLoc,$iconTwo; ?>" />
                </div>
                <div class="col-md-8">
                    <?php echo $categoryTitleTwo; ?></h3>
                </div>
            </button>
        </a>
        </div>

    <?php if($showIntroTextTwo==1):?>
        <div class="row">
            <div class="col-md-12">
                <p><?php echo $introTextTwo; ?></p>
            </div>
        </div>
    <?php endif; ?>
    </div>
<?php } ?>
</div>
2
RustyJoomla

Je vais utiliser la fonction que j'ai écrite pour cela.

Nous allons donc ajouter un autre argument à la fonction pour définir le type de bouton/lien que nous voulons afficher et définir une valeur par défaut de normal.

function displayCategoryLink($id, $type = 'normal')
{
    require_once JPATH_SITE . '/components/com_content/helpers/route.php';

    $db = JFactory::getDbo();

    $query = $db->getQuery(true);
    $query->select($db->quoteName('title'))
          ->from($db->quoteName('#__categories'))
          ->where($db->quoteName('id') . ' = '. (int)$id);
    $db->setQuery($query);

    try
    {
        $result = $db->loadResult();
    }
    catch (Exception $e)
    {
        $result = '';
    }

    $link = JRoute::_('index.php?option=com_content&view=category&layout=blog&id=' . $id); 

    if ($type == 'extended')
    {
        $html = '
        <a href="' . $link . '">
            <button class="btn btn-default col-md-12" type="button">
                <div class="col-md-4">
                    <img class="img-responsive center-block" src="' . $moduleLoc,$iconOne . '" />
                </div>
                <div class="col-md-8">
                    <h3>' .  $result . '</h3>
                </div>
            </button>
        </a>';
    }
    else
    {
        $html = '<a href="' . $link . '">' . $result . '</a>';
    }

    return $html;
}


displayCategoryLink($params->get('catOne', 0));
displayCategoryLink($params->get('catTwo', 0));
displayCategoryLink($params->get('catThree', 0), 'extended');
displayCategoryLink($params->get('catFour', 0), 'extended');

Veuillez noter que vous utilisez également $moduleLoc,$iconOne pour la source de l'image, vous devez donc soit transmettre ces valeurs à la fonction sous forme d'argument, soit les définir vous-même à l'intérieur de la fonction.

Mise à jour:

Ici si votre code mis à jour devrait être dans le default.php

<div class="row">
    <div class="col-md-<?php echo $buttonWidth;?>">
        <div class="row">
            <?php displayCategoryLink($params->get('catOne', 0), 'extended'); ?>
        </div>

        <?php if($showIntroTextOne == 1):?>
            <div class="row">
                <div class="col-md-12">
                    <p><?php echo $introTextOne; ?></p>
                </div>
            </div>
        <?php endif; ?>
    </div>

    <?php if($params->get('useTwo') == 1) : ?>  
        <div class="col-md-<?php echo $buttonWidth;?>">
            <div class="row">
                <?php displayCategoryLink($params->get('catTwo', 0), 'extended'); ?>
            </div>

            <?php if($showIntroTextTwo == 1):?>
                <div class="row">
                    <div class="col-md-12">
                        <p><?php echo $introTextTwo; ?></p>
                    </div>
                </div>
            <?php endif; ?>
        </div>
    <?php endif; ?>
</div>

J'espère que cela t'aides

1
Lodder