Search

A new ensemble, “Forum” is now available for download. Comments and feedback can be left here but if you discover any issues, please post it on the issue tracker.

wow, I was looking at the new symphony site and you hit me with this ensemble, leaving me speechless.

I want to give you some kudos but there is no +1 button yet on the extensions profile page (hint: feature suggestion). Thanks for this great ensemble! I’m sure it will be very useful for a lot of us Symphony developers.

I posted an issue about this ensemble not working at my local XAMPP setup. I only see a blank screen when I try to start the installer. Any ideas?

I want to give you some kudos but there is no +1 button yet on the extensions profile page (hint: feature suggestion).

I second that suggestion. Oh and by the way, this thread has the wrong category.

Carsten I had an issue on my XAMPP install as well. It was giving me an error in the installer. I opened it up and it looked like there was something wrong around the variable that was holding the email body for resetting a password or something. I commented it out to see if I could install without it and the installation worked, so the problem seems to be there. Can’t remember the specifics right now since I don’t have and of the files available. Can start there though.

Thanks Roguefoxx, I have found what was wrong. In $conf['members']['forgotten_pass_email_body'], there seem to be two apostrophes that are uncommented. Go to line 194 and replace you'll with you\'ll. Go to line 198 and replace we'll with we\'ll.

The strange thing is that all appears to be well when viewing or cloning the Git repository.

I should add a caveat about this ensemble. I actually was unsure about whether to release this ensemble until the next point release, because it is a bit of an anomaly from other ensembles. It was actually a surprise to me that the development team felt it was worthy to be included on the downloads page. So, you could say they released the ensemble for me.

Note, however, that there are some changes to the Symphony core included in the ensemble that prevent the Members extension and Forum extension to be used with the officially released 2.0.6 version of Symphony (ZIP or GitHub). So, as long as you keep this in mind, everything should work well. If you are trying to add this functionality to an existing site, you will likely run into problems.

On the other hand, if you start with this ensemble and add other extensions, you’ll likely run into far fewer problems.

@carsten, thanks for tracking down that issue. I take it this issue was only with the ZIP file on the Downloads page, but not with the GitHub repository. That’s odd. I’ll look into it.

I’ve been trying to see whether I could upgrade the Forum Ensemble to Symphony 2.0.7 and the latest version of the Members extension (Frontend Membership), but I have been unsuccessful so far. I may need to learn something about how to build custom data sources, since the Forum Ensemble relies on several custom data sources. These data sources, however, appear to be the cause of the errors I encounter on every front end page:

Argument 2 passed to ASDCMySQL::connect() must be an instance of resource, resource given, called in /Users/stephen/Sites/sym/forum-ensemble-207/extensions/asdc/lib/class.asdc.php on line 71 and defined
/Users/stephen/Sites/sym/forum-ensemble-207/extensions/asdc/lib/class.asdc.php line 240

