Hjälp med bookmarklet till Pligg
Postat: 04 nov 2008, 19:17
Jag har ett problem. Jag försöker få en bookmarklet att fungera till Pligg. Jag vill att bokmarkleten ska posta länk, titel, ett utdrag av texten och kanske även taggar, men bara titel och länk fungerar. Är det någon som vet hur man ska anpassa bookmarkleten för att få med ett utdrag av texten? Det hjälper inte att använda en bookmarklet från sajter som åstadkommer detta, men jag vet intevarför.
Här är några exempel på bookmarklets som fungerar (utan att posta ett utdrag av texten då):
Här är ett exempel på en bookmarklet som fungerar på en liknande sajt, men inte på Pligg:
Här är Pliggs php-fil för att posta länkar (submit.php):
Snälla, hjälp mig! 
Här är några exempel på bookmarklets som fungerar (utan att posta ett utdrag av texten då):
Kod: Markera allt
javascript:void(document.location%20=%20('http://www.example.com/Pligg%20Beta%209.9.5/submit.php?url='.concat(encodeURIComponent(document.location))))
Kod: Markera allt
javascript:%20d=document;void(window.open('http://www.example.com/post?url='+encodeURIComponent(d.location.href)+'&title='+encodeURIComponent(d.title)+'&description='+encodeURIComponent(d.selection?d.selection.createRange().text:d.getSelection())))
Kod: Markera allt
<?php
// The source code packaged with this file is Free Software, Copyright (C) 2005 by
// Ricardo Galli <gallir at uib dot es>.
// It's licensed under the AFFERO GENERAL PUBLIC LICENSE unless stated otherwise.
// You can get copies of the licenses here:
// http://www.affero.org/oagpl.html
// AFFERO GENERAL PUBLIC LICENSE is also included in the file called "COPYING".
include_once('Smarty.class.php');
$main_smarty = new Smarty;
include('config.php');
include(mnminclude.'html1.php');
include(mnminclude.'ts.php');
include(mnminclude.'link.php');
include(mnminclude.'tags.php');
include(mnminclude.'smartyvariables.php');
// html tags allowed during submit
$main_smarty->assign('Story_Content_Tags_To_Allow', htmlspecialchars(Story_Content_Tags_To_Allow));
// breadcrumbs and page titles
$navwhere['text1'] = $main_smarty->get_config_vars('PLIGG_Visual_Breadcrumb_Submit');
$navwhere['link1'] = getmyurl('submit', '');
$main_smarty->assign('navbar_where', $navwhere);
$main_smarty->assign('posttitle', " / " . $main_smarty->get_config_vars('PLIGG_Visual_Breadcrumb_Submit'));
$main_smarty = do_sidebar($main_smarty);
// make sure user is logged in
force_authentication();
// module system hook
$vars = '';
check_actions('submit_post_authentication', $vars);
// this is for direct links from weblogs
if(empty($_POST['phase']) && !empty($_GET['url'])) {
$_POST['phase'] = 1;
$_POST['url'] = $_GET['url'];
$_POST['randkey'] = rand(10000,10000000);
if(!empty($_GET['trackback']))
$_POST['trackback'] = $_GET['trackback'];
}
// determine which step of the submit process we are on
if(isset($_POST["phase"])) {
$phase = $_POST["phase"];
}
else {
$phase = 0;
}
// If show URL input box is disabled, go straight to step 2
if($phase == 0 && Submit_Show_URL_Input == false) {
$phase = 1;
}
switch ($phase) {
case 0:
do_submit0();
break;
case 1:
do_submit1();
break;
case 2:
do_submit2();
break;
case 3:
do_submit3();
break;
}
exit;
// enter URL before submit process
function do_submit0() {
global $main_smarty, $the_template;
$main_smarty->assign('submit_rand', rand(10000,10000000));
$main_smarty->assign('Submit_Show_URL_Input', Submit_Show_URL_Input);
$main_smarty->assign('Submit_Require_A_URL', Submit_Require_A_URL);
define('pagename', 'submit');
$main_smarty->assign('pagename', pagename);
$main_smarty->assign('tpl_center', $the_template . '/submit_step_1');
$vars = '';
check_actions('do_submit0', $vars);
$main_smarty->display($the_template . '/pligg.tpl');
}
// submit step 1
function do_submit1() {
global $main_smarty, $db, $dblang, $current_user, $the_template;
$url = htmlspecialchars(strip_tags(trim($_POST['url'])));
$url = str_replace('&', '&', $url);
$url = html_entity_decode($url);
$linkres=new Link;
$linkres->randkey = strip_tags($_POST['randkey']);
if(Submit_Show_URL_Input == false) {
$url = "http://";
$linkres->randkey = rand(10000,10000000);
}
$Submit_Show_URL_Input = Submit_Show_URL_Input;
if($url == "http://" || $url == ""){
$Submit_Show_URL_Input = false;
}
$main_smarty->assign('randkey', $linkres->randkey);
$main_smarty->assign('submit_url', $url);
$main_smarty->assign('Submit_Show_URL_Input', $Submit_Show_URL_Input);
$main_smarty->assign('Submit_Require_A_URL', Submit_Require_A_URL);
$edit = false;
$linkres->get($url);
$trackback=$linkres->trackback;
if($url == "http://" || $url == ""){
if(Submit_Require_A_URL == false){
$linkres->valid = true;}
else{
$linkres->valid = false;
}
$linkres->url_title = "";
}
$vars = array("url" => $url,'linkres'=>$linkres);
check_actions('submit_validating_url', $vars);
$linkres = $vars['linkres'];
if(!$linkres->valid) {
$main_smarty->assign('submit_error', 'invalidurl');
$main_smarty->assign('tpl_center', $the_template . '/submit_errors');
$main_smarty->display($the_template . '/pligg.tpl');
return;
}
if(Submit_Require_A_URL == true || ($url != "http://" && $url != "")){
if($linkres->duplicates($url) > 0) {
$main_smarty->assign('submit_search', getmyurl("search_url", htmlentities($url)));
$main_smarty->assign('submit_error', 'dupeurl');
$main_smarty->assign('tpl_center', $the_template . '/submit_errors');
define('pagename', 'submit');
$main_smarty->assign('pagename', pagename);
$main_smarty->display($the_template . '/pligg.tpl');
return;
}
}
$vars = array("url" => $url);
check_actions('submit_validating_url', $vars);
totals_adjust_count('discard', 1);
$linkres->status='discard';
$linkres->author=$current_user->user_id;
$linkres->store();
$main_smarty->assign('StorySummary_ContentTruncate', StorySummary_ContentTruncate);
$main_smarty->assign('SubmitSummary_Allow_Edit', SubmitSummary_Allow_Edit);
$main_smarty->assign('enable_tags', Enable_Tags);
$main_smarty->assign('submit_url_title', $linkres->url_title);
$main_smarty->assign('submit_id', $linkres->id);
$main_smarty->assign('submit_type', $linkres->type());
if(isset($link_title)){$main_smarty->assign('submit_title', $link_title);}
if(isset($link_content)){$main_smarty->assign('submit_content', $link_content);}
$main_smarty->assign('submit_trackback', $trackback);
$main_smarty->assign('submit_link_field1', $linkres->link_field1);
$main_smarty->assign('submit_link_field2', $linkres->link_field2);
$main_smarty->assign('submit_link_field3', $linkres->link_field3);
$main_smarty->assign('submit_link_field4', $linkres->link_field4);
$main_smarty->assign('submit_link_field5', $linkres->link_field5);
$main_smarty->assign('submit_link_field6', $linkres->link_field6);
$main_smarty->assign('submit_link_field7', $linkres->link_field7);
$main_smarty->assign('submit_link_field8', $linkres->link_field8);
$main_smarty->assign('submit_link_field9', $linkres->link_field9);
$main_smarty->assign('submit_link_field10', $linkres->link_field10);
$main_smarty->assign('submit_link_field11', $linkres->link_field11);
$main_smarty->assign('submit_link_field12', $linkres->link_field12);
$main_smarty->assign('submit_link_field13', $linkres->link_field13);
$main_smarty->assign('submit_link_field14', $linkres->link_field14);
$main_smarty->assign('submit_link_field15', $linkres->link_field15);
include_once(mnminclude.'dbtree.php');
$array = tree_to_array(0, table_categories, FALSE);
$main_smarty->assign('submit_lastspacer', 0);
$main_smarty->assign('submit_cat_array', $array);
$main_smarty->assign('Spell_Checker', Spell_Checker);
$main_smarty->assign('tpl_extra_fields', $the_template . '/submit_extra_fields');
$main_smarty->assign('tpl_center', $the_template . '/submit_step_2');
define('pagename', 'submit');
$main_smarty->assign('pagename', pagename);
$vars = '';
check_actions('do_submit1', $vars);
$main_smarty->display($the_template . '/pligg.tpl');
}
// submit step 2
function do_submit2() {
global $db, $main_smarty, $dblang, $the_template, $linkres, $current_user;
$main_smarty->assign('auto_vote', auto_vote);
$main_smarty->assign('Submit_Show_URL_Input', Submit_Show_URL_Input);
$main_smarty->assign('Submit_Require_A_URL', Submit_Require_A_URL);
$linkres=new Link;
$linkres->id=$link_id = $_POST['id'];
if(!$linkres->verify_ownership($current_user->user_id)){
die($main_smarty->get_config_vars('PLIGG_Visual_Submit2Errors_NoAccess'));
}
$linkres->read(FALSE);
if($linkres->votes($current_user->user_id) == 0 && auto_vote == true) {
$linkres->insert_vote($current_user->user_id, '10');
$linkres->store_basic();
$linkres->read(FALSE);
}
$linkres->category=$_POST['category'];
$linkres->title = strip_tags(trim($_POST['title']));
$linkres->title_url = makeUrlFriendly($linkres->title);
$linkres->tags = tags_normalize_string(strip_tags(trim($_POST['tags'])));
$linkres->content = strip_tags(trim($_POST['bodytext']), Story_Content_Tags_To_Allow);
$linkres->content = str_replace("\n", "<br />", $linkres->content);
// Steef 2k7-07 security fix start ----------------------------------------------------------
if(isset($_POST['link_field1'])){$linkres->link_field1 = strip_tags(trim($_POST['link_field1']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field2'])){$linkres->link_field2 = strip_tags(trim($_POST['link_field2']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field3'])){$linkres->link_field3 = strip_tags(trim($_POST['link_field3']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field4'])){$linkres->link_field4 = strip_tags(trim($_POST['link_field4']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field5'])){$linkres->link_field5 = strip_tags(trim($_POST['link_field5']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field6'])){$linkres->link_field6 = strip_tags(trim($_POST['link_field6']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field7'])){$linkres->link_field7 = strip_tags(trim($_POST['link_field7']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field8'])){$linkres->link_field8 = strip_tags(trim($_POST['link_field8']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field9'])){$linkres->link_field9 = strip_tags(trim($_POST['link_field9']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field10'])){$linkres->link_field10 = strip_tags(trim($_POST['link_field10']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field11'])){$linkres->link_field11 = strip_tags(trim($_POST['link_field11']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field12'])){$linkres->link_field12 = strip_tags(trim($_POST['link_field12']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field13'])){$linkres->link_field13 = strip_tags(trim($_POST['link_field13']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field14'])){$linkres->link_field14 = strip_tags(trim($_POST['link_field14']), Story_Content_Tags_To_Allow);}
if(isset($_POST['link_field15'])){$linkres->link_field15 = strip_tags(trim($_POST['link_field15']), Story_Content_Tags_To_Allow);}
// Steef 2k7-07 security fix end --------------------------------------------------------------
if(!isset($_POST['summarytext'])){
$linkres->link_summary = utf8_substr(strip_tags(trim($_POST['bodytext']), Story_Content_Tags_To_Allow), 0, StorySummary_ContentTruncate - 1);
$linkres->link_summary = str_replace("\n", "<br />", $linkres->link_summary);
} else {
$linkres->link_summary = strip_tags(trim($_POST['summarytext']), Story_Content_Tags_To_Allow);
$linkres->link_summary = str_replace("\n", "<br />", $linkres->link_summary);
if(strlen($linkres->link_summary) > StorySummary_ContentTruncate){
loghack('SubmitAStory-SummaryGreaterThanLimit', 'username: ' . $_POST["username"].'|email: '.$_POST["email"], true);
$linkres->link_summary = utf8_substr($linkres->link_summary, 0, StorySummary_ContentTruncate - 1);
$linkres->link_summary = str_replace("\n", "<br />", $linkres->link_summary);
}
}
if (link_errors($linkres)) {
return;
}
$linkres->store();
tags_insert_string($linkres->id, $dblang, $linkres->tags);
$vars = '';
check_actions('submit_step_3_after_first_store', $vars);
$linkres->read(FALSE);
$edit = true;
$link_title = $linkres->title;
$link_content = $linkres->content;
$link_title = stripslashes(strip_tags(trim($_POST['title'])));
$main_smarty->assign('the_story', $linkres->print_summary('full', true));
$main_smarty->assign('tags', $linkres->tags);
if (!empty($linkres->tags)) {
$tags_words = str_replace(",", ", ", $linkres->tags);
$tags_url = urlencode($linkres->tags);
$main_smarty->assign('tags_words', $tags_words);
$main_smarty->assign('tags_url', $tags_url);
}
if(isset($url)){
$main_smarty->assign('submit_url', $url);
} else {
$main_smarty->assign('submit_url', '');
}
$main_smarty->assign('submit_url_title', $linkres->url_title);
$main_smarty->assign('submit_id', $linkres->id);
$main_smarty->assign('submit_type', $linkres->type());
$main_smarty->assign('submit_title', $link_title);
$main_smarty->assign('submit_content', $link_content);
if(isset($trackback)){
$main_smarty->assign('submit_trackback', $trackback);
} else {
$main_smarty->assign('submit_trackback', '');
}
$main_smarty->assign('tpl_extra_fields', $the_template . '/submit_extra_fields');
$main_smarty->assign('tpl_center', $the_template . '/submit_step_3');
define('pagename', 'submit');
$main_smarty->assign('pagename', pagename);
$vars = '';
check_actions('do_submit2', $vars);
$main_smarty->display($the_template . '/pligg.tpl');
}
// submit step 3
function do_submit3() {
global $db;
$linkres=new Link;
$linkres->id=$link_id = strip_tags($_POST['id']);
if(!is_numeric($linkres->id))die();
$linkres->read();
totals_adjust_count($linkres->status, -1);
totals_adjust_count('queued', 1);
$linkres->status='queued';
$vars = array('linkres'=>$linkres);
check_actions('do_submit3', $vars);
$linkres->store_basic();
$linkres->check_should_publish();
if(!empty($_POST['trackback'])) {
require_once(mnminclude.'trackback.php');
$trackres = new Trackback;
$trackres->url=trim($_POST['trackback']);
$trackres->link=$linkres->id;
$trackres->title=$linkres->title;
$trackres->author=$linkres->author;
$trackres->content=$linkres->content;
$res = $trackres->send();
}
header("Location: " . getmyurl('upcoming'));
die;
}
// assign any errors found during submit
function link_errors($linkres)
{
global $main_smarty, $the_template;
$error = false;
if($_POST['randkey'] !== $linkres->randkey) { // random key error
$main_smarty->assign('submit_error', 'badkey');
$main_smarty->display($the_template . '/submit_errors.tpl');
$error = true;
}
if($linkres->status != 'discard') { // if link has already been submitted
$main_smarty->assign('submit_error', 'hashistory');
$main_smarty->assign('submit_error_history', $linkres->status);
$main_smarty->display($the_template . '/submit_errors.tpl');
$error = true;
}
if(strlen($linkres->title) < minTitleLength || strlen($linkres->content) < minStoryLength ) { // if link title or descrition is too short
$main_smarty->assign('submit_error', 'incomplete');
$main_smarty->display($the_template . '/submit_errors.tpl');
$error = true;
}
if(preg_match('/.*http:\//', $linkres->title)) { // if URL is found in link title
$main_smarty->assign('submit_error', 'urlintitle');
$main_smarty->display($the_template . '/submit_errors.tpl');
$error = true;
}
if(!$linkres->category > 0) { // if no category is selected
$main_smarty->assign('submit_error', 'nocategory');
$main_smarty->display($the_template . '/submit_errors.tpl');
$error = true;
}
return $error;
}
?>
