How can I ensure my website complies with email marketing laws?
Answer
Email marketing laws like CAN-SPAM protect recipients' rights to unsubscribe. Your website must include a clear 'List-Unsubscribe' header in every email, offer an easy unsubscribe process, and respect unsubscribe requests promptly. Composr provides built-in mechanisms, including an unsubscribe endpoint and support for the List-Unsubscribe header, to facilitate compliance.
What are my responsibilities regarding user privacy?
Answer
You must have a comprehensive privacy policy that details the personal data you collect, its usage, and if it's shared with third parties. Laws like GDPR have strict requirements, including logging data access, data purging, and security measures. California law mandates specific elements in your policy, like handling "Do Not Track" requests and a clear process for communicating changes.
Composr has an automatic Privacy Policy generator block to help you get started. This is used by default.
A well-defined rules page is crucial for setting expectations for user behavior and outlining consequences for violations. It should cover a range of offenses with appropriate punishments, reference relevant laws, and assign legal responsibility to users. Composr provides default rules pages that can be customized, and this page is displayed to users upon joining the site.
What are the key legal considerations for running a website?
Answer
Several legal aspects need careful attention when operating a website, especially for large or corporate sites. These include establishing clear rules and terms of service, adhering to privacy laws like GDPR and California's regulations, managing personal data responsibly, complying with email marketing regulations like CAN-SPAM, ensuring website accessibility, addressing eCommerce regulations, and understanding liability for content and user actions.
How do data-tpl and data-view behaviors work in Composr's JavaScript?
Answer
Composr uses data-tpl and data-view behaviors for associating HTML templates and JavaScript views, respectively. This facilitates clean separation of presentation and logic:
data-tpl: Used with the $cms.behaviors.initializeTemplates function and PARAMS_JSON tempcode directive to bind JavaScript logic to HTML templates.
data-view: Used with the $cms.behaviors.initializeViews function to associate JavaScript view classes (inheriting from $cms.View) with specific HTML elements.
How does Composr implement the Model-View-Controller (MVC) pattern?
Answer
Model/API: The sources directory primarily houses scripts forming the Model/API, handling data logic and business rules.
View: Templates in themes/default/templates represent the View, responsible for presenting data to the user. Comcode pages can also be considered part of the View.
Controller: Entry scripts like index.php and site/dload.php act as front controllers, directing requests. Modules and blocks, residing in */pages/modules and sources/[mini]blocks, respectively, serve as controllers, managing user interactions and determining which View to render.
Can I translate my content into multiple languages?
Answer
Yes, Composr supports multi-language content. You can enable this feature by:
Installing multiple language packs: Make sure you have at least two language packs installed.
Enabling the Conversr multi-language option: Go to Admin Zone > Setup > Configuration > Site options > Internationalisation.
Running a Commandr command: Execute the necessary command to set up the database structure for multi-language content (unless you already enabled Support content translations when installing).
Once enabled, you can translate your content into different languages and allow visitors to choose their preferred language.
My language uses gendered descriptors. How can I handle this in Composr?
Answer
Composr offers solutions for languages with gendered descriptors:
Template editing: You can modify templates to use different language strings based on user gender. This involves adding Tempcode logic to dynamically select the appropriate string.
Custom Profile Fields: Create a Custom Profile Field for "Gender" and use it to conditionally display gendered language strings in templates.
These methods allow for flexible handling of gendered language variations.
Language strings are phrases or pieces of text used throughout Composr. They're identified by unique codenames, like WELCOME_MESSAGE. These strings are stored in .ini language files and used to display text in the user interface.
By translating language strings, you change the text displayed on your website without modifying the underlying code.
The forum base URL should be a URL prefix to your forums without a script name. For example, http://forums.example.com is correct, while http://forums.example.com/index.php is incorrect. You can fix this using the config_editor.php script and then clear the Comcode page cache.
Most Composr resources with commenting enabled create comment topics in the configured comment forum. If the forum uses BBCode, Comcode features not supported by BBCode may not display correctly. Moderate comments from the forum as you would any other topic.
It's not easy to switch forums after installing Composr. The member and usergroup IDs referenced by Composr would lose their association. Check the "Importing data into Composr" tutorial for more information on this.
Conversr is Composr's built-in forum system. It offers seamless integration, allowing you to use Comcode for forum posts, a unified Admin Zone, shared themes and templates, and innovative features like Private Topics and in-post whispers. Using a third-party forum can be clunky and may lead to maintenance headaches.
Composr supports several forum drivers, including Invision Board, phpBB, myBB, vBulletin, Burning Board, and Simple Machine Forum. If your forum is not listed, professional developers can add support. Composr also provides converters for migrating from these forums to its own forum system, Conversr.
What are the PHP requirements for running Composr?
Answer
Composr requires PHP 7.2 or higher, but versions not officially supported by PHP developers are discouraged. The maximum tested version is PHP 8.3.
Required PHP extensions:
GD2 (gd) with PNG and JPEG support
MySQL extension (mysqli or pdo_mysql)
XML extension (xml)
Multibyte String (mbstring)
cURL extension (curl)
JSON support (usually available by default)
Sodium (libsodium)
ZIP extension (zip) if ZIP file support is needed
Additional recommendations:
posix extension for permission checks
zlib extension for faster upgrades, compressed backups, and page compression
ctype extension for slightly faster performance
IMAP extension (imap) for managing newsletter bounces
OpenSSL extension (openssl) for encrypted CPFs, DKIM, and SSL certificate expiry checks
Pspell (pspell) or Enchant (enchant) extensions for spell checking
Ensure the following PHP settings are configured:
File upload size limit of at least 5MB (or higher as needed)
Maximum execution time of at least 30 seconds
Memory limit of at least 128MB
The installer will warn you if any critical functions have been disabled via disable_functions or other PHP modifications. Avoid web hosts that heavily restrict standard PHP functionality.
To uninstall Composr, access the uninstall.php file in your web browser, enter your administrator password, and follow the prompts to remove the database data. Afterward, you can safely delete the Composr installation directory.
What are the recommended web hosting options for Composr?
Answer
Choosing a web host is crucial. Avoid the cheapest options and look for hosts with recent positive reviews and minimal credible complaints. Ensure they meet Composr's requirements, including adequate disk space, no restrictive file size limits, and support for required PHP extensions.
Composr is compatible with various hosting control panels like Plesk and cPanel, and works on Windows, Linux, or Mac OS servers.
Yes, you can install Composr on a Windows desktop using software packages like WampServer, XAMPP, EasyPHP, or ampps for simplified setup. Alternatively, you can manually install Apache, PHP, and MySQL, following the instructions provided in the respective documentation. Remember to configure file permissions appropriately and ensure the webserver isn't accessible from outside your network.