login( new \Mediawiki\Api\ApiUser( $REEVO_WIKI_API_USER, $REEVO_WIKI_API_PASS ) ); $services = new \Mediawiki\Api\MediawikiFactory( $api ); // Obtengo el nombre de la página como parámetro function ImportarImagenPrensa($pagetitle, $services) { global $REEVO_URL; $page = $services->newPageGetter()->getFromTitle( $pagetitle ); $pagecontent = $page->getRevisions()->getLatest(); if (!$pagecontent) { echo "No existe una página con el nombre '$pagetitle'\n"; return; } $pagecontent = $page->getRevisions()->getLatest()->getContent()->getData(); // armo un array con las propiedades de SMW $rows = explode("|", $pagecontent); foreach($rows as $row => $data) { $row_data = explode('=', $data); $page_properties[$row_data[0]] = $row_data[1]; } if (array_key_exists('prensa:imagen', $page_properties)) { echo "La página '$pagetitle' ya tiene una imagen\n"; return; } if (array_key_exists('prensa:elggid', $page_properties)) { $elggidtmp = $page_properties['prensa:elggid']; $elggid = preg_replace( "/\r|\n/", "", $elggidtmp ); // echo $url; } else { echo "La página '$pagetitle' no tiene definida la propiedad 'prensa:elggid'\n"; return; } // Definimos el nombre del archivo de la imagen $pagename = str_replace( ":", "-", $pagetitle); $snapshot_name = $pagename . '.jpg'; $snaphot_pagecontent = 'Imagen importada desde sitio anterior para [['. $pagetitle .']]'; $snaphot_desc = 'Imagen importada desde sitio anterior para [['. $pagetitle .']]'; $fileUploader = $services->newFileUploader(); $fileUploader->setChunkSize( 256 * 10 ); exec("cp /srv/reevo-web/files/red/recext/{$elggid}/`ls /srv/reevo-web/files/red/recext/{$elggid}/` /tmp/imagen && convert /tmp/imagen /tmp/imagen.jpg"); $fileUploader->upload( $snapshot_name, '/tmp/imagen.jpg', $snaphot_pagecontent, $snaphot_desc ); // Crea nueva o actualiza existente $linkContent = str_replace('}}','|prensa:imagen='. $snapshot_name . '}}', $pagecontent); $newContent = new \Mediawiki\DataModel\Content( $linkContent ); $title = new \Mediawiki\DataModel\Title( $pagetitle ); $identifier = new \Mediawiki\DataModel\PageIdentifier( $title ); $revision = new \Mediawiki\DataModel\Revision( $newContent, $identifier ); $services->newRevisionSaver()->save( $revision ); $link = urlencode("http://{$REEVO_URL}/Archivo:{$snapshot_name}"); echo "Importe la imagen para '{$pagetitle}' y se subio a: '{$link}'\n\n"; } if ($argv[1]) { ImportarImagenPrensa($argv[1],$services); } else { echo "Al no indicar una página, voy a generar los snapshots de todas las pagínas que usen Plantilla:Prensa \n"; // Obtengo todas las paginas con Plantilla:Prensa $pageListGetter = $services->newPageListGetter(); $examplePages = $pageListGetter->getPageListFromPageTransclusions( 'Template:Prensa' ); $array = accessProtected($examplePages,'pages'); foreach ( $array as $exPage ) { $pagename = $exPage->getTitle()->getText(); echo "$pagename \n"; ImportarImagenPrensa($pagename, $services); } } function accessProtected($obj, $prop) { $reflection = new ReflectionClass($obj); $property = $reflection->getProperty($prop); $property->setAccessible(true); return $property->getValue($obj); } // print_r($examplePages); // $myArray = json_decode(json_encode($examplePages), true); // print_r($examplePages->getPageList()); ?>