1
0

Merge remote branch 'gallery3-contrib/master'

This commit is contained in:
rWatcher 2011-07-21 13:40:55 -04:00
commit a8a56a5e39
4 changed files with 272 additions and 194 deletions

View File

@ -1,106 +1,118 @@
/**
* Gallery 3 Admin Right yo left language styles
* Gallery 3 Admin Right to left language styles
*/
.rtl {
direction: rtl;
}
#g-header,
#g-content,
#g-sidebar,
#g-footer,
caption,
th,
#g-dialog,
.g-context-menu li a,
.g-message-box li,
#g-site-status li {
#g-header,
#g-content,
#g-sidebar,
#g-footer,
caption,
th,
#g-dialog,
.g-context-menu li a,
.g-message-box li,
#g-site-status li {
text-align: right;
}
.g-text-right {
.g-text-right {
text-align: left;
}
.g-error,
.g-info,
.g-success,
.g-warning,
#g-add-photos-status .g-success,
#g-add-photos-status .g-error {
.g-error,
.g-info,
.g-success,
.g-warning,
#g-add-photos-status .g-success,
#g-add-photos-status .g-error {
background-position: center right;
padding-right: 30px !important;
}
form li.g-error,
form li.g-info,
form li.g-success,
form li.g-warning {
form li.g-error,
form li.g-info,
form li.g-success,
form li.g-warning {
padding-right: 0 !important;
}
.g-left,
.g-inline li,
#g-content #g-album-grid .g-item,
.sf-menu li,
.g-breadcrumbs li,
.g-paginator li,
.g-buttonset li,
.ui-icon-left .ui-icon,
.g-short-form li,
form ul ul li,
input[type="submit"],
input[type="reset"],
input.checkbox,
input[type=checkbox],
input.radio,
input[type=radio] {
.g-left,
.g-inline li,
#g-content #g-album-grid .g-item,
.sf-menu li,
.g-breadcrumbs li,
.g-paginator li,
.g-buttonset li,
.ui-icon-left .ui-icon,
.g-short-form li,
form ul ul li,
input[type="submit"],
input[type="reset"],
input.checkbox,
input[type=checkbox],
input.radio,
input[type=radio] {
float: right;
}
.g-right,
.g-right,
.ui-icon-right .ui-icon {
float: left;
}
.g-inline li {
.g-inline li {
margin-right: 1em;
}
.g-inline li.g-first {
.g-inline li.g-first {
margin-right: 0;
}
.g-breadcrumbs li {
.g-breadcrumbs li {
background: transparent url('../images/ico-separator-rtl.png') no-repeat scroll right center;
padding: 1em 18px 1em 8px;
}
.g-breadcrumbs .g-first {
.g-breadcrumbs .g-first {
background: none;
padding-right: 0;
}
input.checkbox {
input.checkbox,
input[type="checkbox"],
input.radio,
input[type="radio"] {
margin-right: 0;
margin-left: .4em;
}
#g-add-comment {
#g-add-comment {
right: inherit;
left: 0;
}
.ui-icon-left .ui-icon {
.ui-icon-left .ui-icon {
margin-left: .2em;
}
.ui-icon-right .ui-icon {
.ui-icon-right .ui-icon {
margin-right: .2em;
}
.g-group h4 {
padding: .5em .5em .5em 0;
}
.g-group .g-user {
padding: .2em .5em 0 0;
}
/* RTL Corner radius ~~~~~~~~~~~~~~~~~~~~~~ */
.g-buttonset .ui-corner-tl {
.g-buttonset .ui-corner-tl {
-moz-border-radius-topleft: 0;
-webkit-border-top-left-radius: 0;
border-top-left-radius: 0;
@ -109,7 +121,7 @@
border-top-right-radius: 5px !important;
}
.g-buttonset .ui-corner-tr {
.g-buttonset .ui-corner-tr {
-moz-border-radius-topright: 0;
-webkit-border-top-right-radius: 0;
border-top-right-radius: 0;
@ -118,7 +130,7 @@
border-top-left-radius: 5px !important;
}
.g-buttonset .ui-corner-bl {
.g-buttonset .ui-corner-bl {
-moz-border-radius-bottomleft: 0;
-webkit-border-bottom-left-radius: 0;
border-bottom-left-radius: 0;
@ -127,7 +139,7 @@
border-bottom-right-radius: 5px !important;
}
.g-buttonset .ui-corner-br {
.g-buttonset .ui-corner-br {
-moz-border-radius-bottomright: 0;
-webkit-border-bottom-right-radius: 0;
border-bottom-right-radius: 0;
@ -136,8 +148,8 @@
border-bottom-left-radius: 5px !important;
}
.g-buttonset .ui-corner-right,
.ui-progressbar .ui-corner-right {
.g-buttonset .ui-corner-right,
.ui-progressbar .ui-corner-right {
-moz-border-radius-topright: 0;
-webkit-border-top-right-radius: 0;
border-top-right-radius: 0;
@ -152,8 +164,8 @@
border-bottom-left-radius: 5px !important;
}
.g-buttonset .ui-corner-left,
.ui-progressbar .ui-corner-left {
.g-buttonset .ui-corner-left,
.ui-progressbar .ui-corner-left {
-moz-border-radius-topleft: 0;
-webkit-border-top-left-radius: 0;
border-top-left-radius: 0;
@ -170,66 +182,66 @@
/* RTL Superfish ~~~~~~~~~~~~~~~~~~~~~~~~~ */
.sf-menu a {
.sf-menu a {
border-left: none;
border-right:1px solid #<?= $borderColorContent ?>;
}
.sf-menu a.sf-with-ul {
.sf-menu a.sf-with-ul {
padding-left: 2.25em;
padding-right: 1em;
}
.sf-sub-indicator {
.sf-sub-indicator {
background: url("themeroller/images/ui-icons_<?= $fcDefault ?>_256x240.png") no-repeat -96px -16px; /* 8-bit indexed alpha png. IE6 gets solid image only */
left: .75em !important;
right: auto;
}
a > .sf-sub-indicator { /* give all except IE6 the correct values */
a > .sf-sub-indicator { /* give all except IE6 the correct values */
top: .8em;
background-position: -10px -100px; /* use translucent arrow for modern browsers*/
}
/* apply hovers to modern browsers */
a:focus > .sf-sub-indicator,
a:hover > .sf-sub-indicator,
a:active > .sf-sub-indicator,
li:hover > a > .sf-sub-indicator,
li.sfHover > a > .sf-sub-indicator {
a:focus > .sf-sub-indicator,
a:hover > .sf-sub-indicator,
a:active > .sf-sub-indicator,
li:hover > a > .sf-sub-indicator,
li.sfHover > a > .sf-sub-indicator {
background-position: 0 -100px; /* arrow hovers for modern browsers*/
}
/* point right for anchors in subs */
.sf-menu ul .sf-sub-indicator { background-position: 0 0; }
.sf-menu ul a > .sf-sub-indicator { background-position: -10px 0; }
.sf-menu ul .sf-sub-indicator { background-position: 0 0; }
.sf-menu ul a > .sf-sub-indicator { background-position: -10px 0; }
/* apply hovers to modern browsers */
.sf-menu ul a:focus > .sf-sub-indicator,
.sf-menu ul a:hover > .sf-sub-indicator,
.sf-menu ul a:active > .sf-sub-indicator,
.sf-menu ul li:hover > a > .sf-sub-indicator,
.sf-menu ul li.sfHover > a > .sf-sub-indicator {
.sf-menu ul a:focus > .sf-sub-indicator,
.sf-menu ul a:hover > .sf-sub-indicator,
.sf-menu ul a:active > .sf-sub-indicator,
.sf-menu ul li:hover > a > .sf-sub-indicator,
.sf-menu ul li.sfHover > a > .sf-sub-indicator {
background-position: 0 0; /* arrow hovers for modern browsers*/
}
.sf-menu li:hover ul,
.sf-menu li.sfHover ul {
.sf-menu li:hover ul,
.sf-menu li.sfHover ul {
right: 0;
left: auto;
}
ul.sf-menu li li:hover ul,
ul.sf-menu li li.sfHover ul {
ul.sf-menu li li:hover ul,
ul.sf-menu li li.sfHover ul {
right: 12em; /* match ul width */
left: auto;
}
ul.sf-menu li li li:hover ul,
ul.sf-menu li li li.sfHover ul {
ul.sf-menu li li li:hover ul,
ul.sf-menu li li li.sfHover ul {
right: 12em; /* match ul width */
left: auto;
}
/*** shadows for all but IE6 ***/
.sf-shadow ul {
.sf-shadow ul {
background: url('../images/superfish-shadow.png') no-repeat bottom left;
border-top-right-radius: 0;
border-bottom-left-radius: 0;
@ -247,53 +259,117 @@
/* RTL ThemeRoller ~~~~~~~~~~~~~~~~~~~~~~~~ */
.ui-dialog .ui-dialog-titlebar {
.ui-dialog .ui-dialog-titlebar {
padding: 0.5em 1em 0.3em 0.3em;
}
.ui-dialog .ui-dialog-title {
.ui-dialog .ui-dialog-title {
float: right;
}
.ui-dialog .ui-dialog-titlebar-close {
.ui-dialog .ui-dialog-titlebar-close {
left: 0.3em;
right: auto;
}
#g-content #g-album-grid .g-item,
#g-site-theme,
#g-admin-theme,
.g-selected img,
.g-available .g-block img,
#g-content #g-photo-stream .g-item,
li.g-group,
#g-server-add-admin {
.ui-tabs .ui-tabs-nav li {
float: right;
}
#g-admin-graphics .g-available .g-block {
#g-content #g-album-grid .g-item,
#g-site-theme,
#g-admin-theme,
.g-selected img,
.g-available .g-block img,
#g-content #g-photo-stream .g-item,
li.g-group,
#g-server-add-admin {
float: right;
}
#g-admin-graphics .g-available .g-block {
float: right;
margin-left: 1em;
margin-right: 0em;
}
#g-site-admin-menu {
#g-site-admin-menu {
left: auto;
right: 150px;
}
#g-header #g-login-menu {
#g-header #g-login-menu {
float: left;
}
#g-header #g-login-menu li {
#g-header #g-login-menu li {
margin-left: 0;
padding-left: 0;
padding-right: 1.2em;
}
.g-selected img,
.g-available .g-block img {
.g-selected img,
.g-available .g-block img {
margin: 0 0 1em 1em;
}
.g-button {
margin: 0 0 0 4px;
}
/* RTL paginator ~~~~~~~~~~~~~~~~~~~~~~~~~~ */
.g-paginator .g-info {
width: 35%;
}
.g-paginator .g-text-right {
margin-left: 0;
}
.g-paginator .ui-icon-seek-end {
background-position: -80px -160px;
}
.g-paginator .ui-icon-seek-next {
background-position: -48px -160px;
}
.g-paginator .ui-icon-seek-prev {
background-position: -32px -160px;
}
.g-paginator .ui-icon-seek-first {
background-position: -64px -160px;
}
#g-header #g-login-menu,
#g-header #g-quick-search-form {
clear: left;
float: left;
}
#g-header #g-login-menu li {
margin-left: 0;
padding-left: 0;
padding-right: 1.2em;
}
#g-site-menu {
left: auto;
right: 240px;
}
#g-view-menu #g-slideshow-link {
background-image: url('../images/ico-view-slideshow-rtl.png');
}
#g-sidebar .g-block-content {
padding-right: 1em;
padding-left: 0;
}
#g-footer #g-credits li {
padding-left: 1.2em !important;
padding-right: 0;
}

View File

@ -1,6 +1,6 @@
name = ".Pear Theme"
description = "A theme with the intention to mimic Apples mobile me gallery."
version = 2.2
version = 2.3
author = "Fredrik Erlandsson <fredrik.e@gmail.com>"
site = 1
admin = 0

View File

@ -53,7 +53,7 @@ if($child->is_album()):
endforeach;
endif;
// End skimming // ?>
<p class="giTitle <? if(!$child->is_album()) print 'center';?>"><?= html::purify($child->title) ?> </p>
<p class="giTitle <? if(!$child->is_album()) print 'center';?>"><?= html::purify(text::limit_chars($child->title, 20)) ?> </p>
<? if($child->is_album()): ?><div class="giInfo"><?= count($granchildren)?> photos</div><? endif ?>
</div>
<?/* <?= $theme->thumb_bottom($child) ?>

View File

@ -17,106 +17,108 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class Ecard_Controller extends Controller {
/**
* Send the ecard.
*/
public function send($id) {
$item = ORM::factory("item", $id);
access::required("view", $item);
if (!ecard::can_send_ecard()) {
access::forbidden();
}
$form = ecard::get_send_form($item);
try {
$valid = $form->validate();
} catch (ORM_Validation_Exception $e) {
// Translate ORM validation errors into form error messages
foreach ($e->validation->errors() as $key => $error) {
$form->edit_item->inputs[$key]->add_error($error, 1);
}
$valid = false;
}
if ($valid) {
$to_array = explode(",",$form->send_ecard->inputs["to_email"]->value);
foreach($to_array as $to) {
$v = new View("ecard_email.html");
$v->item = $item;
$v->subject = module::get_var("ecard", "subject");
$from_name = $form->send_ecard->from_name->value;
$bcc = module::get_var("ecard", "bcc");
if($form->send_ecard->send_to_self->checked == true) {
$cc = $form->send_ecard->inputs["from_email"]->value;
}
$v->message = t(module::get_var("ecard", "message"), array("fromname" => $from_name));
$v->custom_message = $form->send_ecard->text->value;
$v->image = $item->name;
$from = $form->send_ecard->inputs["from_email"]->value;
$headers = array("from" => $from_name."<".$from.">", "to" => $to, "subject" => module::get_var("ecard", "subject"));
require_once(MODPATH. "ecard/lib/mime.php");
$mime = new Mail_mime("\n");
$mime->setHTMLBody($v->render());
if($form->send_ecard->send_fresh->checked == true) {
$tmpfile = tempnam(TMPPATH, "clean");
if($form->send_ecard->send_thumbnail->checked == true) {
$options = array("width" => module::get_var("gallery", "thumb_size"), "height" => module::get_var("gallery", "thumb_size"), "master" => Image::AUTO);
gallery_graphics::resize($item->file_path(), $tmpfile, $options, $item);
$mime->addHTMLImage($tmpfile,$item->mime_type,$item->name);
} else {
$options = array("width" => module::get_var("gallery", "resize_size"), "height" => module::get_var("gallery", "resize_size"), "master" => Image::AUTO);
gallery_graphics::resize($item->file_path(), $tmpfile, $options, $item);
$mime->addHTMLImage($tmpfile,$item->mime_type,$item->name);
}
} else {
if($form->send_ecard->send_thumbnail->checked == true) {
$mime->addHTMLImage($item->thumb_path(),$item->mime_type,$item->name);
} else {
$mime->addHTMLImage($item->resize_path(),$item->mime_type,$item->name);
}
}
$body = $mime->get(array('html_charset' => 'UTF-8', 'text_charset' => 'UTF-8','text_encoding' => '8bit','head_charset' => 'UTF-8'));
self::_notify($headers['to'], $headers['from'], $headers['subject'], $item, $body, $mime->headers(), $bcc, $cc);
/**
* Send the ecard.
*/
public function send($id) {
$item = ORM::factory("item", $id);
access::required("view", $item);
if (!ecard::can_send_ecard()) {
access::forbidden();
}
$form = ecard::get_send_form($item);
try {
$valid = $form->validate();
} catch (ORM_Validation_Exception $e) {
// Translate ORM validation errors into form error messages
foreach ($e->validation->errors() as $key => $error) {
$form->edit_item->inputs[$key]->add_error($error, 1);
}
$valid = false;
}
if ($valid) {
$v = new View("ecard_email.html");
$v->item = $item;
$v->subject = module::get_var("ecard", "subject");
$from_name = $form->send_ecard->from_name->value;
$bcc = module::get_var("ecard", "bcc");
if($form->send_ecard->send_to_self->checked == true) {
$cc = $form->send_ecard->inputs["from_email"]->value;
}
$v->message = t(module::get_var("ecard", "message"), array("fromname" => $from_name));
$v->custom_message = $form->send_ecard->text->value;
$v->image = $item->name;
$from = $form->send_ecard->inputs["from_email"]->value;
require_once(MODPATH. "ecard/lib/mime.php");
$mime = new Mail_mime("\n");
$mime->setHTMLBody($v->render());
if($form->send_ecard->send_fresh->checked == true) {
$tmpfile = tempnam(TMPPATH, "clean");
if($form->send_ecard->send_thumbnail->checked == true) {
$options = array("width" => module::get_var("gallery", "thumb_size"), "height" => module::get_var("gallery", "thumb_size"), "master" => Image::AUTO);
gallery_graphics::resize($item->file_path(), $tmpfile, $options, $item);
$mime->addHTMLImage($tmpfile,$item->mime_type,$item->name);
} else {
$options = array("width" => module::get_var("gallery", "resize_size"), "height" => module::get_var("gallery", "resize_size"), "master" => Image::AUTO);
gallery_graphics::resize($item->file_path(), $tmpfile, $options, $item);
$mime->addHTMLImage($tmpfile,$item->mime_type,$item->name);
}
} else {
if($form->send_ecard->send_thumbnail->checked == true) {
$mime->addHTMLImage($item->thumb_path(),$item->mime_type,$item->name);
} else {
$mime->addHTMLImage($item->resize_path(),$item->mime_type,$item->name);
}
}
$body = $mime->get(array('html_charset' => 'UTF-8', 'text_charset' => 'UTF-8','text_encoding' => '8bit','head_charset' => 'UTF-8'));
$to_array = explode(",",$form->send_ecard->inputs["to_email"]->value);
foreach($to_array as $to) {
$headers = array("from" => $from_name."<".$from.">", "to" => trim($to), "subject" => module::get_var("ecard", "subject"));
self::_notify($headers['to'], $headers['from'], $headers['subject'], $item, $body, $mime->headers(), $bcc, $cc);
}
unlink($tmpfile);
message::success("eCard successfully sent to ".$form->send_ecard->inputs["to_email"]->value);
json::reply(array("result" => "success"));
} else {
json::reply(array("result" => "error", "html" => (string) $form));
}
unlink($tmpfile);
message::success("eCard successfully sent");
json::reply(array("result" => "success"));
} else {
json::reply(array("result" => "error", "html" => (string) $form));
}
}
/**
* Present a form for sending a new ecard.
*/
public function form_send($item_id) {
$item = ORM::factory("item", $item_id);
access::required("view", $item);
if (!ecard::can_send_ecard()) {
access::forbidden();
}
$v_form = new View("ecard_form.html");
$v_form->item_id = $item_id;
print $v_form->render();
}
private static function _notify($to, $from, $subject, $item, $text, $headers, $bcc, $cc) {
$sendmail = Sendmail::factory();
$sendmail
->to($to)
/**
* Present a form for sending a new ecard.
*/
public function form_send($item_id) {
$item = ORM::factory("item", $item_id);
access::required("view", $item);
if (!ecard::can_send_ecard()) {
access::forbidden();
}
$v_form = new View("ecard_form.html");
$v_form->item_id = $item_id;
print $v_form->render();
}
private static function _notify($to, $from, $subject, $item, $text, $headers, $bcc, $cc) {
$sendmail = Sendmail::factory();
$sendmail
->to($to)
->from($from)
->subject($subject);
if(isset($bcc)) {
$sendmail->header("bcc",$bcc);
}
if(isset($cc)) {
$sendmail->header("cc",$cc);
}
foreach($headers as $key => $value) {
$sendmail->header($key,$value);
}
$sendmail
->subject($subject);
if(isset($bcc)) {
$sendmail->header("bcc",$bcc);
}
if(isset($cc)) {
$sendmail->header("cc",$cc);
}
foreach($headers as $key => $value) {
$sendmail->header($key,$value);
}
$sendmail
->message($text)
->send();
return;
}
->send();
return;
}
}