//

Headlines&Nieuws berichten uitlezen

Headlines&Nieuws berichten uitlezen discussie in Ontwikkelen voor iOS forum; ( verdwijnt na registratie ) Op advies van Steve even een nieuwe topic aangemaakt. Ik zal even snel uitleggen wat ik precies wil. "Ik ben via HTML/PHP een webapplicatie het ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > Development > Ontwikkelen voor iOS
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Zoeken Berichten van vandaag Markeer forums als gelezen

Reageren

 

Discussietools Weergave
  #1  
Oud 08-08-10, 19:54
dannyhtek's schermafbeelding
dannyhtek dannyhtek is offline
• iOS 8.0
• Ik heb geen iPad
• Besturingssysteem: Windows
 
Geregistreerd: May 2009
Locatie: Zuid-Limburg
Berichten: 1.408
Standaard Headlines&Nieuws berichten uitlezen

Op advies van Steve even een nieuwe topic aangemaakt.
Ik zal even snel uitleggen wat ik precies wil.

"Ik ben via HTML/PHP een webapplicatie het maken, hiervoor gebruik ik onder andere iWebkit. Wat ik graag wil is dat ik Nieuwsberichten uit headlines kan lezen"

Dus even ter duidelijkheid:
Zodra ik op de headline druk moet ik via de applicatie zelf het volledig nieuws bericht kunnen lezen.


Zelf ben ik niet zo'n ervaren PHP mannetje, ik leer wel snel.
Alle hulp is welkom, bij voorbaat dank!
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 08-08-10, 22:36
SteveLeviathan's schermafbeelding
SteveLeviathan SteveLeviathan is offline
• iOS 6.0
• 6.0
• Besturingssysteem: Mac OS X
 
Geregistreerd: May 2010
Locatie: Nederland
Berichten: 41
Standaard

Staat het complete artikel in de RSS feed? Of alleen een titel en een link naar de website waar het artikel staat en dat soort dingen?
  #3  
Oud 08-08-10, 22:37
dannyhtek's schermafbeelding
dannyhtek dannyhtek is offline
• iOS 8.0
• Ik heb geen iPad
• Besturingssysteem: Windows
 
Geregistreerd: May 2009
Locatie: Zuid-Limburg
Berichten: 1.408
Standaard

De web applicatie geeft alleen de headlines aan, zodra ik hierop klikt linked ie naar de website waar het nieuws artikel opstaat.

Wat ik dus wil is, zodra ik op de headline klik hij het artikel binnen de applicatie opent, en niet linked naar de website.

De nieuws artikel(s) staan in volledig in RSS.

/edit 2
Even snel nagekeken, artikel staat volledig in RSS.

Laatst gewijzigd door dannyhtek; 08-08-10 om 22:45.
  #4  
Oud 08-08-10, 22:56
Frog Frog is offline
• iOS 4.2.1
• Ik heb geen iPad
• Besturingssysteem: Mac OS X
 
Geregistreerd: Sep 2008
Berichten: 379
Standaard

Dit kan, ik weet niet precies meer hoe het werkte, maar ik heb er een keer iets over gelezen. Je moet dan een eigen url voor je app maken, dus bijv. reader:// i.p.v. http://.

Hier moet je ergens in de documentation wel meer over kunnen vinden.
  #5  
Oud 08-08-10, 23:32
SteveLeviathan's schermafbeelding
SteveLeviathan SteveLeviathan is offline
• iOS 6.0
• 6.0
• Besturingssysteem: Mac OS X
 
Geregistreerd: May 2010
Locatie: Nederland
Berichten: 41
Standaard

Wat je kan doen is bij elke headline in de html een form element plaatsen en dan vervolgens daarin een input element plaatsen die hidden is en dus alleen een variabele voorstelt met als waarde het hele bericht en in de onclick van de link plaats je dan de javascript-functie submit() die dan vervolgens naar je artikelpagina gaat en op die pagina lees je dan de PHP $_POST variabele uit waar alle tekst van het artikel in staat.

zoiets dus per headline:
PHP-code:
<form name="form_1" method="post" action="?artikelpagina.php">
<
input type="hidden" name="inhoud_artikel" value="Plaats hier je PHP-variabele waar je de inhoud van het artikel in hebt geplaatst.">
<
a href="#" onclick="form_1.submit()">Plaats hier de PHP-variabele met de titel van het artikel</a
</
form
in artikelpagina.php lees je dan vervolgens de $_POST variabele uit waar de inhoud in zit en geef je het weer:
PHP-code:
echo $POST['inhoud_artikel']; 
Op deze manier opent de headline-link dus niet Safari maar in hetzelfde venster je artikelpagina en geeft daar de inhoud weer van het artikel.

In bovenstaand voorbeeld heb ik je form de naam form_1 gegeven als voorbeeld. Volgens mij moet de naam uniek zijn om vervolgens de submit() functie aan te roepen bij een onclick van de link zodat de browser weet welke form hij moet submitten. Dus het beste is om inplaats van 1, 2, 3 etc. daar het id van het artikel in te zetten, zo'n id staat meestal ook in de rss feed.

