Friday, November 8, 2013

Configure phpBB forum subscription by administrator via phpMyAdmin

As a lot of phpBB administrators found out that phpBB does not provide tools for administrators to set forum subscription for users. The intention of the phpBB is definitely a good one. However, in practice, as some of the administrators will agree that some administrator control can help grow the community.

The ethic behind the phpBB design apparently is based on the idea of no-spam. Forum user should have the ultimate say on what topic or forum he or she would like to subscribe, which most of us with common senses would have agreed. However, with my observation of the behavior of today's web surfers, there are quite few of them are lived in a very fast pest live and would not pay much attention to a lot of messages like: The user agreement, The user guide, or any community rules.

Rules and laws of a community all work around human behaviors. The design of computer software and social media should also work around human behavior. As long as the citizen and the forum user have the ultimate control, the system did not violate their right. In the case of the phpBB, the user does have some kind of ultimate control by routing forum notices to their junk mail box even though that really isn't an appropriate solution.

With regarding to the previous discussion, personally, I believe phpBB could made the following changes:
  1. Allow users to remove themselves from the forum and delete their email information from the system.
  2. An option for user to explicitly disable the forum to send email to them.
  3. Give administrator the right to set forum subscription settings.
  4. Allow administrators to force one forum subscription.
The item 4 above isn't as intrusion as it is sound since users are allowed to remove themselves from the system in case administrators abuse the privilege of serving their users.

Having the discussion out of the way, here is a way to set forum subscriptions to users by forum administrator by adding entries into the database table. The table that controls the forum subscription is forum_watch. By adding entries to that table, you force the user to subscribe to a forum.

The user_id is stored in the user table and the forum_id is stored in the forum table.

Object library not registered error - MS ACCESS 97, VBScript, Windows 7 - WSH, Vista

Just to report a problem that I run into and hopefully this post can help someone that run into a similar problem.

The problem: Receive 'object library not registered' error when try to check referenced code in ACCESS 97 that references MS VBScript engine.

Suspected scope of the problem: This problem could also appear in code that was developed for other version of ACCESS on Windows Vista, XP or older operation system.
The sequel: I got some ACCESS 97 code that uses the regular expression object (RegExp) that was made available by Microsoft through the installation of Microsoft's VBScript engine (The latest version is the Windows Scripting Host version 5.7 and can be download from Windows Script 5.7 for Windows Server 2003). Recently, when I try to check the 'reference' (open a code module and -tools -reference) in ACCESS 97, I received the 'object library not registered' error and was not able to see the referenced object for the database.

Kernel of the problem: A reference to the 'VBScript Global' type library in Windows 7. Basically, in my old XP machine, I have to install the VBScript Engine so that the 'VBScript Global' COM (Component Object Model) object exist. But I did not do that on my Windows 7 machine.

The solution: After googling the web and found the Wikipedia article: Windows Script Host, it is clear that there is no VBScript Engine for Windows 7 to download. It should come with the Windows 7 machine. At that point, I was thinking maybe the RegExp is contained in other COM that I should reference. But I was failed to find one. In the end, I simply test the code: CreateObject("VBScript.RegExp") and it worked without me adding any reference in ACCESS.

The annoyance: Since the database is hosted on a network drive, I will have to add and remove the reference based on which machine I am using.