Re: [Wikitech-l] Problem to get an article's content in MW 1.20.2

2013-01-21 Thread Andreas Plank
Hi,

thanks for your suggestions, at the end I found it :-)

It was a closed data base connection, that prevented
Title::newFrom...-methods to get articleId etc.
--- the eval part ---
$dbReadOnly2 = wfGetDB(DB_SLAVE);
# do some stuff
$dbReadOnly2-close();

# use another method that needs data base access will fail
---

It is because wfGetDB(...); will get the database object as
*reference* not as copy (see PHP code of wfGetDB() in file
includes/GlobalFunctions.php) and as it is a reference and some other
function closes the dabta base connection then there is silence ...
at least for the db connection

Andreas

2013/1/16 Andreas Plank andreas.pl...@web.de:
 2013/1/16 Krenair kren...@gmail.com:
 You could try RequestContext::getMain() to get the context source object.

 Alex Monk

 On 16/01/13 16:56, Andreas Plank wrote:

 I tried many functions in various classes:
 RequestContext
 WikiPage
 Title
 Article
 ... but it is always the same I do not get the raw page content. I
 believe these functions should work but somehow they do not get the
 right incoming data. In an earlier post I printed the Title object and
 it is almost empty, I wonder about that too, might be related?

 Maybe it has nothing to do with these functions but with the database?
 However browsing and editing those pages runs smoothly but my
 application does not get the related page data. I wonder too, because
 with MW 1.18 it did work fine.

 If I switch on $wgDebugDumpSql there are a lot of queries and also a page 
 query
 SELECT page_id, page_namespace, page_title, page_restrictions,
 page_counter, page_is_redirect, page_is_new, page_random,
 page_touched, page_latest, page_len FROM `page` WHERE page_namespace =
 'X' LIMIT N
 ... So it seems the right query from a quick look.

 Has anybody an idea how I can trace and debug the data flow until my
 app asserts “the page does not exist”?

 Andreas

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

[Wikitech-l] Fwd: Problem to get an article's content in MW 1.20.2

2013-01-16 Thread Andreas Plank
Hi Platonides


2013/1/15 Platonides platoni...@gmail.com:
 I tried to get the content via getArticleID() ...
 $titleObj=Title::newFromText(Existing page);
 $articleID=$titleObj-getArticleID();
 Article::newFromID($articleID)-fetchContent();
 etc.
 ... but it returns $articleID=0 although the page exits. With MW 1.18
 this approach worked fine, but after upgrade to MW 1.20.2 it does not
 any more.


 It should be working, and it works for me on 1.20.2
 Can you provide more details on that $title-getArticleID(); which is
 not working?

On the http://offene-naturfuehrer.de/web/Spezial:MobileKeyV1
I want to generate a MobileKey for Lamium (Deutschland) (the page
exists) and the PHP code wants to get the content of page Unterlippe
(Lamiaceae) (the page exists too) but the PHP code above stops at the
step retrieving the articleID. The strange thing is, when I want to
generate a MobileKey for Lamium (Deutschland) and just print out
(1) Title::newFromText(Unterlippe (Lamiaceae))  and
(2) Title::newFromText(Lamium (Deutschland))
... I get only an articleID for (2) not for (1)

Andreas

--- printout of title object for page (1) Unterlippe (Lamiaceae)

Title Object
(
[mTextform] = Unterlippe (Lamiaceae)
[mUrlform] = Unterlippe_(Lamiaceae)
[mDbkeyform] = Unterlippe_(Lamiaceae)
[mUserCaseDBKey] = Unterlippe_(Lamiaceae)
[mNamespace] = 0
[mInterwiki] =
[mFragment] =
[mArticleID] = 0
[mLatestID] =
[mEstimateRevisions:Title:private] =
[mRestrictions] = Array
(
)

[mOldRestrictions] =
[mCascadeRestriction] =
[mCascadingRestrictions] =
[mRestrictionsExpiry] = Array
(
)

[mHasCascadingRestrictions] =
[mCascadeSources] =
[mRestrictionsLoaded] =
[mPrefixedText] =
[mTitleProtection] =
[mDefaultNamespace] = 0
[mWatched] =
[mLength] = -1
[mRedirect] =
[mNotificationTimestamp] = Array
(
)

[mHasSubpage] =
)