Een tweede manier is om enkel het id van het artikel als variabele mee te sturen en dan vervolgens op je artikelpagina nog een keer door de rss feed heen loopen totdat je de id tegenkomt die in de $POST variabele staat en dan de inhoud van het bericht dat bij dat id hoort opslaan in een variabele om straks weer te geven, en vervolgens de loop afbreken met de php functie break omdat je niet verder hoeft te loopen.

hier een voorbeeld per headline:
PHP-code:
<form name="form_1" method="post" action="?artikelpagina.php">
<
input type="hidden" name="artikel_id" value="Plaats hier je PHP-variabele waar je het id van het artikel in hebt opgeslagen.">
<
a href="#" onclick="form_1.submit()">Plaats hier de PHP-variabele met de titel van het artikel</a
</
form
vervolgens doe je dan dit in artikelpagina.php:
PHP-code:
// Loop door je rss feed heen totdat het id van het artikel gelijk is aan $_POST['artikel_id']
// Als dit het geval is, dan sla je de inhoud van het artikel op in een variabele, bijvoorbeeld $artikel_inhoud, en daarna breek je de loop af met de php functie break;

//Vervolgens geef je de inhoud van het artikel weer
echo $artikel_inhoud
Wat je hier dus doet is je eigen pagina openen op dezelfde server waar je index.php staat met een overzicht van de headlines. Als het goed is ziet de browser dit als navigeren binnen je eigen site en opent hij niet safari.
Je moet het even testen om zeker te weten dat safari niet geopend wordt.
  #6  
Oud 08-08-10, 23:34
SteveLeviathan's schermafbeelding
SteveLeviathan SteveLeviathan is offline
• iOS 6.0
• 6.0
• Besturingssysteem: Mac OS X
 
Geregistreerd: May 2010
Locatie: Nederland
Berichten: 41
Standaard

Citaat:
Oorspronkelijk geplaatst door Frog Bekijk bericht
Dit kan, ik weet niet precies meer hoe het werkte, maar ik heb er een keer iets over gelezen. Je moet dan een eigen url voor je app maken, dus bijv. reader:// i.p.v. http://.

Hier moet je ergens in de documentation wel meer over kunnen vinden.
Werkt dit wel bij webapplicaties?
Ik dacht dat je daarvoor een echte app moest hebben met een UIWebView erin en dan 1 of andere iphone sdk functie moet aanroepen die je eigen url associeert met je app.
  #7  
Oud 08-08-10, 23:36
dannyhtek's schermafbeelding
dannyhtek dannyhtek is offline
• iOS 8.0
• Ik heb geen iPad
• Besturingssysteem: Windows
 
Geregistreerd: May 2009
Locatie: Zuid-Limburg
Berichten: 1.408
Standaard

jezus klinkt allemaal vet moeilijk, moeilijker dan ik dacht.
Is het niet mogelijk om gewoon een script te downloaden van het internet waar ik de feed url in plak en dat het script vervolgens z'n werk doet?

Ja het klinkt lui, maar zoals ik al zei - ben geen expert ;D
  #8  
Oud 08-08-10, 23:47
SteveLeviathan's schermafbeelding
SteveLeviathan SteveLeviathan is offline
• iOS 6.0
• 6.0
• Besturingssysteem: Mac OS X
 
Geregistreerd: May 2010
Locatie: Nederland
Berichten: 41
Standaard

Kan je anders hier even de code van je huidige HTML/PHP pagina tonen waarin je de headlines weergeeft?
  #9  
Oud 08-08-10, 23:58
dannyhtek's schermafbeelding
dannyhtek dannyhtek is offline
• iOS 8.0
• Ik heb geen iPad
• Besturingssysteem: Windows
 
Geregistreerd: May 2009
Locatie: Zuid-Limburg
Berichten: 1.408
Standaard

Die heb ik wegens stress verwijderd, moment ik zal even kijken of ik dezelfde script nog vind.
  #10  
Oud 09-08-10, 00:13
dannyhtek's schermafbeelding
dannyhtek dannyhtek is offline
• iOS 8.0
• Ik heb geen iPad
• Besturingssysteem: Windows
 
Geregistreerd: May 2009
Locatie: Zuid-Limburg
Berichten: 1.408
Standaard

Dit is het script dat ik gebruik, zoals je kunt zien is het een ''twitter'' script, maar ik ga deze dus ook gewoon gebruiken voor feeds ^^

Om hem te include gebruik ik gewoon:
Code:
<?php include_once('php_include/twitter/twitter-rss.php'); ?>
Zodra je op de tijd klikt (al klopt deze niet) word je gelinked naar de tweet, ik wil dus bij Nieuws Applicaties de gehele post en in dit geval tweet zien - niet de website. Ik wil dus niet doorgelinked worden.

Dit is de twitter-rss.php code.
Code:
 
