I need to make my own plugin. I would do this in a UDT if it was practical but its not as it will need to be installed easily so it can be also removed easily and also I have a feature that requires the function to be in a file that is accessible to the function itself, eg it reads itself to do a check to thwart tampering.
The wiki talks about tags but not how you write the plugins, searching for writing plugins mainly points to the UDT tag writing.
I have been hacking away at plugins to see how they are written and have managed to get an empty container on the server which does not break or cause problems with site operation.
write function for plugins
Re: write function for plugins
Really, no information exists on how you go about writing a compatible plug in....!
I have as stated been hacking away at one and would like to know why when its uploaded it breaks the tag menu in the admin side of things.
Theirs no errors, when I try the script out in my regular space and plug in some data to it, the thing outputs something, regardless of if its functioning as it is meant to, the thing output data. I guessed at the params[] array is parameters passed to the function and that &smarty is a reference to the smarty template engine.
The question remains as to why the function breaks the CMS... Do you run checks on them, do I need to register the plugin in the CMS somewhere?
I have tried the wiki, why you have it is a mystery as it has yet to tell me anything of use. Have you guys got any plans for updating it or adding useful information to it, I mean beyond descriptions and use of tags like being able to write your own plugin and I do not mean the UDT's either.
I have as stated been hacking away at one and would like to know why when its uploaded it breaks the tag menu in the admin side of things.
Theirs no errors, when I try the script out in my regular space and plug in some data to it, the thing outputs something, regardless of if its functioning as it is meant to, the thing output data. I guessed at the params[] array is parameters passed to the function and that &smarty is a reference to the smarty template engine.
The question remains as to why the function breaks the CMS... Do you run checks on them, do I need to register the plugin in the CMS somewhere?
I have tried the wiki, why you have it is a mystery as it has yet to tell me anything of use. Have you guys got any plans for updating it or adding useful information to it, I mean beyond descriptions and use of tags like being able to write your own plugin and I do not mean the UDT's either.
Re: write function for plugins
if you're writing a tag or module, it's expected that you understand PHP and Smarty, and are familiar with the CMSMS API. If you understand these items, writing a tag/module is just a matter of putting them all together.
If you can provide some sample code, you may get more help.
And the wiki is open to all users to add/edit/expand, so when you figure out the answer to your question, I'm sure you'll take the time to improve the wiki for the next person in your situation.
If you can provide some sample code, you may get more help.
And the wiki is open to all users to add/edit/expand, so when you figure out the answer to your question, I'm sure you'll take the time to improve the wiki for the next person in your situation.
Re: write function for plugins
TBH that is a pretty unreasonable train of though when you consider that to learn you need information and to expect an individual to have prior knowledge is just not an attainable goal.
All I want to do is to get the current page URL, other items of information like what are the variables available to the function in the CMS, how do you post to the CMS using the CMS to processes to process the form or supplied data / request.
If I want to write a tag like {mytag dosomething} then how to I get the "dosomething" part of the tag? the params array appaers to be an associative array, what help is available to grab single non named entities? is it a simple case of params[0...[1...[2] etc or does some other method exist?
I already have tried a writing a function but I notice that the CMSMS does somethings that under normal PHP would not happen. A tag like {mytag start} that is meant to insert a marker with opening DIV, I find that the div is automatically closed when it shouldn't.
So I need to know information like how can that operation be surppresed?
When I examined the output of a line of code in the page output, I can see that this closing tag has been inserted, it does not form part of the template nor part of the plugin.
So information is all I need, I have no code to show other than
What I want to do is have tag elements that do not need a name reference.
So... if you have any pointers, I would genuinely appreciate the input.
All I want to do is to get the current page URL, other items of information like what are the variables available to the function in the CMS, how do you post to the CMS using the CMS to processes to process the form or supplied data / request.
If I want to write a tag like {mytag dosomething} then how to I get the "dosomething" part of the tag? the params array appaers to be an associative array, what help is available to grab single non named entities? is it a simple case of params[0...[1...[2] etc or does some other method exist?
I already have tried a writing a function but I notice that the CMSMS does somethings that under normal PHP would not happen. A tag like {mytag start} that is meant to insert a marker with opening DIV, I find that the div is automatically closed when it shouldn't.
So I need to know information like how can that operation be surppresed?
When I examined the output of a line of code in the page output, I can see that this closing tag has been inserted, it does not form part of the template nor part of the plugin.
So information is all I need, I have no code to show other than
Code: Select all
function smarty_cms_function_mytag($params, &$smarty)
{
if( $params['start']=="START") return "<!-- MyTag START --><div id='DivID'>";
if( $params['stop']=="STOP") return "</div><!-- MyTag STOP -->";
return ""; // return nothing if no match to a tag
}
So... if you have any pointers, I would genuinely appreciate the input.
Re: write function for plugins
Maybe cmsms needs the other two functions also:
and
Just guessing... 8)
Code: Select all
function smarty_cms_help_function_mytag() {
echo 'help';
}
Code: Select all
function smarty_cms_about_function_mytag() {
echo 'about';
}
Last edited by Jos on Sun Feb 07, 2010 6:10 pm, edited 1 time in total.
-
- Support Guru
- Posts: 8169
- Joined: Tue Oct 19, 2004 6:44 pm
- Location: Fernie British Columbia, Canada
Re: write function for plugins
Have you read the smarty manual? I bet not... it is REQUIRED READING!
Follow me on twitter
Please post system information from "Extensions >> System Information" (there is a bbcode option) on all posts asking for assistance.
--------------------
If you can't bother explaining your problem well, you shouldn't expect much in the way of assistance.
Please post system information from "Extensions >> System Information" (there is a bbcode option) on all posts asking for assistance.
--------------------
If you can't bother explaining your problem well, you shouldn't expect much in the way of assistance.
Re: write function for plugins
THIS... Is what I am on about, WHERE..! Well now I know the name of the manual, I have looked online I find the smarty site. Unfortunately its not telling me anything about the PHP code or variables that I can access in the CMS like a search for the $gCms variable returns a blank page, its all smarty stuff, not what I need ATM.calguy1000 wrote: Have you read the smarty manual? I bet not... it is REQUIRED READING!
I take it that this is what you use to get the page URL?
Code: Select all
global $gCms;
$hm =& $gCms->GetHierarchyManager();
$page_content_id = $gCms->variables['content_id'];
$curnode =& $hm->getNodeById($page_content_id);
$curcontent =& $curnode->GetContent();
$url = urlencode($curcontent->GetURL()); // url of current page
@JOS, lol, yeah they exist but I didn't include them because its obvious that they are meant to be in it also....
Re: write function for plugins
Think Calguy means you should start reading here: http://www.smarty.net/manual/en/plugins.php (after you get the hang of the general smarty stuff)