2011-04-13 23:14:30 -04:00
< ? php
2015-11-29 17:22:05 -05:00
require_once ( " include/contact_selectors.php " );
require_once ( " mod/contacts.php " );
2011-04-13 23:14:30 -04:00
2011-11-09 22:30:14 -05:00
function crepair_init ( & $a ) {
if ( ! local_user ())
return ;
$contact_id = 0 ;
if (( $a -> argc == 2 ) && intval ( $a -> argv [ 1 ])) {
$contact_id = intval ( $a -> argv [ 1 ]);
$r = q ( " SELECT * FROM `contact` WHERE `uid` = %d and `id` = %d LIMIT 1 " ,
intval ( local_user ()),
intval ( $contact_id )
);
if ( ! count ( $r )) {
$contact_id = 0 ;
}
}
if ( ! x ( $a -> page , 'aside' ))
$a -> page [ 'aside' ] = '' ;
if ( $contact_id ) {
$a -> data [ 'contact' ] = $r [ 0 ];
2015-12-01 12:31:08 -05:00
if (( $a -> data [ 'contact' ][ 'network' ] != " " ) AND ( $a -> data [ 'contact' ][ 'network' ] != NETWORK_DFRN )) {
$networkname = format_network_name ( $a -> data [ 'contact' ][ 'network' ], $a -> data [ 'contact' ][ 'url' ]);
} else
$networkname = '' ;
$vcard_widget = replace_macros ( get_markup_template ( " vcard-widget.tpl " ), array (
'$name' => htmlentities ( $a -> data [ 'contact' ][ 'name' ]),
'$photo' => $a -> data [ 'contact' ][ 'photo' ],
'$url' => ( $a -> data [ 'contact' ][ 'network' ] == NETWORK_DFRN ) ? z_root () . " /redir/ " . $a -> data [ 'contact' ][ 'id' ] : $a -> data [ 'contact' ][ 'url' ],
'$addr' => (( $a -> data [ 'contact' ][ 'addr' ] != " " ) ? ( $a -> data [ 'contact' ][ 'addr' ]) : " " ),
'$network_name' => $networkname ,
'$network' => t ( 'Network:' ),
'account_type' => (( $a -> data [ 'contact' ][ 'forum' ] || $a -> data [ 'contact' ][ 'prv' ]) ? t ( 'Forum' ) : '' )
));
2015-05-27 06:44:40 -04:00
$a -> page [ 'aside' ] .= $vcard_widget ;
2011-11-09 22:30:14 -05:00
2014-01-05 10:10:02 -05:00
}
2011-11-09 22:30:14 -05:00
}
2011-04-13 23:14:30 -04:00
function crepair_post ( & $a ) {
if ( ! local_user ())
return ;
$cid = (( $a -> argc > 1 ) ? intval ( $a -> argv [ 1 ]) : 0 );
if ( $cid ) {
$r = q ( " SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1 " ,
intval ( $cid ),
intval ( local_user ())
);
}
if ( ! count ( $r ))
return ;
$contact = $r [ 0 ];
2012-01-12 21:54:35 -05:00
$name = (( x ( $_POST , 'name' )) ? $_POST [ 'name' ] : $contact [ 'name' ]);
2011-09-05 01:40:36 -04:00
$nick = (( x ( $_POST , 'nick' )) ? $_POST [ 'nick' ] : '' );
$url = (( x ( $_POST , 'url' )) ? $_POST [ 'url' ] : '' );
$request = (( x ( $_POST , 'request' )) ? $_POST [ 'request' ] : '' );
$confirm = (( x ( $_POST , 'confirm' )) ? $_POST [ 'confirm' ] : '' );
$notify = (( x ( $_POST , 'notify' )) ? $_POST [ 'notify' ] : '' );
$poll = (( x ( $_POST , 'poll' )) ? $_POST [ 'poll' ] : '' );
$attag = (( x ( $_POST , 'attag' )) ? $_POST [ 'attag' ] : '' );
2011-10-05 23:01:42 -04:00
$photo = (( x ( $_POST , 'photo' )) ? $_POST [ 'photo' ] : '' );
2014-01-05 10:10:02 -05:00
$remote_self = (( x ( $_POST , 'remote_self' )) ? $_POST [ 'remote_self' ] : false );
2014-09-11 17:37:55 -04:00
$nurl = normalise_link ( $url );
2011-04-13 23:14:30 -04:00
2014-09-11 17:37:55 -04:00
$r = q ( " UPDATE `contact` SET `name` = '%s', `nick` = '%s', `url` = '%s', `nurl` = '%s', `request` = '%s', `confirm` = '%s', `notify` = '%s', `poll` = '%s', `attag` = '%s' , `remote_self` = %d
2014-03-11 18:52:32 -04:00
WHERE `id` = % d AND `uid` = % d " ,
2012-01-12 21:54:35 -05:00
dbesc ( $name ),
2011-04-13 23:14:30 -04:00
dbesc ( $nick ),
dbesc ( $url ),
2014-09-11 17:37:55 -04:00
dbesc ( $nurl ),
2011-04-13 23:14:30 -04:00
dbesc ( $request ),
dbesc ( $confirm ),
dbesc ( $notify ),
dbesc ( $poll ),
2011-09-05 01:40:36 -04:00
dbesc ( $attag ),
2014-01-05 10:10:02 -05:00
intval ( $remote_self ),
2011-04-13 23:14:30 -04:00
intval ( $contact [ 'id' ]),
local_user ()
);
2011-10-05 23:01:42 -04:00
if ( $photo ) {
logger ( 'mod-crepair: updating photo from ' . $photo );
2012-12-28 16:51:50 -05:00
require_once ( " include/Photo.php " );
2011-10-05 23:01:42 -04:00
$photos = import_profile_photo ( $photo , local_user (), $contact [ 'id' ]);
$x = q ( " UPDATE `contact` SET `photo` = '%s',
`thumb` = '%s' ,
`micro` = '%s' ,
`name-date` = '%s' ,
`uri-date` = '%s' ,
`avatar-date` = '%s'
2014-03-11 18:52:32 -04:00
WHERE `id` = % d
2011-10-05 23:01:42 -04:00
" ,
dbesc ( $photos [ 0 ]),
dbesc ( $photos [ 1 ]),
dbesc ( $photos [ 2 ]),
dbesc ( datetime_convert ()),
dbesc ( datetime_convert ()),
dbesc ( datetime_convert ()),
intval ( $contact [ 'id' ])
);
}
2011-04-13 23:14:30 -04:00
if ( $r )
2011-05-23 05:39:57 -04:00
info ( t ( 'Contact settings applied.' ) . EOL );
2011-04-13 23:14:30 -04:00
else
notice ( t ( 'Contact update failed.' ) . EOL );
2011-10-05 23:01:42 -04:00
2011-04-13 23:14:30 -04:00
return ;
}
function crepair_content ( & $a ) {
if ( ! local_user ()) {
notice ( t ( 'Permission denied.' ) . EOL );
return ;
}
$cid = (( $a -> argc > 1 ) ? intval ( $a -> argv [ 1 ]) : 0 );
if ( $cid ) {
$r = q ( " SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1 " ,
intval ( $cid ),
intval ( local_user ())
);
}
if ( ! count ( $r )) {
notice ( t ( 'Contact not found.' ) . EOL );
return ;
}
$contact = $r [ 0 ];
2015-10-24 09:57:46 -04:00
$warning = t ( '<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working.' );
$info = t ( 'Please use your browser \'Back\' button <strong>now</strong> if you are uncertain what to do on this page.' );
2011-04-13 23:14:30 -04:00
2015-10-24 09:57:46 -04:00
$returnaddr = " contacts/ $cid " ;
2012-01-12 21:54:35 -05:00
2014-09-06 11:22:59 -04:00
$allow_remote_self = get_config ( 'system' , 'allow_users_remote_self' );
// Disable remote self for everything except feeds.
// There is an issue when you repeat an item from maybe twitter and you got comments from friendica and twitter
// Problem is, you couldn't reply to both networks.
2014-10-28 20:42:43 -04:00
if ( ! in_array ( $contact [ 'network' ], array ( NETWORK_FEED , NETWORK_DFRN , NETWORK_DIASPORA )))
2014-09-06 11:22:59 -04:00
$allow_remote_self = false ;
2014-10-22 02:30:16 -04:00
if ( $contact [ 'network' ] == NETWORK_FEED )
$remote_self_options = array ( '0' => t ( 'No mirroring' ), '1' => t ( 'Mirror as forwarded posting' ), '2' => t ( 'Mirror as my own posting' ));
2014-10-28 20:42:43 -04:00
else
2014-10-28 20:05:09 -04:00
$remote_self_options = array ( '0' => t ( 'No mirroring' ), '2' => t ( 'Mirror as my own posting' ));
2014-10-22 02:30:16 -04:00
2015-04-11 17:51:47 -04:00
$update_profile = in_array ( $contact [ 'network' ], array ( NETWORK_DFRN , NETWORK_DSPR , NETWORK_OSTATUS ));
2015-11-29 17:22:05 -05:00
$tab_str = contact_tabs ( $a , $contact [ 'id' ], 3 );
2011-05-11 07:37:13 -04:00
$tpl = get_markup_template ( 'crepair.tpl' );
2011-04-13 23:14:30 -04:00
$o .= replace_macros ( $tpl , array (
2015-11-29 17:22:05 -05:00
//'$title' => t('Repair Contact Settings'),
'$tab_str' => $tab_str ,
2015-10-24 09:57:46 -04:00
'$warning' => $warning ,
'$info' => $info ,
'$returnaddr' => $returnaddr ,
'$return' => t ( 'Return to contact editor' ),
2015-04-11 17:51:47 -04:00
'$update_profile' => update_profile ,
2015-04-12 04:32:02 -04:00
'$udprofilenow' => t ( 'Refetch contact data' ),
2011-04-13 23:14:30 -04:00
'$label_name' => t ( 'Name' ),
'$label_nick' => t ( 'Account Nickname' ),
2011-09-05 01:40:36 -04:00
'$label_attag' => t ( '@Tagname - overrides Name/Nickname' ),
2011-04-13 23:14:30 -04:00
'$label_url' => t ( 'Account URL' ),
'$label_request' => t ( 'Friend Request URL' ),
'$label_confirm' => t ( 'Friend Confirm URL' ),
'$label_notify' => t ( 'Notification Endpoint URL' ),
'$label_poll' => t ( 'Poll/Feed URL' ),
2011-10-05 23:01:42 -04:00
'$label_photo' => t ( 'New photo from this URL' ),
2013-12-22 11:05:49 -05:00
'$label_remote_self' => t ( 'Remote Self' ),
2014-09-06 11:22:59 -04:00
'$allow_remote_self' => $allow_remote_self ,
2015-10-24 09:57:46 -04:00
'$remote_self' => array ( 'remote_self' ,
t ( 'Mirror postings from this contact' ),
$contact [ 'remote_self' ],
t ( 'Mark this contact as remote_self, this will cause friendica to repost new entries from this contact.' ),
$remote_self_options
),
2015-10-07 18:25:55 -04:00
'$contact_name' => htmlentities ( $contact [ 'name' ]),
'$contact_nick' => htmlentities ( $contact [ 'nick' ]),
2011-04-13 23:14:30 -04:00
'$contact_id' => $contact [ 'id' ],
'$contact_url' => $contact [ 'url' ],
'$request' => $contact [ 'request' ],
'$confirm' => $contact [ 'confirm' ],
'$notify' => $contact [ 'notify' ],
'$poll' => $contact [ 'poll' ],
2011-09-05 01:40:36 -04:00
'$contact_attag' => $contact [ 'attag' ],
2011-04-13 23:14:30 -04:00
'$lbl_submit' => t ( 'Submit' )
2015-10-24 09:57:46 -04:00
));
2011-04-13 23:14:30 -04:00
return $o ;
2011-05-23 05:39:57 -04:00
}