Imam dva problema:
napravio sam PHP skriptu koja sa dva klika mišem odn. jednim klikom mišem (aktivira se preko JavaScript koda u Bookmark-u Firefox-a) parsira željeni članak sa sajta rtrs.tv i ubacuje ga u html formu skripte, a zatim drugim klikom mišem na dugme "submit" ubacuje članak u Joomla-inu bazu podataka (da ne bih morao po ko zna koliko puta preko copy&paste prebacivati pojedine dijelove članka u Joomla backend, pa još to ide i jako sporo - ovako mogu da ubacim veći broj članaka za desetak minuta, odn. za šta bi mi inače trebalo 2 sata).
Ovo je kod skripte:
PHP kôd:
<?php
if(isset($_POST['add']))
{
$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = 'password';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
if(! get_magic_quotes_gpc() )
{
$title = addslashes ($_POST['title']);
$alias = addslashes ($_POST['alias']);
$introtext = addslashes ($_POST['introtext']);
$fulltext = addslashes ($_POST['fulltext']);
$state = addslashes ($_POST['state']);
$sectionid = addslashes ($_POST['sectionid']);
$catid = addslashes ($_POST['catid']);
$created = addslashes ($_POST['date']);
$created_by = addslashes ($_POST['created_by']);
$modified = addslashes ($_POST['modified']);
$modified_by = addslashes ($_POST['modified_by']);
$publish_up = addslashes ($_POST['date']);
$attribs = addslashes ($_POST['attribs']);
$version = addslashes ($_POST['version']);
$metadata = addslashes ($_POST['metadata']);
}
else
{
$title = $_POST['title'];
$alias = $_POST['alias'];
$introtext = $_POST['introtext'];
$fulltext = $_POST['fulltext'];
$state = $_POST['state'];
$sectionid = $_POST['sectionid'];
$catid = $_POST['catid'];
$created = $_POST['date'];
$created_by = $_POST['created_by'];
$modified = $_POST['modified'];
$modified_by = $_POST['modified_by'];
$publish_up = $_POST['date'];
$attribs = $_POST['attribs'];
$version = $_POST['version'];
$metadata = $_POST['metadata'];
}
$metakey = $title . ' - ' . $alias;
$metadesc = $metakey;
$ordering = 1;
$sql = "UPDATE jos_content SET ordering = ordering + 1 WHERE sectionid = '$sectionid' AND catid = '$catid' AND ordering > 0";
mysql_select_db('database');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not enter data: ' . mysql_error());
}
echo "Updated database successfully, \n";
$sql = "INSERT INTO jos_content (title, alias, introtext, `fulltext`, `state`, `sectionid`, `catid`, `created`, `created_by`, `modified`, `modified_by`, publish_up, attribs, version, ordering, metakey, metadesc, metadata) VALUES ('$title', '$alias', '$introtext', '$fulltext', '$state', '$sectionid', '$catid', '$created', '$created_by', '$modified', '$modified_by', '$publish_up', '$attribs', '$version', '$ordering', '$metakey', '$metadesc', '$metadata')";
mysql_select_db('database');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
}
else
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Parse and Add article in Joomla database</title>
</head>
<body>
<?php
// get the HTML
$address = $_GET['address'];
$html = file_get_html("$address");
// Dump contents (without tags) from HTML
// Find all element with class nwz1
$title = $html->find('.nwz1');
$title = strip_tags($title[0]);
$alias = $title;
$alias = str_replace(" ", "-", $alias);
$unwantedchars = array("Č", "č", "Ć", "ć", "Đ", "đ", "Š", "š", "Ž", "ž", "J", "--", "---");
$replacingchars = array("C", "c", "C", "c", "DJ", "dj", "S", "s", "Z", "z", "j", "-", "-");
$alias = str_replace($unwantedchars, $replacingchars, $alias);
$alias = preg_replace('/["!?$%(),:;<>&*~|#]/', '', $alias);
// PROBLEM SA SLOVOM j NASTAJE U OVOM DIJELU
$alias = strtolower($alias);
$introtext = $html->find('.nwz2');
$introtext = strip_tags($introtext[0]);
$fulltext = $html->find('.nwz3');
$fulltext = strip_tags($fulltext[0]);
// $textsignature = strip_tags($fulltext[1]);
$source = $html->find('.px11');
$source = strip_tags($source[0]);
if (strstr($source, "Izvor: RTRS"))
$source = $source;
else
$source = $source . "\n" . "Izvor: RTRS";
$source_test = $source;
?>
<form action="<?php $_PHP_SELF ?>" id="form" name="form" method="POST">
<p><input name="title" type="text" id="title" value="<?php echo $title; ?>" size="90" />
title</p>
<p><input name="alias" type="text" id="alias" value="<?php echo $alias; ?>" size="90" />
alias</p>
<p><select name="catid">
<option value="1">vijesti</option>
<option value="2">sport</option>
<option value="3">zanimljivosti</option>
<option value="11">privreda</option>
<option value="12">kultura</option>
</select> category</p>
<p><textarea name="introtext" cols="50" rows="3" id="introtext"><?php echo $introtext; ?></textarea> introtext</p>
<p><input name="state" type="hidden" id="state" value="1" />
<input name="sectionid" type="hidden" id="sectionid" value="1" />
<input name="created_by" type="hidden" id="created_by" value="62" />
<input name="modified_by" type="hidden" id="modified_by" value="62" />
<input name="version" type="hidden" id="version" value="2" />
</p>
<p><textarea name="fulltext" cols="50" rows="10" id="text"><?php echo $fulltext . "\n\n" . $source; ?></textarea> text </p>
<p><input name="date" type="text" id="date" value="<?php echo date("Y-m-d H:i:s"); ?>" size="20" /> date & time</p>
<p><textarea name="attribs" rows="1" id="attribs">show_title=
link_titles=
show_intro=
show_section=
link_section=
show_category=
link_category=
show_vote=
show_author=
show_create_date=
show_modify_date=
show_pdf_icon=
show_print_icon=
show_email_icon=
language=
keyref=
readmore=</textarea>
<textarea name="metadata" rows="1" id="metadata">robots=
author=</textarea></p>
<p><input type="submit" name="add" value="Submit" /></p>
</form>
<?php
}
?>
</body>
</html>
1. Imam problem sa našim slovima. Kada skripta izparsira neki članak, i ubaci ga u formu - nastaju problemi sa nekim našim slovima
recimo namjesto malog slova 'j' u formi u polju 'alias' mi se pojavi veliko slovo 'J'. (a kada skriptu izvrsim na svom web serveru t.j. localhost-u namjesto malog slova 'j' pojavi se nekakav simbol (crni romb sa upitnikom u sebi)??
2. a drugi problem je da kada članak ubacim u bazu podataka klikom na 'Submit' forme, u bazi podataka u phpmyadmin-u dobijem ovo:
namjesto svih naših kvakastih slova se pojave neka čudna slova, kao na primjer:
title:
USVOĐˆEN ZAKON O ODUZIMANJU IMOVINE STEÄŒENE IZVRĹ ENJEM KRIVIÄŒNOG DĐˆELA
introtext:
Narodna skupština Republike Srpske usvojila je ju�e Zakon o oduzimanju imovine ste�ene izvršenjem krivi�nog djela koji predviđa osnivanje agencije za upravljanje oduzetom imovinom u sastavu Ministarstva pravde RS.
Collation baze podataka je podešen na utf8_general_ci
MySQL charset je UTF-8 Unicode (utf8)
Kako ta skripta radi na djelu može se vidjeti na adresi:
http://balkan-online.com/test.php?ad...t.php?id=15240
Skripta parsiranje radi uz pomoć "PHP Simple HTML DOM Parser"-a
PHP Simple HTML DOM Parser
http://simplehtmldom.sourceforge.net/manual.htm
testirajući sam otkrio da prvi problem sa zamjenom slova j je na ovoj liniji:
$alias = strtolower($alias);
Zahvaljujem se unaprijed na pomoći i na odgovorima