<?php 
/* *************************************************************************************************
*
*            TwitterRSS
*
****************************************************************************************************
* TwitterRSS is a PHP script that will read your RSS feed and display your recent entries. You can
* limit how many entries are shown and customise all the HTML that controls its display. 
*
*  Author:  Kerison Leigh (Keija) <talkback@kerison.com>
* SiteURL: TwitterRSS | A PHP script to include your Twitter RSS feed on your website.
* @Twitter: Kerison (keija) on Twitter
*
* The sections you can customise are split into three. 
*
* The first section asks you for your feed URL and lets you correct any feed/time inaccuracies, the
* second and third give you more customisation and control over the way the data is displayed.
****************************************************************************************************
*  
* THE FEED URL IS THE ONLY RESOURCE THIS SCRIPT NEEDS IN ORDER TO FUNCTION. EVERYTHING ELSE IS
* OPTIONAL BUT YOU *MUST* FILL THIS IN. Your RSS feed is linked at the bottom of your 'home' page
* and will look something like this: http://twitter.com/statuses/user_timeline/XXXXXX.rss
*
* ...where XXXXXX is your user number (example: mine is 5794542).
*
* Additionally, you can limit the number of twits displayed.
*/
 $FEED_URL = 'http://twitter.com/statuses/user_timeline/61760902.rss';
 $NUM_ITEMS = '1';
/**
* For some reason, Twitter feeds *sometimes* seem to reflect incorrect times. If yours isn't
* displaying correct times, find out how many hours your feed is 'off' by and edit the following
* values. The script will automatically adjust the displayed times for you.
*
* If your times are displaying correctly, leave these blank.
*
* $FEED_PLUS_MINUS - Set this to 'P' for '+' and 'M' for '-'
* $FEED_HOUR_OFFSET - Set this to however many hours your times are + or -
*
* e.g. 'P' & '5' for +5, 'M' & '2' for -2.
*/
 $FEED_PLUS_MINUS = '';
 $FEED_HOUR_OFFSET = '';
/**
* Basic Customisation:
*
* $USE_UFTIME -- 'Y' or 'N'
* Use 'user-friendly' (relative) times? e.g. an hour ago, 45 minutes ago.
*
* $USE_24HR_TIME -- 'Y' or 'N'
* Use 24 hour format (02:00, 14:00) or 12 hour (2:00 AM, 2:00 PM).
*
* $HIDE_DATE_HEADER -- 'Y' or 'N'
* You can set this to 'Y' to remove the date headers if you want to.
*
* $HIDE_TWITTER_LINK -- 'Y' or 'N'
* You can set this to 'Y' to hide the 'More' link that links to your Twitter profile. If you
* want to keep the link but would prefer different link text, scroll a bit further down.
*
* $USE_ALT_LICOLOR -- 'Y' or 'N'
* With the default formatting, you can choose to have alternating item colours to break up the
* text. Set this to 'Y' to use alternates and 'N' to stick with one colour.
*
* $CUST_FMT_TIME -- Example: = '(%TIME%)';
* Let's you change the format of the timestamp. In the example above, brackets have been added to
* change the timestamp from XX:XX to (XX:XX). If you use this, you MUST include %TIME% where you
* want the time to be placed. EXACTLY LIKE THAT. Percent sign, TIME, percent sign.
*/
 $USE_UFTIME   = 'Y';
 $USE_24HR_TIME  = 'Y';
 
 $HIDE_DATE_HEADER = 'Y';
 $HIDE_TWITTER_LINK = 'N';
 $HIGHLIGHT_FIRST = 'N';
 $USE_ALT_LICOLOR = 'Y';
 
 // INCLUDE THE %TIME% TAG! [see above if you skipped the notes!]
 $CUST_FMT_TIME  = '(%TIME%)';
 
 
 
/**
* Advanced Customisation:
*
* The script automatically displays the data in list format, however you can customise this to
* whatever you wish to use. i.e. if you want to use <p></p> tags and <br />'s, that's fine!
*
* Brief information is given below but it's recommended that you have a quick glance at the
* customisation section of the website if you get stuck.
*
* $CUST_FMT_DATA_*
* These tags bracket ALL the data. The defaults are '<ul id="twit-twit">...</ul>'
*
* $CUST_FMT_TWIT_DATE*
* These tags bracket the date. The defaults are '<li class="twit-date">...</li>'
*
* $CUST_FMT_TWIT_*
* These tags bracket the actual twitter text and timestamp. The defaults are '<li>...</li>';
*
* $CUST_FMT_DATE -- Example: = "m.d.Y" or = "M, jS"
* In the above examples, if the date was February 1st, 2007, this would display:
*
*  m.d.Y -> 02.01.2007
*  M jS -> Feb 1st
*
* The syntax used is PHP's date syntax, which you can find here: PHP: date - Manual
*
* $CUST_FMT_MORE_TEXT
* If you want to change the text of the link back to your Twitter page, edit this.
*
* $UFT_LINK_TEXT_*
* You can use these four settings to alter the text on your user-friendly links. For the multiple
* options (they end in _PLU), you need to make sure you include the relevant value/place-holder,
* same as before. The tags you need to include are %NUM_HOURS% and/or %NUM_MINS%
*
* Example Set:
*
*  $UFT_LINK_TEXT_HOUR_SGL = '(an hour ago)';
*  $UFT_LINK_TEXT_HOUR_PLU = '(%NUM_HOURS% hours ago)';
*
*  $UFT_LINK_TEXT_MINS_SGL = '(a minute ago)';
*  $UFT_LINK_TEXT_MINS_PLU = '(%NUM_MINS% minutes ago)';
*
* Further information can be found at "TwitterRSS | A PHP script to include your Twitter RSS feed on your website." if required.
*/
 // brackets all the data.
 $CUST_FMT_DATA_PRE = '';
 $CUST_FMT_DATA_POST = '';
 // brackets the date.
 $CUST_FMT_TWIT_DATE_PRE = '';
 $CUST_FMT_TWIT_DATE_POST = '';
 // brackets the twitter text and time.
 $CUST_FMT_TWIT_PRE = '';
 $CUST_FMT_TWIT_POST = '';
 // custom format date and 'more' link text.
 $CUST_FMT_DATE = '';
 $CUST_FMT_MORE_TEXT = '';
 // uft options
 $UFT_LINK_TEXT_HOUR_SGL = '';
 $UFT_LINK_TEXT_HOUR_PLU = '%NUM_HOURS% uren geleden ';
 $UFT_LINK_TEXT_MINS_SGL = '';
 $UFT_LINK_TEXT_MINS_PLU = '%NUM_MINS% minuten geleden';
 
