How can I customize Composr without modifying the core files?
Answer
Composr offers a robust override system. Instead of altering the original files, create a parallel structure within _custom directories. For example, to modify site/pages/modules/polls.php, place your customized version in site/pages/modules_custom/polls.php.
The tutorials outline additional information on how to utilise overrides.
How can I embed third-party widgets into my Composr pages?
Answer
Composr supports embedding widgets from various websites, like Google Maps, Vimeo, and YouTube, by simply pasting the URL. For manually embedding widget code, you can paste it into the HTML source view of the WYSIWYG editor or within Comcode html tags if not using the WYSIWYG editor.
What is the difference between blocks and boxes in Composr?
Answer
Boxes are visual elements that provide a container for content, while blocks are functional units that generate and display dynamic content. Although blocks often appear within boxes in the default templates, they are not inherently tied to any visual representation.
Yes, you can style blocks by editing the associated templates and CSS. Templates are typically named after the block they represent. For example, the main_news block uses the BLOCK_MAIN_NEWS.tpl template.
How do I create custom filter forms for my content?
Answer
The main_content_filtering block can help you generate filter forms automatically. You can use it to create a default form and then customize the generated Filtercode string to refine the filtering options. Once satisfied, you can either continue using the block or extract the HTML and modify it further.
Where can I use Filtercode and Selectcode in Composr?
Answer
Filtercode is supported in various blocks, such as main_multi_content, main_gallery_embed, and main_cc_embed. It's also actively used in modules like catalogues, downloads, galleries, members, and news.
Selectcode is supported in blocks and Comcode tags that explicitly mention it, including the main_multi_content block and the if_in_group Comcode tag.
What is the difference between Filtercode and Selectcode?
Answer
Filtercode is used for querying content based on properties and values, while Selectcode is used for directly specifying a list of IDs or categories to include or exclude. Filtercode offers more complex filtering options, while Selectcode is more straightforward for simple selections.
Composr provides two filtering systems: Filtercode and Selectcode.
Filtercode is used for selecting content based on defined filters, such as field values, ratings, or keywords. It utilizes a syntax of comparisons, separated by commas, where each comparison specifies a field and a matching condition.
Selectcode is a simpler syntax for specifying a list of IDs or categories to include or exclude from the results. It uses a comma-separated list of match-specifier tokens, such as individual IDs, ranges, or wildcard characters.
What are blocks in Composr and how can I use them?
Answer
Blocks are dynamic elements that can be inserted into Comcode pages to add interactive and data-bound functionality to your website. They are essentially reusable components that automatically generate content, such as recent forum posts or information about the logged-in user.
You can add blocks to your pages using the block construction assistant, which allows you to select from a list of available blocks, set their parameters, preview them, and generate the necessary Comcode.
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.