Как отобразить сообщение в PHP, используя определенную строку в URL? - PullRequest
1 голос
/ 06 июля 2019

У меня есть настройка WHMCS, и я пытаюсь создать всплывающее сообщение, которое будет отображаться, когда кто-то получит к нему доступ по определенной ссылке.

Например, когда кто-то получит доступ к этой ссылке, он увидит обычную страницу - https://example.com/billing/clientarea.php?action=details

Но если кто-то получит доступ к https://example.com/billing/clientarea.php?action=details&status=incomplete

Он получит сообщение.

Я уже настроил сообщение, и оно отображается по ссылке по умолчанию.Но я не знаю, как настроить его только на 2-й ссылке?Я использую WHMCS.

Кто-нибудь может мне помочь?

Код для сообщения пузыря.

<div class="alert alert-danger">
<strong>The following errors occurred:</strong>
<ul>
<li>Please enter your address and click on save to proceed. Once Saved, then only you will be able to access the client area.</li>
</ul>
</div>

РЕДАКТИРОВАТЬ: Решение добавлено

спасибо за тоннуваша помощь @symlink, ваш метод работает на PHP, но для WHMCS / smarty php ему нужен другой код, очень простой код, тоже. lol.

{if $smarty.get.status eq incomplete} 
{include file="$template/includes/alert.tpl" type="info" msg="Please fill the form to continue with our services."}
{else} 
{/if}

Ответы [ 2 ]

0 голосов
/ 18 июля 2019

Если вы редактируете шаблоны, вам будет сложнее поддерживать ваш WHMCS в актуальном состоянии.Я бы порекомендовал использовать ловушку для вывода некоторого JS, чтобы внедрить соответствующее оповещение на вашу страницу.

Возможно, точка подключения ClientAreaFooterOutput?https://developers.whmcs.com/hooks-reference/output/#clientareafooteroutput

Что-то вроде:

<?php

add_hook('ClientAreaFooterOutput', 1, function($vars) {
    $status = App::getFromRequest('status'); //This is handy and sanitised 
    return <<<HTML
jQuery(document).on('ready', function() {
    if ('{$status}' == 'incomplete') {
        //Add your code here to output the alert where you wish
    }
});
HTML;
});
0 голосов
/ 06 июля 2019

Если параметр $GET существует, добавьте в сообщение div класс, который заставит его появиться:

PHP / HTML

<?php
    $class = "";
    if(isset($GET["status"]) && $GET["status"] === "incomplete"){
        $class = "show";
    }
?>

<div class="alert alert-danger <?php echo $class ?>"> 
    <strong>The following errors occurred:</strong> 
    <ul> 
        <li>Please enter your address and click on save to proceed. Once Saved, 
        then only you will be able to access the client area.</li> 
    </ul> 
</div> 

CSS

.alert.alert-danger{
    display: none;
}
.alert.alert-danger.show{
    display: block;
}
...