/***************************************************************************************************
****************************************************************************************************
****************************************************************************************************
***********************************                           **************************************
***********************************  THAT'S IT, YOU'RE DONE!  **************************************
***********************************                           **************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
**************                                                                       ***************
**************                 ALL USER-DEFINABLE OPTIONS ARE ABOVE                  ***************
**************   YOU DO NOT NEED TO MODIFY ANYTHING IN THIS FILE BEYOND THIS POINT   ***************
**************                                                                       ***************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
****************************************************************************************************
* BEGIN FUNCTIONS... *******************************************************************************
***************************************************************************************************/
// takes information set by the user and uses it to offset/correct any feed time inaccuracies.
function formatTimestamp($twit_time) {
 global $USE_24HR_TIME, $CUST_FMT_TIME;
 
 if ( $USE_24HR_TIME == 'Y' ) {
  $time_str = strftime("%H:%M", strtotime($twit_time));
 } else {
  $time_str = strftime("%I:%M %p", strtotime($twit_time));
 }
 
 if ( $CUST_FMT_TIME != '' ) {
  $custom_time = str_replace("%TIME%", "$time_str", $CUST_FMT_TIME);
  return $custom_time; unset($custom_time);
 } else {
  return $time_str;
 }
 unset($time_str);
}
 
// corrects any feed/time inaccuracies.
function offsetTimeIfNeeded($date) {
 global $FEED_PLUS_MINUS, $FEED_HOUR_OFFSET, $last_offset_date;
 if ( $date == $last_offset_date ) {} else { 
  if ( ($FEED_PLUS_MINUS != '') && ($FEED_HOUR_OFFSET != '') ) {
   if ( strtoupper(substr($FEED_PLUS_MINUS,0,1)) == 'P' ) {
    $offset = strtotime('+'.$FEED_HOUR_OFFSET.' hours', $date);
   } elseif ( strtoupper(substr($FEED_PLUS_MINUS,0,1)) == 'M' )  {
    $offset = strtotime('-'.$FEED_HOUR_OFFSET.' hours', $date);
   } else {
    $offset = $date;
   }
   $corrected = $offset;
  } else {
   $corrected = $date;
  }
 
  $hour = date("H", $corrected); $mins = date("i", $corrected);
  $day = date("d", $corrected); $mon = date("m", $corrected); $year = date("Y", $corrected);
  return mktime($hour,$mins,'0',$mon,$day,$year);
  $date = ''; $offset = ''; $corrected = '';
 }
}
 
// format the 'more' link that links back to twitter.com/your_name.
function formatTwitterMoreLink($twit_url,$style) {
 global $CUST_FMT_MORE_TEXT;
 if ( $CUST_FMT_MORE_TEXT != '' ) {
  $text = $CUST_FMT_MORE_TEXT;
 } else {
  $text = '<strong>Meer &raquo;</strong>';
 }
 
 if ( strtoupper($style) == 'P' ) {
  $url = '<p class="twit-more">';
 } else {
  $url = '<li class="twit-more">';
 }
 
 $url .= '<a class="twit-more" href="'.trim($twit_url).'">'.$text.'</a>';
 if ( strtoupper($style) == 'P' ) {
  $url .= '</p>';
 } else {
  $url .= '</li>';
 }
 
 print $url; $url = 'http://www.twitter.com/dannyhtek';
}
 
