mirror of
https://github.com/friendica/friendica
synced 2024-11-09 16:22:56 +00:00
fix mobile photo uploads; better theme control; frost improvements
This commit is contained in:
parent
776552226b
commit
999c3439e6
32 changed files with 605 additions and 278 deletions
33
boot.php
33
boot.php
|
@ -361,17 +361,26 @@ if(! class_exists('App')) {
|
|||
|
||||
// Allow themes to control internal parameters
|
||||
// by changing App values in theme.php
|
||||
//
|
||||
// Possibly should make these part of the plugin
|
||||
// system, but it seems like overkill to invoke
|
||||
// all the plugin machinery just to change a couple
|
||||
// of values
|
||||
|
||||
public $sourcename = '';
|
||||
public $videowidth = 425;
|
||||
public $videoheight = 350;
|
||||
public $force_max_items = 0;
|
||||
public $theme_thread_allow = true;
|
||||
|
||||
// An array for all theme-controllable parameters
|
||||
// Mostly unimplemented yet. Only options 'stylesheet' and
|
||||
// beyond are used.
|
||||
|
||||
public $theme = array(
|
||||
'sourcename' => '',
|
||||
'videowidth' => 425,
|
||||
'videoheight' => 350,
|
||||
'force_max_items' => 0,
|
||||
'thread_allow' => true,
|
||||
'stylesheet' => ''
|
||||
);
|
||||
|
||||
private $scheme;
|
||||
private $hostname;
|
||||
private $baseurl;
|
||||
|
@ -580,6 +589,13 @@ if(! class_exists('App')) {
|
|||
$interval = 40000;
|
||||
|
||||
$this->page['title'] = $this->config['sitename'];
|
||||
|
||||
/* put the head template at the beginning of page['htmlhead']
|
||||
* since the code added by the modules frequently depends on it
|
||||
* being first
|
||||
*/
|
||||
if(!isset($this->page['htmlhead']))
|
||||
$this->page['htmlhead'] = '';
|
||||
$tpl = get_markup_template('head.tpl');
|
||||
$this->page['htmlhead'] = replace_macros($tpl,array(
|
||||
'$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
|
||||
|
@ -590,14 +606,16 @@ if(! class_exists('App')) {
|
|||
'$showmore' => t('show more'),
|
||||
'$showfewer' => t('show fewer'),
|
||||
'$update_interval' => $interval
|
||||
));
|
||||
)) . $this->page['htmlhead'];
|
||||
}
|
||||
|
||||
function init_page_end() {
|
||||
if(!isset($this->page['end']))
|
||||
$this->page['end'] = '';
|
||||
$tpl = get_markup_template('end.tpl');
|
||||
$this->page['end'] = replace_macros($tpl,array(
|
||||
'$baseurl' => $this->get_baseurl() // FIXME for z_path!!!!
|
||||
));
|
||||
)) . $this->page['end'];
|
||||
}
|
||||
|
||||
function set_curl_code($code) {
|
||||
|
@ -917,6 +935,7 @@ if(! function_exists('login')) {
|
|||
|
||||
$tpl = get_markup_template("login.tpl");
|
||||
$_SESSION['return_url'] = $a->query_string;
|
||||
$a->module = 'login';
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -865,11 +865,15 @@ function format_like($cnt,$arr,$type,$id) {
|
|||
$total = count($arr);
|
||||
if($total >= MAX_LIKERS)
|
||||
$arr = array_slice($arr, 0, MAX_LIKERS - 1);
|
||||
if($total < MAX_LIKERS)
|
||||
$arr[count($arr)-1] = t('and') . ' ' . $arr[count($arr)-1];
|
||||
$str = implode(', ', $arr);
|
||||
if($total >= MAX_LIKERS)
|
||||
if($total < MAX_LIKERS) {
|
||||
$last = t('and') . ' ' . $arr[count($arr)-1];
|
||||
$arr2 = array_slice($arr, 0, -1);
|
||||
$str = implode(', ', $arr2) . ' ' . $last;
|
||||
}
|
||||
if($total >= MAX_LIKERS) {
|
||||
$str = implode(', ', $arr);
|
||||
$str .= sprintf( t(', and %d other people'), $total - MAX_LIKERS );
|
||||
}
|
||||
$str = (($type === 'like') ? sprintf( t('%s like this.'), $str) : sprintf( t('%s don\'t like this.'), $str));
|
||||
$o .= "\t" . '<div id="' . $type . 'list-' . $id . '" style="display: none;" >' . $str . '</div>';
|
||||
}
|
||||
|
|
|
@ -294,34 +294,147 @@ function onepoll_run(&$argv, &$argc){
|
|||
$metas = email_msg_meta($mbox,implode(',',$msgs));
|
||||
if(count($metas) != count($msgs)) {
|
||||
logger("onepoll: for " . $mailconf[0]['user'] . " there are ". count($msgs) . " messages but received " . count($metas) . " metas", LOGGER_DEBUG);
|
||||
break;
|
||||
}
|
||||
$msgs = array_combine($msgs, $metas);
|
||||
else {
|
||||
$msgs = array_combine($msgs, $metas);
|
||||
|
||||
foreach($msgs as $msg_uid => $meta) {
|
||||
logger("Mail: Parsing mail ".$msg_uid, LOGGER_DATA);
|
||||
foreach($msgs as $msg_uid => $meta) {
|
||||
logger("Mail: Parsing mail ".$msg_uid, LOGGER_DATA);
|
||||
|
||||
$datarray = array();
|
||||
// $meta = email_msg_meta($mbox,$msg_uid);
|
||||
// $headers = email_msg_headers($mbox,$msg_uid);
|
||||
$datarray = array();
|
||||
// $meta = email_msg_meta($mbox,$msg_uid);
|
||||
// $headers = email_msg_headers($mbox,$msg_uid);
|
||||
|
||||
$datarray['uri'] = msgid2iri(trim($meta->message_id,'<>'));
|
||||
$datarray['uri'] = msgid2iri(trim($meta->message_id,'<>'));
|
||||
|
||||
// Have we seen it before?
|
||||
$r = q("SELECT * FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
|
||||
intval($importer_uid),
|
||||
dbesc($datarray['uri'])
|
||||
);
|
||||
// Have we seen it before?
|
||||
$r = q("SELECT * FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
|
||||
intval($importer_uid),
|
||||
dbesc($datarray['uri'])
|
||||
);
|
||||
|
||||
if(count($r)) {
|
||||
logger("Mail: Seen before ".$msg_uid." for ".$mailconf[0]['user'],LOGGER_DEBUG);
|
||||
if($meta->deleted && ! $r[0]['deleted']) {
|
||||
q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($r[0]['id'])
|
||||
);
|
||||
if(count($r)) {
|
||||
logger("Mail: Seen before ".$msg_uid." for ".$mailconf[0]['user'],LOGGER_DEBUG);
|
||||
if($meta->deleted && ! $r[0]['deleted']) {
|
||||
q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($r[0]['id'])
|
||||
);
|
||||
}
|
||||
/*switch ($mailconf[0]['action']) {
|
||||
case 0:
|
||||
logger("Mail: Seen before ".$msg_uid." for ".$mailconf[0]['user'].". Doing nothing.", LOGGER_DEBUG);
|
||||
break;
|
||||
case 1:
|
||||
logger("Mail: Deleting ".$msg_uid." for ".$mailconf[0]['user']);
|
||||
imap_delete($mbox, $msg_uid, FT_UID);
|
||||
break;
|
||||
case 2:
|
||||
logger("Mail: Mark as seen ".$msg_uid." for ".$mailconf[0]['user']);
|
||||
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
|
||||
break;
|
||||
case 3:
|
||||
logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']." for ".$mailconf[0]['user']);
|
||||
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
|
||||
if ($mailconf[0]['movetofolder'] != "")
|
||||
imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
|
||||
break;
|
||||
}*/
|
||||
continue;
|
||||
}
|
||||
/*switch ($mailconf[0]['action']) {
|
||||
|
||||
|
||||
// look for a 'references' or an 'in-reply-to' header and try to match with a parent item we have locally.
|
||||
|
||||
// $raw_refs = ((x($headers,'references')) ? str_replace("\t",'',$headers['references']) : '');
|
||||
$raw_refs = ((property_exists($meta,'references')) ? str_replace("\t",'',$meta->references) : '');
|
||||
if(! trim($raw_refs))
|
||||
$raw_refs = ((property_exists($meta,'in_reply_to')) ? str_replace("\t",'',$meta->in_reply_to) : '');
|
||||
$raw_refs = trim($raw_refs); // Don't allow a blank reference in $refs_arr
|
||||
|
||||
if($raw_refs) {
|
||||
$refs_arr = explode(' ', $raw_refs);
|
||||
if(count($refs_arr)) {
|
||||
for($x = 0; $x < count($refs_arr); $x ++)
|
||||
$refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'";
|
||||
}
|
||||
$qstr = implode(',',$refs_arr);
|
||||
$r = q("SELECT `uri` , `parent-uri` FROM `item` WHERE `uri` IN ( $qstr ) AND `uid` = %d LIMIT 1",
|
||||
intval($importer_uid)
|
||||
);
|
||||
if(count($r))
|
||||
$datarray['parent-uri'] = $r[0]['parent-uri']; // Set the parent as the top-level item
|
||||
// $datarray['parent-uri'] = $r[0]['uri'];
|
||||
}
|
||||
|
||||
|
||||
if(! x($datarray,'parent-uri'))
|
||||
$datarray['parent-uri'] = $datarray['uri'];
|
||||
|
||||
// Decoding the header
|
||||
$subject = imap_mime_header_decode($meta->subject);
|
||||
$datarray['title'] = "";
|
||||
foreach($subject as $subpart)
|
||||
if ($subpart->charset != "default")
|
||||
$datarray['title'] .= iconv($subpart->charset, 'UTF-8//IGNORE', $subpart->text);
|
||||
else
|
||||
$datarray['title'] .= $subpart->text;
|
||||
|
||||
$datarray['title'] = notags(trim($datarray['title']));
|
||||
|
||||
//$datarray['title'] = notags(trim($meta->subject));
|
||||
$datarray['created'] = datetime_convert('UTC','UTC',$meta->date);
|
||||
|
||||
// Is it reply?
|
||||
$reply = ((substr(strtolower($datarray['title']), 0, 3) == "re:") or
|
||||
(substr(strtolower($datarray['title']), 0, 3) == "re-") or
|
||||
(raw_refs != ""));
|
||||
|
||||
$r = email_get_msg($mbox,$msg_uid, $reply);
|
||||
if(! $r) {
|
||||
logger("Mail: can't fetch msg ".$msg_uid." for ".$mailconf[0]['user']);
|
||||
continue;
|
||||
}
|
||||
$datarray['body'] = escape_tags($r['body']);
|
||||
|
||||
logger("Mail: Importing ".$msg_uid." for ".$mailconf[0]['user']);
|
||||
|
||||
// some mailing lists have the original author as 'from' - add this sender info to msg body.
|
||||
// todo: adding a gravatar for the original author would be cool
|
||||
|
||||
if(! stristr($meta->from,$contact['addr'])) {
|
||||
$from = imap_mime_header_decode($meta->from);
|
||||
$fromdecoded = "";
|
||||
foreach($from as $frompart)
|
||||
if ($frompart->charset != "default")
|
||||
$fromdecoded .= iconv($frompart->charset, 'UTF-8//IGNORE', $frompart->text);
|
||||
else
|
||||
$fromdecoded .= $frompart->text;
|
||||
|
||||
$datarray['body'] = "[b]".t('From: ') . escape_tags($fromdecoded) . "[/b]\n\n" . $datarray['body'];
|
||||
}
|
||||
|
||||
$datarray['uid'] = $importer_uid;
|
||||
$datarray['contact-id'] = $contact['id'];
|
||||
if($datarray['parent-uri'] === $datarray['uri'])
|
||||
$datarray['private'] = 1;
|
||||
if(($contact['network'] === NETWORK_MAIL) && (! get_pconfig($importer_uid,'system','allow_public_email_replies'))) {
|
||||
$datarray['private'] = 1;
|
||||
$datarray['allow_cid'] = '<' . $contact['id'] . '>';
|
||||
}
|
||||
$datarray['author-name'] = $contact['name'];
|
||||
$datarray['author-link'] = 'mailbox';
|
||||
$datarray['author-avatar'] = $contact['photo'];
|
||||
|
||||
$stored_item = item_store($datarray);
|
||||
q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d",
|
||||
dbesc($datarray['parent-uri']),
|
||||
intval($importer_uid)
|
||||
);
|
||||
q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1",
|
||||
intval($stored_item)
|
||||
);
|
||||
switch ($mailconf[0]['action']) {
|
||||
case 0:
|
||||
logger("Mail: Seen before ".$msg_uid." for ".$mailconf[0]['user'].". Doing nothing.", LOGGER_DEBUG);
|
||||
break;
|
||||
|
@ -339,119 +452,7 @@ function onepoll_run(&$argv, &$argc){
|
|||
if ($mailconf[0]['movetofolder'] != "")
|
||||
imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
|
||||
break;
|
||||
}*/
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
// look for a 'references' or an 'in-reply-to' header and try to match with a parent item we have locally.
|
||||
|
||||
// $raw_refs = ((x($headers,'references')) ? str_replace("\t",'',$headers['references']) : '');
|
||||
$raw_refs = ((property_exists($meta,'references')) ? str_replace("\t",'',$meta->references) : '');
|
||||
if(! trim($raw_refs))
|
||||
$raw_refs = ((property_exists($meta,'in_reply_to')) ? str_replace("\t",'',$meta->in_reply_to) : '');
|
||||
$raw_refs = trim($raw_refs); // Don't allow a blank reference in $refs_arr
|
||||
|
||||
if($raw_refs) {
|
||||
$refs_arr = explode(' ', $raw_refs);
|
||||
if(count($refs_arr)) {
|
||||
for($x = 0; $x < count($refs_arr); $x ++)
|
||||
$refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'";
|
||||
}
|
||||
$qstr = implode(',',$refs_arr);
|
||||
$r = q("SELECT `uri` , `parent-uri` FROM `item` WHERE `uri` IN ( $qstr ) AND `uid` = %d LIMIT 1",
|
||||
intval($importer_uid)
|
||||
);
|
||||
if(count($r))
|
||||
$datarray['parent-uri'] = $r[0]['parent-uri']; // Set the parent as the top-level item
|
||||
// $datarray['parent-uri'] = $r[0]['uri'];
|
||||
}
|
||||
|
||||
|
||||
if(! x($datarray,'parent-uri'))
|
||||
$datarray['parent-uri'] = $datarray['uri'];
|
||||
|
||||
// Decoding the header
|
||||
$subject = imap_mime_header_decode($meta->subject);
|
||||
$datarray['title'] = "";
|
||||
foreach($subject as $subpart)
|
||||
if ($subpart->charset != "default")
|
||||
$datarray['title'] .= iconv($subpart->charset, 'UTF-8//IGNORE', $subpart->text);
|
||||
else
|
||||
$datarray['title'] .= $subpart->text;
|
||||
|
||||
$datarray['title'] = notags(trim($datarray['title']));
|
||||
|
||||
//$datarray['title'] = notags(trim($meta->subject));
|
||||
$datarray['created'] = datetime_convert('UTC','UTC',$meta->date);
|
||||
|
||||
// Is it reply?
|
||||
$reply = ((substr(strtolower($datarray['title']), 0, 3) == "re:") or
|
||||
(substr(strtolower($datarray['title']), 0, 3) == "re-") or
|
||||
(raw_refs != ""));
|
||||
|
||||
$r = email_get_msg($mbox,$msg_uid, $reply);
|
||||
if(! $r) {
|
||||
logger("Mail: can't fetch msg ".$msg_uid." for ".$mailconf[0]['user']);
|
||||
continue;
|
||||
}
|
||||
$datarray['body'] = escape_tags($r['body']);
|
||||
|
||||
logger("Mail: Importing ".$msg_uid." for ".$mailconf[0]['user']);
|
||||
|
||||
// some mailing lists have the original author as 'from' - add this sender info to msg body.
|
||||
// todo: adding a gravatar for the original author would be cool
|
||||
|
||||
if(! stristr($meta->from,$contact['addr'])) {
|
||||
$from = imap_mime_header_decode($meta->from);
|
||||
$fromdecoded = "";
|
||||
foreach($from as $frompart)
|
||||
if ($frompart->charset != "default")
|
||||
$fromdecoded .= iconv($frompart->charset, 'UTF-8//IGNORE', $frompart->text);
|
||||
else
|
||||
$fromdecoded .= $frompart->text;
|
||||
|
||||
$datarray['body'] = "[b]".t('From: ') . escape_tags($fromdecoded) . "[/b]\n\n" . $datarray['body'];
|
||||
}
|
||||
|
||||
$datarray['uid'] = $importer_uid;
|
||||
$datarray['contact-id'] = $contact['id'];
|
||||
if($datarray['parent-uri'] === $datarray['uri'])
|
||||
$datarray['private'] = 1;
|
||||
if(($contact['network'] === NETWORK_MAIL) && (! get_pconfig($importer_uid,'system','allow_public_email_replies'))) {
|
||||
$datarray['private'] = 1;
|
||||
$datarray['allow_cid'] = '<' . $contact['id'] . '>';
|
||||
}
|
||||
$datarray['author-name'] = $contact['name'];
|
||||
$datarray['author-link'] = 'mailbox';
|
||||
$datarray['author-avatar'] = $contact['photo'];
|
||||
|
||||
$stored_item = item_store($datarray);
|
||||
q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d",
|
||||
dbesc($datarray['parent-uri']),
|
||||
intval($importer_uid)
|
||||
);
|
||||
q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1",
|
||||
intval($stored_item)
|
||||
);
|
||||
switch ($mailconf[0]['action']) {
|
||||
case 0:
|
||||
logger("Mail: Seen before ".$msg_uid." for ".$mailconf[0]['user'].". Doing nothing.", LOGGER_DEBUG);
|
||||
break;
|
||||
case 1:
|
||||
logger("Mail: Deleting ".$msg_uid." for ".$mailconf[0]['user']);
|
||||
imap_delete($mbox, $msg_uid, FT_UID);
|
||||
break;
|
||||
case 2:
|
||||
logger("Mail: Mark as seen ".$msg_uid." for ".$mailconf[0]['user']);
|
||||
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
|
||||
break;
|
||||
case 3:
|
||||
logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']." for ".$mailconf[0]['user']);
|
||||
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
|
||||
if ($mailconf[0]['movetofolder'] != "")
|
||||
imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
46
index.php
46
index.php
|
@ -115,19 +115,9 @@ if(! x($_SESSION,'authenticated'))
|
|||
header('X-Account-Management-Status: none');
|
||||
|
||||
|
||||
/*
|
||||
* Create the page head after setting the language
|
||||
* and getting any auth credentials
|
||||
*/
|
||||
|
||||
$a->init_pagehead();
|
||||
|
||||
/**
|
||||
* Build the page ending -- this is stuff that goes right before
|
||||
* the closing </body> tag
|
||||
*/
|
||||
|
||||
$a->init_page_end();
|
||||
/* set up page['htmlhead'] and page['end'] for the modules to use */
|
||||
$a->page['htmlhead'] = '';
|
||||
$a->page['end'] = '';
|
||||
|
||||
|
||||
if(! x($_SESSION,'sysmsg'))
|
||||
|
@ -300,8 +290,32 @@ if($a->module_loaded) {
|
|||
$a->page['content'] .= $arr['content'];
|
||||
}
|
||||
|
||||
if(function_exists(str_replace('-','_',current_theme()) . '_content_loaded')) {
|
||||
$func = str_replace('-','_',current_theme()) . '_content_loaded';
|
||||
$func($a);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Create the page head after setting the language
|
||||
* and getting any auth credentials
|
||||
*
|
||||
* Moved init_pagehead() and init_page_end() to after
|
||||
* all the module functions have executed so that all
|
||||
* theme choices made by the modules can take effect
|
||||
*/
|
||||
|
||||
$a->init_pagehead();
|
||||
|
||||
/**
|
||||
* Build the page ending -- this is stuff that goes right before
|
||||
* the closing </body> tag
|
||||
*/
|
||||
|
||||
$a->init_page_end();
|
||||
|
||||
// If you're just visiting, let javascript take you home
|
||||
|
||||
if(x($_SESSION,'visitor_home'))
|
||||
|
@ -366,7 +380,11 @@ if($a->module != 'install') {
|
|||
* Build the page - now that we have all the components
|
||||
*/
|
||||
|
||||
$a->page['htmlhead'] = replace_macros($a->page['htmlhead'], array('$stylesheet' => current_theme_url()));
|
||||
if(!$a->theme['stylesheet'])
|
||||
$stylesheet = current_theme_url();
|
||||
else
|
||||
$stylesheet = $a->theme['stylesheet'];
|
||||
$a->page['htmlhead'] = replace_macros($a->page['htmlhead'], array('$stylesheet' => $stylesheet));
|
||||
|
||||
if($a->is_mobile || $a->is_tablet) {
|
||||
if(isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
|
||||
|
|
|
@ -4,6 +4,8 @@ require_once('Photo.php');
|
|||
|
||||
function wall_upload_post(&$a) {
|
||||
|
||||
logger("wall upload: starting new upload", LOGGER_DEBUG);
|
||||
|
||||
if($a->argc > 1) {
|
||||
if(! x($_FILES,'media')) {
|
||||
$nick = $a->argv[1];
|
||||
|
@ -160,10 +162,12 @@ function wall_upload_post(&$a) {
|
|||
if ($_REQUEST['hush']!='yeah') {
|
||||
|
||||
/*existing code*/
|
||||
if(local_user() && intval(get_pconfig(local_user(),'system','plaintext')))
|
||||
if(local_user() && (intval(get_pconfig(local_user(),'system','plaintext')) || x($_REQUEST['nomce'])) ) {
|
||||
echo "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]\n\n";
|
||||
else
|
||||
}
|
||||
else {
|
||||
echo '<br /><br /><a href="' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '" ><img src="' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."\" alt=\"$basename\" /></a><br /><br />";
|
||||
}
|
||||
/*existing code*/
|
||||
|
||||
} else {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
<div class='field checkbox'>
|
||||
<div class='field checkbox' id='div_id_$field.0'>
|
||||
<label for='id_$field.0'>$field.1</label>
|
||||
<input type="checkbox" name='$field.0' id='id_$field.0' value="1" {{ if $field.2 }}checked="checked"{{ endif }}>
|
||||
<span class='field_help'>$field.3</span>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<script type="text/javascript">
|
||||
tinyMCE.init({ mode : "none"});
|
||||
</script>-->
|
||||
<script type="text/javascript" src="$baseurl/view/theme/frost/js/jquery.divgrow-1.3.1.min.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/frost-mobile/js/main.min.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/js/jquery.textinputs.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/frost-mobile/js/fk.autocomplete.min.js" ></script>
|
||||
<!--<script type="text/javascript" src="$baseurl/library/fancybox/jquery.fancybox-1.3.4.pack.js"></script>-->
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
<div class='field checkbox'>
|
||||
<div class='field checkbox' id='div_id_$field.0'>
|
||||
<label id='label_id_$field.0' for='id_$field.0'>$field.1</label>
|
||||
<input type="checkbox" name='$field.0' id='id_$field.0' value="1" {{ if $field.2 }}checked="checked"{{ endif }}><br />
|
||||
<span class='field_help' id='help_id_$field.0'>$field.3</span>
|
||||
|
|
|
@ -29,5 +29,5 @@
|
|||
</script>
|
||||
<script type="text/javascript" src="$baseurl/js/jquery.js" ></script>
|
||||
<script type="text/javascript">var $j = jQuery.noConflict();</script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/frost-mobile/js/main.min.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/frost-mobile/js/jquery.divgrow-1.3.1.f1.min.js" ></script>
|
||||
|
||||
|
|
92
view/theme/frost-mobile/js/jquery.divgrow-1.3.1.f1.js
Normal file
92
view/theme/frost-mobile/js/jquery.divgrow-1.3.1.f1.js
Normal file
|
@ -0,0 +1,92 @@
|
|||
/*
|
||||
* Copyright (c) 2010 Simon Hibbard
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Version: V1.3.1-f1
|
||||
* Release: 22-12-2010
|
||||
* Based on jQuery 1.4.2
|
||||
*
|
||||
* 2012-10-29: Modified by Zach Prezkuta to allow dynamic full heights
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
var divgrowid = 0;
|
||||
$.fn.divgrow = function (options) {
|
||||
var options = $.extend({}, { initialHeight: 100, moreText: "+ Show More", lessText: "- Show Less", speed: 1000, showBrackets: true }, options);
|
||||
|
||||
return this.each(function () {
|
||||
divgrowid++;
|
||||
|
||||
obj = $(this);
|
||||
|
||||
//var fullHeight = obj.height() + 10;
|
||||
|
||||
obj.css('height', options.initialHeight).css('overflow', 'hidden');
|
||||
if (options.showBrackets) {
|
||||
obj.after('<p class="divgrow-brackets">[…]</p><a href="#" class="divgrow-showmore' + " divgrow-obj-" + divgrowid + '"' + '></a>');
|
||||
}
|
||||
else {
|
||||
obj.after('<a href="#" class="divgrow-showmore' + " divgrow-obj-" + divgrowid + '"' + '></a>');
|
||||
}
|
||||
$("a.divgrow-showmore").html(options.moreText);
|
||||
|
||||
$("." + "divgrow-obj-" + divgrowid).toggle(function () {
|
||||
//alert(obj.attr('class'));
|
||||
// Set the height from the elements rel value
|
||||
//var height = $(this).prevAll("div:first").attr('rel');
|
||||
|
||||
var fullHeight = $(this).prevAll("div:first")[0].scrollHeight + 10;
|
||||
$(this).prevAll("div:first").animate({ height: fullHeight + "px" }, options.speed, function () { // Animation complete.
|
||||
|
||||
// Hide the overlay text when expanded, change the link text
|
||||
if (options.showBrackets) {
|
||||
$(this).nextAll("p.divgrow-brackets:first").fadeOut();
|
||||
}
|
||||
$(this).nextAll("a.divgrow-showmore:first").html(options.lessText);
|
||||
|
||||
});
|
||||
|
||||
|
||||
}, function () {
|
||||
|
||||
$(this).prevAll("div:first").stop(true, false).animate({ height: options.initialHeight }, options.speed, function () { // Animation complete.
|
||||
|
||||
// show the overlay text while closed, change the link text
|
||||
if (options.showBrackets) {
|
||||
$(this).nextAll("p.divgrow-brackets:first").stop(true, false).fadeIn();
|
||||
}
|
||||
$(this).nextAll("a.divgrow-showmore:first").stop(true, false).html(options.moreText);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
|
||||
|
||||
|
30
view/theme/frost-mobile/js/jquery.divgrow-1.3.1.f1.min.js
vendored
Normal file
30
view/theme/frost-mobile/js/jquery.divgrow-1.3.1.f1.min.js
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
/*
|
||||
* Copyright (c) 2010 Simon Hibbard
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*//*
|
||||
* Version: V1.3.1-f1
|
||||
* Release: 22-12-2010
|
||||
* Based on jQuery 1.4.2
|
||||
*
|
||||
* 2012-10-29: Modified by Zach Prezkuta to allow dynamic full heights
|
||||
*/(function(e){var t=0;e.fn.divgrow=function(n){var n=e.extend({},{initialHeight:100,moreText:"+ Show More",lessText:"- Show Less",speed:1e3,showBrackets:!0},n);return this.each(function(){t++,obj=e(this),obj.css("height",n.initialHeight).css("overflow","hidden"),n.showBrackets?obj.after('<p class="divgrow-brackets">[…]</p><a href="#" class="divgrow-showmore divgrow-obj-'+t+'"'+"></a>"):obj.after('<a href="#" class="divgrow-showmore divgrow-obj-'+t+'"'+"></a>"),e("a.divgrow-showmore").html(n.moreText),e(".divgrow-obj-"+t).toggle(function(){var t=e(this).prevAll("div:first")[0].scrollHeight+10;e(this).prevAll("div:first").animate({height:t+"px"},n.speed,function(){n.showBrackets&&e(this).nextAll("p.divgrow-brackets:first").fadeOut(),e(this).nextAll("a.divgrow-showmore:first").html(n.lessText)})},function(){e(this).prevAll("div:first").stop(!0,!1).animate({height:n.initialHeight},n.speed,function(){n.showBrackets&&e(this).nextAll("p.divgrow-brackets:first").stop(!0,!1).fadeIn(),e(this).nextAll("a.divgrow-showmore:first").stop(!0,!1).html(n.moreText)})})})}})(jQuery);
|
|
@ -38,6 +38,8 @@
|
|||
|
||||
msie = $j.browser.msie ;
|
||||
|
||||
collapseHeight();
|
||||
|
||||
/* setup tooltips *//*
|
||||
$j("a,.tt").each(function(){
|
||||
var e = $j(this);
|
||||
|
@ -333,20 +335,7 @@
|
|||
});
|
||||
|
||||
|
||||
var bimgs = $j(".wall-item-body > img").not(function() { return this.complete; });
|
||||
var bimgcount = bimgs.length;
|
||||
|
||||
if (bimgcount) {
|
||||
bimgs.load(function() {
|
||||
bimgcount--;
|
||||
if (! bimgcount) {
|
||||
collapseHeight();
|
||||
|
||||
}
|
||||
});
|
||||
} else {
|
||||
collapseHeight();
|
||||
}
|
||||
collapseHeight();
|
||||
|
||||
// reset vars for inserting individual items
|
||||
|
||||
|
@ -385,14 +374,18 @@
|
|||
});
|
||||
}
|
||||
|
||||
function collapseHeight() {
|
||||
$j(".wall-item-body").each(function() {
|
||||
if($j(this).height() > 310) {
|
||||
if(! $j(this).hasClass('divmore')) {
|
||||
$j(this).divgrow({ initialHeight: 300, showBrackets: false, speed: 0 });
|
||||
$j(this).addClass('divmore');
|
||||
}
|
||||
}
|
||||
function collapseHeight(elems) {
|
||||
var elemName = '.wall-item-body:not(.divmore)';
|
||||
if(typeof elems != 'undefined') {
|
||||
elemName = elems + ' ' + elemName;
|
||||
}
|
||||
$j(elemName).each(function() {
|
||||
if($j(this).height() > 350) {
|
||||
$j('html').height($j('html').height());
|
||||
$j(this).divgrow({ initialHeight: 300, showBrackets: false, speed: 0 });
|
||||
$j(this).addClass('divmore');
|
||||
$j('html').height('auto');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -542,6 +535,7 @@
|
|||
else {
|
||||
$j("#collapsed-comments-" + id).show();
|
||||
$j("#hide-comments-" + id).html(window.showFewer);
|
||||
collapseHeight("#collapsed-comments-" + id);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
2
view/theme/frost-mobile/js/main.min.js
vendored
2
view/theme/frost-mobile/js/main.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -9,7 +9,7 @@ $j(document).ready(function() {
|
|||
case 'jot-header':
|
||||
var uploader = new window.AjaxUpload(
|
||||
'wall-image-upload',
|
||||
{ action: 'wall_upload/'+window.nickname,
|
||||
{ action: 'wall_upload/'+window.nickname+'?nomce=1',
|
||||
name: 'userfile',
|
||||
onSubmit: function(file,ext) { $j('#profile-rotator').show(); },
|
||||
onComplete: function(file,response) {
|
||||
|
@ -21,7 +21,7 @@ $j(document).ready(function() {
|
|||
|
||||
var file_uploader = new window.AjaxUpload(
|
||||
'wall-file-upload',
|
||||
{ action: 'wall_attach/'+window.nickname,
|
||||
{ action: 'wall_attach/'+window.nickname+'?nomce=1',
|
||||
name: 'userfile',
|
||||
onSubmit: function(file,ext) { $j('#profile-rotator').show(); },
|
||||
onComplete: function(file,response) {
|
||||
|
@ -34,7 +34,7 @@ $j(document).ready(function() {
|
|||
case 'msg-header':
|
||||
var uploader = new window.AjaxUpload(
|
||||
'prvmail-upload',
|
||||
{ action: 'wall_upload/' + window.nickname,
|
||||
{ action: 'wall_upload/'+window.nickname+'?nomce=1',
|
||||
name: 'userfile',
|
||||
onSubmit: function(file,ext) { $j('#profile-rotator').show(); },
|
||||
onComplete: function(file,response) {
|
||||
|
@ -251,14 +251,14 @@ function insertFormatting(comment,BBcode,id) {
|
|||
textarea.focus();
|
||||
selected = document.selection.createRange();
|
||||
if (BBcode == "url"){
|
||||
selected.text = "["+BBcode+"]" + "http://" + selected.text + "[/"+BBcode+"]";
|
||||
selected.text = "["+BBcode+"=http://]" + selected.text + "[/"+BBcode+"]";
|
||||
} else
|
||||
selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
|
||||
} else if (textarea.selectionStart || textarea.selectionStart == "0") {
|
||||
var start = textarea.selectionStart;
|
||||
var end = textarea.selectionEnd;
|
||||
if (BBcode == "url"){
|
||||
textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + "http://" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
|
||||
textarea.value = textarea.value.substring(0, start) + "["+BBcode+"=http://]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
|
||||
} else
|
||||
textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
|
||||
}
|
||||
|
|
2
view/theme/frost-mobile/js/theme.min.js
vendored
2
view/theme/frost-mobile/js/theme.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -24,15 +24,17 @@ div.jGrowl div.notice {
|
|||
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
|
||||
color: #ffffff;
|
||||
padding-left: 58px;
|
||||
margin: 0px;
|
||||
}
|
||||
div.jGrowl div.info {
|
||||
background: #364e59 url("../../../images/icons/48/info.png") no-repeat 5px center;
|
||||
color: #ffffff;
|
||||
padding-left: 58px;
|
||||
margin: 0px;
|
||||
}
|
||||
#jGrowl.top-right {
|
||||
top: 15px;
|
||||
right: 15px;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
.login-button {
|
||||
|
@ -75,6 +77,16 @@ div.section-wrapper {
|
|||
margin-left: 50px;
|
||||
}
|
||||
|
||||
.field.checkbox label {
|
||||
margin-left: auto;
|
||||
float: auto;
|
||||
/*margin-left: 100px;*/
|
||||
}
|
||||
.field.checkbox input {
|
||||
width: auto;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
#login_openid {
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
<link rel="stylesheet" href="$baseurl/view/theme/frost-mobile/login-style.css" type="text/css" media="all" />
|
||||
<!--<link rel="stylesheet" href="$baseurl/view/theme/frost-mobile/login-style.css" type="text/css" media="all" />-->
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ img { border :0px; }
|
|||
width: 384px;
|
||||
}*/
|
||||
|
||||
code {
|
||||
/*code {
|
||||
font-family: Courier, monospace;
|
||||
white-space: pre;
|
||||
display: block;
|
||||
|
@ -85,6 +85,24 @@ blockquote {
|
|||
margin-right: 0px;
|
||||
width: 260px;
|
||||
overflow: hidden;
|
||||
}*/
|
||||
|
||||
code {
|
||||
font-family: Courier, monospace;
|
||||
white-space: pre;
|
||||
display: block;
|
||||
overflow: auto;
|
||||
border: 1px solid #444;
|
||||
background: #EEE;
|
||||
color: #444;
|
||||
padding: 10px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
background-color: #f4f8f9;
|
||||
border-left: 4px solid #dae4ee;
|
||||
padding: 0.4em;
|
||||
}
|
||||
|
||||
.icollapse-wrapper, .ccollapse-wrapper {
|
||||
|
@ -1163,13 +1181,13 @@ input#dfrn-url {
|
|||
/* background: #EEEEEE;*/
|
||||
}
|
||||
|
||||
.wall-item-like, .wall-item-dislike {
|
||||
.wall-item-like, .wall-item-dislike, .wall-item-boring {
|
||||
font-style: italic;
|
||||
margin-left: 0px;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.wall-item-like.comment, .wall-item-dislike.comment {
|
||||
.wall-item-like.comment, .wall-item-dislike.comment, .wall-item-boring.comment {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
|
@ -1368,10 +1386,19 @@ input#dfrn-url {
|
|||
-webkit-border-radius: 0;
|
||||
}
|
||||
|
||||
.wall-item-content blockquote {
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.comment .wall-item-content img {
|
||||
max-width: 280px;
|
||||
}
|
||||
|
||||
.comment .wall-item-content ul {
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
|
||||
.divgrow-showmore {
|
||||
display: block;
|
||||
clear: both;
|
||||
|
@ -1411,7 +1438,6 @@ input#dfrn-url {
|
|||
}
|
||||
|
||||
.wall-item-body code {
|
||||
width: 260px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
@ -1421,12 +1447,6 @@ input#dfrn-url {
|
|||
/* width: 280px;*/
|
||||
}
|
||||
|
||||
.comment .wall-item-body blockquote {
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
width: 260px;
|
||||
}
|
||||
|
||||
.wall-item-tools {
|
||||
clear: both;
|
||||
/* background-image: url("head.jpg");
|
||||
|
@ -3404,6 +3424,7 @@ aside input[type='text'] {
|
|||
}
|
||||
|
||||
|
||||
|
||||
.field .onoff {
|
||||
float: left;
|
||||
width: 80px;
|
||||
|
@ -3714,6 +3735,7 @@ aside input[type='text'] {
|
|||
background-size: 100% 100%;
|
||||
background-image: url('images/star.png');
|
||||
background-repeat: no-repeat;
|
||||
|
||||
opacity: 0.5;
|
||||
}
|
||||
/*.tagged { background-position: -48px -48px; }*/
|
||||
|
@ -3863,15 +3885,17 @@ div.jGrowl div.notice {
|
|||
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
|
||||
color: #ffffff;
|
||||
padding-left: 58px;
|
||||
margin: 0px;
|
||||
}
|
||||
div.jGrowl div.info {
|
||||
background: #364e59 url("../../../images/icons/48/info.png") no-repeat 5px center;
|
||||
color: #ffffff;
|
||||
padding-left: 58px;
|
||||
margin: 0px;
|
||||
}
|
||||
#jGrowl.top-right {
|
||||
top: 15px;
|
||||
right: 15px;
|
||||
right: 10px;
|
||||
}
|
||||
.qcomment {
|
||||
border: 1px solid #EEE;
|
||||
|
@ -4009,7 +4033,7 @@ width:650px;
|
|||
}
|
||||
}*/
|
||||
|
||||
@media only screen and (min-device-width: 768px)
|
||||
/*@media only screen and (min-device-width: 768px)
|
||||
{
|
||||
.wall-item-body code {
|
||||
width: 700px;
|
||||
|
@ -4023,5 +4047,5 @@ width:650px;
|
|||
width: 700px;
|
||||
}
|
||||
|
||||
}
|
||||
}*/
|
||||
|
||||
|
|
|
@ -4,29 +4,27 @@
|
|||
* Name: Frost--mobile version
|
||||
* Description: Like frosted glass
|
||||
* Credits: Navigation icons taken from http://iconza.com. Other icons taken from http://thenounproject.com, including: Like, Dislike, Black Lock, Unlock, Pencil, Tag, Camera, Paperclip (Marie Coons), Folder (Sergio Calcara), Chain-link (Andrew Fortnum), Speaker (Harold Kim), Quotes (Henry Ryder), Video Camera (Anas Ramadan), and Left Arrow, Right Arrow, and Delete X (all three P.J. Onori). All under Attribution (CC BY 3.0). Others from The Noun Project are public domain or No Rights Reserved (CC0).
|
||||
* Version: Version 0.2.15
|
||||
* Version: Version 0.2.16
|
||||
* Author: Zach P <techcity@f.shmuz.in>
|
||||
* Maintainer: Zach P <techcity@f.shmuz.in>
|
||||
*/
|
||||
|
||||
$a->theme_info = array();
|
||||
$a->sourcename = 'Friendica mobile web';
|
||||
$a->videowidth = 250;
|
||||
$a->videoheight = 200;
|
||||
$a->theme_thread_allow = false;
|
||||
$a->force_max_items = 10;
|
||||
|
||||
function frost_mobile_init(&$a) {
|
||||
function frost_mobile_content_loaded(&$a) {
|
||||
|
||||
// I could do this in style.php, but by having the CSS in a file the browser will cache it,
|
||||
// making pages load faster
|
||||
if( $a->module === 'home' || $a->module === 'login' || $a->module === 'register' || $a->module === 'lostpass' ) {
|
||||
$a->page['htmlhead'] = str_replace('$stylesheet', $a->get_baseurl() . '/view/theme/frost-mobile/login-style.css', $a->page['htmlhead']);
|
||||
|
||||
// $a->page['htmlhead'] = str_replace('$stylesheet', $a->get_baseurl() . '/view/theme/frost-mobile/login-style.css', $a->page['htmlhead']);
|
||||
$a->theme['stylesheet'] = $a->get_baseurl() . '/view/theme/frost-mobile/login-style.css';
|
||||
}
|
||||
if( $a->module === 'login' )
|
||||
$a->page['end'] .= '<script type="text/javascript"> $j(document).ready(function() { $j("#id_" + window.loginName).focus();} );</script>';
|
||||
|
||||
|
||||
$a->sourcename = 'Friendica mobile web';
|
||||
$a->videowidth = 250;
|
||||
$a->videoheight = 200;
|
||||
$a->theme_thread_allow = false;
|
||||
$a->force_max_items = 10;
|
||||
|
||||
}
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
{{ if $item.owner_url }}
|
||||
<div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" >
|
||||
<a href="$item.owner_url" target="redir" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id">
|
||||
<img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" /></a>
|
||||
<img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" onError="this.src='../../../images/person-48.jpg';" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$item.wall" /></div>
|
||||
{{ endif }}
|
||||
|
@ -21,7 +22,8 @@
|
|||
onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">-->
|
||||
<div class="wall-item-photo-wrapper{{ if $item.owner_url }} wwfrom{{ endif }}" id="wall-item-photo-wrapper-$item.id">
|
||||
<a href="$item.profile_url" target="redir" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
|
||||
<img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
|
||||
<img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" onError="this.src='../../../images/person-48.jpg';" />
|
||||
</a>
|
||||
<!--<span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
|
||||
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
|
||||
<ul class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
</script>
|
||||
<script type="text/javascript" src="$baseurl/js/jquery.js" ></script>
|
||||
<script type="text/javascript">var $j = jQuery.noConflict();</script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/frost/js/jquery.divgrow-1.3.1.min.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/frost/js/jquery.divgrow-1.3.1.f1.min.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/js/jquery.textinputs.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/frost/js/fk.autocomplete.min.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/library/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
|
||||
|
@ -15,6 +15,6 @@
|
|||
<script type="text/javascript" src="$baseurl/library/jgrowl/jquery.jgrowl_minimized.js"></script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/frost/js/acl.min.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/js/webtoolkit.base64.min.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/frost/js/theme.min.js"></script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/frost/js/main.min.js" ></script>
|
||||
<script type="text/javascript" src="$baseurl/view/theme/frost/js/theme.min.js"></script>
|
||||
|
||||
|
|
92
view/theme/frost/js/jquery.divgrow-1.3.1.f1.js
Normal file
92
view/theme/frost/js/jquery.divgrow-1.3.1.f1.js
Normal file
|
@ -0,0 +1,92 @@
|
|||
/*
|
||||
* Copyright (c) 2010 Simon Hibbard
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Version: V1.3.1-f1
|
||||
* Release: 22-12-2010
|
||||
* Based on jQuery 1.4.2
|
||||
*
|
||||
* 2012-10-29: Modified by Zach Prezkuta to allow dynamic full heights
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
var divgrowid = 0;
|
||||
$.fn.divgrow = function (options) {
|
||||
var options = $.extend({}, { initialHeight: 100, moreText: "+ Show More", lessText: "- Show Less", speed: 1000, showBrackets: true }, options);
|
||||
|
||||
return this.each(function () {
|
||||
divgrowid++;
|
||||
|
||||
obj = $(this);
|
||||
|
||||
//var fullHeight = obj.height() + 10;
|
||||
|
||||
obj.css('height', options.initialHeight).css('overflow', 'hidden');
|
||||
if (options.showBrackets) {
|
||||
obj.after('<p class="divgrow-brackets">[…]</p><a href="#" class="divgrow-showmore' + " divgrow-obj-" + divgrowid + '"' + '></a>');
|
||||
}
|
||||
else {
|
||||
obj.after('<a href="#" class="divgrow-showmore' + " divgrow-obj-" + divgrowid + '"' + '></a>');
|
||||
}
|
||||
$("a.divgrow-showmore").html(options.moreText);
|
||||
|
||||
$("." + "divgrow-obj-" + divgrowid).toggle(function () {
|
||||
//alert(obj.attr('class'));
|
||||
// Set the height from the elements rel value
|
||||
//var height = $(this).prevAll("div:first").attr('rel');
|
||||
|
||||
var fullHeight = $(this).prevAll("div:first")[0].scrollHeight + 10;
|
||||
$(this).prevAll("div:first").animate({ height: fullHeight + "px" }, options.speed, function () { // Animation complete.
|
||||
|
||||
// Hide the overlay text when expanded, change the link text
|
||||
if (options.showBrackets) {
|
||||
$(this).nextAll("p.divgrow-brackets:first").fadeOut();
|
||||
}
|
||||
$(this).nextAll("a.divgrow-showmore:first").html(options.lessText);
|
||||
|
||||
});
|
||||
|
||||
|
||||
}, function () {
|
||||
|
||||
$(this).prevAll("div:first").stop(true, false).animate({ height: options.initialHeight }, options.speed, function () { // Animation complete.
|
||||
|
||||
// show the overlay text while closed, change the link text
|
||||
if (options.showBrackets) {
|
||||
$(this).nextAll("p.divgrow-brackets:first").stop(true, false).fadeIn();
|
||||
}
|
||||
$(this).nextAll("a.divgrow-showmore:first").stop(true, false).html(options.moreText);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
|
||||
|
||||
|
30
view/theme/frost/js/jquery.divgrow-1.3.1.f1.min.js
vendored
Normal file
30
view/theme/frost/js/jquery.divgrow-1.3.1.f1.min.js
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
/*
|
||||
* Copyright (c) 2010 Simon Hibbard
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*//*
|
||||
* Version: V1.3.1-f1
|
||||
* Release: 22-12-2010
|
||||
* Based on jQuery 1.4.2
|
||||
*
|
||||
* 2012-10-29: Modified by Zach Prezkuta to allow dynamic full heights
|
||||
*/(function(e){var t=0;e.fn.divgrow=function(n){var n=e.extend({},{initialHeight:100,moreText:"+ Show More",lessText:"- Show Less",speed:1e3,showBrackets:!0},n);return this.each(function(){t++,obj=e(this),obj.css("height",n.initialHeight).css("overflow","hidden"),n.showBrackets?obj.after('<p class="divgrow-brackets">[…]</p><a href="#" class="divgrow-showmore divgrow-obj-'+t+'"'+"></a>"):obj.after('<a href="#" class="divgrow-showmore divgrow-obj-'+t+'"'+"></a>"),e("a.divgrow-showmore").html(n.moreText),e(".divgrow-obj-"+t).toggle(function(){var t=e(this).prevAll("div:first")[0].scrollHeight+10;e(this).prevAll("div:first").animate({height:t+"px"},n.speed,function(){n.showBrackets&&e(this).nextAll("p.divgrow-brackets:first").fadeOut(),e(this).nextAll("a.divgrow-showmore:first").html(n.lessText)})},function(){e(this).prevAll("div:first").stop(!0,!1).animate({height:n.initialHeight},n.speed,function(){n.showBrackets&&e(this).nextAll("p.divgrow-brackets:first").stop(!0,!1).fadeIn(),e(this).nextAll("a.divgrow-showmore:first").stop(!0,!1).html(n.moreText)})})})}})(jQuery);
|
|
@ -38,6 +38,8 @@
|
|||
|
||||
msie = $j.browser.msie ;
|
||||
|
||||
collapseHeight();
|
||||
|
||||
/* setup tooltips *//*
|
||||
$j("a,.tt").each(function(){
|
||||
var e = $j(this);
|
||||
|
@ -359,32 +361,23 @@
|
|||
}
|
||||
/* autocomplete @nicknames */
|
||||
$j(".comment-edit-form textarea").contact_autocomplete(baseurl+"/acl");
|
||||
|
||||
var bimgs = $j(".wall-item-body > img").not(function() { return this.complete; });
|
||||
var bimgcount = bimgs.length;
|
||||
|
||||
if (bimgcount) {
|
||||
bimgs.load(function() {
|
||||
bimgcount--;
|
||||
if (! bimgcount) {
|
||||
collapseHeight();
|
||||
|
||||
}
|
||||
});
|
||||
} else {
|
||||
collapseHeight();
|
||||
}
|
||||
|
||||
collapseHeight();
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
function collapseHeight() {
|
||||
$j(".wall-item-body").each(function() {
|
||||
if($j(this).height() > 410) {
|
||||
if(! $j(this).hasClass('divmore')) {
|
||||
$j(this).divgrow({ initialHeight: 400, showBrackets: false, speed: 300 });
|
||||
$j(this).addClass('divmore');
|
||||
}
|
||||
function collapseHeight(elems) {
|
||||
var elemName = '.wall-item-body:not(.divmore)';
|
||||
if(typeof elems != 'undefined') {
|
||||
elemName = elems + ' ' + elemName;
|
||||
}
|
||||
$j(elemName).each(function() {
|
||||
if($j(this).height() > 450) {
|
||||
$j('html').height($j('html').height());
|
||||
$j(this).divgrow({ initialHeight: 400, showBrackets: false, speed: 0 });
|
||||
$j(this).addClass('divmore');
|
||||
$j('html').height('auto');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -535,6 +528,7 @@
|
|||
else {
|
||||
$j("#collapsed-comments-" + id).show();
|
||||
$j("#hide-comments-" + id).html(window.showFewer);
|
||||
collapseHeight("#collapsed-comments-" + id);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
2
view/theme/frost/js/main.min.js
vendored
2
view/theme/frost/js/main.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -508,14 +508,14 @@ function insertFormatting(comment,BBcode,id) {
|
|||
textarea.focus();
|
||||
selected = document.selection.createRange();
|
||||
if (BBcode == "url"){
|
||||
selected.text = "["+BBcode+"]" + "http://" + selected.text + "[/"+BBcode+"]";
|
||||
selected.text = "["+BBcode+"=http://]" + selected.text + "[/"+BBcode+"]";
|
||||
} else
|
||||
selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
|
||||
} else if (textarea.selectionStart || textarea.selectionStart == "0") {
|
||||
var start = textarea.selectionStart;
|
||||
var end = textarea.selectionEnd;
|
||||
if (BBcode == "url"){
|
||||
textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + "http://" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
|
||||
textarea.value = textarea.value.substring(0, start) + "["+BBcode+"=http://]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
|
||||
} else
|
||||
textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
|
||||
}
|
||||
|
|
2
view/theme/frost/js/theme.min.js
vendored
2
view/theme/frost/js/theme.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -78,6 +78,15 @@ div.section-wrapper {
|
|||
width: 200px;
|
||||
}
|
||||
|
||||
.field.checkbox label {
|
||||
position: auto;
|
||||
/*margin-left: 100px;*/
|
||||
}
|
||||
.field.checkbox input {
|
||||
width: auto;
|
||||
margin-left: 140px;
|
||||
}
|
||||
|
||||
/*.openid input {*/
|
||||
#id_openid_url, .openid input {
|
||||
background: url(login-bg.gif) no-repeat;
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
<link rel="stylesheet" href="$baseurl/view/theme/frost/login-style.css" type="text/css" media="all" />
|
||||
<!--<link rel="stylesheet" href="$baseurl/view/theme/frost/login-style.css" type="text/css" media="all" />-->
|
||||
|
||||
|
|
|
@ -85,6 +85,7 @@ blockquote {
|
|||
}
|
||||
.hide-comments-outer:hover {
|
||||
opacity: 1.0;
|
||||
border-bottom: 1px solid #DDD; /* manually prevent the border from changing color */
|
||||
}
|
||||
.hide-comments {
|
||||
margin-left: 5px;
|
||||
|
@ -3418,18 +3419,18 @@ aside input[type='text'] {
|
|||
background-repeat: no-repeat;
|
||||
}
|
||||
/*.dislike { background-position: -112px 0px;}*/
|
||||
.icon.dislike {
|
||||
.tool.dislike {
|
||||
display: block; width: 15px; height: 16px;/* 23 24*/
|
||||
background-size: 100% 100%;
|
||||
background-image: url('images/disapprove-16.png');
|
||||
background-repeat: no-repeat;
|
||||
opacity: 0.4;
|
||||
}
|
||||
.icon.dislike:hover {
|
||||
.tool.dislike:hover {
|
||||
opacity: 1.0;
|
||||
}
|
||||
/*.like { background-position: -128px 0px;}*/
|
||||
.icon.like {
|
||||
.tool.like {
|
||||
display: block; width: 15px; height: 16px;/* 23 24*/
|
||||
margin-right: 6px;
|
||||
background-size: 100% 100%;
|
||||
|
@ -3437,7 +3438,7 @@ aside input[type='text'] {
|
|||
background-repeat: no-repeat;
|
||||
opacity: 0.4;
|
||||
}
|
||||
.icon.like:hover {
|
||||
.tool.like:hover {
|
||||
opacity: 1.0;
|
||||
}
|
||||
/*.link { background-position: -144px 0px;}*/
|
||||
|
@ -3466,14 +3467,14 @@ aside input[type='text'] {
|
|||
.pause { background-position: -48px -16px;}
|
||||
.play { background-position: -64px -16px;}
|
||||
/*.pencil { background-position: -80px -16px;}*/
|
||||
.icon.pencil {
|
||||
.tool.pencil {
|
||||
display: block; width: 16px; height: 16px;
|
||||
background-size: 100% 100%;
|
||||
background-image: url('images/pencil-16.png');
|
||||
background-repeat: no-repeat;
|
||||
opacity: 0.4;
|
||||
}
|
||||
.icon.pencil:hover {
|
||||
.tool.pencil:hover {
|
||||
opacity: 1.0;
|
||||
}
|
||||
/*.small-pencil { background-position: -96px -16px;}*/
|
||||
|
@ -3488,14 +3489,14 @@ aside input[type='text'] {
|
|||
opacity: 1.0;
|
||||
}
|
||||
/*.recycle { background-position: -112px -16px;}*/
|
||||
.icon.recycle {
|
||||
.tool.recycle {
|
||||
display: block; width: 16px; height: 16px;/*24 23*/
|
||||
background-size: 100% 100%;
|
||||
background-image: url('images/recycle-16.png');
|
||||
background-repeat: no-repeat;
|
||||
opacity: 0.4;
|
||||
}
|
||||
.icon.recycle:hover {
|
||||
.tool.recycle:hover {
|
||||
opacity: 1.0;
|
||||
}
|
||||
/*.remote-link { background-position: -128px -16px;}*/
|
||||
|
@ -3556,32 +3557,32 @@ aside input[type='text'] {
|
|||
|
||||
.off { background-position: 0px -48px; }
|
||||
/*.starred { background-position: -16px -48px; }*/
|
||||
.icon.starred {
|
||||
.tool.starred {
|
||||
display: block; width: 16px; height: 16px;
|
||||
background-size: 100% 100%;
|
||||
background-image: url('images/star-yellow-16.png');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
/*.unstarred { background-position: -32px -48px; }*/
|
||||
.icon.unstarred {
|
||||
.tool.unstarred {
|
||||
display: block; width: 16px; height: 16px;
|
||||
background-size: 100% 100%;
|
||||
background-image: url('images/star-16.png');
|
||||
background-repeat: no-repeat;
|
||||
opacity: 0.4;
|
||||
}
|
||||
.icon.unstarred:hover {
|
||||
.tool.unstarred:hover {
|
||||
opacity: 1.0;
|
||||
}
|
||||
/*.tagged { background-position: -48px -48px; }*/
|
||||
.icon.tagged {
|
||||
.tool.tagged {
|
||||
display: block; width: 16px; height: 16px;
|
||||
background-size: 100% 100%;
|
||||
background-image: url('images/tag-16.png');
|
||||
background-repeat: no-repeat;
|
||||
opacity: 0.4;
|
||||
}
|
||||
.icon.tagged:hover {
|
||||
.tool.tagged:hover {
|
||||
opacity: 1.0;
|
||||
}
|
||||
.yellow { background-position: -64px -48px; }
|
||||
|
|
|
@ -4,25 +4,26 @@
|
|||
* Name: Frost
|
||||
* Description: Like frosted glass
|
||||
* Credits: Navigation icons taken from http://iconza.com. Other icons taken from http://thenounproject.com, including: Like, Dislike, Black Lock, Unlock, Pencil, Tag, Camera, Paperclip (Marie Coons), Folder (Sergio Calcara), Chain-link (Andrew Fortnum), Speaker (Harold Kim), Quotes (Henry Ryder), Video Camera (Anas Ramadan), and Left Arrow, Right Arrow, and Delete X (all three P.J. Onori). All under Attribution (CC BY 3.0). Others from The Noun Project are public domain or No Rights Reserved (CC0).
|
||||
* Version: Version 0.3
|
||||
* Version: Version 0.3.1
|
||||
* Author: Zach P <techcity@f.shmuz.in>
|
||||
* Maintainer: Zach P <techcity@f.shmuz.in>
|
||||
*/
|
||||
|
||||
$a->theme_info = array();
|
||||
$a->videowidth = 400;
|
||||
$a->videoheight = 330;
|
||||
$a->theme_thread_allow = false;
|
||||
|
||||
function frost_init(&$a) {
|
||||
function frost_content_loaded(&$a) {
|
||||
|
||||
// I could do this in style.php, but by having the CSS in a file the browser will cache it,
|
||||
// making pages load faster
|
||||
if( $a->module === 'home' || $a->module === 'login' || $a->module === 'register' || $a->module === 'lostpass' ) {
|
||||
$a->page['htmlhead'] = str_replace('$stylesheet', $a->get_baseurl() . '/view/theme/frost/login-style.css', $a->page['htmlhead']);
|
||||
//$a->page['htmlhead'] = str_replace('$stylesheet', $a->get_baseurl() . '/view/theme/frost/login-style.css', $a->page['htmlhead']);
|
||||
$a->theme['stylesheet'] = $a->get_baseurl() . '/view/theme/frost/login-style.css';
|
||||
}
|
||||
if( $a->module === 'login' )
|
||||
$a->page['end'] .= '<script type="text/javascript"> $j(document).ready(function() { $j("#id_" + window.loginName).focus();} );</script>';
|
||||
|
||||
$a->videowidth = 400;
|
||||
$a->videoheight = 330;
|
||||
$a->theme_thread_allow = false;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
{{ if $item.owner_url }}
|
||||
<div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" >
|
||||
<a href="$item.owner_url" target="redir" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id">
|
||||
<img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" /></a>
|
||||
<img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" onError="this.src='../../../images/person-48.jpg';" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$item.wall" /></div>
|
||||
{{ endif }}
|
||||
|
@ -20,7 +21,8 @@
|
|||
onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
|
||||
onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
|
||||
<a href="$item.profile_url" target="redir" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
|
||||
<img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
|
||||
<img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" onError="this.src='../../../images/person-48.jpg';" />
|
||||
</a>
|
||||
<span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
|
||||
<!-- <div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">-->
|
||||
<ul class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
|
||||
|
@ -63,9 +65,9 @@
|
|||
<div class="wall-item-tools" id="wall-item-tools-$item.id">
|
||||
{{ if $item.vote }}
|
||||
<div class="wall-item-like-buttons" id="wall-item-like-buttons-$item.id">
|
||||
<a href="#" class="icon like" title="$item.vote.like.0" onclick="dolike($item.id,'like'); return false"></a>
|
||||
<a href="#" class="icon dislike" title="$item.vote.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a>
|
||||
{{ if $item.vote.share }}<a href="#" class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }}
|
||||
<a href="#" class="tool like" title="$item.vote.like.0" onclick="dolike($item.id,'like'); return false"></a>
|
||||
<a href="#" class="tool dislike" title="$item.vote.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a>
|
||||
{{ if $item.vote.share }}<a href="#" class="tool recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }}
|
||||
<img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
|
||||
</div>
|
||||
{{ endif }}
|
||||
|
@ -73,12 +75,12 @@
|
|||
<!--<div class="wall-item-links-wrapper">--><a href="$item.plink.href" title="$item.plink.title" target="external-link" class="wall-item-links-wrapper icon remote-link$item.sparkle"></a><!--</div>-->
|
||||
{{ endif }}
|
||||
{{ if $item.edpost }}
|
||||
<a class="editpost icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
|
||||
<a class="editpost tool pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
|
||||
{{ endif }}
|
||||
|
||||
{{ if $item.star }}
|
||||
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
|
||||
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
|
||||
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item tool $item.isstarred" title="$item.star.toggle"></a>
|
||||
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item tool tagged" title="$item.star.tagger"></a>
|
||||
{{ endif }}
|
||||
{{ if $item.filer }}
|
||||
<a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.filer"></a>
|
||||
|
|
Loading…
Reference in a new issue