-
Notifications
You must be signed in to change notification settings - Fork 0
/
cpquicklinks_api.php
85 lines (85 loc) · 2.55 KB
/
cpquicklinks_api.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
defined('_JEXEC') or die;
function getQuickLinks() {
$db = JFactory::getDbo();
$query = $db
->getQuery(true)
->select($db->quoteName('*'))
->from($db->quoteName('lwr6z_com_cpquicklinks_categories'));
$db->setQuery($query);
$cats = $db->loadAssocList();
$return = array();
$count = 0;
foreach($cats as $key => $cat) {
$link_format = array();
$conditions = array(
$db->quoteName('link_cat_id').' = '.$count
);
$query = $db
->getQuery(true)
->select($db->quoteName('*'))
->from($db->quoteName('lwr6z_com_cpquicklinks_links'))
->where($conditions);
$db->setQuery($query);
$links = $db->loadAssocList();
foreach($links as $key => $link) {
$popout = false;
if($link['link_target'] == '_blank') {
$popout = true;
}
$link_format[$link['link_name']] = array(
'href' => $link['link_url'],
'popout' => $popout
);
}
$return[$cat['cat_name']] = array(
'icon' => $cat['cat_font_awesome'],
'links' => $link_format
);
$count++;
}
return $return;
}
if(isset($_POST['get'])) {
echo json_encode(getQuickLinks());
} elseif(isset($_POST['save']) && !empty($_POST['save'])) {
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->delete($db->quoteName('lwr6z_com_cpquicklinks_categories'));
$db->setQuery($query)->execute();
$query = $db->getQuery(true)
->delete($db->quoteName('lwr6z_com_cpquicklinks_links'));
$db->setQuery($query)->execute();
$save = json_decode($_POST['save'], true);
if(is_array($save) && !empty($save)) {
$cat_id = 0;
$link_id = 0;
foreach($save as $cat_name => $cat_array) {
if(isset($cat_name) && !empty($cat_name) && isset($cat_array) && is_array($cat_array) && is_array($cat_array['links']) && !empty($cat_array['links'])) {
$cat = new stdClass();
$cat->cat_id = $cat_id;
$cat->cat_name = $cat_name;
$cat->cat_font_awesome = $cat_array['icon'];
JFactory::getDbo()->insertObject('lwr6z_com_cpquicklinks_categories', $cat);
foreach($cat_array['links'] as $link_name => $link_array) {
if(!empty($link_name) && is_array($link_array) && isset($link_array['href']) && !empty($link_array['href']) && isset($link_array['popout'])) {
$target = '';
if($link_array['popout']) {
$target = '_blank';
}
$link = new stdClass();
$link->link_id = $link_id;
$link->link_name = $link_name;
$link->link_url = $link_array['href'];
$link->link_cat_id = $cat_id;
$link->link_target = $target;
JFactory::getDbo()->insertObject('lwr6z_com_cpquicklinks_links', $link);
$link_id++;
}
}
$cat_id++;
}
}
}
}
?>