// if the date hasn't been printed to screen yet, print it. Otherwise, skip printing.
function printTwitWithOptDate($raw_date,$twit_date,$prev_date) {
 
 global $CUST_FMT_TWIT_DATE_PRE, $CUST_FMT_TWIT_DATE_POST, $CUST_FMT_DATE, $first_skipped;
 
 if ( $twit_date == $prev_date ) {} else { $date_str = '';
 
  if ( $first_skipped != true ) {
   $first_skipped = true;
  } else {
   if ( ($CUST_FMT_TWIT_DATE_POST != '') || ($CUST_FMT_TWIT_DATE_POST == 'BLANK') ) {} 
   else {
    $date_str .= ''."";
   }
  }
  if ( ($CUST_FMT_TWIT_DATE_PRE != '') || ($CUST_FMT_TWIT_DATE_PRE == 'BLANK') ) {
   if ( $CUST_FMT_TWIT_DATE_PRE != 'BLANK' ) $date_str .= $CUST_FMT_TWIT_DATE_PRE;
  } else {
   $date_str .= '<li class="twit-date">';
  }
 
  if ( $CUST_FMT_DATE != '' ) {
   $date_str .= date($CUST_FMT_DATE, $raw_date);
  } else {
   $date_str .= date("D, M jS", $raw_date);
  }
  if ( ($CUST_FMT_TWIT_DATE_PRE != '') || ($CUST_FMT_TWIT_DATE_PRE == 'BLANK') ) {} else {
   $date_str .= ''."";
  }
  if ( ($CUST_FMT_TWIT_DATE_POST != '') || ($CUST_FMT_TWIT_DATE_POST == 'BLANK') ) {
   if ( $CUST_FMT_TWIT_DATE_POST != 'BLANK' ) $date_str .= $CUST_FMT_TWIT_DATE_POST;
  }
 
  return $date_str;
 }
 
 unset($raw_date); unset($twit_date); unset($prev_date); $date_str = '';
}
 
// calculate the difference between the Twit timestamp and the current time...
function calcDiffsForUft($twit_date,$curr_date) {
 $diff_info = array();
 
 $diff_info['twitstamp'] = $twit_date; $diff_info['currstamp'] = $curr_date;
 
 if ( (strlen($diff_info['twitstamp']) > 0) && (strlen($diff_info['currstamp']) > 0) ) {
 
  $diff = $diff_info['currstamp'] - $diff_info['twitstamp'];
 
  if ( $days = intval((floor($diff/86400)))) $diff = $diff % 86400;
  if ( $hours = intval((floor($diff/3600))))  $diff = $diff % 3600;
  if ( $mins = intval((floor($diff/60)))) $diff = $diff % 60;
    $secs  = intval($diff);
 
  $diff_info['days'] = $days; $diff_info['hours'] = $hours;
  $diff_info['mins'] = $mins; $diff_info['secs'] = $secs;
 
  return $diff_info; 
 
 } else {
  return $error = true;
 }
 
 $diff_info = ''; $diff = ''; $days = ''; $hours = ''; $mins = ''; $secs = '';
}
 
// format the timestamp into a user-friendly (relative) format if the user wishes...
function formatUfTime($twit_date,$curr_date) {
 global $UFT_LINK_TEXT_HOUR_SGL, $UFT_LINK_TEXT_HOUR_PLU;
 global $UFT_LINK_TEXT_MINS_SGL,$UFT_LINK_TEXT_MINS_PLU;
 $data = calcDiffsForUft($twit_date,$curr_date);
 
 if ( $data['days'] == 0 ) {
  if ( $data['hours'] == 0 ) {
   if ( ($data['mins'] == 0) || ($data['mins'] == 1) ) { 
    if ( strlen($UFT_LINK_TEXT_MINS_SGL) > 0 ) {
     $uft .= $UFT_LINK_TEXT_MINS_SGL;
    } else {
     $uft .= '1 minute ago';
    }
   } else { 
    if ( strlen($UFT_LINK_TEXT_MINS_PLU) > 0 ) {
     $uft .= str_replace("%NUM_MINS%", $data['mins'], $UFT_LINK_TEXT_MINS_PLU); 
    } else {
     $uft .= $data['mins'].' minutes ago';
    }
   }
  } else { 
   if ( $data['hours'] == 1 ) { 
    if ( strlen($UFT_LINK_TEXT_HOUR_SGL) > 0 ) {
     $uft .= $UFT_LINK_TEXT_HOUR_SGL;
    } else {
     $uft .= '1 hour ago'; 
    }
   } else { 
    if ( strlen($UFT_LINK_TEXT_HOUR_PLU) > 0 ) {
     $uft .= str_replace("%NUM_HOURS%", $data['hours'], $UFT_LINK_TEXT_HOUR_PLU);
    } else {
     $uft .= $data['hours'].' hours ago';
    }
   }
  }
 
 } else {
  $uft .= formatTimestamp(date("Hi", $twit_date));
 }
 
 print $uft;
 
 $data = ''; $uft = ''; $twit_date = ''; $curr_date = '';
}
 
// startElement for processing the RSS feed's XML.
function startElement($p, $name, $attribs) {
 global $item, $currElement, $title;
 $currElement = strtoupper($name);
 if ( $currElement == 'ITEM' ) {
  $item = true;
 } 
 
}
 
