default userpic

how to pass parameter between embeded html form and plugin

Vote 0 Votes

currently I am implementing a template module where a html form is embed.
$lt;form name="input" action="<mt:xyz>" >
Username:
<input type="text" name="user" />
<<nput type="submit" value="Submit" />
</form>

Users will type his name in the text box and plugin get info for each user.

My questions are:
1) is it correct to put the plugin name on the action(my intention is to trigger the plugin xyz when click the submit button)?
2) how does the plugin get what users type in the text box(name:user)?

Reported on Movable Type 4.3

3 Replies

| Add a Reply
  • You may like to post again your coding, after making sure that you strip the angle brackets by replacing < with &lt; and > with &gt;

  • my template:

    <form method="post" enctype="multipart/form-data" 
        action="<mt:var name="script_url">">
    
    

    <input type="hidden" name="__mode" value="addsamplecode" />

    <mt:if name="blog_id">
    <input type="hidden" name="blog_id" value="<mt:var name="blog_id">" />
    </mt:if>

    <mtapp:setting
    id="samplecode"
    label=""
    show_label="1"
    content_class="field-content-text">
    add package name:
    <input type="text" id="packageName" name="packageName" size="60" />

    </mtapp:setting>

    <mt:setvarblock name="action_buttons">
    <button
    type="submit"
    accesskey="s"
    title="Submit"
    class="primary-button">
    Submit
    </button>
    </mt:setvarblock>
    <mt:include name="include/actions_bar.tmpl" bar_position="bottom"
    hide_pager="1" settings_bar="1">
    </form>

    my config.yaml (path: /plugins/HelloWorld/config.yaml)
    name: Good for Nothing plugin
    id: Good4Nothing
    author_link: http://amazon.com/
    author_name: Daniel Wang
    description: xyz
    version: 1.0
    applications:
    samplecode:
    methods:
    addsamplecode: $Good4Nothing::Good4Nothing::Plugin::tag

    My plugin code:
    package Good4Nothing::Plugin;
    sub tag {
    my $app = shift;
    my $query = $app->{query};
    my $packageName = $query->param('packageName');

    return $app->build_page($packageName);

    }

    I want to transfer the package name users entered to my plugin when users click the submit button.
    how to do it?

  • 1) is it correct to put the plugin name on the action(my intention is to trigger the plugin xyz when click the submit button)?

    It's not necessary to reference it in the form. Just pass in the hidden parameter for the mode that the plugin exposes like you're doing above.

    2) how does the plugin get what users type in the text box(name:user)?

    The mode exposed by the plugin gets passed an instance of a MT::App subclass ($app) and that instance has received all of the HTTP headers, form data, etc. from the Perl base CGI code.

Add a Reply

If you need to share template code, replace all the "<" signs with "&lt;" or use this utility.

Forum Groups

1773 6162

Last Topic: Excluding categories from blog by kholechek on Feb 9, 2012

86 302

Last Topic: website entries by masoud on Oct 26, 2011

1429 5077

Last Topic: What apocalypse hit this community in the middle of 2011? by 75th on Feb 10, 2012

695 2910

Last Topic: Insert Image / File Fails by Russ Miller on Feb 10, 2012

84 291

Last Topic: How to have some other characters in entry basename automatically written by Afshin Haghighatnia on Dec 22, 2011

173 737

Last Topic: About the MT version stated in HTML source by Alex E. Schneider on Feb 7, 2012

190 567

Last Topic: Analytics Reporting by michael webster on Feb 5, 2012

48 210

Last Topic: An idea and also a request by Afshin Haghighatnia on Jun 29, 2011

64 246

Last Topic: jQuery in MT 5.1 still at 1.4 - why? by perlmonkey on May 25, 2011

code.sixapart.com

137 478

Last Topic: Getting a thumbnail with xpath by Peter on Mar 13, 2011

222 720

Last Topic: Custom Field for Asset Not Appearing by android on Feb 9, 2012