Initial version of content_warning, committed on behalf of Manuel Sechi
This commit is contained in:
parent
1023321cff
commit
b2078a091e
@ -0,0 +1,62 @@
|
||||
<?php defined("SYSPATH") or die("No direct script access.");/**
|
||||
* Gallery - a web based photo album viewer and editor
|
||||
* Copyright (C) 2000-2009 Bharat Mediratta
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* This program 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
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
class Admin_Content_Warning_Controller extends Admin_Controller {
|
||||
public function index() {
|
||||
print $this->_get_view();
|
||||
}
|
||||
|
||||
public function handler() {
|
||||
access::verify_csrf();
|
||||
|
||||
$form = $this->_get_form();
|
||||
|
||||
if ($form->validate()) {
|
||||
module::set_var("content_warning", "title", $form->content_warning->inputs["title"]->value);
|
||||
module::set_var("content_warning", "message", $form->content_warning->inputs["message"]->value);
|
||||
module::set_var("content_warning", "enter_link_text", $form->content_warning->inputs["enter_link_text"]->value);
|
||||
//module::set_var("content_warning", "enter_link_url", $form->content_warning->inputs["enter_link_url"]->value);
|
||||
module::set_var("content_warning", "exit_link_text", $form->content_warning->inputs["exit_link_text"]->value);
|
||||
module::set_var("content_warning", "exit_link_url", $form->content_warning->inputs["exit_link_url"]->value);
|
||||
url::redirect("admin/content_warning");
|
||||
}
|
||||
print $this->_get_view($form);
|
||||
}
|
||||
|
||||
private function _get_view($form=null) {
|
||||
$v = new Admin_View("admin.html");
|
||||
$v->content = new View("admin_content_warning.html");
|
||||
$v->content->form = empty($form) ? $this->_get_form() : $form;
|
||||
return $v;
|
||||
}
|
||||
|
||||
private function _get_form() {
|
||||
$form = new Forge("admin/content_warning/handler", "", "post",
|
||||
array("id" => "gAdminContentWerning"));
|
||||
$group = $form->group("content_warning");
|
||||
$group->input("title")->label(t('Title (Will be displayed within H3)'))->rules("required")->value(module::get_var("content_warning", "title"));
|
||||
$group->textarea("message")->label(t('Message (you can use HTML tags)'))->rules("required")->value(module::get_var("content_warning", "message"));
|
||||
$group->input("enter_link_text")->label(t('Enter Label'))->rules("required")->value(module::get_var("content_warning", "enter_link_text"));
|
||||
//$group->input("enter_link_url")->label(t('Enter Url (Leave empty to redirect to the previous page)'))->value(module::get_var("content_warning", "enter_link_url"));
|
||||
$group->input("exit_link_text")->label(t('Exit Label'))->rules("required")->value(module::get_var("content_warning", "exit_link_text"));
|
||||
$group->input("exit_link_url")->label(t('Exit Url'))->rules("required")->value(module::get_var("content_warning", "exit_link_url"));
|
||||
|
||||
$group->submit("submit")->value(t("Save"));
|
||||
return $form;
|
||||
}
|
||||
}
|
27
3.0/modules/content_warning/controllers/content_warning.php
Normal file
27
3.0/modules/content_warning/controllers/content_warning.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php defined("SYSPATH") or die("No direct script access.");/**
|
||||
* Gallery - a web based photo album viewer and editor
|
||||
* Copyright (C) 2000-2009 Bharat Mediratta
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* This program 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
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
class Content_Warning_Controller extends Controller {
|
||||
public function index() {
|
||||
if(isset($_GET['cw'])) {
|
||||
setcookie('cw_agree', '1', time() + (60 * 60 * 24), '/');
|
||||
header("Location: /");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
<?php defined("SYSPATH") or die("No direct script access.");
|
||||
/**
|
||||
* Gallery - a web based photo album viewer and editor
|
||||
* Copyright (C) 2000-2009 Bharat Mediratta
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* This program 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
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
class content_warning_event_Core {
|
||||
|
||||
static function admin_menu($menu, $theme) {
|
||||
$menu->get("settings_menu")
|
||||
->append(Menu::factory("link")
|
||||
->id("content_warning_menu")
|
||||
->label(t("Content Warning"))
|
||||
->url(url::site("admin/content_warning")));
|
||||
}
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
<?php defined("SYSPATH") or die("No direct script access.");/**
|
||||
* Gallery - a web based photo album viewer and editor
|
||||
* Copyright (C) 2000-2009 Bharat Mediratta
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* This program 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
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
class content_warning_installer {
|
||||
static function install() {
|
||||
module::set_var("content_warning", "title", "Warning!");
|
||||
module::set_var("content_warning", "message", "This site contains inappropriate material");
|
||||
module::set_var("content_warning", "enter_link_text", "Enter");
|
||||
module::set_var("content_warning", "exit_link_text", "Exit");
|
||||
module::set_var("content_warning", "exit_link_url", "http://www.google.com");
|
||||
module::set_version("content_warning", 1);
|
||||
}
|
||||
|
||||
static function upgrade($version) {
|
||||
//module::set_version("content_warning", 2);
|
||||
}
|
||||
|
||||
static function uninstall() {
|
||||
module::clear_var("content_warning", "title");
|
||||
module::clear_var("content_warning", "message");
|
||||
module::clear_var("content_warning", "enter_link_text");
|
||||
module::clear_var("content_warning", "exit_link_text");
|
||||
module::clear_var("content_warning", "exit_link_url");
|
||||
module::delete("content_warning");
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
<?php defined("SYSPATH") or die("No direct script access.");/**
|
||||
* Gallery - a web based photo album viewer and editor
|
||||
* Copyright (C) 2000-2009 Bharat Mediratta
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* This program 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
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
class content_warning_theme {
|
||||
static function head($theme) {
|
||||
$h = '
|
||||
<script type="text/javascript" src="/lib/jquery.js"></script>
|
||||
<link type="text/css" href="/modules/content_warning/jqModal.css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="/modules/content_warning/jqModal.js"></script>
|
||||
<script type="text/javascript">
|
||||
jQuery().ready(function($){
|
||||
$(\'#dialog\').jqm().jqmShow({});
|
||||
});
|
||||
</script>
|
||||
';
|
||||
return $h;
|
||||
}
|
||||
|
||||
static function page_top($theme) {
|
||||
$cw = '
|
||||
<div class="jqmWindow" id="dialog">
|
||||
<hr />
|
||||
<h3>'.module::get_var("content_warning", "title").'</h3>
|
||||
<br />
|
||||
<p>'.nl2br(module::get_var("content_warning", "message")).'</p>
|
||||
<br />
|
||||
<div id="cw_buttons_container">
|
||||
<div class="cw_buttons" id="cw_ko">
|
||||
<a href="'.module::get_var("content_warning", "exit_link_url").'">'.module::get_var("content_warning", "exit_link_text").'</a>
|
||||
</div>
|
||||
<div class="cw_buttons" id="cw_ok">
|
||||
<a href="/index.php/content_warning?cw=1">'.module::get_var("content_warning", "enter_link_text").'</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
if(!isset($_COOKIE['cw_agree'])) {
|
||||
return $cw;
|
||||
}
|
||||
}
|
||||
}
|
65
3.0/modules/content_warning/jqModal.css
Normal file
65
3.0/modules/content_warning/jqModal.css
Normal file
@ -0,0 +1,65 @@
|
||||
/* jqModal base Styling courtesy of;
|
||||
Brice Burgess <bhb@iceburg.net> */
|
||||
|
||||
/* The Window's CSS z-index value is respected (takes priority). If none is supplied,
|
||||
the Window's z-index value will be set to 3000 by default (via jqModal.js). */
|
||||
|
||||
.jqmWindow {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 5%;
|
||||
left: 5%;
|
||||
/*margin-left: -500px;*/
|
||||
width: 90%;
|
||||
height: 90%;
|
||||
background-color: #EEE;
|
||||
color: #333;
|
||||
border: 1px solid black;
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
.jqmOverlay {
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
/* Background iframe styling for IE6. Prevents ActiveX bleed-through (<select> form elements, etc.) */
|
||||
* iframe.jqm {
|
||||
position:absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
z-index:-1;
|
||||
width: expression(this.parentNode.offsetWidth+'px');
|
||||
height: expression(this.parentNode.offsetHeight+'px');
|
||||
}
|
||||
|
||||
/* Fixed posistioning emulation for IE6
|
||||
Star selector used to hide definition from browsers other than IE6
|
||||
For valid CSS, use a conditional include instead */
|
||||
* html .jqmWindow {
|
||||
position: absolute;
|
||||
top: expression((document.documentElement.scrollTop || document.body.scrollTop) + Math.round(17 * (document.documentElement.offsetHeight || document.body.clientHeight) / 100) + 'px');
|
||||
}
|
||||
|
||||
#cw_buttons_container {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.cw_buttons {
|
||||
margin:10px;
|
||||
padding:10px;
|
||||
width: 300px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#cw_ko {
|
||||
margin-left: 100px;
|
||||
border:1px solid #FF0000;
|
||||
float: left;
|
||||
}
|
||||
#cw_ok {
|
||||
margin-right: 100px;
|
||||
border:1px solid #00FF00;
|
||||
float:right;
|
||||
}
|
69
3.0/modules/content_warning/jqModal.js
Normal file
69
3.0/modules/content_warning/jqModal.js
Normal file
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* jqModal - Minimalist Modaling with jQuery
|
||||
* (http://dev.iceburg.net/jquery/jqModal/)
|
||||
*
|
||||
* Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net>
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* $Version: 03/01/2009 +r14
|
||||
*/
|
||||
(function($) {
|
||||
$.fn.jqm=function(o){
|
||||
var p={
|
||||
overlay: 50,
|
||||
overlayClass: 'jqmOverlay',
|
||||
closeClass: 'jqmClose',
|
||||
trigger: '.jqModal',
|
||||
ajax: F,
|
||||
ajaxText: '',
|
||||
target: F,
|
||||
modal: F,
|
||||
toTop: F,
|
||||
onShow: F,
|
||||
onHide: F,
|
||||
onLoad: F
|
||||
};
|
||||
return this.each(function(){if(this._jqm)return H[this._jqm].c=$.extend({},H[this._jqm].c,o);s++;this._jqm=s;
|
||||
H[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};
|
||||
if(p.trigger)$(this).jqmAddTrigger(p.trigger);
|
||||
});};
|
||||
|
||||
$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};
|
||||
$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};
|
||||
$.fn.jqmShow=function(t){return this.each(function(){t=t||window.event;$.jqm.open(this._jqm,t);});};
|
||||
$.fn.jqmHide=function(t){return this.each(function(){t=t||window.event;$.jqm.close(this._jqm,t)});};
|
||||
|
||||
$.jqm = {
|
||||
hash:{},
|
||||
open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index'))),z=(z>0)?z:3000,o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a)return F;h.t=t;h.a=true;h.w.css('z-index',z);
|
||||
if(c.modal) {if(!A[0])L('bind');A.push(s);}
|
||||
else if(c.overlay > 0)h.w.jqmAddClose(o);
|
||||
else o=F;
|
||||
|
||||
h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;
|
||||
if(ie6){$('html,body').css({height:'100%',width:'100%'});if(o){o=o.css({position:'absolute'})[0];for(var y in {Top:1,Left:1})o.style.setExpression(y.toLowerCase(),"(_=(document.documentElement.scroll"+y+" || document.body.scroll"+y+"))+'px'");}}
|
||||
|
||||
if(c.ajax) {var r=c.target||h.w,u=c.ajax,r=(typeof r == 'string')?$(r,h.w):$(r),u=(u.substr(0,1) == '@')?$(t).attr(u.substring(1)):u;
|
||||
r.html(c.ajaxText).load(u,function(){if(c.onLoad)c.onLoad.call(this,h);if(cc)h.w.jqmAddClose($(cc,h.w));e(h);});}
|
||||
else if(cc)h.w.jqmAddClose($(cc,h.w));
|
||||
|
||||
if(c.toTop&&h.o)h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o);
|
||||
(c.onShow)?c.onShow(h):h.w.show();e(h);return F;
|
||||
},
|
||||
close:function(s){var h=H[s];if(!h.a)return F;h.a=F;
|
||||
if(A[0]){A.pop();if(!A[0])L('unbind');}
|
||||
if(h.c.toTop&&h.o)$('#jqmP'+h.w[0]._jqm).after(h.w).remove();
|
||||
if(h.c.onHide)h.c.onHide(h);else{h.w.hide();if(h.o)h.o.remove();} return F;
|
||||
},
|
||||
params:{}};
|
||||
var s=0,H=$.jqm.hash,A=[],ie6=$.browser.msie&&($.browser.version == "6.0"),F=false,
|
||||
i=$('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>').css({opacity:0}),
|
||||
e=function(h){if(ie6)if(h.o)h.o.html('<p style="width:100%;height:100%"/>').prepend(i);else if(!$('iframe.jqm',h.w)[0])h.w.prepend(i); f(h);},
|
||||
f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}},
|
||||
L=function(t){$()[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},
|
||||
m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r)f(h);return !r;},
|
||||
hs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {
|
||||
if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1})for(var s in this[i])if(H[this[i][s]])H[this[i][s]].w[i](this);return F;});}this[c].push(s);});});};
|
||||
})(jQuery);
|
7
3.0/modules/content_warning/module.info
Normal file
7
3.0/modules/content_warning/module.info
Normal file
@ -0,0 +1,7 @@
|
||||
name = Content Warning
|
||||
description = Display a cookie based warning to prevent display inopportune content.
|
||||
version = 1
|
||||
author_name = "Manuel Sechi"
|
||||
author_url = "http://www.manuelsechi.com"
|
||||
info_url = "http://www.manuelsechi.com/progetti/gallery3-content-warning/"
|
||||
discuss_url = "http://www.manuelsechi.com/progetti/gallery3-content-warning/"
|
@ -0,0 +1,5 @@
|
||||
<?php defined("SYSPATH") or die("No direct script access.") ?>
|
||||
<div id="gAdminContentWerning">
|
||||
<h2><?php echo t("Content Warning Setup") ?></h2>
|
||||
<?php echo $form ?>
|
||||
</div>
|
Reference in New Issue
Block a user