// endElement for processing the RSS feed's XML.
function endElement($p, $name) {
 global $CUST_FMT_DATA_PRE, $CUST_FMT_DATA_POST, $CUST_FMT_TWIT_PRE, $CUST_FMT_TWIT_POST;
 global $USE_UFTIME, $USE_ALT_LICOLOR, $HIDE_TWITTER_LINK, $USE_CUST_TSTAMP;
 global $item, $title, $description, $pubDate, $link, $prev_date, $display_name, $is_alt, $i;
 global $HIGHLIGHT_FIRST, $first_defined, $NUM_ITEMS;
 
 $hdr_str = ''; $twit_str = ''; $time_str = ''; 
 
 if ( !$i ) $i = 0;
 // gets the user's name from their feed & stores it. If the user changes their displayed name
 // the script will pick it up automatically. &also used to snip the author name from the text.
 if ( (strtoupper($name) == 'TITLE') && ($item != true) ) {
  $display_name = trim($title).': ';
 }
 // final formatting & printing to screen is done here...
 if ( strtoupper($name) == 'ITEM' ) {
 
  $i++; // keeps track of how many items we've cycled through.
 
  if ( !$NUM_ITEMS ) $NUM_ITEMS = 20;
 
  if ( $i <= $NUM_ITEMS ) { // if we've haven't reached the limit yet, process the data.
 
  // print the date if required & it hasn't already been printed...
  $date = date("Ymd", $pubDate); 
  $hdr_str .= printTwitWithOptDate($pubDate,$date,$prev_date);
 
  // if the user has chosen to use their own tags, substitute them...  
  if ( ($CUST_FMT_TWIT_PRE != '') || ($CUST_FMT_TWIT_PRE == 'BLANK') ) {    
   if ( $CUST_FMT_TWIT_PRE != 'BLANK' ) print $CUST_FMT_TWIT_PRE;
  } else {
 
   // if you use the $HIGHLIGHT_FIRST option, you cannot use alternates.
   if ( $HIGHLIGHT_FIRST == 'Y' ) { print "\t";
 
    if ( $first_defined != true ) {
     print '<class="twit-first">';
     $first_defined = true;
    } else {
     print '';
    }
 
   // alternating colour is only currently configured with the default list format.
   } elseif ( $USE_ALT_LICOLOR == 'Y' ) { if ( !$is_alt ) $is_alt = false; print "\t";
 
    if ( $is_alt == true ) { // we're using alternate colours...
     print '<class="twit-alt">';
     $is_alt = false;
    } else {
     print '';
     $is_alt = true;
    }
 
   } else { print "\t".''; } // or choosing to use just one...
  }
 
  print str_replace($display_name,'',trim($description)).' ';
  print '<a class="twit" href="'.trim($link).'">';
 
   if ( $USE_UFTIME == 'Y' ) {
    formatUfTime($pubDate,time());
   } else {
    print formatTimestamp(date("Hi", $pubDate));
   }
 
  print '</a>';
 
  // if the user has chosen to use their own tags, substitute them...
  if ( ($CUST_FMT_TWIT_POST != '') || ($CUST_FMT_TWIT_POST == 'BLANK') ) {
   if ( $CUST_FMT_TWIT_POST != 'BLANK' ) print $CUST_FMT_TWIT_POST;
  } else {
   print '';
  } print "";
 
  $prev_date = $date;
 
  $title = ''; $pubDate = ''; $link = ''; $date = ''; $description = ''; $item = false;
 
  } else {} // ends the 'number of items' control if.
 }
}
 
// handles & processes data from the XML feed.
function characterDataHandler($p, $data) {
 global $item, $currElement, $title, $description, $pubDate, $link, $user_url;
 
 if ( $item ) {
  switch($currElement) {
   case "DESCRIPTION":
   $description .= $data;
   break;
   case "PUBDATE":
   $pubDate .= offsetTimeIfNeeded(strtotime($data));
   break;
   case "LINK":
   $link .= $data;
   break;
  }
 }
 
 
 // get users name from the feed, so it can't be wrong.
 if ( ($currElement == 'TITLE') && ($item != true) ) {
  $temp = ereg_replace('Twitter / ', '', $data);
  $title .= $temp;
 }
 
 
 // get users url from the feed, so it can't be wrong.
 if ( ($currElement == 'LINK') && ($item != true) ) {
  $user_url .= $data;
 }
 
}
 
