Search

I posted the bug on Github.

Something to consider though is that if we name them very specific, should they evolve later on the name won't make complete sense and changing it would require upgrading and updating events to save the filter

I would assume that we will rather add more filters than change these very specific ones.

Hey, brendo. I'm really close to integrating the OpenID Authentication extension with the Members extension. I'm stumped on how to access the member ID from the email address returned by the OpenID Authentication extension. I'm also wondering how best to grab the field IDs for the member identity.

Authentication is working successfully with hard-coded values, but (as a total PHP noob), I need some help figuring out the accessors to grab the IDs. Here's where I've been able to get to so far:

I'm fetching the field IDs from the configuration file now. So, I've got one last hurdle: how to fetch the member ID from the email address.

extension_Members::$fields['email']->fetchMemberIDBy('me@google.com')

Almost.

extension_Members::$fields['email']->fetchMemberIDBy('me@google.com');

That did it. Thanks, brendo!

I don't know whether this is a bug or my own install, because the error doesn't happen consistently.

I'm getting the following error when navigating to a section entries table that contains a Select Box Link pointing to the username field of a Members section with "Display relationship in linked sections" checked and "Display field's value in entries table".

Unknown column 'relation_id' in 'where clause'
An error occurred while attempting to execute the following query
SELECT SQL_CACHE count(*) AS `count` FROM `sym_entries_data_156` WHERE `relation_id` = '9'

The error goes away when the "Display relationship in linked sections" checkbox is not checked. But only for one specific section. What would this be caused by?

The error also happens after I delete the Select Box Link field pointing to a Member username and try to recreate it. When I try to create a section entry, I get the following error:

Unknown column 'relation_id' in 'field list'
An error occurred while attempting to execute the following query
INSERT INTO `sym_entries_data_157` (`entry_id`, `relation_id`) VALUES ('740', '25')

As you can see, I've replaced field id 156 with field id 157. What's strange is that I have another section with a couple Select Box Link fields pointing to the same Members username field and it works fine.

It does appear that the issue has to do with a Select Box Link field linked to any Members section field. If I select a different section to link to, the error goes away. If I destroy the section and recreate it, the same error occurs unless I link to a field other than a Members extension field.

So, I was able to fix the issue by modifying the table structure of the field:

ALTER TABLE  `sym_entries_data_157` ADD  `relation_id` INT( 11 ) UNSIGNED NULL DEFAULT NULL AFTER  `entry_id`

Okay, this is weird. How did this field, which is a Select Box Link field, get the same structure as the password field? Here's my member password field:

CREATE TABLE `sym_entries_data_150` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `entry_id` int(11) unsigned NOT NULL,
  `password` varchar(40) DEFAULT NULL,
  `recovery-code` varchar(40) DEFAULT NULL,
  `length` tinyint(2) NOT NULL,
  `strength` enum('weak','good','strong') NOT NULL,
  `reset` enum('yes','no') DEFAULT 'no',
  `expires` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `entry_id` (`entry_id`),
  KEY `length` (`length`),
  KEY `password` (`password`),
  KEY `expires` (`expires`)
) ENGINE=MyISAM AUTO_INCREMENT=58 DEFAULT CHARSET=latin1;

and here's the Select Box Link field (with the relation_id column I added to fix the errors) from another section pointing to the Member username field:

CREATE TABLE `sym_entries_data_157` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `entry_id` int(11) unsigned NOT NULL,
  `relation_id` int(11) unsigned DEFAULT NULL,
  `password` varchar(40) DEFAULT NULL,
  `recovery-code` varchar(40) DEFAULT NULL,
  `length` tinyint(2) NOT NULL,
  `strength` enum('weak','good','strong') NOT NULL,
  `reset` enum('yes','no') DEFAULT 'no',
  `expires` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `entry_id` (`entry_id`),
  KEY `length` (`length`),
  KEY `password` (`password`),
  KEY `expires` (`expires`)
) ENGINE=MyISAM AUTO_INCREMENT=41 DEFAULT CHARSET=latin1;

Puzzling :/

I'm trying to implement a member registration page and event, but I keep getting an incorrect message that my password is too short. The message is generated in the checkPostFieldData function in field.memberpassword.php.

The problem is due to $data being passed in as a string when it apparently expects an array. This results in $password always being set to the first letter of the password that I entered into the registration form.

For the other fields checkPostFieldData seems to expect a string.

@wisolman Read the Example Form output of the Registration event for the Password field. It should look like

<label>Password
  <input name="fields[password][password]" type="password" />
</label>
<label>Password Confirm
  <input name="fields[password][confirm]" type="password" />
</label>

@bauhouse No idea! I'll try to recreate on my test setup, but I haven't come across that issue before!

Thanks, brendo. I wouldn't spend too much time on it. It may have been a glitch with using Dump DB extension to pass my database around to different installs. I've been using it as a backup system, so I'll try something, if it doesn't work, I'll restore the database from the SQL dump. But, I thought I should report it, just in case there is something else going on.

Thanks brendo. I don't know how I missed that.

I've been copying events from one install to another, particularly custom events, since they get populated automatically within the rest of the Symphony admin pages. So, I was wondering why some events showed up in the list of Event Level Permissions on Member Roles pages and others did not.

It seems that custom events that have had the allowEditorToParse() method set to false do not show up under Event Level Permissions. Is that intended?

Must be a bug! Please post it on the Github issue tracker.

No, I don't think this is a bug, it feels intentional. If an event is customised (e.g. the Login Info event) then it has no purpose in being visible in the permissions list, as there are no legitimate permissions to set. Similarly all events that the Members extension provides itself should not be in the list either. I'm guessing that the assumption is that if an event has been customised (and allowEditorToParse is false) then it can't be assumed that the Members extension can properly interface with the event, as there's no guarantee that the event is there to perform create/update actions.

(Edit: fixed some typos from when I was half asleep)

No its a bug. that's a legacy bug that has come from the older versions I think. A create event is basically detected as a lack of the $_POST['id'], so its still possible. You do raise a good point though.

Yes, good point from Nick!

One remark though regarding the Members events: I find the Members: Register event in the permissions list, and I had to allow "create new" for the public role in order to make registration possible.

[EDIT]: posted on Github

So how would the Login Info event (and other unrelated custom events that don't apply to Members permissions) be hidden from the table?

They won't be hidden from the table, all events will be treated equally.

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