235         if(isset($details->force_query_caching)) $query = preg_replace('/^SELECTs+/i', 'SELECT SQL_'.(!$details->force_query_caching ? 'NO_' : NULL).'CACHE ', $query);
236         
237         return $query;
238     }
239
240     public function connect($string, resource &$resource=NULL){
241             
242         /*
243             stdClass Object
244             (

Of course, if I remove all data sources from the page, the error goes away, but so does the content and functionality. Any thoughts?

Hmm. Never mind. I thought I had the latest version of the ASDC extension (version 1.3), but I had version 1.2.

Ok. This is looking better than I thought. But there are still at least a couple road blocks to updating the ensemble: login and register are generating errors. When clicking on the login button, the following error occurs:

trim() expects parameter 1 to be string, array given
/Users/stephen/Sites/sym/sym-forum-ensemble/extensions/members/extension.driver.php line 502

497         ## Cookies only show up on page refresh. This flag helps in making sure the correct XML is being set
498         $loggedin = false;
499
500         $action = $_REQUEST['member-action'];
501
502         if(trim($action) == 'logout'){
503             $this->logout();
504             redirect(URL);
505         }
506

When clicking on the register button, the following error occurs:

strlen() expects parameter 1 to be string, array given
/Users/stephen/Sites/sym/sym-forum-ensemble/symphony/lib/toolkit/class.general.php line 590

585     Return: rebuilt array
586     
587     ***/
588     public static function array_to_xml(XMLElement $parent, array $data, $validate=false) {
589         foreach ($data as $element_name => $value) {
590             if (strlen($value) == 0) continue;
591             
592             if (is_int($element_name)) {
593                 $child = new XMLElement('item');
594                 $child->setAttribute('index', $element_name + 1);

To see these errors first hand, pull the 207 branch from the Forum Ensemble repository.

alpacaaa was able to point me in the right direction to get these errors fixed up.

I just committed a fix that should solve the issue with the login button. You can find it here

The second issue has been already reported by you on the bugtracker. The suggestion I proposed should solve it and is now part of the symphony integration branch.

Grab the latest 207 branch. Now, the errors are gone, but email messages are no longer being sent, so the email activation process doesn’t work. Hmm.

I checked out and installed the master branch, and email ain’t working on there either.

I wish I knew more about this stuff to help! I’m going to check out and install the 207 branch now…

Also on the master branch, I had to change a couple of things…

In forum_discussions.xsl, in the comment entry template, the xpath is wrong for outputting the comment text. It is currently:

<xsl:apply-templates select="comment/*" mode="html"/>

It needs to be:

<xsl:apply-templates select="comment" mode="html"/>

The way it was set prevented output, as comment/* would call any node under the comment node, but there aren’t any, so just comment will do it.

Also, under master.xsl, I replaced the titles with:

<xsl:value-of select="$website-name" />

to use the website title set in the parameter pool. Just for the ease of it.

This is a really cool ensamble, if only email worked. There’s no way to self-register without it. I will be keeping my eye on it though!

I made some time to test out the official Members (Frontend Membership) extension and was able to integrate it into the Forum ensemble, now updated to Symphony 2.0.8RC1. I have modified the Members extension to use the mail() function, using the solution suggested by cloudwindhk. So, mail, registration and activation is working.

However, editing is not working. Only the Member Register event is listed in the Event Level Permissions for each role. The `workspace/install.sql’ file installs the data for the permissions of one of the events:

-- *** DATA: `sym_members_roles_event_permissions` ***
INSERT INTO `sym_members_roles_event_permissions` (`id`, `role_id`, `event`, `action`, `level`) VALUES (24, 3, 'members_register', 'edit', 1);
INSERT INTO `sym_members_roles_event_permissions` (`id`, `role_id`, `event`, `action`, `level`) VALUES (21, 4, 'members_register', 'create', 1);
INSERT INTO `sym_members_roles_event_permissions` (`id`, `role_id`, `event`, `action`, `level`) VALUES (22, 4, 'members_register', 'edit', 2);
INSERT INTO `sym_members_roles_event_permissions` (`id`, `role_id`, `event`, `action`, `level`) VALUES (7, 1, 'members_register', 'create', 1);
INSERT INTO `sym_members_roles_event_permissions` (`id`, `role_id`, `event`, `action`, `level`) VALUES (8, 1, 'members_register', 'edit', 0);
INSERT INTO `sym_members_roles_event_permissions` (`id`, `role_id`, `event`, `action`, `level`) VALUES (23, 3, 'members_register', 'create', 1);

I’m not sure how to manage the permissions of the rest of the events in the ensemble. Is the list of events supposed to populate automatically? If so, this isn’t happening in either the Frontend Membership Reference Ensemble or the Forum Ensemble.

Wow :)

There’s a secret method you have to add to your events:

public static function showInRolePermissions(){
    return true;
}

Aha! Thanks, @alpacaaa.

Is it possible for the Members extension to extend the EventManager class and the contentBlueprintsEvent class to use a different template than the one found in /symphony/template/event.tpl. I don’t want to modify the core, since this change is specific to the Members extension. Would this be the correct way to add the showInRolePermissions() method to the template?

<?php

    require_once(TOOLKIT . '/class.event.php');

    Class event<!-- CLASS NAME --> extends Event{

        const ROOTELEMENT = '<!-- ROOT ELEMENT -->';

        public $eParamFILTERS = array(
            <!-- FILTERS -->
        );

        public static function showInRolePermissions(){
            return true;
        }

        public static function about(){
            return array(
                     'name' => '<!-- NAME -->',
                     'author' => array(
                            'name' => '<!-- AUTHOR NAME -->',
                            'website' => '<!-- AUTHOR WEBSITE -->',
                            'email' => '<!-- AUTHOR EMAIL -->'),
                     'version' => '<!-- VERSION -->',
                     'release-date' => '<!-- RELEASE DATE -->',
                     'trigger-condition' => 'action[<!-- TRIGGER CONDITION -->]');  
        }

        public static function getSource(){
            return '<!-- SOURCE -->';
        }

        public static function allowEditorToParse(){
            return true;
        }

        public static function documentation(){
            return '
<!-- DOCUMENTATION -->';
        }

        public function load(){         
            if(isset($_POST['action']['<!-- TRIGGER CONDITION -->'])) return $this->__trigger();
        }

        protected function __trigger(){
            include(TOOLKIT . '/events/event.section.php');
            return $result;
        }       

    }

Then, I wouldn’t have to manually edit every event that I create to include the secret method.

Well, I think I’ve got the registration features of the forum working for the most part now, including the ability to edit member profiles. You can see that a lot of fixes needed to be included. I’m pointing to several of my own forks of the required extensions.

There are still some things I want to test out before this is ready for release, but feel free to give it a test drive and let me know what’s missing.

Would this be the correct way to add the showInRolePermissions() method to the template?

Yes, looks fine to me.

I will test this tomorrow I think, great work!

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details