/***************************************************************************************************
* FUNCTIONS HAVE BEEN DEFINED. BEGIN PARSING XML DATA HERE...                                      *
***************************************************************************************************/
$p = xml_parser_create(); // let's parse an XML feed!
xml_set_element_handler($p, "startElement", "endElement");
xml_set_character_data_handler($p, "characterDataHandler");
if ( !($h = curl_init($FEED_URL)) ) { // can't get the file with cURL...
 if ( !($h = fopen($FEED_URL, "r")) ) { // ...and can't get it with fopen() either.
  die("<p>ERROR: Unable to read contents of RSS feed, please check the URL.</p>");
 } else {
  // user-specified format overrides the default...
  if ( ($CUST_FMT_DATA_PRE != '') || ($CUST_FMT_DATA_PRE == 'BLANK') ) {
   if ( $CUST_FMT_DATA_PRE != 'BLANK' ) print $CUST_FMT_DATA_PRE;
  } else {
   print '<ul id="twit-twit">'."<br />";
  }
  // cycle through the data... 
  while ( $data = fread($h, 4096)) {
   if ( !xml_parse($p, $data) ) {
    die("Error in feed.");
   }
  }
 
  // user-specified format overrides the default...
  if ( ($CUST_FMT_DATA_POST != '') || ($CUST_FMT_DATA_POST == 'BLANK') ) {
   // print a link to user's twitter page, unless they've set $HIDE_TWITTER_LINK to 'Y'.
   if ( $HIDE_TWITTER_LINK != 'Y' ) formatTwitterMoreLink($user_url,'p');
   if ( $CUST_FMT_DATA_POST != 'BLANK' ) print "<br />".$CUST_FMT_DATA_POST;
  } else {
   print '</ul></li>'."";
   // print a link to user's twitter page, unless they've set $HIDE_TWITTER_LINK to 'Y'.
   if ( $HIDE_TWITTER_LINK != 'Y' ) formatTwitterMoreLink($user_url,'li');
   print "".'</ul>';
  }
 }
} else {
 
 // user-specified format overrides the default...
 if ( ($CUST_FMT_DATA_PRE != '') || ($CUST_FMT_DATA_PRE == 'BLANK') ) {
  if ( $CUST_FMT_DATA_PRE != 'BLANK' ) print $CUST_FMT_DATA_PRE;
 } else {
  print '<ul id="twit-twit">'."";
 }
 // set cURL options...
 curl_setopt($h, CURLOPT_HEADER, false);
 curl_setopt($h, CURLOPT_RETURNTRANSFER, true);
 $data = curl_exec($h);
 curl_close($h);
 
 if ( !xml_parse($p, $data) ) {
  die("Error in feed.");
 }
 
 // user-specified format overrides the default...
 if ( ($CUST_FMT_DATA_POST != '') || ($CUST_FMT_DATA_POST == 'BLANK') ) {
  // print a link to user's twitter page, unless they've set $HIDE_TWITTER_LINK to 'Y'.
  if ( $HIDE_TWITTER_LINK != 'Y' ) formatTwitterMoreLink($user_url,'p');
  if ( $CUST_FMT_DATA_POST != 'BLANK' ) print "".$CUST_FMT_DATA_POST;
 } else {
  print ''."";
  // print a link to user's twitter page, unless they've set $HIDE_TWITTER_LINK to 'Y'.
  if ( $HIDE_TWITTER_LINK != 'Y' ) formatTwitterMoreLink($user_url,'li');
  print "".'</ul>';
 }
}
xml_parser_free($p);
/***************************************************************************************************
*                                          ALL DONE!                                               *                                             
***************************************************************************************************/
?>
  #11  
Oud 09-08-10, 00:55
SteveLeviathan's schermafbeelding
SteveLeviathan SteveLeviathan is offline
• iOS 6.0
• 6.0
• Besturingssysteem: Mac OS X
 
Geregistreerd: May 2010
Locatie: Nederland
Berichten: 41
Standaard

Ik bedoel de php pagina die jouw headlines weergeeft.
  #12  
Oud 09-08-10, 01:03
dannyhtek's schermafbeelding
dannyhtek dannyhtek is offline
• iOS 8.0
• Ik heb geen iPad
• Besturingssysteem: Windows
 
Geregistreerd: May 2009
Locatie: Zuid-Limburg
Berichten: 1.408
Standaard

iWebKit Demo - Embed RSS feeds into your iPhone website.
zodra je op de tijd klikt kom je op de website, dit is een PREVIEW.

ik zorg dat de hele headline 'n link wordt
  #13  
Oud 09-08-10, 01:17
SteveLeviathan's schermafbeelding
SteveLeviathan SteveLeviathan is offline
• iOS 6.0
• 6.0
• Besturingssysteem: Mac OS X
 
Geregistreerd: May 2010
Locatie: Nederland
Berichten: 41
Standaard

kan je hier even de php-code plaatsen van het bestand blogrss.php?
  #14  
Oud 09-08-10, 01:22
dannyhtek's schermafbeelding
dannyhtek dannyhtek is offline
• iOS 8.0
• Ik heb geen iPad
• Besturingssysteem: Windows
 
Geregistreerd: May 2009
Locatie: Zuid-Limburg
Berichten: 1.408
Standaard

Hierbij de code van blogrss.php
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="XHTML namespace">
<head>
<meta content="yes" name="apple-mobile-web-app-capable" />
<meta content="index,follow" name="robots" />
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type" />
<link href="pics/homescreen.gif" rel="apple-touch-icon" />
<meta content="minimum-scale=1.0, width=device-width, maximum-scale=0.6667, user-scalable=no" name="viewport" />
<link href="css/style.css" rel="stylesheet" media="screen" type="text/css" />
<script src="javascipt/functions.js" type="text/javascript"></script>
<title>iWebKit Demo - Embed RSS feeds into your iPhone website.</title>
<meta content="iPod,iPhone,Webkit,iWebkit,Website,Create,mobile,Tutorial,free" name="Keywords" />
<meta content="Add any rss feed right to your iPhone website. It automaticly gets formatted to fit the width of the page." name="description" />
</head>
<body>
<div id="topbar">
 <div id="leftnav">
  <a href=""><img alt="home" src="https://forum.iculture.nl/images/home.png" /></a><a href="index.html">back</a></div>
 <div id="title">RSS Feed</div>
 <div id="bluerightbutton">
  <a  href="">Ga naar blog</a></div>
</div>
<div id="content">
 <ul class="pageitem">
  <li class="textbox">
<?php include_once('twitter-rss.php'); ?>
</li>
 </ul>
