Page 1 of 1
Questions about Events Adding notification to Content Edit
Posted: Tue Feb 27, 2007 5:32 pm
by dmgd
CMS Made Simple 1.0.4 "Lanai"
Apache Version Apache/1.3.37 (Unix) PHP/4.4.4 mod_throttle/3.1.2 FrontPage/5.0.2.2635 mod_psoft_traffic/0.2 mod_ssl/2.8.28 OpenSSL/0.9.7a
I want to email a group in the event content has been added deleted edited. I thought Events should handle this. I searched and found this article
http://forum.cmsmadesimple.org/index.php/topic,6041.0.html
If I follow the thread, I could use event ContentEditPost and add a UDT to email a group that content had been edited and supply the page id. Is this possible? Has anyone accomplished this?
Thanks Mark
Re: Questions about Events
Posted: Tue Feb 27, 2007 5:49 pm
by calguy1000
Yes, you should be able to do exactly this in a UDT. You'd want to do a print_r( $params ); in your UDT (before sending the email) to see what variables, etc, are available to use.
This exactly the type of stuff events are designed for.
Re: Questions about Events
Posted: Wed Feb 28, 2007 3:18 pm
by dmgd
Thanks Calguy. I have a couple of question.
1) How do I just get 1 params? I tried $params[ 'varname' ] and $params[ 'content' ][ 'varname' ], but no luck. I admit I am no where near php expert but it seemed pretty straight forward. What am I missing. The params I see with print_r($params) are
Code: Select all
Array
(
[content] => content Object
(
[mId] => 22
[mName] => Layout Options
[mType] => content
[mOwner] => 1
[mProperties] => contentproperties Object
(
[mPropertyNames] => Array
(
[0] => content_en
)
[mPropertyTypes] => Array
(
[content_en] => string
)
[mPropertyValues] => Array
(
[content_en] => REMOVED FOR READABILITY
)
[mAllowedPropertyNames] => Array
(
[0] => content_en
)
)
[mPropertiesLoaded] => 1
[mParentId] => -1
[mOldParentId] => -1
[mTemplateId] => 17
[mItemOrder] => 3
[mOldItemOrder] => 3
[mMetadata] =>
[mTitleAttribute] =>
[mAccessKey] =>
[mTabIndex] =>
[mHierarchy] => 00003
[mIdHierarchy] => 22
[mHierarchyPath] => layout-options
[mMenuText] => Layout Options
[mActive] => 1
[mAlias] => layout-options
[mOldAlias] => layout-options
[mCachable] => 1
[mPreview] => 1
[mShowInMenu] => 1
[mDefaultContent] =>
[mMarkup] => html
[mLastModifiedBy] => 1
[mCreationDate] => 2007-02-03 06:47:47
[mModifiedDate] => 2007-02-28 08:56:27
[mAdditionalEditors] => Array
(
)
[mReadyForEdit] => 1
[additionalContentBlocks] => Array
(
)
[addtContentBlocksLoaded] => 1
[mChildCount] => 0
)
)
2) If I make an edit and click Submit and not Apply the UDT is not run. This may not be the way to do this anyway.
Re: Questions about Events Adding notification to Content Edit
Posted: Mon Apr 16, 2007 7:21 am
by Acornweb
Hmmm, I can't even get that far.
I'm trying to write a bridge between frontEndUsers and Vanilla forum.
I had it working by editing the module directly, but something is failing when users make an error in their login (the page returns null) - I'm trying events now to do it properly.
I've written a UDT and linked it to the FEU event "onLogin" - all the UDT is is an echo statement followed by a print_r( $params );
I don't get any output to screen, so how do I know the UDT is even being called?
From reviewing the code I see that params will only include username and ip address, when I really need password as well. I guess I will have to edit the PHP module after all.
Re: Questions about Events Adding notification to Content Edit
Posted: Mon Apr 16, 2007 8:15 am
by bladenet
I'm not sure if this is exactly what you need, but it will probably help.
From the Developers FAQ:
Can I access a module from within a plugin?
I'm writing a plugin or a UDT (User Defined Tag), and I'd really like to be able to interface with the XYZ module. How do I go about it?
Answer: Yes, via $gCms->modules
A list of all of the installed modules (at least those that have frontend functionality) is available in the global $gCms object. You can access that object like this:
Code: Select all
global $gCms;
if( !isset( $gCms->modules['TheModuleIWant'] ) || !isset( $gCms->modules['TheModuleIWant']['object'] ) )
{
return;
}
$themoduleiwant = $gCms->modules['TheModuleIWant']['object'];
$themoduleiwant->DoThis($somedata);
$themoduleiwant->DoThat($somemoredata);
This may not be the best way to handle it, as you're not sure if you're accessing a module that has or has not been installed yet, etc. but it's close enough to get you started. You can always use var_dump and print_r on the various portions of the $gCms object to see what is available.