--- printout of title object for page (2) Lamium (Deutschland)
Title Object
(
[mTextform] = Lamium (Deutschland)
[mUrlform] = Lamium_(Deutschland)
[mDbkeyform] = Lamium_(Deutschland)
[mUserCaseDBKey] = Lamium_(Deutschland)
[mNamespace] = 0
[mInterwiki] =
[mFragment] =
[mArticleID] = 36
[mLatestID] =
[mEstimateRevisions:Title:private] =
[mRestrictions] = Array
(
)

[mOldRestrictions] =
[mCascadeRestriction] =
[mCascadingRestrictions] =
[mRestrictionsExpiry] = Array
(
)

[mHasCascadingRestrictions] =
[mCascadeSources] =
[mRestrictionsLoaded] =
[mPrefixedText] =
[mTitleProtection] =
[mDefaultNamespace] = 0
[mWatched] =
[mLength] = -1
[mRedirect] =
[mNotificationTimestamp] = Array
(
)

[mHasSubpage] =
)

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] Problem to get an article's content in MW 1.20.2

2013-01-16 Thread Andreas Plank
Hi Platonides

(sorry I posted from a wrong Email address, I try again with a proper
subject line to get the thread line correct on
http://news.gmane.org/gmane.science.linguistics.wikipedia.technical)

2013/1/15 Platonides platoni...@gmail.com:
 I tried to get the content via getArticleID() ...
 $titleObj=Title::newFromText(Existing page);
 $articleID=$titleObj-getArticleID();
 Article::newFromID($articleID)-fetchContent();
 etc.
 ... but it returns $articleID=0 although the page exits. With MW 1.18
 this approach worked fine, but after upgrade to MW 1.20.2 it does not
 any more.


 It should be working, and it works for me on 1.20.2
 Can you provide more details on that $title-getArticleID(); which is
 not working?

On the http://offene-naturfuehrer.de/web/Spezial:MobileKeyV1
I want to generate a MobileKey for Lamium (Deutschland) (the page
exists) and the PHP code wants to get the content of page Unterlippe
(Lamiaceae) (the page exists too) but the PHP code above stops at the
step retrieving the articleID. The strange thing is, when I want to
generate a MobileKey for Lamium (Deutschland) and just print out
(1) Title::newFromText(Unterlippe (Lamiaceae))  and
(2) Title::newFromText(Lamium (Deutschland))
... I get only an articleID for (2) not for (1)

WikiPage::factory ($titleObj) prints the same articleID data as
Title::newFromText(...)

Andreas

--- printout of title object for page (1) Unterlippe (Lamiaceae)

Title Object
(
[mTextform] = Unterlippe (Lamiaceae)
[mUrlform] = Unterlippe_(Lamiaceae)
[mDbkeyform] = Unterlippe_(Lamiaceae)
[mUserCaseDBKey] = Unterlippe_(Lamiaceae)
[mNamespace] = 0
[mInterwiki] =
[mFragment] =
[mArticleID] = 0
[mLatestID] =
[mEstimateRevisions:Title:private] =
[mRestrictions] = Array
(
)

[mOldRestrictions] =
[mCascadeRestriction] =
[mCascadingRestrictions] =
[mRestrictionsExpiry] = Array
(
)

[mHasCascadingRestrictions] =
[mCascadeSources] =
[mRestrictionsLoaded] =
[mPrefixedText] =
[mTitleProtection] =
[mDefaultNamespace] = 0
[mWatched] =
[mLength] = -1
[mRedirect] =
[mNotificationTimestamp] = Array
(
)

[mHasSubpage] =
)

--- printout of title object for page (2) Lamium (Deutschland)
Title Object
(
[mTextform] = Lamium (Deutschland)
[mUrlform] = Lamium_(Deutschland)
[mDbkeyform] = Lamium_(Deutschland)
[mUserCaseDBKey] = Lamium_(Deutschland)
[mNamespace] = 0
[mInterwiki] =
[mFragment] =
[mArticleID] = 36
[mLatestID] =
[mEstimateRevisions:Title:private] =
[mRestrictions] = Array
(
)

[mOldRestrictions] =
[mCascadeRestriction] =
[mCascadingRestrictions] =
[mRestrictionsExpiry] = Array
(
)

[mHasCascadingRestrictions] =
[mCascadeSources] =
[mRestrictionsLoaded] =
[mPrefixedText] =
[mTitleProtection] =
[mDefaultNamespace] = 0
[mWatched] =
[mLength] = -1
[mRedirect] =
[mNotificationTimestamp] = Array
(
)

[mHasSubpage] =
)

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] Problem to get an article's content in MW 1.20.2

