mirror of https://github.com/itflow-org/itflow
Added Location Column to client networks, more work on Campaigns
This commit is contained in:
parent
ba75378f9b
commit
b34f602639
47
campaign.php
47
campaign.php
|
|
@ -30,17 +30,16 @@ if(isset($_GET['campaign_id'])){
|
|||
}
|
||||
|
||||
//Get Stat Counts
|
||||
$sql = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_sent_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$sent_count = mysqli_num_rows($sql);
|
||||
|
||||
$sql = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_opened_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$open_count = mysqli_num_rows($sql);
|
||||
|
||||
$sql = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_clicked_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$click_count = mysqli_num_rows($sql);
|
||||
|
||||
$sql = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_bounced_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$fail_count = mysqli_num_rows($sql);
|
||||
//Subscribers
|
||||
$subscriber_count = mysqli_num_rows(mysqli_query($mysqli,"SELECT COUNT(*) FROM campaign_messages WHERE message_campaign_id = $campaign_id"));
|
||||
//Sent
|
||||
$sent_count = mysqli_num_rows(mysqli_query($mysqli,"SELECT COUNT(*) FROM campaign_messages WHERE message_sent_at IS NOT NULL AND message_campaign_id = $campaign_id"));
|
||||
//Opem
|
||||
$open_count = mysqli_num_rows(mysqli_query($mysqli,"SELECT COUNT(*) FROM campaign_messages WHERE message_opened_at IS NOT NULL AND message_campaign_id = $campaign_id"));
|
||||
//Click
|
||||
$click_count = mysqli_num_rows(mysqli_query($mysqli,"SELECT COUNT(*) FROM campaign_messages WHERE message_clicked_at IS NOT NULL AND message_campaign_id = $campaign_id"));
|
||||
//Fail
|
||||
$fail_count = mysqli_num_rows(mysqli_query($mysqli,"SELECT COUNT(*) FROM campaign_messages WHERE message_bounced_at IS NOT NULL AND message_campaign_id = $campaign_id"));
|
||||
|
||||
?>
|
||||
|
||||
|
|
@ -54,7 +53,15 @@ if(isset($_GET['campaign_id'])){
|
|||
|
||||
<div class="col-sm-4">
|
||||
<div class="card card-body elevation-2">
|
||||
<h6 class="text-secondary">CAMPAIGN</h6>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<a class="text-secondary" href="#" data-toggle="modal" data-target="#campaignEditModal<?php echo $campaign_id; ?>"><i class="fa fa-fw fa-edit ml-2 float-right"></i></a>
|
||||
<a class="text-secondary" href="#" data-toggle="modal" data-target="#campaignCopyModal<?php echo $campaign_id; ?>"><i class="fa fa-fw fa-copy ml-2 float-right"></i></a>
|
||||
<a class="text-secondary" href="#" data-toggle="modal" data-target="#campaignTestModal<?php echo $campaign_id; ?>"><i class="fa fa-fw fa-wrench ml-2 float-right"></i></a>
|
||||
<h6 class="text-secondary">CAMPAIGN</h6>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h1><?php echo $campaign_name; ?></h1>
|
||||
<div class="p-2 badge badge-pill badge-<?php echo $campaign_badge_color; ?>">
|
||||
<?php echo $campaign_status; ?>
|
||||
|
|
@ -184,9 +191,9 @@ if(isset($_GET['campaign_id'])){
|
|||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=client_name&o=<?php echo $disp; ?>">Client Name</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=contact_name&o=<?php echo $disp; ?>">Contact Name</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=contact_email&o=<?php echo $disp; ?>">Email</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=message_ip&o=<?php echo $disp; ?>">IP</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=message_sent_at&o=<?php echo $disp; ?>">Sent</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=message_opened_at&o=<?php echo $disp; ?>">Opened</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=message_ip&o=<?php echo $disp; ?>">IP</a></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
@ -211,9 +218,9 @@ if(isset($_GET['campaign_id'])){
|
|||
<td><?php echo $client_name; ?></td>
|
||||
<td><?php echo $contact_name; ?></td>
|
||||
<td><?php echo $contact_email; ?></td>
|
||||
<td><?php echo $message_ip; ?></td>
|
||||
<td><?php echo $message_sent_at; ?></td>
|
||||
<td><?php echo $message_opened_at; ?></td>
|
||||
<td><?php echo $message_ip; ?></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
|
|
@ -229,6 +236,14 @@ if(isset($_GET['campaign_id'])){
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
<?php
|
||||
|
||||
<?php include("footer.php");
|
||||
include("campaign_copy_modal.php");
|
||||
include("campaign_edit_modal.php");
|
||||
include("campaign_test_modal.php");
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<?php include("footer.php"); ?>
|
||||
|
|
@ -104,18 +104,16 @@
|
|||
|
||||
<div class="tab-pane fade" id="pills-recipients">
|
||||
|
||||
<label>Select Recipients <strong class="text-danger">*</strong></label>
|
||||
|
||||
<label>Select Tags <strong class="text-danger">*</strong></label>
|
||||
|
||||
<ul class="list-group mb-3">
|
||||
|
||||
|
||||
<?php
|
||||
$sql_tags_select = mysqli_query($mysqli,"SELECT * FROM tags WHERE tag_type = 1 AND company_id = $session_company_id ORDER BY tag_name ASC");
|
||||
|
||||
while($row = mysqli_fetch_array($sql_tags_select)){
|
||||
$tag_id_select = $row['tag_id'];
|
||||
$tag_name_select = $row['tag_name'];
|
||||
$tag_color_select = $row['tag_color'];
|
||||
$tag_icon_select = $row['tag_icon'];
|
||||
//Get Contact Count
|
||||
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT(*) AS client_count FROM clients, client_tags
|
||||
WHERE clients.client_id = client_tags.client_id
|
||||
|
|
@ -128,7 +126,7 @@
|
|||
<li class="list-group-item">
|
||||
<div class="form-check">
|
||||
<input type="checkbox" class="form-check-input" name="tags[]" value="<?php echo $tag_id_select; ?>">
|
||||
<label class="form-check-label ml-2 badge bg-<?php echo $tag_color_select; ?>"><?php echo "<i class='fa fw fa-$tag_icon_select'></i>"; ?> <?php echo $tag_name_select; ?></label><span class="right badge badge-light"><?php echo $client_count; ?></span>
|
||||
<label class="form-check-label ml-2"><?php echo $tag_name_select; ?> (<?php echo $client_count; ?> subscribers)</label>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
|
|
|
|||
|
|
@ -158,6 +158,7 @@
|
|||
<thead class="text-dark <?php if($num_rows[0] == 0){ echo "d-none"; } ?>">
|
||||
<tr>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_name&o=<?php echo $disp; ?>">Name</a></th>
|
||||
<th class="text-center">Subscribers</th>
|
||||
<th class="text-center">Sent</th>
|
||||
<th class="text-center">Opened</th>
|
||||
<th class="text-center">Clicked</th>
|
||||
|
|
@ -195,21 +196,21 @@
|
|||
}
|
||||
|
||||
//Get Stat Counts
|
||||
$sql_sent = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_sent_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$sent_count = mysqli_num_rows($sql_sent);
|
||||
|
||||
$sql_open = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_opened_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$open_count = mysqli_num_rows($sql_open);
|
||||
|
||||
$sql_click = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_clicked_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$click_count = mysqli_num_rows($sql_click);
|
||||
|
||||
$sql_fail = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_bounced_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$fail_count = mysqli_num_rows($sql_fail);
|
||||
//Subscribers
|
||||
$subscriber_count = mysqli_num_rows(mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_campaign_id = $campaign_id"));
|
||||
//Sent
|
||||
$sent_count = mysqli_num_rows(mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_sent_at IS NOT NULL AND message_campaign_id = $campaign_id"));
|
||||
//Opem
|
||||
$open_count = mysqli_num_rows(mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_opened_at IS NOT NULL AND message_campaign_id = $campaign_id"));
|
||||
//Click
|
||||
$click_count = mysqli_num_rows(mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_clicked_at IS NOT NULL AND message_campaign_id = $campaign_id"));
|
||||
//Fail
|
||||
$fail_count = mysqli_num_rows(mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_bounced_at IS NOT NULL AND message_campaign_id = $campaign_id"));
|
||||
|
||||
?>
|
||||
<tr>
|
||||
<td><a href="campaign.php?campaign_id=<?php echo $campaign_id; ?>"><?php echo $campaign_name; ?></a></td>
|
||||
<td class="text-primary text-center"><?php echo $subscriber_count; ?></td>
|
||||
<td class="text-success text-center"><?php echo $sent_count; ?></td>
|
||||
<td class="text-secondary text-center"><?php echo $open_count; ?></td>
|
||||
<td class="text-info text-center"><?php echo $click_count; ?></td>
|
||||
|
|
|
|||
|
|
@ -39,9 +39,10 @@ if(isset($_GET['o'])){
|
|||
//Rebuild URL
|
||||
$url_query_strings_sb = http_build_query(array_merge($_GET,array('sb' => $sb, 'o' => $o)));
|
||||
|
||||
$sql = mysqli_query($mysqli,"SELECT SQL_CALC_FOUND_ROWS * FROM networks
|
||||
$sql = mysqli_query($mysqli,"SELECT SQL_CALC_FOUND_ROWS * FROM networks
|
||||
LEFT JOIN locations ON location_id = network_location_id
|
||||
WHERE network_client_id = $client_id
|
||||
AND (network_name LIKE '%$q%' OR network_vlan LIKE '%$q%' OR network LIKE '%$q%' OR network_gateway LIKE '%$q%' OR network_dhcp_range LIKE '%$q%')
|
||||
AND (network_name LIKE '%$q%' OR network_vlan LIKE '%$q%' OR network LIKE '%$q%' OR network_gateway LIKE '%$q%' OR network_dhcp_range LIKE '%$q%' OR location_name LIKE '%$q%')
|
||||
ORDER BY $sb $o LIMIT $record_from, $record_to");
|
||||
|
||||
$num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
|
||||
|
|
@ -88,6 +89,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
|
|||
<th><a class="text-secondary" href="?<?php echo $url_query_strings_sb; ?>&sb=network&o=<?php echo $disp; ?>">Network</a></th>
|
||||
<th><a class="text-secondary" href="?<?php echo $url_query_strings_sb; ?>&sb=network_gateway&o=<?php echo $disp; ?>">Gateway</a></th>
|
||||
<th><a class="text-secondary" href="?<?php echo $url_query_strings_sb; ?>&sb=network_dhcp_range&o=<?php echo $disp; ?>">DHCP Range</a></th>
|
||||
<th><a class="text-secondary" href="?<?php echo $url_query_strings_sb; ?>&sb=location_name&o=<?php echo $disp; ?>">Location</a></th>
|
||||
<th class="text-center">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -113,6 +115,12 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
|
|||
}
|
||||
$network_created_at = $row['network_created_at'];
|
||||
$network_location_id = $row['network_location_id'];
|
||||
$location_name = $row['location_name'];
|
||||
if(empty($location_name)){
|
||||
$location_name_display = "-";
|
||||
}else{
|
||||
$location_name_display = $location_name;
|
||||
}
|
||||
|
||||
?>
|
||||
<tr>
|
||||
|
|
@ -123,6 +131,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
|
|||
<td><?php echo $network; ?></td>
|
||||
<td><?php echo $network_gateway; ?></td>
|
||||
<td><?php echo $network_dhcp_range_display; ?></td>
|
||||
<td><?php echo $location_name_display; ?></td>
|
||||
<td>
|
||||
<div class="dropdown dropleft text-center">
|
||||
<button class="btn btn-secondary btn-sm" type="button" data-toggle="dropdown">
|
||||
|
|
|
|||
|
|
@ -158,14 +158,13 @@
|
|||
|
||||
<div class="tab-pane fade" id="pills-photo<?php echo $location_id; ?>">
|
||||
|
||||
<center>
|
||||
<?php if(!empty($location_photo)){ ?>
|
||||
<img class="img-fluid" src="<?php echo "uploads/clients/$session_company_id/$client_id/$location_photo"; ?>">
|
||||
<?php } ?>
|
||||
</center>
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<center>
|
||||
<?php if(!empty($location_photo)){ ?>
|
||||
<img class="img-fluid rounded-circle" src="<?php echo "uploads/clients/$session_company_id/$client_id/$location_photo"; ?>" height="256" width="256">
|
||||
<?php } ?>
|
||||
</center>
|
||||
|
||||
<input type="file" class="form-control-file" name="file">
|
||||
</div>
|
||||
|
||||
|
|
|
|||
33
post.php
33
post.php
|
|
@ -1707,7 +1707,38 @@ if(isset($_POST['edit_campaign'])){
|
|||
$status = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['status'])));
|
||||
$scheduled_at = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['scheduled_at'])));
|
||||
|
||||
mysqli_query($mysqli,"UPDATE campaigns SET SET campaign_name = '$name', campaign_subject = '$subject', campaign_from_name = '$from_name', campaign_from_email = '$from_email', campaign_content = '$content', campaign_status = 'Draft', campaign_scheduled_at = '$scheduled_at', campaign_updated_at = NOW() WHERE campaign_id = $campaign_id AND company_id = $session_company_id");
|
||||
mysqli_query($mysqli,"UPDATE campaigns SET campaign_name = '$name', campaign_subject = '$subject', campaign_from_name = '$from_name', campaign_from_email = '$from_email', campaign_content = '$content', campaign_status = '$status', campaign_scheduled_at = '$scheduled_at', campaign_updated_at = NOW() WHERE campaign_id = $campaign_id AND company_id = $session_company_id");
|
||||
|
||||
//Create Recipient List based off tags selected
|
||||
if(isset($_POST['tags'])){
|
||||
foreach($_POST['tags'] as $tag){
|
||||
intval($tag);
|
||||
|
||||
$sql = mysqli_query($mysqli,"SELECT * FROM clients
|
||||
LEFT JOIN contacts ON contacts.contact_id = clients.primary_contact
|
||||
LEFT JOIN client_tags ON clients.client_id = client_tags.client_id
|
||||
WHERE client_tags.tag_id = $tag
|
||||
AND clients.company_id = $session_company_id
|
||||
");
|
||||
|
||||
while($row = mysqli_fetch_array($sql)){
|
||||
$client_id = $row['client_id'];
|
||||
$client_name = $row['client_name'];
|
||||
$contact_id = $row['contact_id'];
|
||||
$contact_name = $row['contact_name'];
|
||||
$contact_email = $row['contact_email'];
|
||||
|
||||
//Check to see if the email has already been added if so don't add it
|
||||
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT(message_id) AS count FROM campaign_messages WHERE message_contact_id = $contact_id AND message_campaign_id = $campaign_id"));
|
||||
$count = $row['count'];
|
||||
if($count == 0){
|
||||
//Generate Unique hash
|
||||
$message_hash = keygen();
|
||||
mysqli_query($mysqli,"INSERT INTO campaign_messages SET message_hash = '$message_hash', message_created_at = NOW(), message_client_tag_id = $tag, message_contact_id = $contact_id, message_campaign_id = $campaign_id, company_id = $session_company_id");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Logging
|
||||
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Campaign', log_action = 'Modify', log_description = '$session_name modified mail campaign $name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_created_at = NOW(), log_user_id = $session_user_id, company_id = $session_company_id");
|
||||
|
|
|
|||
Loading…
Reference in New Issue