</div>
<div id="footer"> <a href="">testapp</a></div>
</body>
</html>
  #15  
Oud 09-08-10, 16:31
Frog Frog is offline
• iOS 4.2.1
• Ik heb geen iPad
• Besturingssysteem: Mac OS X
 
Geregistreerd: Sep 2008
Berichten: 379
Standaard

Allereerst, ik denk dat ik DANNYY's doel verkeerd heb begrepen, ik dacht dat hij een Objective-c applicatie wilde openen waarin het hele bericht werd getoond als er op de link in de web-applicatie werd gedrukt. Dat klopt blijkbaar niet...

Alle code in dit topic is veel te lang voor het doel en inefficiënt. SteveLeviathan, waarom gebruik je allemaal form-elementen? Een form is bedoeld om tekst in te voeren, niet om te verwijzen naar een andere pagina, daar hoor je links (a) voor te gebruiken. Waarom begin je de action met een vraagteken? Dat hoort (voorzover ik weet) niet.

DANNYY, ik zie in jouw php code nog code staan die volgens mij niet nodig is bij een normale rss-lezer en vooral gerelateerd is aan twitter, dat lijkt mij niet nodig...

Ook begrijp ik eerlijk gezegd niet waarom er voor php is gekozen, javascript kan dit soort dingen ook! Apple heeft zelfs een programma geschreven waarmee je dit soort (relatief) simpele web app's gewoon kunt maken, eventueel met alleen javascript, zodat de pagina tussendoor niet geladen hoeft te worden.

Ik heb met Dashcode in 5 minuten een web-app gemaakt en die hier online gezet. Je kan de hele interface gewoon d.m.v. drag 'n drop veranderen. Ik heb maar een ding met de hand veranderd: de url naar de feed. Dat is een link naar een bestandje feed.php i.p.v. de iPhoneclub feed. Javascript kan geen dingen van een andere server lezen, op deze manier omzeil ik dat.

Code:
$data = file_get_contents("http://feeds2.feedburner.com/iPhoneclub");

if ($data != "") {
	echo $data;
} else {
	echo "Fout: kon de feed niet lezen";
}
Als je écht PHP wilt gebruiken wil ik je daar ook best mee helpen, maar dit lijkt mij gewoonweg makkelijker om te maken en gebruiksvriendelijker...

Frog
  #16  
Oud 09-08-10, 17:14
dannyhtek's schermafbeelding
dannyhtek dannyhtek is offline
• iOS 8.0
• Ik heb geen iPad
• Besturingssysteem: Windows
 
Geregistreerd: May 2009
Locatie: Zuid-Limburg
Berichten: 1.408
Standaard

Dat klopt inderdaad, ik wil gewoon een web applicatie, geen objective-c (:

Wel nogmaals even mijn doel duidelijk maken:
Zodra ik op de headline druk moet ik worden verwezen naar 't hele artikel binnen de applicatie. Er moet dus geen externe browser of pagina worden geopend.

PHP lijkt mij uitdagender omdat ik hier meer wil van leren, maar hoezo moeilijk doen als het makkelijk kan..
Overigens heb Windows, geen MAC OS, dashcore is voor MACOS toch?

Enige hulp is natuurlijk wel nog welkom

Maar voor nu,
Bedankt!

Laatst gewijzigd door dannyhtek; 09-08-10 om 17:22.
  #17  
Oud 09-08-10, 17:23
Frog Frog is offline
• iOS 4.2.1
• Ik heb geen iPad
• Besturingssysteem: Mac OS X
 
Geregistreerd: Sep 2008
Berichten: 379
Standaard

Heb je mijn voorbeeld bekeken? Is dat dan niet precies wat je wilt?
  #18  
Oud 09-08-10, 17:24
dannyhtek's schermafbeelding
dannyhtek dannyhtek is offline
• iOS 8.0
• Ik heb geen iPad
• Besturingssysteem: Windows
 
Geregistreerd: May 2009
Locatie: Zuid-Limburg
Berichten: 1.408
Standaard

Mijn fout, das is precies wat ik wil lol xD
Maar voor Dashcode heb je MAC nodig of zit ik hier fout?

Laatst gewijzigd door dannyhtek; 09-08-10 om 17:31.
  #19  
Oud 09-08-10, 17:33
Frog Frog is offline
• iOS 4.2.1
• Ik heb geen iPad
• Besturingssysteem: Mac OS X
 
Geregistreerd: Sep 2008
Berichten: 379
Standaard

Ja, daar heb je een mac voor nodig, maar ik kan je deze files wel even sturen en dan kan je die daarna gewoon met de hand wijzigen. Óf je kan natuurlijk mac os x op je windows computer installeren.
  #20  
Oud 09-08-10, 17:34
dannyhtek's schermafbeelding
dannyhtek dannyhtek is offline
• iOS 8.0
• Ik heb geen iPad
• Besturingssysteem: Windows
 
Geregistreerd: May 2009
Locatie: Zuid-Limburg
Berichten: 1.408
Standaard

Ik heb MAC op mijn externe HD staan dus ;x
Maar liefste werk ik in Windows 7, het zou dus fijn zijn als je me die bestanden kunt sturen.
Reageren



Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 
Discussietools
Weergave

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 03:42.