2013-01-16 Thread Andreas Plank
Hi,

One of Tyler Romeo's suggested approach is to use

Article::newFromTitle($titleObj)

... but it does need a second argument of type IContextSource. I do
not know how to get it or how to instantiate it yet. At the moment it
does not retrieve the page content as well because of the missing
IContextSource ...

Can somebody Maybe Article::newFromTitle($titleObj,
IContextSource-something) would

Do I need that IContextSource? I read at Manual:Article.php to use the
WikiPage class instead, so maybe at this point I don't have to use
IContextSource(?). WikiPage::factory($titleObj) prints the same Title
Object structure as Title::newFromText(Existing page but not existing
for Title object class);

Does it may have to do with data base update, some of the maintenance
scripts? Maybe data in the data base are not entirely correct after
upgrading from MW 1.18 to MW 1.20.2? How do I ensure that the data
base has correct page data? When I run php ./update.php --conf
/path/to/LocalSettings.php all is fine ... any further idea?

Thanks,
Andreas

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


Re: [Wikitech-l] Problem to get an article's content in MW 1.20.2

2013-01-16 Thread Andreas Plank
2013/1/16 Krenair kren...@gmail.com:
 You could try RequestContext::getMain() to get the context source object.

 Alex Monk

 On 16/01/13 16:56, Andreas Plank wrote:

I tried many functions in various classes:
RequestContext
WikiPage
Title
Article
... but it is always the same I do not get the raw page content. I
believe these functions should work but somehow they do not get the
right incoming data. In an earlier post I printed the Title object and
it is almost empty, I wonder about that too, might be related?

Maybe it has nothing to do with these functions but with the database?
However browsing and editing those pages runs smoothly but my
application does not get the related page data. I wonder too, because
with MW 1.18 it did work fine.

If I switch on $wgDebugDumpSql there are a lot of queries and also a page query
SELECT page_id, page_namespace, page_title, page_restrictions,
page_counter, page_is_redirect, page_is_new, page_random,
page_touched, page_latest, page_len FROM `page` WHERE page_namespace =
'X' LIMIT N
... So it seems the right query from a quick look.

Has anybody an idea how I can trace and debug the data flow until my
app asserts “the page does not exist”?

Andreas

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

[Wikitech-l] Problem to get an article's content in MW 1.20.2

2013-01-15 Thread Andreas Plank
Hi,

I'm using MW 1.20.2  and I want to get the content of a page for
further parsing in a PHP application. The PHP application is triggered
via a special page (Special:MobileKeyV1) and parses nature guides for
mobile devices.

I tried to get the content via getArticleID() ...
$titleObj=Title::newFromText(Existing page);
$articleID=$titleObj-getArticleID();
Article::newFromID($articleID)-fetchContent();
etc.
... but it returns $articleID=0 although the page exits. With MW 1.18
this approach worked fine, but after upgrade to MW 1.20.2 it does not
any more.

How do I get the page content correctly?
Article::newFromID($titleObj-getArticleID())-fetchContent(); does
not work because getArticleID() returns 0 or -1 although the page
exits
Or can sombody post a hint, what I'm doing wrong? Is there any context
class needed?
Or where there some big changes (MW 1.18 → 1.20) that are not
described yet on http://www.mediawiki.org/wiki/Manual:Title.php ?

I did also a
sudo php ./maintenance/rebuildall.php --conf ./LocalSettings.php
But it did not help either

Thanks for your help!

Kind regards
Andreas

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l