Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
 
Re: must have hack?
“#textpattern”:irc://irc.freenode.net/xpat (you need an IRC client).
That code is correct – have you tried commenting out parts of your plugin? Also, your array could just be:
$types = array('article', 'comment', 'file', 'link', 'misc',);
Then use ucfirst to capitalize the value.
Last edited by jm (2008-05-20 03:55:36)
Offline
#38 2008-05-20 04:04:57
- Ruhh
 - Member
 
- From: dakota dunes
 - Registered: 2008-01-20
 - Posts: 305
 
Re: must have hack?
Oh ok, well the capitalization won’t be neccesary. Uh, how about this line:
foreach ($types as $type_table => $type_name) {
	$query = "SELECT * FROM 'txp_form' WHERE 'type' = '$type_table'";
	$result = mysql_query($query, $link);
	if (mysql_num_rows($result) > 0) {
?>
					<txp:Ruhh />
Offline
Re: must have hack?
<?php
    // see lib/txplib_db.php
    // This is sloppy, since we don't need a WHERE clause, but it's simple.
    $forms = safe_rows("name, type", "txp_form", "name != ''", 1);
    if ($forms)
    {
        foreach ($forms as $form)
        {
            dmp($form);
            // Do stuff
        }
    }
?>
					Offline
#40 2008-05-20 19:08:33
- Ruhh
 - Member
 
- From: dakota dunes
 - Registered: 2008-01-20
 - Posts: 305
 
Re: must have hack?
Yeah.
I get the same error. I can’t create this at all. So anyone wanna create this?
<txp:Ruhh />
Offline
Re: must have hack?
Post all of your code! The snippet I posted is error-free, so the error must be before it.
Offline
Re: must have hack?
I’m fighting with output buffers right now, but here’s the gist of the plugin:
<?php
$plugin = array(
    'version' => '0.1',
    'author' => 'Jon-Michael Deldin',
    'author_uri' => 'http://jmdeldin.com',
    'description' => 'Toggleable forms.',
    'type' => 1,
);
if (!defined('txpinterface')) include 'zem_tpl.php';
if (0) {
?>
# --- BEGIN PLUGIN HELP ---
# --- END PLUGIN HELP ---
<?php
}
# --- BEGIN PLUGIN CODE ---
if (txpinterface == 'admin')
{
    register_callback('jmd_form_toggle_init', 'form', '', 1);
}
function jmd_form_toggle_init($event, $step)
{
    ob_start('jmd_form_toggle');
}
function jmd_form_toggle($buffer)
{
    $rs = safe_rows("name, type", "txp_form", "name != '' ORDER BY type");
    $forms = array();
    foreach ($rs as $form)
    {
        if (!array_key_exists($form['type'], $forms))
        {
            $forms[$form['type']] = array($form['name']);
        }
        else
        {
            array_push($forms[$form['type']], $form['name']);
        }
    }
    $out .= tr(tda(sLink('form', 'form_create', gTxt('create_new_form')), 
          ' colspan="2"'));
    $types = array_keys($forms);
    foreach ($types as $type)
    {
        $out .= '<tr>
            <th colspan="2" onclick="toggleDisplay(\'' . $type . '\')">
            ' . $type . '</th></tr><tbody id="' . $type . '">';
        for ($i = 0; $i < count($forms[$type]); $i++)
        {
            $form = $forms[$type][$i];
            $out .= '<tr><td>';
            if (gps('name') == $form)
            {
                $out .= $form;
            }
            else
            {
                $out .= href($form, '?event=form&name=' . $form);
            }
            $out .= '<td><input type="checkbox" name="selected_forms[]" 
                value="' . $form . '"/>
                </td></tr>';
        }
        $out .= '</tbody>';
    }
    $out .= '</table>';
    $pattern = '<tr><td colspan="3" style="height:30px">(.*)<input type="hidden" name="event" value="form" />';
    return ereg_replace($pattern, $out, $buffer);
}
# --- END PLUGIN CODE ---
?>
						Last edited by jm (2008-05-21 02:47:07)
Offline
#43 2008-05-20 23:25:06
- Ruhh
 - Member
 
- From: dakota dunes
 - Registered: 2008-01-20
 - Posts: 305
 
Re: must have hack?
Yeah.
My code is poorly written, lol. And of course, I highly doubt it will work.
<?php
$link = mysql_connect("HOST", "USER", "PASS") or die("Can't connect.");
mysql_select_db("txp_form", $link) or die("Can't select database.");
$types = array("article" => "Article", "comment" => "Comment", "file" => "File", "link" => "Link", "misc" => "Miscellaneous");
foreach($types as $type_table => $type_name) {
	$query = "SELECT * FROM `txp_form` WHERE `type` = '$type_table'";
	$result = mysql_query($query, $link);
	if (mysql_num_rows($result) > 0) {
?>
<h1 class="show-jquery-extra"><?php echo $type_name; ?></h1>
<table class="jquery-extra">
	<tr>
		<th>Form</th>
	</tr>
<?php while($row = mysql_fetch_assoc($result)) { ?>
	<tr>
		<td><?php echo $row['name']; ?></td>
	</tr>
<?php } ?>
</table>
<?php
	}
}
?>
Feel free to laugh…
Last edited by Ruhh (2008-05-20 23:27:41)
<txp:Ruhh />
Offline
Re: must have hack?
Ruhh – see textpattern > lib > txplib_db.php ;).
The plugin is mostly done. Calling all buffering pros – why does the code in foreach() not seem to be executed? When I print $out (w/o buffer), it works.
Offline
#45 2008-05-21 03:31:03
- Ruhh
 - Member
 
- From: dakota dunes
 - Registered: 2008-01-20
 - Posts: 305
 
Re: must have hack?
Sighs, I will read over those things again and make sure I get myself clarified.
So, for now I will use your code but may I have the txt file, the plugin itself?
<txp:Ruhh />
Offline
Re: must have hack?
It doesn’t actually work yet – I need some help with buffering. Once it works, you should be able to paste the code into ied_plugin_composer or just download zem_tpl.php into the same directory as the plugin.
Offline