Skip to content

Commit

Permalink
[Module][Partners] Add module
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelbilcot committed May 8, 2016
1 parent 5abf561 commit 3834f43
Show file tree
Hide file tree
Showing 24 changed files with 1,186 additions and 0 deletions.
34 changes: 34 additions & 0 deletions DATABASE 0.1.3 to 0.1.4.sql
Expand Up @@ -39,3 +39,37 @@ ALTER TABLE `nf_awards`
ADD CONSTRAINT `nf_awards_ibfk_1` FOREIGN KEY (`team_id`) REFERENCES `nf_teams` (`team_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `nf_awards_ibfk_2` FOREIGN KEY (`game_id`) REFERENCES `nf_games` (`game_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `nf_awards_ibfk_3` FOREIGN KEY (`image_id`) REFERENCES `nf_files` (`file_id`) ON DELETE CASCADE ON UPDATE CASCADE;
DROP TABLE IF EXISTS `nf_partners`;
CREATE TABLE IF NOT EXISTS `nf_partners` (
`partner_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`logo_light` int(11) UNSIGNED DEFAULT NULL,
`logo_dark` int(11) UNSIGNED DEFAULT NULL,
`website` varchar(100) NOT NULL,
`facebook` varchar(100) NOT NULL,
`twitter` varchar(100) NOT NULL,
`code` varchar(50) NOT NULL,
`count` int(11) UNSIGNED NOT NULL,
`order` tinyint(6) UNSIGNED NOT NULL,
PRIMARY KEY (`partner_id`),
KEY `image_id` (`logo_light`),
KEY `logo_dark` (`logo_dark`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `nf_partners_lang`;
CREATE TABLE IF NOT EXISTS `nf_partners_lang` (
`partner_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`lang` varchar(5) NOT NULL,
`title` varchar(100) NOT NULL,
`description` text NOT NULL,
PRIMARY KEY (`partner_id`),
KEY `lang` (`lang`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `nf_settings_addons` VALUES('partners', 'module', '1');
INSERT INTO `nf_settings_addons` VALUES('partners', 'widget', '1');
INSERT INTO `nf_settings` VALUES('partners_logo_display', '', '', 'logo_dark', 'string');
ALTER TABLE `nf_partners`
ADD CONSTRAINT `nf_partners_ibfk_1` FOREIGN KEY (`logo_light`) REFERENCES `nf_files` (`file_id`) ON DELETE SET NULL ON UPDATE SET NULL,
ADD CONSTRAINT `nf_partners_ibfk_2` FOREIGN KEY (`logo_dark`) REFERENCES `nf_files` (`file_id`) ON DELETE SET NULL ON UPDATE SET NULL;
ALTER TABLE `nf_partners_lang`
ADD CONSTRAINT `nf_partners_lang_ibfk_1` FOREIGN KEY (`partner_id`) REFERENCES `nf_partners` (`partner_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `nf_partners_lang_ibfk_2` FOREIGN KEY (`lang`) REFERENCES `nf_settings_languages` (`code`) ON DELETE CASCADE ON UPDATE CASCADE;
70 changes: 70 additions & 0 deletions DATABASE.sql
Expand Up @@ -197,6 +197,8 @@ CREATE TABLE IF NOT EXISTS `nf_files` (
--

INSERT INTO `nf_files` VALUES(1, 1, 'Sans-titre-2.jpg', './upload/news/categories/ubfuejdfooirqya0pyltfeklja4ew4sn.jpg', '2015-05-29 22:34:16');
INSERT INTO `nf_files` VALUES(2, 1, 'logo.png', 'upload/partners/zwvmsjijfljaka4rdblgvlype1lnbwaw.png', '2016-05-07 16:51:53');
INSERT INTO `nf_files` VALUES(3, 1, 'logo_black.png', 'upload/partners/y4ofwq2ekppwnfpmnrmnafeivszlg5bd.png', '2016-05-07 16:51:53');

-- --------------------------------------------------------

Expand Down Expand Up @@ -649,6 +651,57 @@ CREATE TABLE IF NOT EXISTS `nf_pages_lang` (

-- --------------------------------------------------------

--
-- Structure de la table `nf_partners`
--

DROP TABLE IF EXISTS `nf_partners`;
CREATE TABLE IF NOT EXISTS `nf_partners` (
`partner_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`logo_light` int(11) UNSIGNED DEFAULT NULL,
`logo_dark` int(11) UNSIGNED DEFAULT NULL,
`website` varchar(100) NOT NULL,
`facebook` varchar(100) NOT NULL,
`twitter` varchar(100) NOT NULL,
`code` varchar(50) NOT NULL,
`count` int(11) UNSIGNED NOT NULL,
`order` tinyint(6) UNSIGNED NOT NULL,
PRIMARY KEY (`partner_id`),
KEY `image_id` (`logo_light`),
KEY `logo_dark` (`logo_dark`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Contenu de la table `nf_partners`
--

INSERT INTO `nf_partners` VALUES(1, 'neofrag', 2, 3, 'https://neofr.ag', 'https://www.facebook.com/NeoFrag-CMS-345511868808600/', 'https://twitter.com/NeoFragCMS', '', 1, 0);

-- --------------------------------------------------------

--
-- Structure de la table `nf_partners_lang`
--

DROP TABLE IF EXISTS `nf_partners_lang`;
CREATE TABLE IF NOT EXISTS `nf_partners_lang` (
`partner_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`lang` varchar(5) NOT NULL,
`title` varchar(100) NOT NULL,
`description` text NOT NULL,
PRIMARY KEY (`partner_id`),
KEY `lang` (`lang`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Contenu de la table `nf_partners_lang`
--

INSERT INTO `nf_partners_lang` VALUES(1, 'fr', 'NeoFrag', 'NeoFrag est un CMS (système de gestion de contenu) à la fois puissant, compact et performant, pour créer votre site web orienté e-Sport !\r\n\r\n[b]C''est entièrement gratuit et personnalisable ![/b]\r\nPeu importe votre niveau dans le domaine du web, ce projet a pour but de vous proposer une solution clés en main pour créer votre site à l''aide d''interfaces modernes, personnalisables et évolutives pour correspondre à un maximum d''univers.');

-- --------------------------------------------------------

--
-- Structure de la table `nf_search_keywords`
--
Expand Down Expand Up @@ -739,6 +792,7 @@ INSERT INTO `nf_settings` VALUES('default_background_attachment', '', '', 'scrol
INSERT INTO `nf_settings` VALUES('default_background_color', '', '', '#141d26', 'string');
INSERT INTO `nf_settings` VALUES('default_background_position', '', '', 'center top', 'string');
INSERT INTO `nf_settings` VALUES('default_background_repeat', '', '', 'no-repeat', 'string');
INSERT INTO `nf_settings` VALUES('partners_logo_display', '', '', 'logo_dark', 'string');

-- --------------------------------------------------------

Expand Down Expand Up @@ -784,6 +838,8 @@ INSERT INTO `nf_settings_addons` VALUES('navigation', 'widget', '1');
INSERT INTO `nf_settings_addons` VALUES('news', 'module', '1');
INSERT INTO `nf_settings_addons` VALUES('news', 'widget', '1');
INSERT INTO `nf_settings_addons` VALUES('pages', 'module', '1');
INSERT INTO `nf_settings_addons` VALUES('partners', 'module', '1');
INSERT INTO `nf_settings_addons` VALUES('partners', 'widget', '1');
INSERT INTO `nf_settings_addons` VALUES('search', 'module', '1');
INSERT INTO `nf_settings_addons` VALUES('search', 'widget', '1');
INSERT INTO `nf_settings_addons` VALUES('settings', 'module', '1');
Expand Down Expand Up @@ -1351,6 +1407,20 @@ ALTER TABLE `nf_pages_lang`
ADD CONSTRAINT `nf_pages_lang_ibfk_1` FOREIGN KEY (`page_id`) REFERENCES `nf_pages` (`page_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `nf_pages_lang_ibfk_2` FOREIGN KEY (`lang`) REFERENCES `nf_settings_languages` (`code`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Contraintes pour la table `nf_partners`
--
ALTER TABLE `nf_partners`
ADD CONSTRAINT `nf_partners_ibfk_1` FOREIGN KEY (`logo_light`) REFERENCES `nf_files` (`file_id`) ON DELETE SET NULL ON UPDATE SET NULL,
ADD CONSTRAINT `nf_partners_ibfk_2` FOREIGN KEY (`logo_dark`) REFERENCES `nf_files` (`file_id`) ON DELETE SET NULL ON UPDATE SET NULL;

--
-- Contraintes pour la table `nf_partners_lang`
--
ALTER TABLE `nf_partners_lang`
ADD CONSTRAINT `nf_partners_lang_ibfk_1` FOREIGN KEY (`partner_id`) REFERENCES `nf_partners` (`partner_id`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `nf_partners_lang_ibfk_2` FOREIGN KEY (`lang`) REFERENCES `nf_settings_languages` (`code`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Contraintes pour la table `nf_sessions`
--
Expand Down
167 changes: 167 additions & 0 deletions modules/partners/controllers/admin.php
@@ -0,0 +1,167 @@
<?php if (!defined('NEOFRAG_CMS')) exit;
/**************************************************************************
Copyright © 2015 Michaël BILCOT & Jérémy VALENTIN
This file is part of NeoFrag.
NeoFrag is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
NeoFrag is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with NeoFrag. If not, see <http://www.gnu.org/licenses/>.
**************************************************************************/

class m_partners_c_admin extends Controller_Module
{
public function index()
{
$this->load ->library('table')
->add_columns(array(
array(
'content' => function($data){
return button_sort($data['partner_id'], 'admin/ajax/partners/sort.html');
},
'size' => TRUE
),
array(
'title' => 'Nom',
'content' => function($data){
return $data['title'];
}
),
array(
'title' => 'Site internet',
'content' => function($data){
return '<a href="'.$data['website'].'" target="_blank">'.$data['website'].'</a>';
}
),
array(
'title' => '<span data-toggle="tooltip" title="Visites">'.icon('fa-line-chart').'</span>',
'content' => function($data){
return $data['count'];
}
),
array(
'content' => array(
function($data){
return button_edit('admin/partners/'.$data['partner_id'].'/'.$data['name'].'.html');
},
function($data){
return button_delete('admin/partners/delete/'.$data['partner_id'].'/'.$data['name'].'.html');
}
),
'size' => TRUE
)
))
->data($this->model()->get_partners())
->no_data('Aucun partenaire');

return new Panel(array(
'title' => 'Liste des partenaires',
'icon' => 'fa-star-o',
'content' => $this->table->display(),
'footer' => button_add('admin/partners/add.html', 'Ajouter un partenaire')
));
}

public function add()
{
$this ->subtitle('Ajouter un partenaire')
->load->library('form')
->add_rules('partners')
->add_submit($this('add'))
->add_back('admin/partners.html');

if ($this->form->is_valid($post))
{
$this->model()->add_partner($post['title'],
$post['logo_light'],
$post['logo_dark'],
$post['description'],
$post['website'],
$post['facebook'],
$post['twitter'],
$post['code']);

//add_alert('success', $this('add_partner_success_message'));

redirect('admin/partners.html');
}

return new Panel(array(
'title' => 'Ajouter un partenaire',
'icon' => 'fa-star-o',
'content' => $this->form->display()
));
}

public function _edit($partner_id, $name, $logo_light, $logo_dark, $website, $facebook, $twitter, $count, $code, $title, $description)
{
$this ->subtitle($title)
->load->library('form')
->add_rules('partners', array(
'title' => $title,
'logo_light' => $logo_light,
'logo_dark' => $logo_dark,
'description' => $description,
'website' => $website,
'facebook' => $facebook,
'twitter' => $twitter,
'code' => $code
))
->add_submit($this('edit'))
->add_back('admin/partners.html');

if ($this->form->is_valid($post))
{
$this->model()->edit_partner( $partner_id,
$post['title'],
$post['logo_light'],
$post['logo_dark'],
$post['description'],
$post['website'],
$post['facebook'],
$post['twitter'],
$post['code']);

//add_alert('success', $this('edit_partner_success_message'));

redirect_back('admin/partners.html');
}

return new Panel(array(
'title' => 'Éditer le partenaire',
'icon' => 'fa-star-o',
'content' => $this->form->display()
));
}

public function delete($partner_id, $title)
{
$this ->title('Supprimer le partenaire')
->subtitle($title)
->load->library('form')
->confirm_deletion($this('delete_confirmation'), 'Êtes-vous sûr(e) de vouloir supprimer le partenaire <b>'.$title.'</b> ?');

if ($this->form->is_valid())
{
$this->model()->delete_partner($partner_id);

return 'OK';
}

echo $this->form->display();
}
}

/*
NeoFrag Alpha 0.1.4
./modules/partners/controllers/admin.php
*/
45 changes: 45 additions & 0 deletions modules/partners/controllers/admin_ajax.php
@@ -0,0 +1,45 @@
<?php if (!defined('NEOFRAG_CMS')) exit;
/**************************************************************************
Copyright © 2015 Michaël BILCOT & Jérémy VALENTIN
This file is part of NeoFrag.
NeoFrag is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
NeoFrag is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with NeoFrag. If not, see <http://www.gnu.org/licenses/>.
**************************************************************************/

class m_partners_c_admin_ajax extends Controller
{
public function sort($partner_id, $position)
{
$partners = array();

foreach ($this->db->select('partner_id')->from('nf_partners')->where('partner_id !=', $partner_id)->order_by('order', 'partner_id')->get() as $partner)
{
$partners[] = $partner;
}

foreach (array_merge(array_slice($partners, 0, $position, TRUE), array($partner_id), array_slice($partners, $position, NULL, TRUE)) as $order => $partner_id)
{
$this->db ->where('partner_id', $partner_id)
->update('nf_partners', array(
'order' => $order
));
}
}
}

/*
NeoFrag Alpha 0.1.4
./modules/partners/controllers/admin_ajax.php
*/

0 comments on commit 3834f43

Please sign in to comment.