I have been playing with ideas from this thread to do the same thing - add
predefined properties from an extension.

I came down to this basic code to add user defined properties (based on a
predefined string $propertyName and a calculated value from my extension
$value)

        $property = SMWPropertyValue::makeUserProperty( $propertyName );
        $dv = SMWDataValueFactory::newPropertyObjectValue( $property, $value
);
        SMWParseData::getSMWData( $parser )->addPropertyObjectValue(
$property, $dv );

I am also using the 'ParserAfterTidy' hook since it seems more appropriate
to my extension is doing (add semantic annotations for authors of a page).

At this point, my problem is this :

1- If I use this code as-is, no value seems to be saved for this page

2- If I use SMWParseData::storeData as indicated above, I lose some
properties since storeData assumes parsing has been done when it is called.

3- If I use a direct access to the store by replacing :
SMWParseData::getSMWData( $parser ) by :
smwfGetStore()->getSemanticData($wgTitle) , values are saved but they get
wiped out at the next refresh job.

My question (and I assume, the original question as well) :

How do I go from this user property code to saved values that will persist
after a refresh ?

Based on Markus recommendation, I did check the custom properties added by
SME_ParseData and it seems that nothing more is needed than what I have
above.

Any insight ? code sample ? nudge in any direction ? :)

- Laurent


On Thu, Nov 4, 2010 at 4:51 AM, Harwarth, Stefan (Bundeswehr) <
stefan.harwa...@cassidian.com> wrote:

> Using SMWParseData::storeData at the end of my parserhook solves the
> problem with the data that I generate, but now any other semantic data
> contained in the rest of the article is discarded... I guess it's
> because of what the documentation for storeData says, that the parsing
> is assumed to be complete.
>
> So this is not the fix for my problem :(
>
> Stefan
>
> > -----Original Message-----
> > From: zehetner [mailto:zehet...@molgen.mpg.de]
> > Sent: Monday, November 01, 2010 10:24 AM
> > To: Harwarth, Stefan (Bundeswehr)
> > Cc: semediawiki-devel@lists.sourceforge.net
> > Subject: Re: [SMW-devel] Problem with storing semantic
> > attributes in a parserhook
> >
> > I use
> >    SMWParseData::addProperty( $property, $prop_val, false,
> > $wgParser, true );
> >    SMWParseData::storeData( $wgParser->getOutput(), $title,
> > false ); which seems to work so far ok to store properties
> > generated within an extension (although it might not be the
> > correct or official way to do it) $property is a string with
> > the property name, $prop_value the value of the property (in
> > case of multi-valued properties a string like e.g.
> > 'p1;p2;;p3') and $title a title object.
> >
> > Cheers,
> > Gu
> >
> > On Fri, 29 Oct 2010 16:21:03 +0200, "Harwarth, Stefan (Bundeswehr)"
> > <stefan.harwa...@cassidian.com> wrote:
> > > Hi,
> > >
> > > I'm working on an Mediawiki extension that uses the
> > > SMWData::addProperty function to store semantic data inside
> > a parser
> > > hook function, which is working perfectly when saving a
> > page. But when
> > > I use the ApprovedRevs extension to approve the revision of an
> > > article, my semantic data isn't stored, even though the call to
> > > addProperty is executed and a valid DataValue object is returned.
> > >
> > > For debugging reasons I added regular semantic markup, so
> > that my page
> > > looks like the following:
> > > [[Property1::Value1]]
> > > {{#set:Property2=Value2}}
> > > <mystuff>Some text</mystuff>
> > > The first two property values are stored when I approve a
> > revision of
> > > this article and my parserhook is called, only that the properties
> > > that I create via addProperty() don't appear in the factbox and in
> > > queries :(
> > >
> > > Do I need to call any other functions besides addProperty? I tried
> > > SMWOuputs::commitToParser, but that didn't help..
> > >
> > > Regards,
> > > Stefan
> >
>
>
> ------------------------------------------------------------------------------
> The Next 800 Companies to Lead America's Growth: New Video Whitepaper
> David G. Thomson, author of the best-selling book "Blueprint to a
> Billion" shares his insights and actions to help propel your
> business during the next growth cycle. Listen Now!
> http://p.sf.net/sfu/SAP-dev2dev
> _______________________________________________
> Semediawiki-devel mailing list
> Semediawiki-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/semediawiki-devel
>



-- 
- Laurent Alquier
http://www.linfa.net
------------------------------------------------------------------------------
Forrester recently released a report on the Return on Investment (ROI) of
Google Apps. They found a 300% ROI, 38%-56% cost savings, and break-even
within 7 months.  Over 3 million businesses have gone Google with Google Apps:
an online email calendar, and document program that's accessible from your 
browser. Read the Forrester report: http://p.sf.net/sfu/googleapps-sfnew
_______________________________________________
Semediawiki-devel mailing list
Semediawiki-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/semediawiki-devel

Reply via email to