<?php require_once dirname(__FILE__).'/accesscheck.php'; $id = !empty($_GET['id']) ? sprintf('%d', $_GET['id']) : 0; ob_end_flush(); if (!$id) { Fatal_Error($GLOBALS['I18N']->get('No such attribute:')." $id"); return; } if (!isset($tables['attribute'])) { $tables['attribute'] = 'attribute'; $tables['user_attribute'] = 'user_attribute'; } if (!isset($table_prefix)) { $table_prefix = 'phplist_'; } $res = Sql_Query("select * from $tables[attribute] where id = $id"); $data = Sql_Fetch_array($res); $table = $table_prefix.'listattr_'.$data['tablename']; switch ($data['type']) { case 'checkboxgroup': case 'select': case 'radio': break; default: print $GLOBALS['I18N']->get('This datatype does not have editable values'); return; } ?> <div class="panel"> <div class="header"></div><!-- ENDOF .header --> <div class="content"> <h3 id="attribute-name"><?php echo htmlspecialchars(stripslashes($data['name'])) ?></h3> <div class="actions"> <?php echo PageLinkButton('attributes', s('Back to attributes'), ''); if (!isset($_GET['action']) || $_GET['action'] != 'new') { echo PageLinkButton('editattributes', $GLOBALS['I18N']->get('add new'), "id=$id&action=new"); } $button = new ConfirmButton( s('Are you sure you want to delete all values?'), PageURL2("editattributes&id=$id&deleteall=yes", s('delete all')), s('Delete all')); echo $button->show(); ?> </div> <hr/> <?php echo formStart(' class="editattributesAdd" ') ?> <input type="hidden" name="action" value="add"/> <input type="hidden" name="id" value="<?php echo $id ?>"/> <?php if (isset($_POST['addnew'])) { $items = explode("\r\n", $_POST['itemlist']); $query = sprintf('select max(listorder) as listorder from %s', $table); $maxitem = Sql_Fetch_Row_Query($query); if (!Sql_Affected_Rows() || !is_numeric($maxitem[0])) { $listorder = 1; // insert the listorder as it's in the textarea / start with 1 ' } else { $listorder = $maxitem[0] + 1; // One more than the maximum } foreach ($items as $key => $val) { $val = strip_tags($val); if ($val != '') { $query = sprintf('insert into %s (name,listorder) values("%s","%s")', $table, $val, $listorder); $result = Sql_query($query); } ++$listorder; } } if (isset($_POST['listorder']) && is_array($_POST['listorder'])) { foreach ($_POST['listorder'] as $key => $val) { Sql_Query(sprintf('update %s set listorder = %d where id = %d', sql_escape($table), $val, $key)); } } function giveAlternative($table, $delete, $attributeid) { echo $GLOBALS['I18N']->get('Alternatively you can replace all values with another one:').formStart(' class="editattributesAlternatives" '); echo '<select name="replace"><option value="0">-- '.$GLOBALS['I18N']->get('Replace with').'</option>'; $req = Sql_Query("select * from $table order by listorder,name"); while ($row = Sql_Fetch_array($req)) { if ($row['id'] != $delete) { printf('<option value="%d">%s</option>', $row['id'], $row['name']); } } echo '</select>'; printf('<input type="hidden" name="delete" value="%d" />', $delete); printf('<input type="hidden" name="id" value="%d" />', $attributeid); printf('<input class="submit" type="submit" name="deleteandreplace" value="%s" /><hr class="line" />', $GLOBALS['I18N']->get('Delete and replace')); } function deleteItem($table, $attributeid, $delete) { global $tables; if (isset($_REQUEST['replace'])) { $replace = sprintf('%d', $_REQUEST['replace']); } else { $replace = 0; } // delete the index in delete $valreq = Sql_Fetch_Row_query("select name from $table where id = $delete"); $val = $valreq[0]; // check dependencies $dependencies = array(); $result = Sql_query("select distinct userid from $tables[user_attribute] where attributeid = $attributeid and value = $delete"); while ($row = Sql_fetch_array($result)) { array_push($dependencies, $row['userid']); } if (count($dependencies) == 0) { $result = Sql_query("delete from $table where id = $delete"); } elseif ($replace) { $result = Sql_Query("update $tables[user_attribute] set value = $replace where value = $delete"); $result = Sql_query("delete from $table where id = $delete"); } else { echo $GLOBALS['I18N']->get('Cannot delete'); echo " <b>$val</b><br />"; echo $GLOBALS['I18N']->get('The following subscriber(s) are dependent on this value<br />Update the subscriber profiles to not use this attribute value and try again').'<br/>'; for ($i = 0; $i < count($dependencies); ++$i) { echo PageLink2('user', $GLOBALS['I18N']->get('user').' '.$dependencies[$i], "id=$dependencies[$i]")."<br />\n"; if ($i > 10) { echo $GLOBALS['I18N']->get('* Too many to list, total dependencies:').' ' .count($dependencies).'<br /><br />'; giveAlternative($table, $delete, $attributeid); return 0; } } echo '<br />'; giveAlternative($table, $delete, $attributeid); } return 1; } if (isset($_GET['delete'])) { if (!verifyCsrfGetToken(true)) { echo Error(s('No Access')); return; } deleteItem($table, $id, sprintf('%d', $_GET['delete'])); } elseif (isset($_GET['deleteall'])) { if (!verifyCsrfGetToken(true)) { echo Error(s('No Access')); return; } $count = 0; $errcount = 0; $res = Sql_Query("select id from $table"); while ($row = Sql_Fetch_Row($res)) { if (deleteItem($table, $id, $row[0])) { ++$count; } else { ++$errcount; if ($errcount > 10) { echo $GLOBALS['I18N']->get('* Too many errors, quitting')."<br /><br /><br />\n"; break; } } } } if (isset($_GET['action']) && $_GET['action'] == 'new') { // ?? ?> <p><?php echo $GLOBALS['I18N']->get('Add new').' '.htmlspecialchars(stripslashes($data['name'])).', '.$GLOBALS['I18N']->get('one per line') ?></p> <textarea name="itemlist" rows="20" cols="50"></textarea> <input class="submit" type="submit" name="addnew" value="<?php echo $GLOBALS['I18N']->get('Add new').' '.htmlspecialchars(stripslashes($data['name'])) ?>"/> <br/> <hr/> <?php } $req = Sql_query("SELECT * FROM $table order by listorder,name"); $num = Sql_Affected_Rows(); if ($num < ATTRIBUTEVALUE_REORDER_LIMIT && $num > 25) { printf('<input class="submit" type="submit" name="action" value="%s" /><br /><br />', $GLOBALS['I18N']->get('Change order')); } while ($row = Sql_Fetch_array($req)) { printf('<div class="row-value"><span class="delete"><a href="javascript:deleteRec(\'%s\');">'.$GLOBALS['I18N']->get('delete').'</a></span>', PageURL2('editattributes', '', "id=$id&delete=".$row['id'])); if ($num < ATTRIBUTEVALUE_REORDER_LIMIT) { printf(' <input type="text" name="listorder[%d]" value="%s" size="5" class="listorder" />', $row['id'], $row['listorder']); } printf(' %s %s </div>', htmlspecialchars($row['name']), ($row['name'] == $data['default_value']) ? '('.$GLOBALS['I18N']->get('default').')' : ''); } if ($num && $num < ATTRIBUTEVALUE_REORDER_LIMIT) { printf('<br /><input class="submit" type="submit" name="action" value="%s" />', $GLOBALS['I18N']->get('Change order')); } ?> </form> </div> <!-- eo content --> </div> <!-- eo panel -->
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
PEAR | Folder | 0755 |
|
|
PHPMailer | Folder | 0755 |
|
|
PHPMailer6 | Folder | 0755 |
|
|
actions | Folder | 0755 |
|
|
css | Folder | 0755 |
|
|
data | Folder | 0755 |
|
|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
inc | Folder | 0755 |
|
|
info | Folder | 0755 |
|
|
js | Folder | 0755 |
|
|
locale | Folder | 0755 |
|
|
onyxrss | Folder | 0755 |
|
|
plugins | Folder | 0755 |
|
|
tests | Folder | 0755 |
|
|
ui | Folder | 0755 |
|
|
.gitignore | File | 20 B | 0644 |
|
.htaccess | File | 489 B | 0644 |
|
.minceconf | File | 994 B | 0644 |
|
AnalyticsQuery.php | File | 985 B | 0644 |
|
CsvReader.php | File | 1.27 KB | 0644 |
|
EmailSender.php | File | 477 B | 0644 |
|
Updater.php | File | 193 B | 0644 |
|
about.php | File | 7.4 KB | 0644 |
|
accesscheck.php | File | 715 B | 0644 |
|
addprefix.php | File | 1.01 KB | 0644 |
|
adduser.php | File | 46 B | 0644 |
|
admin.php | File | 12.77 KB | 0644 |
|
adminattributes.php | File | 7.46 KB | 0644 |
|
admins.php | File | 5.16 KB | 0644 |
|
analytics.php | File | 2.84 KB | 0644 |
|
attributes.php | File | 26.2 KB | 0644 |
|
blacklistemail.php | File | 1.22 KB | 0644 |
|
bounce.php | File | 11.14 KB | 0644 |
|
bouncemgt.php | File | 1.44 KB | 0644 |
|
bouncerule.php | File | 4.27 KB | 0644 |
|
bouncerules.php | File | 6.33 KB | 0644 |
|
bounces.php | File | 7.57 KB | 0644 |
|
catlists.php | File | 3.34 KB | 0644 |
|
checkbouncerules.php | File | 1.43 KB | 0644 |
|
checki18n.php | File | 3.13 KB | 0644 |
|
checkprerequisites.php | File | 1.62 KB | 0644 |
|
class.image.inc | File | 3.9 KB | 0644 |
|
class.phplistmailer.php | File | 30.73 KB | 0644 |
|
class.phplistmailerbase.php | File | 1.67 KB | 0644 |
|
community.php | File | 3.5 KB | 0644 |
|
communityfeed.php | File | 2.36 KB | 0644 |
|
configure.php | File | 7.85 KB | 0644 |
|
connect.php | File | 89.86 KB | 0644 |
|
convertstats.php | File | 5.83 KB | 0644 |
|
converttoutf8.php | File | 3.78 KB | 0644 |
|
cron.php | File | 3.34 KB | 0644 |
|
date.php | File | 7.65 KB | 0644 |
|
dbcheck.php | File | 3.7 KB | 0644 |
|
defaultFrontendTexts.php | File | 9.79 KB | 0644 |
|
defaultconfig.php | File | 30.66 KB | 0644 |
|
defaultplugin.php | File | 31.59 KB | 0644 |
|
defaults.php | File | 3.64 KB | 0644 |
|
defaultsystemtemplate.php | File | 15.29 KB | 0644 |
|
defaulttest.php | File | 1.23 KB | 0644 |
|
dlusers.php | File | 235 B | 0644 |
|
domainbounces.php | File | 507 B | 0644 |
|
domainstats.php | File | 371 B | 0644 |
|
editattributes.php | File | 8.78 KB | 0644 |
|
editlist.php | File | 7.4 KB | 0644 |
|
eventlog.php | File | 4.68 KB | 0644 |
|
export.php | File | 6.86 KB | 0644 |
|
exportuserdata.php | File | 8.26 KB | 0644 |
|
fckphplist.php | File | 49.84 KB | 0644 |
|
gchart.php | File | 903 B | 0644 |
|
generatebouncerules.php | File | 5.51 KB | 0644 |
|
home.php | File | 6.56 KB | 0644 |
|
hostedprocessqueuesetup.php | File | 3.09 KB | 0644 |
|
htaccess | File | 311 B | 0644 |
|
image.php | File | 2.01 KB | 0644 |
|
import.php | File | 2.75 KB | 0644 |
|
import1.php | File | 11.09 KB | 0644 |
|
import2.php | File | 34.16 KB | 0644 |
|
import3.php | File | 22.72 KB | 0644 |
|
import4.php | File | 16.86 KB | 0644 |
|
importadmin.php | File | 17.08 KB | 0644 |
|
importsimple.php | File | 7.32 KB | 0644 |
|
index.php | File | 32.82 KB | 0644 |
|
info.php | File | 1.07 KB | 0644 |
|
init.php | File | 27.36 KB | 0644 |
|
initialise.php | File | 12.05 KB | 0644 |
|
initlanguages.php | File | 867 B | 0644 |
|
languages.php | File | 21.37 KB | 0644 |
|
lib.php | File | 86.79 KB | 0644 |
|
list.php | File | 11.32 KB | 0644 |
|
listbounces.php | File | 4.13 KB | 0644 |
|
login.php | File | 6.39 KB | 0644 |
|
logout.php | File | 865 B | 0644 |
|
massremove.php | File | 2.55 KB | 0644 |
|
mclicks.php | File | 7.28 KB | 0644 |
|
members.php | File | 19.99 KB | 0644 |
|
mergeduplicates.php | File | 4.48 KB | 0644 |
|
message.php | File | 9.08 KB | 0644 |
|
messages.php | File | 26.27 KB | 0644 |
|
minify.txt | File | 201 B | 0644 |
|
msgbounces.php | File | 3.4 KB | 0644 |
|
msgstatus.php | File | 1.27 KB | 0644 |
|
mviews.php | File | 6.27 KB | 0644 |
|
mysql.inc | File | 40 B | 0644 |
|
mysqli.inc | File | 14.02 KB | 0644 |
|
pageaction.php | File | 1.11 KB | 0644 |
|
phpListAdminAuthentication.php | File | 6.82 KB | 0644 |
|
pluginlib.php | File | 9.43 KB | 0644 |
|
plugins.php | File | 17.78 KB | 0644 |
|
preparesend.php | File | 669 B | 0644 |
|
processbounces.php | File | 35.36 KB | 0644 |
|
processqueue.php | File | 3.71 KB | 0644 |
|
readtestmail.php | File | 11.59 KB | 0644 |
|
reconcileusers.php | File | 27.71 KB | 0644 |
|
redirecttoupdater.php | File | 187 B | 0644 |
|
reindex.php | File | 1.82 KB | 0644 |
|
rsslib.php | File | 3.17 KB | 0644 |
|
runcommand.php | File | 583 B | 0644 |
|
send.php | File | 6.17 KB | 0644 |
|
send_core.php | File | 63.91 KB | 0644 |
|
sendemaillib.php | File | 69.84 KB | 0644 |
|
sendprepared.php | File | 4.87 KB | 0644 |
|
sessionlib.php | File | 2.7 KB | 0644 |
|
setpermissions.php | File | 2.08 KB | 0644 |
|
setup.php | File | 2.56 KB | 0644 |
|
spage.php | File | 4.35 KB | 0644 |
|
spageedit.php | File | 19.08 KB | 0644 |
|
statsmgt.php | File | 1.23 KB | 0644 |
|
statsoverview.php | File | 6.19 KB | 0644 |
|
stresstest.php | File | 4.82 KB | 0644 |
|
structure.php | File | 29.21 KB | 0644 |
|
subscribelib2.php | File | 70.22 KB | 0644 |
|
subscriberstats.php | File | 617 B | 0644 |
|
suppressionlist.php | File | 1.71 KB | 0644 |
|
system.php | File | 795 B | 0644 |
|
systemstats.php | File | 5.73 KB | 0644 |
|
template.php | File | 16.4 KB | 0644 |
|
templates.php | File | 3.01 KB | 0644 |
|
tests.php | File | 1.67 KB | 0644 |
|
uclicks.php | File | 6.74 KB | 0644 |
|
update.php | File | 187 B | 0644 |
|
updateLib.php | File | 2.2 KB | 0644 |
|
updatetlds.php | File | 358 B | 0644 |
|
updatetranslation.php | File | 2.51 KB | 0644 |
|
upgrade.php | File | 23.82 KB | 0644 |
|
user.php | File | 23.08 KB | 0644 |
|
usercheck.php | File | 2.55 KB | 0644 |
|
userclicks.php | File | 11.57 KB | 0644 |
|
userhistory.php | File | 8.25 KB | 0644 |
|
usermgt.php | File | 1.9 KB | 0644 |
|
users.php | File | 19.3 KB | 0644 |
|
vCard.php | File | 1.9 KB | 0644 |
|
viewmessage.php | File | 635 B | 0644 |
|
viewtemplate.php | File | 1.86 KB | 0644 |
|
vote.php | File | 38 B | 0644 |
|