function smarty_function_html_menu($params, &$smarty) { $conditions = ''; extract($params); if (empty($field)) { $field = $name; } if (empty($id)) { $id = $field; } $db =& DB(); $rs =& $db->Execute($sql = sqlSelect($db, $assoc_table, "id," . $assoc_field, $conditions, $assoc_field)); #echo $sql; $return = '<select id="' . $id . '" name="' . $field . '">'; if ($default == "all" || $blank) { $return .= '<option value="" selected></option>'; } if ($rs && $rs->RecordCount() > 0) { while (!$rs->EOF) { $return .= '<option value="' . $rs->fields['id'] . '"'; if ($default == $rs->fields['id']) { $return .= "selected"; } $return .= '>' . $rs->fields["{$assoc_field}"] . '</option>'; $rs->MoveNext(); } } else { if ($default != "all") { $return .= '<option value=""></option>'; } } $return .= '</select>'; echo $return; }
/** Get the plugin settings from the database */ function config() { $db =& DB(); $rs =& $db->Execute(sqlSelect($db, "voip_did_plugin", "*", "id = {$this->id}")); $this->release_minutes = $rs->fields['release_minutes']; $this->avail_countries = $rs->fields['avail_countries']; }
function smarty_function_voip_did_id($params, &$smarty) { extract($params); if (empty($service_id)) { $smarty->trigger_error("voip_did_id: attribute 'service_id' required"); return false; } $db =& DB(); $rs = $db->Execute(sqlSelect($db, "service", "prod_attr_cart", "id=::" . $service_id . "::")); $prod_attr_cart = unserialize($rs->fields['prod_attr_cart']); $did = ""; if (!empty($prod_attr_cart['station'])) { $did = $prod_attr_cart['station']; } if (!empty($prod_attr_cart['ported'])) { $did = $prod_attr_cart['ported']; } if (substr($did, 0, 1) == "1") { $did = "(did=::" . $did . ":: OR did=::" . substr($did, 1) . "::)"; } else { $did = "did=::" . $did . "::"; } $rs = $db->Execute($sql = sqlSelect($db, "voip_did", "id", $did)); return $rs->fields[0]; }
function download($VAR) { if (empty($VAR['id'])) { return false; } $id = $VAR['id']; // get ticket id $db =& DB(); $rs = $db->Execute(sqlSelect($db, array("ticket_attachment", "ticket"), "A.ticket_id,B.department_id,B.account_id", "A.id=::{$id}:: AND A.ticket_id=B.id")); if (!$rs || $rs->RecordCount() == 0) { return false; } // is this an admin? global $C_auth; if ($C_auth->auth_method_by_name("ticket", "view")) { // get the data & type $rs = $db->Execute(sqlSelect($db, "ticket_attachment", "*", "id=::{$id}::")); // set the header require_once PATH_CORE . 'file_extensions.inc.php'; $ft = new file_extensions(); $type = $ft->set_headers_ext($rs->fields['type'], $rs->fields['name']); if (empty($type)) { echo imap_qprint($rs->fields['content']); } elseif (preg_match("/^text/i", $type)) { echo imap_base64($rs->fields['content']); } else { echo imap_base64($rs->fields['content']); } exit; } }
/** Output avial/assigned rate tables for configuration */ function product_rates($VAR) { @($product = $VAR['product']); $avail = false; $assigned = false; $db =& DB(); $as = $db->Execute($sql = sqlSelect($db, "voip_rate_prod", "voip_rate_id", "product_id = ::{$product}::")); if ($as && $as->RecordCount() > 0) { while (!$as->EOF) { $av["{$as->fields['voip_rate_id']}"] = true; $as->MoveNext(); } } $rs = $db->Execute($sql = sqlSelect($db, "voip_rate", "id,name,pattern,amount", "")); if ($rs && $rs->RecordCount() > 0) { while (!$rs->EOF) { if (is_array($av) && array_key_exists($rs->fields['id'], $av)) { $assigned[] = array('id' => $rs->fields['id'], 'name' => $rs->fields['name'] . ' - ' . substr($rs->fields['pattern'], 0, 20) . ' - ' . $rs->fields['amount']); } else { $avail[] = array('id' => $rs->fields['id'], 'name' => $rs->fields['name'] . ' - ' . substr($rs->fields['pattern'], 0, 20) . ' - ' . $rs->fields['amount']); } $rs->MoveNext(); } } global $smarty; $smarty->assign('avail', $avail); $smarty->assign('assigned', $assigned); }
function task() { $db =& DB(); /* get the max invoice days from the setup_invoice table */ if (!$this->advance_days) { $setup = $db->Execute(sqlSelect($db, "setup_invoice", "advance_notice", "advance_notice>0 and advance_notice != '' and advance_notice is not null")); if (!$setup->RecordCount()) { return false; } $this->advance_days = $setup->fields['advance_notice']; } /* pre-billing days global setting */ if (MAX_INV_GEN_PERIOD <= 0) { $max_days = $max_date = 1; } else { $max_days = MAX_INV_GEN_PERIOD; } /* pre-notification date for service */ $this->advance_days_service = $this->advance_days + $max_days; $max_date = time() + $this->advance_days_service * 86400; date("Y-m-d", $max_date); $p = AGILE_DB_PREFIX; $s = DEFAULT_SITE; $ids = false; $account = false; $date = false; $invoice = false; $sql = "SELECT DISTINCT service.id as serviceId, account.id as accountId, invoice.id as invoiceId, from_unixtime(service.date_next_invoice,'%Y-%m-%d') as dayGroup\n\t\t\t\t\tFROM {$p}service as service \n\t\t\t\t\tJOIN {$p}account as account ON ( service.account_id=account.id and account.site_id={$s} )\n\t\t\t\t\tLEFT JOIN {$p}invoice as invoice ON ( service.invoice_id=invoice.id and invoice.site_id={$s} )\n\t\t\t\t\tWHERE service.site_id={$s} \n\t\t\t\t\tAND service.active = 1 \n\t\t\t\t\tAND ( service.invoice_advance_notified IS NULL OR service.invoice_advance_notified = 0 )\n\t\t\t\t\tAND ( service.suspend_billing IS NULL OR service.suspend_billing = 0 ) \n\t\t\t\t\tAND ( service.date_next_invoice > 0 AND service.date_next_invoice IS NOT NULL )\n\t\t\t\t\tAND \n\t\t\t\t\t((\n\t\t\t\t\t ( account.invoice_advance_gen!='' OR account.invoice_advance_gen is not null ) AND service.date_next_invoice <= ((86400*(account.invoice_advance_gen+{$this->advance_days})) + (UNIX_TIMESTAMP(CURDATE())))\n\t\t\t\t\t ) OR (\n\t\t\t\t\t ( account.invoice_advance_gen='' OR account.invoice_advance_gen is null ) AND service.date_next_invoice <= {$max_date}\n\t\t\t\t\t))\n\t\t\t\t\tORDER BY accountId, dayGroup, serviceId"; $rs = $db->Execute($sql); if ($rs === false) { global $C_debug; $C_debug->error('advance_notice.inc.php', 'task()', $sql . " \r\n\r\n " . @$db->ErrorMsg()); } if ($rs && $rs->RecordCount()) { while (!$rs->EOF) { if ($ids && $rs->fields['accountId'] != $account || $rs->fields['dayGroup'] != $date) { $this->sendEmail($ids, $account, $date); $ids = false; } // set the current account and date $account = $rs->fields['accountId']; $invoice = $rs->fields['invoiceId']; $date = $rs->fields['dayGroup']; // add to id list if ($ids) { $ids .= ","; } $ids .= $rs->fields['serviceId']; $rs->MoveNext(); } if ($ids) { $this->sendEmail($ids, $account, $date); } } }
function smarty_function_html_menu_multi($params, &$smarty) { $conditions = ''; extract($params); if (empty($field)) { $field = $name; } if (empty($id)) { $id = $field; } if (empty($size)) { $size = '4'; } $db =& DB(); $rs =& $db->Execute($sql = sqlSelect($db, $assoc_table, "id," . $assoc_field, $conditions, $assoc_field)); if (empty($default)) { $default = array(''); } elseif (is_array($default)) { $default = $default; } elseif (is_numeric($default)) { $default[] = $default; } elseif (is_string($default)) { $default = unserialize($default); } else { $default = array(''); } if ($default == "all") { $return .= '<option value="" selected></option>'; } $i = 0; if ($rs && $rs->RecordCount() > 0) { while (!$rs->EOF) { $return .= '<option value="' . $rs->fields['id'] . '"'; foreach ($default as $def) { if ($def == $rs->fields["id"]) { $return .= " selected"; } break; } $return .= '>' . $rs->fields["{$assoc_field}"] . '</option>'; $i++; $rs->MoveNext(); } } else { if ($default != "all") { $return .= '<option value=""></option>'; } } $return .= '</select>'; if ($i < $size) { $size = $i++; } echo '<select id="' . $id . '" name="' . $field . '[]" size="' . $size . '" value="" multiple>' . $return; }
function p_one($id) { global $C_debug; /* Get the service details */ $db =& DB(); $rs = $db->Execute(sqlSelect($db, "service", "*", "id=::{$id}::")); if (!$rs || !$rs->RecordCount()) { return false; } $this->service = $rs->fields; @($this->plugin_data = unserialize($this->service['prod_plugin_data'])); @($this->prod_attr_cart = unserialize($this->service['prod_attr_cart'])); /* Get the account details */ $acct = $db->Execute(sqlSelect($db, "account", "*", "id=::{$this->service['account_id']}::")); if ($acct && $acct->RecordCount()) { $this->account = $acct->fields; } /* Get the product details */ if (!empty($this->service['product_id'])) { $product = $db->Execute(sqlSelect($db, "product", "*", "id = ::{$this->service['product_id']}::")); $this->product = $product->fields; @($this->product_attr = unserialize($product->fields['prod_plugin_data'])); } /* determine the correct action */ switch ($this->service['queue']) { case 'new': $result = $this->p_new(); break; case 'active': $result = $this->p_active(); break; case 'inactive': $result = $this->p_inactive(); break; case 'edit': if ($this->service['active'] == 1) { $this->p_active(); } else { $this->p_inactive(); } $result = $this->p_edit(); break; case 'delete': $result = $this->p_delete(); break; } if (@$result !== false) { $sql = 'UPDATE ' . AGILE_DB_PREFIX . 'service SET queue=' . $db->qstr('none') . ', date_last=' . $db->qstr(time()) . ' WHERE id =' . $db->qstr($rs->fields['id']) . ' AND site_id=' . $db->qstr(DEFAULT_SITE); $upd = $db->Execute($sql); } else { $C_debug->error($this->name . 'php', $this->service['queue'], @$result); } }
/** view system message */ function view($VAR) { if (!SESS_LOGGED) { return false; } $db =& DB(); $rs = $db->Execute(sqlSelect($db, "account_message", "date_orig,message", "id=1")); if ($rs && $rs->RecordCount()) { global $smarty; $smarty->assign('message', $rs->fields['message']); $smarty->assign('date', date("m-d-Y", $rs->fields['date_orig'])); } }
function getIsPasswordOk($account_id, $password, $hashed = true) { if (!$hashed) { $this->hashPassword($password); } $db =& DB(); /* currently used or used in duplicatePeriod? */ $date = time() - 86400 * $this->duplicateAfter; $rs = $db->Execute(sqlSelect($db, "account_password_history", "id", "account_id={$account_id} and password=::{$password}:: and (date_last=0 OR (date_last > {$date} OR date_orig > {$date}))")); if ($rs && $rs->RecordCount()) { return false; } return true; }
function assign($serviceId, $assetPoolId) { // check if any available $db =& DB(); $rs = $db->Execute(sqlSelect($db, "asset", "id,asset", "(status=0 or status is null) and pool_id=::{$assetPoolId}::", "", 1)); if ($rs && $rs->RecordCount()) { $id = $rs->fields['id']; $asset = $rs->fields['asset']; $fields = array('service_id' => $serviceId, 'status' => 1, 'date_last' => time()); $db->Execute($sql = sqlUpdate($db, "asset", $fields, "id = {$id}")); return $asset; } return false; }
function add($VAR) { // check this is not a duplicate for the selected product/voip_rate record combo $product_id = $VAR['voip_rate_prod_product_id']; $voip_rate_id = $VAR['voip_rate_prod_voip_rate_id']; $db =& DB(); $rs = $db->Execute(sqlSelect($db, 'voip_rate_prod', 'id', "product_id = ::{$product_id}:: AND voip_rate_id = ::{$voip_rate_id}::")); if ($rs && $rs->RecordCount() > 0) { echo "<script>alert('Specified product/voip_rate combo already exists, cannot create record'); history.back();</script>"; return false; } $type = "add"; $this->method["{$type}"] = explode(",", $this->method["{$type}"]); $db = new CORE_database(); $db->add($VAR, $this, $type); }
function smarty_function_voip_did($params, &$smarty) { extract($params); if (empty($service_id)) { $smarty->trigger_error("voip_did: attribute 'service_id' required"); return false; } $db =& DB(); $rs = $db->Execute(sqlSelect($db, "service", "prod_attr_cart", "id=::" . $service_id . "::")); $prod_attr_cart = unserialize($rs->fields['prod_attr_cart']); if (!empty($prod_attr_cart['station'])) { return $prod_attr_cart['station']; } if (!empty($prod_attr_cart['ported'])) { return $prod_attr_cart['ported']; } }
function p_new() { # generate a password $pass_len = 8; $password = substr(md5(md5(time()) . $this->domain_name), 0, $pass_len); $this->login['password'] = $password; // connect to api $rserver = new RRADServer($this->server_cfg['user'], $this->server_cfg['pass']); if (!$rserver->authenticate()) { if ($this->server['debug']) { print "Couldn't authenticate against server b/c: " . $rserver->getMessage(); } return false; } if ($this->server['debug']) { print "RServer Msg: " . $rserver->getMessage() . "<br>"; } $con_svc = $rserver->getConvenienceService(); // set properties $properties = array("FirstName" => $this->account['first_name'], "LastName" => $this->account['last_name'], "Email" => $this->account['email'], "Company" => $this->account['company']); // send command $result = $con_svc->newDomain($this->domain_name, $this->login['password'], $this->plugin_data['package'], $properties); if ($this->server['debug']) { print "RServer Msg: " . $rserver->getMessage() . "<br>"; } // return results if ($result) { // add service $con_svc->addService($this->domain_name, $this->plugin_data['service']); // update service record $db =& DB(); $rs =& $db->Execute(sqlSelect($db, "service", "*", "id={$this->service_id}")); $plugin_data = unserialize($rs->fields['host_provision_plugin_data']); $insert = array('host_provision_plugin_data' => serialize($plugin_data), 'host_username' => $this->domain_name, 'host_password' => $this->login['password']); $sql = $db->GetUpdateSQL($rs, $insert); $result = $db->Execute($sql); # send the user the details include_once PATH_MODULES . 'email_template/email_template.inc.php'; $email = new email_template(); $email->send('host_new_user', $this->account['id'], $this->service_id, '', ''); return true; } return false; }
function user_view($VAR) { /* validate, update to read, and view() */ if (!SESS_LOGGED || empty($VAR['id'])) { return false; } /* select id for this user */ $db =& DB(); $rs = $db->Execute(sqlSelect($db, "email_log", "*", "id=::{$VAR['id']}:: and account_id=" . SESS_ACCOUNT)); if ($rs && $rs->RecordCount()) { global $smarty; $smarty->assign('email_log', $rs->fields); if ($rs->fields['userread'] != 1) { /* update to read */ $fields = array('userread' => 1); $db->Execute(sqlUpdate($db, "email_log", $fields, "id = {$rs->fields['id']}")); } } }
function smarty_function_db_lookup($params, &$smarty) { extract($params); if (empty($id)) { $smarty->trigger_error("db_lookup: attribute 'id' required"); return false; } if (empty($table)) { $smarty->trigger_error("db_lookup: attribute 'table' required"); return false; } if (empty($field)) { $smarty->trigger_error("db_lookup: attribute 'field' required"); return false; } $db =& DB(); $rs = $db->Execute(sqlSelect($db, $table, $field, "id=::" . $id . "::")); return $rs->fields[0]; }
function load_setup(&$rs) { if (!$rs) { $db =& DB(); $rs = $db->Execute(sqlSelect($db, "setup_invoice", "*", "")); } $this->billToCompany = $rs->fields['bill_to_company']; $this->invoiceCurrency = $rs->fields['invoice_currency']; $this->invoiceDecimals = $rs->fields['invoice_decimals']; $this->itemsSummaryMax = $rs->fields['items_summary_max']; $this->news = $rs->fields['news']; $this->pageType = $rs->fields['page_type']; $this->show_itemized = $rs->fields['invoice_show_itemized']; $this->show_service_range = $rs->fields['invoice_show_service_dates']; $this->contact_us_url = $rs->fields['contact_us_url']; $this->contact_us_phone = $rs->fields['contact_us_phone']; #$this->currency; $this->currency = $rs->fields['invoice_currency']; }
/** * Validate inputted tax id on account addition/update */ function TaxIdsValidate($country_id, $tax_id, $exempt = false) { $db =& DB(); $rs = $db->Execute(sqlSelect($db, "tax", "*", "country_id={$country_id} AND zone=::*:: AND tax_id_collect=1 AND tax_id_req=1")); if ($rs && $rs->RecordCount()) { $this->errField = $rs->fields['tax_id_name']; if (empty($tax_id)) { if ($rs->fields['tax_id_exempt'] && $exempt) { return true; } else { return false; } } if (!empty($rs->fields['tax_id_regex'])) { $regex = $rs->fields['tax_id_regex']; if (!preg_match(",{$regex},", trim($tax_id))) { return false; } } } return true; }
function getAccountInfo() { $db =& DB(); $rs = $db->Execute(sqlSelect($db, "account", "*", "id = ::{$this->account_id}::")); if (!empty($rs->fields['parent_id'])) { $this->account_parent_id = $rs->fields['parent_id']; } $ret = array('company' => $rs->fields['company'], 'first_name' => $rs->fields['first_name'], 'last_name' => $rs->fields['last_name'], 'address1' => $rs->fields['address1'], 'address2' => $rs->fields['address2'], 'city' => $rs->fields['city'], 'state' => $rs->fields['state'], 'zip' => $rs->fields['zip'], 'email' => $rs->fields['email'], 'acct_parent_id' => $rs->fields['parent_id']); $rs = $db->Execute(sqlSelect($db, "module", "id", "name=::account::")); $account_module = $rs->fields['id']; /* get custom fields*/ $sql = "SELECT DISTINCT A.value, B.name FROM " . AGILE_DB_PREFIX . "static_var as B \n\t\t\t\tLEFT JOIN " . AGILE_DB_PREFIX . "static_var_record as A on (B.id=A.static_var_id AND A.record_id = " . $db->qstr($this->account_id) . ") \n\t\t\t\tWHERE A.module_id={$account_module} "; $rs = $db->Execute($sql); if ($rs && $rs->RecordCount()) { while (!$rs->EOF) { $fld = substr(strtolower(ereg_replace(" ", '_', $rs->fields['name'])), 0, 32); @($ret["{$fld}"] = $rs->fields['value']); $rs->MoveNext(); } } return $ret; }
function task($VAR) { $db =& DB(); $rs = $db->Execute(sqlSelect($db, "voip_did_plugin", "*", "")); if ($rs && $rs->RecordCount() > 0) { while (!$rs->EOF) { // load the plugin and call refresh(); $plugin = $rs->fields['plugin']; $file = PATH_PLUGINS . 'voip_did/' . $plugin . '.php'; if (is_file($file)) { include_once $file; eval('$plg = new plgn_voip_did_' . $plugin . ';'); if (is_object($plg)) { if (is_callable(array($plg, 'release'))) { $plg->id = $rs->fields['id']; $plg->refresh(); } } } $rs->MoveNext(); } } }
<?php if (!$subPage) { // $member = sqlSelect("SELECT groups.description, group_members.admin FROM groups INNER JOIN group_members WHERE groups.id = {$groupId} GROUP BY group_members.admin;"); if (!empty($group_info[0]['description']) && !empty($member[0]['admin'])): ?> <a href="groups/<?=$groupId; ?>/description/edit" class="btn btn-primary">Redigera</a> <hr /> <p><?=$group_info[0]['description']; ?><p> <?php else: ?> <div>Gruppen har ingen beskrivning än.</div> <?php if (!empty($member[0]['admin'])): ?> <a href="groups/<?=$groupId; ?>/description/edit" class="btn btn-primary">Lägg till beskrivning</a> <?php endif; endif; } if ($subPage === 'edit'): $member = sqlSelect("SELECT groups.name, groups.description, group_members.admin FROM groups INNER JOIN group_members WHERE groups.id = {$groupId} AND group_members.user_id = {$_SESSION['user']['id']} GROUP BY group_members.admin;"); if (!empty($member[0]['admin'])): ?> <form action="form/post/group/edit_description" method="post"> <input type="hidden" name="group_id" value="<?=$groupId; ?>"> <input type="hidden" name="group_name" value="<?=$group_info[0]['name']; ?>"> <textarea name="group_description" class="form-control"><?=$group_info[0]['description']; ?></textarea> <input type="submit" class="btn btn-success" value="Spara"> </form> <?php else: ?> <p>Du har inte behörighet att ändra gruppens beskrivning.</p> <?php endif; endif; ?>
<?php if ($_SERVER['REQUEST_METHOD'] == 'GET') { session_start(); require '../../../mysql/query.php'; require '../../../lang/config.php'; if (isset($_SESSION['user'])) { if (isset($_GET['view']) && isset($_GET['admin'])) { if (is_numeric($_GET['view']) && is_numeric($_GET['admin'])) { $group_info = sqlSelect("SELECT admin FROM `group_members` WHERE group_id = {$_GET['view']} AND user_id = {$_SESSION['user']['id']};"); if ($group_info[0]['admin'] == 1) { if (sqlAction("UPDATE group_members SET admin = 1 WHERE id = {$_GET['admin']};")) { $member = sqlSelect("SELECT users.user_id, users.username, groups.id, groups.name FROM users INNER JOIN `group_members` INNER JOIN groups ON users.user_id = group_members.user_id AND groups.id = group_members.group_id WHERE group_members.id = {$_GET['admin']};"); if (sqlAction("INSERT INTO group_news_feed (group_id, user_id, type, what, date) VALUES ({$_GET['view']}, {$_SESSION['user']['id']}, 'made_admin', '{\"id\":{$member[0]['user_id']}, \"username\":\"{$member[0]['username']}\"}', now());")) { header("Location: ../../../groups/{$_GET['view']}/members"); } } } } } } }
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { session_start(); require '../../mysql/query.php'; $input = json_decode($_POST['login']); $user = sqlEscape($input->user); $password = sqlEscape($input->password); $user_exists = sqlSelect("SELECT id, person_nr, first_name, last_name, mail, tel, password FROM customers WHERE person_nr = '{$user}' OR mail = '{$user}';"); if ($user_exists) { $pwd = $user_exists[0]['password']; if (password_verify($password, $pwd)) { $_SESSION['me'] = array('id' => $user_exists[0]['id'], 'personnr' => $user_exists[0]['person_nr'], 'first_name' => $user_exists[0]['first_name'], 'last_name' => $user_exists[0]['last_name'], 'mail' => $user_exists[0]['mail'], 'tel' => $user_exists[0]['id']); echo 1; } else { echo 'wrong password'; } } else { echo 'wrong username'; } }
function user_update($VAR) { if (!SESS_LOGGED) { return false; } $db =& DB(); $rs = $db->Execute(sqlSelect($db, "account_billing", "card_type", "id=::{$VAR['id']}:: and account_id=" . SESS_ACCOUNT)); if (!$rs || !$rs->RecordCount()) { return false; } $result = $this->update($VAR, $this); global $VAR; $VAR['_page'] = 'account_billing:user_view'; if ($result) { global $C_debug; $C_debug->alert("Your billing details have been updated."); } }
$insert_services .= ';'; // echo $insert_services; // die; if (sqlAction($insert_services)) { $success = true; } // echo $success; // die; } if (!empty($_POST['existing_service'])) { $serviceArray = ''; foreach ($_POST['existing_service'] as $a) { $serviceArray .= $a["'service_id'"] . ','; } $serviceArray = rtrim($serviceArray, ','); $check_services = sqlSelect("SELECT id, name, price, time, category_id FROM services WHERE id IN ({$serviceArray});"); $update_description_text = ''; $update_price_text = ''; $update_time_text = ''; $update_category_text = ''; $current = 0; $rowsToUpdate = ''; // echo '<pre>'; // print_r($_POST['existing_service']); // echo '</pre>'; // echo '<pre>'; // print_r($check_services); // echo '</pre>'; // echo "SELECT id, name, price, time, category_id FROM services WHERE id IN ({$serviceArray});"; // echo count($_POST['existing_service']); // die;
<ul class="breadcrumb"> <li><a href="groups/<?=$groupId; ?>/stories">Översikt</a></li> <li><a href="groups/<?=$groupId; ?>/stories/started">Pågående</a></li> <li><a href="groups/<?=$groupId; ?>/stories/finished">Färdiga</a></li> </ul> <?php if (!$subPage): $stories = sqlSelect("SELECT story_id, title, status FROM `story` WHERE with_group = {$groupId};"); if ($stories): foreach($stories as $story): ?> <div class="panel panel-success"> <div class="panel-heading"> <h3 class="panel-title"> <?php if (!empty($member)): ?> <a href="write?story=<?=$story['story_id']; ?>"><?=$story['title']; ?></a></h3> <?php else: echo $story['title']; ?> <?php endif; ?> </div> <div class="panel-body"> <?php if ($story['status'] == 1): ?> <span>Pågår</span> <?php elseif ($story['status'] == 2): ?> <span>Färdig</span> <?php endif; ?> </div> </div> <?php endforeach;endif;endif; ?>
function ajax_add($VAR) { $db =& DB(); $rs = $db->Execute($sql = sqlSelect($db, "voip_cdr", "src, dst", "id=::" . $VAR['voip_cdr_id'] . ":: and account_id=::" . SESS_ACCOUNT . "::")); if ($rs && $rs->RecordCount()) { if (strlen($rs->fields['src'])) { $did = $rs->fields['dst']; $rs1 = $db->Execute(sqlSelect($db, "voip_did", "id, blacklist", "account_id=::" . SESS_ACCOUNT . ":: and (did=::{$did}:: or did=::1{$did}::)")); if ($rs1 && $rs1->RecordCount()) { if ($rs1->fields['blacklist']) { $rs2 = $db->Execute(sqlSelect($db, "voip_blacklist", "id", "account_id=::" . SESS_ACCOUNT . ":: and src=::" . $rs->fields['src'] . "::")); if ($rs2 && $rs2->RecordCount()) { echo "alert('Sorry, this number is already in your blacklist.');\n"; } else { $f['account_id'] = SESS_ACCOUNT; $f['voip_did_id'] = $rs1->fields['id']; $f['src'] = $rs->fields['src']; $f['dst'] = 'Playback tt-monkeys'; $db->Execute(sqlInsert($db, "voip_blacklist", $f)); echo "alert('Added entry to your blacklist.');\n"; } } else { echo "alert('Your account does not have the blacklist feature.');\n"; } } else { echo "alert('Sorry, can not find the DID associated with this CDR.');\n"; } } } else { echo "alert('Sorry, the CDR does not belong to your account.');\n"; } return true; }
function sweep($type) { $this->charge_construct(); include_once PATH_MODULES . 'account_billing/account_billing.inc.php'; $account_billing = new account_billing(); include_once PATH_MODULES . 'tax/tax.inc.php'; $taxObj = new tax(); include_once PATH_MODULES . 'discount/discount.inc.php'; $db =& DB(); $sql = "SELECT DISTINCT\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.account_id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.service_id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.amount,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.taxable,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.attributes,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.quantity,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.product_id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.description, \n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.affiliate_id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.reseller_id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.country_id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.currency_id, \n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.state \n\t\t\t\tFROM \n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge \t\t\n\t\t\t\tLEFT JOIN \n\t\t\t\t\t" . AGILE_DB_PREFIX . "account \t\t\t\n\t\t\t\tON \n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.id \t\t = " . AGILE_DB_PREFIX . "charge.account_id \t\t\t\t\t\t\t\n\t\t\t\tWHERE \n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.site_id \t = " . $db->qstr(DEFAULT_SITE) . " \n\t\t\t\tAND \n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.site_id \t = " . $db->qstr(DEFAULT_SITE) . "\t\t\t\n\t\t\t\tAND\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.status \t = " . $db->qstr('0') . " \n\t\t\t\tAND\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.sweep_type = " . $db->qstr($type) . "\n\t\t\t\tORDER BY\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.account_id"; $rs = $db->Execute($sql); if ($rs === false) { global $C_debug; $C_debug->error('charge.inc.php', 'charge :: sweep()', $db->ErrorMsg() . "\r\n\r\n" . $sql); return false; } $account_id = false; $invoice_id = false; $i = false; $i_total = false; $invoice_count = 0; $sweep_count = 0; while (!$rs->EOF) { if ($rs->fields['account_id'] != $account_id) { $account_id = $rs->fields['account_id']; $i = 0; $i_total = $this->count_account_charges($account_id, $rs->CurrentRow(), $rs); $sub_total = 0; $taxable_amount = 0; $this_discount_total = 0; $tax_amt = 0; $discount_amt = 0; # Start a new transaction $trans =& DB(); $trans->StartTrans(); # Start a new invoice $invoice_id = $db->GenID(AGILE_DB_PREFIX . 'invoice_id'); # check for any discounts for the parent invoice or account_id (applied at checkout and should continue to be applied if recurring type discount) $discountObj = new discount(); # get parent invoice id if service specified (for discount checking) $parent_invoice_id = false; if ($rs->fields['service_id']) { $parentinv = $db->Execute(sqlSelect($db, "service", "invoice_id", "id={$rs->fields['service_id']}")); if ($parentinv && $parentinv->RecordCount()) { $parent_invoice_id = $parentinv->fields['invoice_id']; } } # get available discounts to this account/service $discountObj->available_discounts($account_id, 1, $parent_invoice_id); } ########################### ##### LINE ITEM ACTIONS ### ########################### if (!empty($account_id)) { ### Get the line item id $invoice_item_id = $db->GenID(AGILE_DB_PREFIX . 'invoice_item_id'); ### Set the invoice item details: $product_id = $rs->fields['product_id']; if (!empty($product_id) && empty($this->product["{$product_id}"])) { $sql = "SELECT sku FROM " . AGILE_DB_PREFIX . "product WHERE \n\t\t\t\t\t\t\tid \t= " . $db->qstr($product_id) . " AND\n\t\t\t\t\t\t\tsite_id = " . $db->qstr(DEFAULT_SITE); $prod = $db->Execute($sql); if ($prod->RecordCount() > 0) { $sku = $prod->fields['sku']; $this->product["{$product_id}"] = $sku; $product_attr = ''; if (!empty($rs->fields['description'])) { $product_attr = "Description=={$rs->fields['description']}\r\n"; } $product_attr .= $rs->fields['attributes']; } else { $sku = $rs->fields['description']; $this->product["{$product_id}"] = $sku; $product_attr = $rs->fields['attributes']; } } elseif (!empty($this->product["{$product_id}"])) { $sku = $this->product["{$product_id}"]; $product_attr = $rs->fields['attributes']; } else { $sku = $rs->fields['description']; $product_attr = $rs->fields['attributes']; } $quantity = $rs->fields['quantity']; $price_base = $rs->fields['amount']; $item_total_amt = $price_base * $quantity; // Calculate any recurring discounts for this account $item_discount_amt = $discountObj->calc_all_discounts(1, $invoice_item_id, $rs->fields['product_id'], $item_total_amt, $account_id, $sub_total + $item_total_amt); $item_total_amt -= $item_discount_amt; $sub_total += $item_total_amt; $discount_amt += $item_discount_amt; # calculate any taxes for this item $item_tax_amt = 0; if ($rs->fields['taxable']) { $item_tax_arr = $taxObj->calculate($item_total_amt, $rs->fields['country_id'], $rs->fields['state']); if (is_array($item_tax_arr)) { foreach ($item_tax_arr as $tx) { $item_tax_amt += $tx['rate']; } } $tax_amt += $item_tax_amt; } ### Add line item to new invoice $sql = "INSERT INTO " . AGILE_DB_PREFIX . "invoice_item SET\n\t\t\t\t\t\tid\t\t\t\t\t = " . $db->qstr($invoice_item_id) . ",\n\t\t\t\t\t\tsite_id\t\t\t\t = " . $db->qstr(DEFAULT_SITE) . ",\n\t\t\t\t\t\tinvoice_id\t\t\t = " . $db->qstr($invoice_id) . ",\n\t\t\t\t\t\taccount_id\t\t\t\t= " . $db->qstr($account_id) . ",\n\t\t\t\t\t\tdate_orig\t\t\t = " . $db->qstr(time()) . ",\n\t\t\t\t\t\tproduct_id\t\t\t = " . $db->qstr($product_id) . ",\n\t\t\t\t\t\tsku\t\t\t\t\t = " . $db->qstr($sku) . ",\n\t\t\t\t\t\tquantity\t\t\t = " . $db->qstr($quantity) . ",\n\t\t\t\t\t\titem_type\t\t\t = " . $db->qstr('0') . ",\n\t\t\t\t\t\tproduct_attr\t\t = " . $db->qstr($product_attr) . ", \n\t\t\t\t\t\tprice_type = " . $db->qstr('0') . ",\n\t\t\t\t\t\tprice_base\t\t\t = " . $db->qstr($price_base) . ",\n\t\t\t\t\t\tprice_setup\t\t\t = " . $db->qstr(0) . ",\n\t\t\t\t\t\ttax_amt\t\t\t\t\t= " . $db->qstr($item_tax_amt) . ",\n\t\t\t\t\t\ttotal_amt\t\t\t\t= " . $db->qstr($item_total_amt) . ",\n\t\t\t\t\t\tdiscount_amt\t\t\t= " . $db->qstr($item_discount_amt); $trans->Execute($sql); # Insert tax records $taxObj->invoice_item($invoice_id, $invoice_item_id, $account_id, @$item_tax_arr); # Insert discount records $discountObj->invoice_item($invoice_id, $invoice_item_id, $account_id); ### Update this charge status to billed $sql = "UPDATE " . AGILE_DB_PREFIX . "charge SET\n\t\t\t\t\t\tstatus \t= " . $db->qstr('1') . " \n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\tsite_id\t = " . $db->qstr(DEFAULT_SITE) . " AND \n\t\t\t\t\t\tid\t\t = " . $db->qstr($rs->fields['id']); $trans->Execute($sql); $i++; $sweep_count++; } ####################### ### INVOICE ACTIONS ### ####################### if ($i_total == $i || $i == $rs->RecordCount()) { if ($invoice_id) { ### Get the most recent billing id for this client: if (!isset($billing_id["{$account_id}"])) { $billing_arr = $account_billing->default_billing($account_id); $billing_id["{$account_id}"] = $billing_arr['billing_id']; $checkout_plugin_id["{$account_id}"] = $billing_arr['checkout_plugin_id']; } ### Affiliate & Reseller info: $affiliate_id = $rs->fields['affiliate_id']; $reseller_id = $rs->fields['reseller_id']; $actual_billed_currency_id = $rs->fields['currency_id']; # calculate any taxes @($total = $sub_total + $tax_amt); if ($total <= 0) { $process_status = 1; $billing_status = 1; } else { $process_status = 0; $billing_status = 0; } ### Generate the invoice insert SQL: $sql = "INSERT INTO " . AGILE_DB_PREFIX . "invoice SET\n\t\t\t\t\t\t\t\tid\t\t\t\t\t\t\t= " . $db->qstr($invoice_id) . ",\n\t\t\t\t\t\t\t\tsite_id\t\t\t\t\t\t= " . $db->qstr(DEFAULT_SITE) . ",\n\t\t\t\t\t\t\t\tdate_orig\t\t\t\t\t= " . $db->qstr(time()) . ",\n\t\t\t\t\t\t\t\tdate_last\t\t\t\t\t= " . $db->qstr(time()) . ",\n\t\t\t\t\t\t\t\tprocess_status\t\t\t\t= " . $db->qstr($process_status) . ",\n\t\t\t\t\t\t\t\tbilling_status\t\t\t\t= " . $db->qstr($billing_status) . ",\n\t\t\t\t\t\t\t\tprint_status\t\t\t\t= " . $db->qstr('0') . ",\n\t\t\t\t\t\t\t\taccount_id\t\t\t\t\t= " . $db->qstr($account_id) . ",\n\t\t\t\t\t\t\t\taccount_billing_id\t\t\t= " . $db->qstr($billing_id["{$account_id}"]) . ",\n\t\t\t\t\t\t\t\taffiliate_id\t\t\t\t= " . $db->qstr($affiliate_id) . ",\n\t\t\t\t\t\t\t\treseller_id\t\t\t\t\t= " . $db->qstr($reseller_id) . ",\n\t\t\t\t\t\t\t\tcheckout_plugin_id\t\t\t= " . $db->qstr($checkout_plugin_id["{$account_id}"]) . ", \n\t\t\t\t\t\t\t\ttax_amt\t\t\t\t\t\t= " . $db->qstr($tax_amt) . ", \n\t\t\t\t\t\t\t\tdiscount_amt\t\t\t\t= " . $db->qstr($discount_amt) . ",\n\t\t\t\t\t\t\t\tactual_billed_currency_id\t= " . $db->qstr($actual_billed_currency_id) . ",\n\t\t\t\t\t\t\t\tactual_billed_amt\t\t\t= " . $db->qstr('0') . ",\n\t\t\t\t\t\t\t\tbilled_currency_id\t\t\t= " . $db->qstr(DEFAULT_CURRENCY) . ",\n\t\t\t\t\t\t\t\tbilled_amt\t\t\t\t\t= " . $db->qstr('0') . ",\n\t\t\t\t\t\t\t\ttotal_amt\t\t\t\t\t= " . $db->qstr($total) . ",\n\t\t\t\t\t\t\t\tnotice_count\t\t\t\t= " . $db->qstr('0') . ",\n\t\t\t\t\t\t\t\tnotice_max\t\t\t\t\t= " . $db->qstr(MAX_BILLING_NOTICE) . ",\n\t\t\t\t\t\t\t\tnotice_next_date\t\t\t= " . $db->qstr(time()) . ",\n\t\t\t\t\t\t\t\tgrace_period\t\t\t\t= " . $db->qstr(GRACE_PERIOD) . ",\n\t\t\t\t\t\t\t\tdue_date\t\t\t\t\t= " . $db->qstr(time()); $trans->Execute($sql); ### Close this transaction $trans->CompleteTrans(); $i_total = false; $i = false; $account_id = false; $invoice_id = false; $discount = false; $cookie = false; $invoice_count++; } } $rs->MoveNext(); } global $C_debug; $C_debug->alert("Swept {$sweep_count} Charge(s) into {$invoice_count} Invoice(s)."); return true; }
function task($VAR) { if (function_exists('agileco_parse_country_code')) { $this->c_task($VAR); return; } global $rate; $rate = array(); $db =& DB(); $rs =& $db->Execute(sqlSelect($db, "product", "id,prod_plugin_data", "prod_plugin_file=::VOIP:: and prod_plugin=1")); while (!$rs->EOF) { $pdata = unserialize($rs->fields['prod_plugin_data']); $id = $rs->fields['id']; if ($pdata['rate_cdr'] == 1) { $products[] = $id; } $rs->MoveNext(); } // no products to rate if (empty($products)) { return false; } # Load configuration $sql = sqlSelect($db, "voip", "voip_intrastate, voip_default_prefix, perform_normalization, normalization_min_len", ""); $rs = $db->Execute($sql); $this->voip_intrastate = explode(",", ereg_replace("[[:space:]]", "", $rs->fields['voip_intrastate'])); $this->voip_default_prefix = $rs->fields['voip_default_prefix']; $this->normalization_min_len = $rs->fields['normalization_min_len']; $this->perform_normalization = $rs->fields['perform_normalization']; ob_start(); # normalize the CDR records echo "Begin normalization...\n"; if ($this->perform_normalization) { $this->normalize($db); } echo "Finished normalization...\n"; # rate prepaid cards, non-SIP prepaid $rs =& $db->Execute(sqlSelect($db, "voip_prepaid", "pin, account_id, product_id, voip_did_id", "(voip_did_id=0 or voip_did_id is null)")); if ($rs && $rs->RecordCount() > 0) { while (!$rs->EOF) { $dp = 0; unset($dids); $dids[$dp]['start'] = 0; $dids[$dp]['end'] = mktime(0, 0, 0, date('m') + 1, 1, date('Y')); $dids[$dp]['accountcode'] = "cc:" . $rs->fields['pin']; echo "Rating calling card PIN: " . $rs->fields['pin'] . "\n"; # Load rating table configuration $rate = $this->load_rating_table($db, $rs->fields['product_id']); $this->rate_calls($db, $db, $dids, $rs->fields, false); # Mark inbound calls if ($rs->fields['voip_did_id'] > 0) { $sql = "update " . AGILE_DB_PREFIX . "voip_cdr SET amount=0, rated=1, account_id=" . $db->qstr($rs->fields['account_id']) . " where dst=" . $db->qstr($rs->fields['pin']) . " and rated=0 and site_id=" . DEFAULT_SITE; echo $sql . "\n"; $db->Execute($sql); } $rs->MoveNext(); } } echo "Begin SIP Prepaid rating...\n"; $sql = "select account_id, username, prod_attr_cart, prod_plugin_data, date_last_invoice, date_next_invoice, b.product_id, b.id as service_id from " . AGILE_DB_PREFIX . "account as a left join " . AGILE_DB_PREFIX . "service as b on (a.id=b.account_id) where a.status=1 and prod_plugin_name='PREPAID' and b.active=1 and a.site_id=" . DEFAULT_SITE . " and b.site_id=" . DEFAULT_SITE; echo $sql . "\n"; $rs =& $db->Execute($sql); if ($rs && $rs->RecordCount() > 0) { while (!$rs->EOF) { $dp = 0; unset($dids); $cart = @unserialize($rs->fields['prod_attr_cart']); $plugin = unserialize($rs->fields['prod_plugin_data']); if (isset($cart['station']) && isset($plugin['type']) && $plugin['type'] == 'did') { $dids[$dp]['start'] = $rs->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400; $dids[$dp]['end'] = $rs->fields['date_next_invoice'] + 86399; $dids[$dp]['did'] = $cart['station']; # Load rating table configuration $rate = $this->load_rating_table($db, $rs->fields['product_id']); if (is_array($rate)) { $this->rate_calls($db, $db, $dids, $rs->fields); } } $rs->MoveNext(); } } echo "Begin postpaid rating...\n"; # rate calls $sql = "select account_id, username, prod_attr_cart, prod_plugin_data, date_last_invoice, date_next_invoice, b.product_id, b.id as service_id, b.sku from " . AGILE_DB_PREFIX . "account as a left join " . AGILE_DB_PREFIX . "service as b on (a.id=b.account_id) where a.status=1 and prod_plugin_name='VOIP' and b.active=1 and product_id IN (" . join(",", $products) . ") and a.site_id=" . DEFAULT_SITE . " and b.site_id=" . DEFAULT_SITE; echo $sql . "\n"; $rs = $db->Execute($sql); $dp = 0; while (!$rs->EOF) { $dp = 0; unset($dids); $cart = @unserialize($rs->fields['prod_attr_cart']); $plugin = unserialize($rs->fields['prod_plugin_data']); $dids[$dp]['start'] = $rs->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400; $dids[$dp]['end'] = $rs->fields['date_next_invoice']; $dids[$dp]['did'] = @$cart['station']; if (strlen(@$cart['ported'])) { $dids[0]['did'] = $cart['ported']; } $cc = ""; $e164 = ""; $npa = ""; $nxx = ""; if (!strlen($dids[0]['did']) && $plugin['rate_accountcode'] == 0) { echo "Skipping service_id = " . $rs->fields['service_id'] . " (sku: " . $rs->fields['sku'] . ")\n"; } else { if ($this->e164($dids[0]['did'], $e164, $cc, $npa, $nxx)) { $dids[0]['did'] = substr($e164, 1); if ($cc == '1') { $dp++; $dids[$dp]['start'] = $rs->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400; $dids[$dp]['end'] = $rs->fields['date_next_invoice'] + 86399; $dids[$dp]['did'] = substr($e164, 2); $dp++; $dids[$dp]['start'] = $rs->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400; $dids[$dp]['end'] = $rs->fields['date_next_invoice'] + 86399; $dids[$dp]['did'] = substr($e164, 1); } else { $dp++; $dids[$dp]['start'] = $rs->fields['date_last_invoice']; $dids[$dp]['end'] = $rs->fields['date_next_invoice'] + 86399; $dids[$dp]['did'] = substr($e164, 4); } } if (@$cart['parent_service_id'] > 0) { # echo "This is a virtual number, skipping record..."; } else { # load virtual numbers on this parent service $sql = "select * from " . AGILE_DB_PREFIX . "service where account_id=" . $db->qstr($rs->fields['account_id']) . " and active=1 and prod_plugin_name='VOIP' and site_id=" . DEFAULT_SITE; echo $sql . "\n"; $rs1 = $db->Execute($sql); $i = 1; if ($rs1) { while (!$rs1->EOF) { $carttmp = @unserialize($rs1->fields['prod_attr_cart']); if (@$carttmp['parent_service_id'] == $rs->fields['service_id']) { # is this an actual virtual line? $ppd = unserialize($rs1->fields['prod_plugin_data']); if ($ppd['parent_enabled'] && $ppd['virtual_number']) { $dp++; $dids[$dp]['start'] = $rs1->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400; $dids[$dp]['end'] = $rs1->fields['date_next_invoice'] + 86399; $dids[$dp]['did'] = @$carttmp['station']; if (strlen($carttmp['ported'])) { $dids[$dp]['did'] = $carttmp['ported']; } $cc = ""; $e164 = ""; $npa = ""; $nxx = ""; if ($this->e164($dids[$dp]['did'], $e164, $cc, $npa, $nxx)) { $dids[$dp]['did'] = substr($e164, 1); if ($cc == '1') { $dp++; $dids[$dp]['start'] = $rs->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400; $dids[$dp]['end'] = $rs->fields['date_next_invoice'] + 86399; $dids[$dp]['did'] = substr($e164, 2); $dp++; $dids[$dp]['start'] = $rs->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400; $dids[$dp]['end'] = $rs->fields['date_next_invoice'] + 86399; $dids[$dp]['did'] = substr($e164, 1); } } echo "Found virtual number: " . $dids[$dp]['did'] . "\n"; } # end test to see if truely virtual } $rs1->MoveNext(); } } # Load rating table configuration $rate = $this->load_rating_table($db, $rs->fields['product_id']); if (is_array($rate)) { if ($plugin['rate_accountcode']) { # rate accountcode based # echo "Rate by account code: ".$rs->fields['username']."\n"; $dids[$dp]['accountcode'] = $rs->fields['username']; $this->rate_calls($db, $db, $dids, $rs->fields); } else { # rate non-accountcode based $this->rate_calls($db, $db, $dids, $rs->fields); } } } } # end did length check $rs->MoveNext(); } $debug = ob_get_contents(); echo $debug; ob_end_clean(); if (defined('RATING_DEBUG')) { mail("*****@*****.**", "Rating Debug For " . URL, $debug); } return true; }
<label> <input type="radio" name="radio" <?=(!$subPage) ? 'checked=""' : ''; ?> onClick="window.location.replace('groups/<?=$groupId; ?>/news');">Visa senaste </label> </div> <div class="radio"> <label> <input type="radio" name="radio" <?=($subPage === 'oldest') ? 'checked=""' : ''; ?> onClick="window.location.replace('groups/<?=$groupId; ?>/news/oldest');">Visa äldsta </label> </div> <?php if (!$subPage) $news = sqlSelect("SELECT users.user_id, users.username, group_news_feed.type, group_news_feed.what, group_news_feed.date FROM `group_news_feed` INNER JOIN users ON users.user_id = group_news_feed.user_id WHERE group_news_feed.group_id = {$groupId} ORDER BY group_news_feed.id DESC;"); else if ($subPage === 'oldest') $news = sqlSelect("SELECT users.user_id, users.username, group_news_feed.type, group_news_feed.what, group_news_feed.date FROM `group_news_feed` INNER JOIN users ON users.user_id = group_news_feed.user_id WHERE group_news_feed.group_id = {$groupId} ORDER BY group_news_feed.id ASC;"); $i = 0; foreach ($news as $newsItem) { $i++; if ($i % 2 === 0) $color = '#4899B1;'; else $color = '#2B5B6A;'; ?> <div class="panel panel-default"> <div class="panel-heading" style="background: <?=$color; ?>"> <?php if ($newsItem['type'] === 'edited_description') { echo ($newsItem['user_id'] == $_SESSION['user']['id']) ? 'Jag' : "<a href=\"profile?view={$newsItem['user_id']}\">{$newsItem['username']}</a>"; ?> ändrade gruppens beskrivning. <?php }