$tag_id, 'name' => addslashes($tag_name), 'url_name' => str2url(trigger_event('render_tag_url', $tag_name)), ) ); } } } mass_updates( TAGS_TABLE, array( 'primary' => array('id'), 'update' => array('name', 'url_name'), ), $updates ); } // +-----------------------------------------------------------------------+ // | delete tags | // +-----------------------------------------------------------------------+ if (isset($_POST['delete']) and isset($_POST['tags'])) { $query = ' SELECT name FROM '.TAGS_TABLE.' WHERE id IN ('.implode(',', $_POST['tags']).') ;'; $tag_names = array_from_query($query, 'name'); $query = ' DELETE FROM '.IMAGE_TAG_TABLE.' WHERE tag_id IN ('.implode(',', $_POST['tags']).') ;'; pwg_query($query); $query = ' DELETE FROM '.TAGS_TABLE.' WHERE id IN ('.implode(',', $_POST['tags']).') ;'; pwg_query($query); array_push( $page['infos'], l10n_dec( 'The following tag was deleted', 'The %d following tags were deleted', count($tag_names)).' : '. implode(', ', $tag_names) ); } // +-----------------------------------------------------------------------+ // | delete orphan tags | // +-----------------------------------------------------------------------+ if (isset($_GET['action']) and 'delete_orphans' == $_GET['action']) { check_pwg_token(); delete_orphan_tags(); $_SESSION['page_infos'] = array(l10n('Orphan tags deleted')); redirect(get_root_url().'admin.php?page=tags'); } // +-----------------------------------------------------------------------+ // | add a tag | // +-----------------------------------------------------------------------+ if (isset($_POST['add']) and !empty($_POST['add_tag'])) { $tag_name = $_POST['add_tag']; // does the tag already exists? $query = ' SELECT id FROM '.TAGS_TABLE.' WHERE name = \''.$tag_name.'\' ;'; $existing_tags = array_from_query($query, 'id'); if (count($existing_tags) == 0) { mass_inserts( TAGS_TABLE, array('name', 'url_name'), array( array( 'name' => $tag_name, 'url_name' => str2url(trigger_event('render_tag_url', $tag_name)), ) ) ); array_push( $page['infos'], sprintf( l10n('Tag "%s" was added'), stripslashes($tag_name) ) ); } else { array_push( $page['errors'], sprintf( l10n('Tag "%s" already exists'), stripslashes($tag_name) ) ); } } // +-----------------------------------------------------------------------+ // | template init | // +-----------------------------------------------------------------------+ $template->set_filenames(array('tags' => 'tags.tpl')); $template->assign( array( 'F_ACTION' => PHPWG_ROOT_PATH.'admin.php?page=tags', 'PWG_TOKEN' => get_pwg_token(), ) ); // +-----------------------------------------------------------------------+ // | orphan tags | // +-----------------------------------------------------------------------+ $orphan_tags = get_orphan_tags(); $orphan_tag_names = array(); foreach ($orphan_tags as $tag) { array_push($orphan_tag_names, trigger_event('render_tag_name', $tag['name'])); } if (count($orphan_tag_names) > 0) { array_push( $page['warnings'], sprintf( l10n('You have %d orphan tags: %s.').' '.l10n('Delete orphan tags').'', count($orphan_tag_names), implode(', ', $orphan_tag_names), get_root_url().'admin.php?page=tags&action=delete_orphans&pwg_token='.get_pwg_token() ) ); } // +-----------------------------------------------------------------------+ // | form creation | // +-----------------------------------------------------------------------+ $template->assign( array( 'TAG_SELECTION' => get_html_tag_selection( get_all_tags(), 'tags' ), ) ); if (isset($_POST['edit']) and isset($_POST['tags'])) { $template->assign( array( 'EDIT_TAGS_LIST' => implode(',', $_POST['tags']), ) ); $query = ' SELECT id, name FROM '.TAGS_TABLE.' WHERE id IN ('.implode(',', $_POST['tags']).') ;'; $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { $name_of[ $row['id'] ] = $row['name']; } foreach ($_POST['tags'] as $tag_id) { $template->append( 'tags', array( 'ID' => $tag_id, 'NAME' => $name_of[$tag_id], ) ); } } // +-----------------------------------------------------------------------+ // | sending html code | // +-----------------------------------------------------------------------+ $template->assign_var_from_handle('ADMIN_CONTENT', 'tags'); ?>