Links pointing to the registration page
modules.php?name=Your_Account&op=new_user |
exist at various places in PHP-Nuke - and with various texts. To disable registration, it will not suffice to find them all and delete them from the code. This will not prevent a user from entering the above URL directly by hand in the address field of his browser. You will have to apply a solution like the one of Section 18.6.4. Nevertheless, you may still wish to find and delete all links to the registration page after you have applied the solution of Section 18.6.4. How do you proceed?
Place your mouse on a registration link and take note of the URL show in the status bar of your browser. Try to find some special string in it. The URL parameters are well suited for this. In the above registration URL, there are two of them, name (with value “Your_Account”) and op (with value “new_user”). The value of name is certainly not a uniquely identifying feature of the URL (you will encounter “name=Your_Account” in many URLs, not only those for registration) , but the value of op certainly is.
Thus, you only have to search for “new_user” . But not in the whole code. Since link texts have to be different for different languages, you can safely bet that the URLs you are looking for are going to contain text constants (see Section 13.1). Your first attempt should thus concentrate in the language files:
grep new_user language/* ... language/lang-english.php:define("_ASREGISTERED", "Don't have an account yet? You can <a href=\"modules.php?name=Your_Account&op=new_user\">create one</a>. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name."); language/lang-english.php:define("_YOUAREANON", "You are Anonymous user. You can register for free by clicking <a href=\"modules.php?name=Your_Account&op=new_user\">here</a>"); language/lang-english.php:define("_MODULEUSERS", "We are Sorry, but this section of our site is for <i>Registered Users Only.</i><br><br>You can register for free by clicking <a href=\"modules.php?name=Your_Account&op=new_user\">here</a>, then you can<br>access this section without restrictions. Thanks.<br><br>"); ... |
You now see that user registration links (from the Your Account module) come in three flavours, containing the text constants _ASREGISTERED, _YOUAREANON and _MODULEUSERS respectively. Now, all you have to do to find the exact places of the links in the code, is to search the PHP files for those three constants. You can then delete or modify the links you find, according to the context and your liking.
A similar “bottom-up” approach can be used to find the reason for an error, such as Sorry, such file doesn't exist... for example, which is discussed in Section 3.9.6.