/[drupal]/contributions/sandbox/GurpartapSingh/modules/smileys/smileys_import.module
ViewVC logotype

Contents of /contributions/sandbox/GurpartapSingh/modules/smileys/smileys_import.module

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download) (as text)
Thu Nov 9 08:58:09 2006 UTC (3 years ago) by Gurpartap
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/x-php
New smileys module for Drupal 5.x. Development commit.
1 <?php
2 // $Id: smileys.module,v 1.46 2006/07/12 10:41:16 unconed Exp $
3
4 function smileys_import_help($section) {
5 switch ($section) {
6 case 'admin/settings/smileys/import':
7 return t('Here you can install/uninstall smiley import packs.');
8 }
9 }
10
11 function smileys_import_menu($may_cache) {
12 $items = array();
13
14 if ($may_cache) {
15 $access = user_access('administer smileys');
16
17 $items[] = array(
18 'path' => 'admin/settings/smileys/import',
19 'title' => t('Import'),
20 'callback' => 'smileys_import_page',
21 'access' => $access,
22 'weight' => 2,
23 'type' => MENU_LOCAL_TASK);
24
25 $items[] = array(
26 'path' => 'admin/settings/smileys/export',
27 'title' => t('Export'),
28 'callback' => 'smileys_export_page',
29 'access' => $access,
30 'weight' => 3,
31 'type' => MENU_LOCAL_TASK);
32
33 $items[] = array(
34 'path' => 'admin/settings/smileys/import/add',
35 'callback' => 'smileys_import_add',
36 'access' => $access,
37 'type' => MENU_CALLBACK);
38
39 $items[] = array(
40 'path' => 'admin/settings/smileys/import/delete',
41 'callback' => 'smileys_import_delete',
42 'access' => $access,
43 'type' => MENU_CALLBACK);
44 }
45 return $items;
46 }
47
48 function smileys_import_page() {
49 $header = array(t('Smiley Packs'), t('Operations'));
50 $rows = array();
51 $packs = smileys_import_packs();
52 foreach ($packs as $pack) {
53 $smileyp = db_fetch_array(db_query("SELECT * FROM {smileys} WHERE package = '%s'", $pack->name));
54 $option_link = $smileyp ? l(t('Uninstall'), 'admin/settings/smileys/import/delete/'. $pack->name) : l(t('Install'), 'admin/settings/smileys/import/add/'. $pack->name);
55 $rows[] = array(
56 '<strong>' . $pack->name . '</strong>',
57 $option_link
58 );
59 }
60 $output = theme('table', $header, $rows);
61 if (empty($rows)) {
62 drupal_set_message(t('No smiley packs found.'));
63 $output = '';
64 }
65 return $output;
66 }
67
68 function smileys_export_page() {
69 if ($package = arg(4)) {
70 $smileys = db_query("SELECT * FROM {smileys} WHERE package = '%s' ORDER BY id", $package);
71 $path = drupal_get_path('module', 'smileys');
72 $smile_pak = "";
73 $delimeter = '=+:';
74 while ($smiley = db_fetch_object($smileys)) {
75 $smile_pak .= str_replace($path . '/packs/' . $smiley->package . '/', '', $smiley->image) . $delimeter;
76 $smile_pak .= $smiley->description . $delimeter;
77 $smile_pak .= $smiley->acronyms . "\n";
78 }
79 $output = "<div id=\"module-message\">\n";
80 $output .= t('Please copy and paste the following text into a file at:<br /><strong>%package</strong><br /><em>with each smiley image in the same folder.</em>', array('%package' => $path . '/packs/' . $package . '/' . $package . '.pak')) . "\n";
81 $output .= "</div>\n";
82 $output .= "<div id=\"module-code\">\n";
83 $output .= "<textarea cols=\"80\" rows=\"15\">\n";
84 $output .= $smile_pak;
85 $output .= "</textarea>\n";
86 $output .= "</div>\n";
87 }
88 else {
89 $packs = array();
90 $header = array(t('Smiley Packs'), t('Operations'));
91 $smileyp = db_query("SELECT DISTINCT package FROM {smileys} ORDER BY package");
92 while ($pack = db_fetch_object($smileyp)) {
93 $packs[] = $pack->package;
94 $rows[] = array(
95 '<strong>' . $pack->package . '</strong>',
96 l(t('Export'), 'admin/settings/smileys/export/'. $pack->package)
97 );
98 }
99 $output = theme('table', $header, $rows);
100 if (empty($rows)) {
101 drupal_set_message(t('No smiley packs to export.'));
102 $output = '';
103 }
104 }
105 return $output;
106 }
107
108 function smileys_import_packs() {
109 $packs = file_scan_directory(drupal_get_path('module', 'smileys') . '/packs', '\.pak$');
110 ksort($packs);
111 $pack_names = array();
112 foreach ($packs as $packname => $pack) {
113 if (!empty($pack->name)) {
114 $pack_names[] = $pack->name;
115 }
116 }
117
118 return $packs;
119 }
120
121 function smileys_import_delete($packname, $redirect = 0) {
122 $pack = $packname ? $packname : arg(5);
123 db_query("DELETE FROM {smileys} WHERE package = '%s'", $pack);
124 if ($redirect == 0) {
125 drupal_set_message('Smiley package <em>' . $pack . '</em> uninstalled.' );
126 drupal_goto('admin/settings/smileys/import');
127 }
128 }
129
130 function smileys_import_add($packname) {
131 $delimeter = '=+:';
132 $pack = $packname ? $packname : arg(5);
133 smileys_import_delete($pack, 1);
134 $fcontents = @file(drupal_get_path('module', 'smileys') . '/packs/' . $pack . '/' . $pack . '.pak');
135
136 for ($i = 0; $i < count($fcontents); $i++) {
137 $smile_data = explode($delimeter, trim(addslashes($fcontents[$i])));
138 for ($j = 2; $j < count($smile_data); $j++) {
139 $smile_data[$j] = str_replace("<", "&lt;", $smile_data[$j]);
140 $smile_data[$j] = str_replace(">", "&gt;", $smile_data[$j]);
141 $k = $smile_data[$j];
142 db_query("INSERT INTO {smileys} (acronyms, image, description, standalone, package) VALUES('%s', '%s', '%s', %d, '%s')", str_replace("\'", "''", $smile_data[$j]), drupal_get_path('module', 'smileys') . '/packs/' . $pack . '/' . str_replace("\'", "''", $smile_data[0]), str_replace("\'", "''", $smile_data[1]), 1, $pack);
143 }
144 }
145 drupal_set_message('Smiley package <em> ' . $pack . ' </em> installed.');
146 drupal_goto('admin/settings/smileys/import');
147 }

  ViewVC Help
Powered by ViewVC 1.1.2