[Php-blog-plugin-cvs] additional_plugins/serendipity_event_linklist serendipity_event_linklist.php,1
A reliable, secure & extensible PHP blog | Not mainstream since 2002
Brought to you by:
garvinhicking,
jhermanns
From: Matthew G. <mgr...@us...> - 2005-01-25 04:22:09
|
Update of /cvsroot/php-blog/additional_plugins/serendipity_event_linklist In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27430/serendipity_event_linklist Modified Files: serendipity_event_linklist.php Log Message: Categorical output now respects category depth, and plugin now has an optional custom category system.. Index: serendipity_event_linklist.php =================================================================== RCS file: /cvsroot/php-blog/additional_plugins/serendipity_event_linklist/serendipity_event_linklist.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- serendipity_event_linklist.php 24 Jan 2005 16:56:18 -0000 1.1 +++ serendipity_event_linklist.php 25 Jan 2005 03:56:25 -0000 1.2 @@ -24,7 +24,13 @@ @define('PLUGIN_EVENT_LINKLIST_ADDLINK','Add a Link'); @define('PLUGIN_EVENT_LINKLIST_EDITLINK','Edit a Link'); @define('PLUGIN_EVENT_LINKLIST_LINKDESC','Description of Link'); - @define('PLUGIN_EVENT_LINKLIST_DEFAULT_NOTE','Please note, this is an event plugin and must either use Event Output Wrapper, or a custom Sidebar to show sidebar list.'); + @define('PLUGIN_EVENT_LINKLIST_DEFAULT_NOTE','Please note, this is an event plugin and must either use the Event Output Wrapper, or a custom Sidebar to show sidebar list.'); + @define('PLUGIN_EVENT_LINKLIST_CATEGORY_NAME','Category system to use:'); + @define('PLUGIN_EVENT_LINKLIST_CATEGORY_NAME_DESC','You can choose to use the blog category system, or the custom categories provided with this plugin.'); + @define('PLUGIN_EVENT_LINKLIST_CATEGORY_NAME_CUSTOM','Custom'); + @define('PLUGIN_EVENT_LINKLIST_CATEGORY_NAME_DEFAULT','Default'); + @define('PLUGIN_EVENT_LINKLIST_CATDB_WARNING','You are configured to use custom categories, but the category database does not exist. Please click here to create the database.'); + @define('PLUGIN_EVENT_LINKLIST_ADD_CAT_LINK','Add a category'); break; } @@ -73,6 +79,17 @@ $propbag->add('description', PLUGIN_EVENT_LINKLIST_TITLEDESC); $propbag->add('default', ''); break; + case 'category': + $propbag->add('type', 'radio'); + $propbag->add('name', PLUGIN_EVENT_LINKLIST_CATEGORY_NAME); + $propbag->add('description', PLUGIN_EVENT_LINKLIST_CATEGORY_NAME_DESC); + $propbag->add('radio', + array( 'value' => array('custom','default'), + 'desc' => array(PLUGIN_EVENT_LINKLIST_CATEGORY_NAME_CUSTOM,PLUGIN_EVENT_LINKLIST_CATEGORY_NAME_DEFAULT) + )); + $propbag->add('radio_per_row', '2'); + $propbag->add('default', 'custom'); + break; default: return false; @@ -88,12 +105,25 @@ if (isset($hooks[$event])) { switch($event) { case 'backend_sidebar_entries_event_display_linklist': - //$this->test_links(); + + if ($this->get_config('category') == 'custom' && $this->get_config('catbd')!= 'done') { + echo '<a href="?serendipity[adminModule]=event_display&serendipity[adminAction]=linklist&submit=create_custom">'.PLUGIN_EVENT_LINKLIST_CATDB_WARNING.'</a>'; + } + if (isset($_POST['REMOVE'])) { - foreach ($_POST['serendipity']['link_to_remove'] as $key) { - $this->del_link($key); + if (isset($_POST['serendipity']['link_to_remove'])) { + foreach ($_POST['serendipity']['link_to_remove'] as $key) { + $this->del_link($key); + } + } else { + if (isset($_POST['serendipity']['category_to_remove'])) { + foreach ($_POST['serendipity']['link_to_remove'] as $key) { + $this->del_category($key); + } + } } } + if (isset($_POST['SAVE'])) { foreach ($_POST['serendipity']['link_to_recat'] AS $key => $row) { $this->update_cat($key,$row); @@ -103,8 +133,11 @@ if (isset($_POST['ADD'])) { if (isset($_POST['serendipity']['add_link']['title']) && isset($_POST['serendipity']['add_link']['link'])) { $this->add_link($_POST['serendipity']['add_link']['link'],$_POST['serendipity']['add_link']['title'],$_POST['serendipity']['add_link']['desc'],$_POST['serendipity']['link_to_recat']['cat']); - } - + } else { + if (isset($_POST['serendipity']['add_category']['name'])) { + $this->add_cat($_POST['serendipity']['add_category']['name'],$_POST['serendipity']['add_category']['parent']); + } + } } if (isset($_POST['EDIT'])) { @@ -120,12 +153,22 @@ case 'move down': $this->move_down($_GET['serendipity']['link_to_move']); break; + + case 'create_custom': + $this->create_cattable(); + break; + + } if (isset($_GET['serendipity']['edit_link'])) { $this->output_add_edit_linkadmin(TRUE,$_GET['serendipity']['edit_link']); } else { - $this->output_add_edit_linkadmin(FALSE); - $this->output_linkadmin(); + if (isset($_GET['serendipity']['manage_category'])) { + $this->output_categoryadmin(TRUE,$_GET['serendipity']['edit_link']); + } else { + $this->output_add_edit_linkadmin(FALSE); + $this->output_linkadmin(); + } } return true; break; @@ -224,6 +267,7 @@ last_result_time int(10) {UNSIGNED} NULL, num_bad_results int(11) )"; + $sql = serendipity_db_schema_import($q); $q = "CREATE INDEX dateind ON {$serendipity['dbPrefix']}links (date_added);"; @@ -233,7 +277,19 @@ $sql = serendipity_db_schema_import($q); $q = "CREATE INDEX catind ON {$serendipity['dbPrefix']}links (category);"; + $this->create_cattable(); + } + + function create_cattable() { + + global $serendipity; + $q = "CREATE TABLE ".$serendipity['dbPrefix']."link_category ( + categoryid {AUTOINCREMENT} {PRIMARY}, + category_name varchar(255) default NULL, + parentid int(11) default 0 + )"; $sql = serendipity_db_schema_import($q); + $this->set_config('catbd','done'); } function uninstall() { @@ -241,6 +297,8 @@ // Drop table $q = "DROP TABLE ".$serendipity['dbPrefix']."links"; $sql = serendipity_db_schema_import($q); + $q = "DROP TABLE ".$serendipity['dbPrefix']."category_links"; + $sql = serendipity_db_schema_import($q); } function add_link($link,$name,$desc,$catid = 0) { @@ -471,7 +529,7 @@ <table border="0" cellpadding="5" cellspacing="0" width="100%"> <tr><td><?php echo PLUGIN_EVENT_LINKLIST_LINK; ?></td><td><input type="text" name="serendipity[add_link][link]" value="<?php echo $link; ?>" size="30" /></td></tr> <tr><td><?php echo PLUGIN_EVENT_LINKLIST_LINK_NAME; ?></td><td><input type="text" name="serendipity[add_link][title]" value="<?php echo $title; ?>" size="30" /></td></tr> - <tr><td><?php echo CATEGORY; ?></td><td><?php echo $this->category_box('cat',$categories,$cat); ?></td></tr> + <tr><td><?php echo CATEGORY; ?> (<a href="?serendipity[adminModule]=event_display&serendipity[adminAction]=linklist&serendipity[manage_category]=1"><?php echo PLUGIN_EVENT_LINKLIST_ADD_CAT_LINK;?></a>)</font></td><td><?php echo $this->category_box('cat',$categories,$cat); ?></td></tr> <tr><td><?php echo PLUGIN_EVENT_LINKLIST_LINKDESC; ?></td><td><textarea style="width: 100%" name="serendipity[add_link][desc]" id="serendipity[add_link][desc]" cols="80" rows="3"><?php echo $desc; ?></textarea></td></tr> <? echo '</table>'; @@ -535,11 +593,14 @@ function build_categories() { global $serendipity; - - + if ($this->get_config('category') == 'custom') { + $table = $serendipity['dbPrefix'].'link_category'; + } else { + $table = $serendipity['dbPrefix'].'category'; + } $q = 'SELECT s.categoryid AS id, s.category_name AS name - FROM '.$serendipity['dbPrefix'].'category AS s + FROM '.$table.' AS s ORDER BY s.category_name DESC'; $sql = serendipity_db_query($q); if ($sql && is_array($sql)) { |