Hi Jason,

As both the SMW gurus said it can be dangerous but I think there is a way
to do it, I have a small implementation where I am already using it.

For this to work you need to have the information stored in a second source
as well to be able to update the information on page refreshes (I use a
separate db table). The way to update this property-value is to use
the updateDataBefore hook and update the value by fetching it from the
alternate source - of course there is some redundancy here but I guess you
already knew that by now.

Regards,
Nischay Nahata

On Mon, Jun 29, 2015 at 9:37 PM, Markus Krötzsch <
mar...@semantic-mediawiki.org> wrote:

> On 29.06.2015 17:16, Yaron Koren wrote:
> > Hi Jason,
> >
> > If you're talking about making a change to the semantic data of a page
> > that is not reflected in that page's wikitext, that sounds like a bad
> > idea - the new data would be removed as soon as the page was edited and
> > saved again.
>
> Indeed, one has to be very careful here. The key is to make the change
> at the correct place to ensure that the data is not lost on updates or
> refreshs, which may not always trigger all MediaWiki hooks that you
> would use during normal parsing. In particular, semantic data is always
> secondary data which comes (mostly) from the content of the page and (in
> rare cases) from other metadata of the page (as for SMW's Modification
> date property).
>
> There are safe ways for setting properties from PHP, especially from
> within own parser functions. SMW's own #set parser function has examples
> on how to do this. Setting special properties like Modification date is
> more tricky.
>
> What you are trying to do sounds dangerous though, since it seems that
> you are trying to set the value of something that is controlled by
> another extension. If this is the case, you should let the other
> extension control it and insert into the page text whatever is necessary
> to get the value that you want. You cannot change SMW data to be
> different from what is actually given in the page -- doing so will only
> cause a temporary inconsistency in the database that will be "fixed" as
> soon as the page is stored/refreshed again. SMW data does not have an
> independent existence or history. It must be regenerated reliably on
> every refresh of the page.
>
> Regards,
>
> Markus
>
> >
> > -Yaron
> >
> > On Thu, Jun 25, 2015 at 3:42 PM, Jason Ji <jason.y...@gmail.com
> > <mailto:jason.y...@gmail.com>> wrote:
> >
> >     Hi SMW community,
> >
> >     I have a hopefully simple question. Is there a way to set an SMW
> >     property for a page programmatically in PHP? Suppose I have access
> >     to any of the relevant information, like the page ID.
> >
> >     For context, I'm writing an extension which, among other things,
> >     creates wiki pages using $wikipage->doEditContent(), and I'd like to
> >     be able to set a semantic title
> >     <https://www.mediawiki.org/wiki/Extension:Semantic_Title> property
> >     on the page at that point.
> >
> >     Thanks!
> >
> >     --
> >     Jason Ji
> >     jason.y...@gmail.com <mailto:jason.y...@gmail.com>
> >
> >
>  
> ------------------------------------------------------------------------------
> >     Monitor 25 network devices or servers for free with OpManager!
> >     OpManager is web-based network management software that monitors
> >     network devices and physical & virtual servers, alerts via email &
> sms
> >     for fault. Monitor 25 devices for free with no restriction. Download
> now
> >     http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
> >     _______________________________________________
> >     Semediawiki-devel mailing list
> >     Semediawiki-devel@lists.sourceforge.net
> >     <mailto:Semediawiki-devel@lists.sourceforge.net>
> >     https://lists.sourceforge.net/lists/listinfo/semediawiki-devel
> >
> >
> >
> >
> > --
> > WikiWorks · MediaWiki Consulting · http://wikiworks.com
> >
> >
> >
> ------------------------------------------------------------------------------
> > Monitor 25 network devices or servers for free with OpManager!
> > OpManager is web-based network management software that monitors
> > network devices and physical & virtual servers, alerts via email & sms
> > for fault. Monitor 25 devices for free with no restriction. Download now
> > http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
> >
> >
> >
> > _______________________________________________
> > Semediawiki-devel mailing list
> > Semediawiki-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/semediawiki-devel
> >
>
>
>
> ------------------------------------------------------------------------------
> Monitor 25 network devices or servers for free with OpManager!
> OpManager is web-based network management software that monitors
> network devices and physical & virtual servers, alerts via email & sms
> for fault. Monitor 25 devices for free with no restriction. Download now
> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
> _______________________________________________
> Semediawiki-devel mailing list
> Semediawiki-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/semediawiki-devel
>
------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
Semediawiki-devel mailing list
Semediawiki-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/semediawiki-devel

Reply via email to