Alexander Nicolaysen Sørnes : Control Centre: Make it possible to fix noteLinks
Alexander Nicolaysen Sørnes
asornes at winehq.org
Sun Apr 24 15:44:01 CDT 2011
Module: appdb
Branch: master
Commit: 34340001458e7e798eb8c0b49491dfd755c2c877
URL: http://source.winehq.org/git/appdb.git/?a=commit;h=34340001458e7e798eb8c0b49491dfd755c2c877
Author: Alexander Nicolaysen Sørnes <alexsornes at gmail.com>
Date: Sun Apr 24 22:43:05 2011 +0200
Control Centre: Make it possible to fix noteLinks
---
admin.php | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 87 insertions(+), 9 deletions(-)
diff --git a/admin.php b/admin.php
index d37918c..be72faa 100644
--- a/admin.php
+++ b/admin.php
@@ -45,6 +45,8 @@ function fixNoteLinks()
$hResult = query_parameters("SELECT * FROM appNotes WHERE versionId = '?'", APPNOTE_SHOW_FOR_ALL);
echo 'The following notes are set to show for app and all versions:<br />';
+ $iCount = 0;
+ $iSkipped = 0;
while(($oRow = mysql_fetch_object($hResult)))
{
$oNote = new note(null, $oRow);
@@ -57,18 +59,32 @@ function fixNoteLinks()
foreach($aVersions as $oVersion)
{
$iVersionId = $oVersion->objectGetId();
- $sFix = "INSERT INTO tags_NoteVersion_assignments (tagId,taggedId) VALUES('$iVersionId','$iNoteId')";
- echo "$sFix<br />";
+
+ $hResultTag = query_parameters("SELECT COUNT(*) as count FROM tags_NoteVersion_assignments WHERE tagId = '?' AND taggedId = '?'", $iVersionId, $oRow->noteId);
+
+ $oRowTag = mysql_fetch_object($hResultTag);
+
+ if(!$oRowTag->count)
+ {
+ query_parameters("INSERT INTO tags_NoteVersion_assignments (tagId,taggedId) VALUES('$iVersionId','$iNoteId')");
+ $iCount++;
+ } else
+ {
+ $iSkipped++;
+ }
}
echo '<br />';
}
+ echo "<br /><br />Created $iCount tags ($iSkipped already existed)<br />";
// Notes shown for all versions
$hResult = query_parameters("SELECT * FROM appNotes WHERE versionId = '?'", APPNOTE_SHOW_FOR_VERSIONS);
echo '<br /><br />The following notes are set to show for all versions:<br />';
+ $iCount = 0;
+ $iSkipped = 0;
while(($oRow = mysql_fetch_object($hResult)))
{
$oNote = new note(null, $oRow);
@@ -81,17 +97,32 @@ function fixNoteLinks()
foreach($aVersions as $oVersion)
{
$iVersionId = $oVersion->objectGetId();
- $sFix = "INSERT INTO tags_NoteVersion_assignments (tagId,taggedId) VALUES('$iVersionId','$iNoteId')";
- echo "$sFix<br />";
+
+ $hResultTag = query_parameters("SELECT COUNT(*) as count FROM tags_NoteVersion_assignments WHERE tagId = '?' AND taggedId = '?'", $iVersionId, $oRow->noteId);
+
+ $oRowTag = mysql_fetch_object($hResultTag);
+
+ if(!$oRowTag->count)
+ {
+ query_parameters("INSERT INTO tags_NoteVersion_assignments (tagId,taggedId) VALUES('?','?')", $iVersionId, $iNoteId);
+ $iCount++;
+ } else
+ {
+ $iSkipped++;
+ }
}
echo '<br />';
}
+ echo "<br /><br />Created $iCount tags ($iSkipped already existed)<br />";
+
// Notes shown for specific versions
$hResult = query_parameters("SELECT * FROM appNotes WHERE versionId = '?'", APPNOTE_SHOW_FOR_SPECIFIC_VERSIONS);
echo '<br /><br />The following notes are set to show for specific versions:<br />';
+ $iCount = 0;
+ $iSkipped =0;
while(($oRow = mysql_fetch_object($hResult)))
{
$oNote = new note(null, $oRow);
@@ -101,20 +132,34 @@ function fixNoteLinks()
echo 'App: '.$oApp->objectMakeLink().'<br />';
echo '<br />';
- $hResult = query_parameters("SELECT DISTINCT(versionId) FROM appNotes WHERE linkedWith = '?'", $oNote->objectGetId());
+ $hResult2 = query_parameters("SELECT DISTINCT(versionId) FROM appNotes WHERE linkedWith = '?'", $oNote->objectGetId());
- while(($oRow = mysql_fetch_object($hResult)))
+ while(($oRow2 = mysql_fetch_object($hResult2)))
{
- $iVersionId = $oRow->versionId;
- $sFix = "INSERT INTO tags_NoteVersion_assignments (tagId,taggedId) VALUES('$iVersionId','$iNoteId')";
- echo "$sFix<br />";
+ $iVersionId = $oRow2->versionId;
+
+ $hResultTag = query_parameters("SELECT COUNT(*) as count FROM tags_NoteVersion_assignments WHERE tagId = '?' AND taggedId = '?'", $iVersionId, $oRow->noteId);
+
+ $oRowTag = mysql_fetch_object($hResultTag);
+
+ if(!$oRowTag->count)
+ {
+ query_parameters("INSERT INTO tags_NoteVersion_assignments (tagId,taggedId) VALUES('?','?')", $iVersionId, $iNoteId);
+ $iCount++;
+ } else
+ {
+ $iSkipped++;
+ }
}
}
+
+ echo "<br /><br />Created $iCount tags ($iSkipped already existed)<br />";
// Notes shown for app
$hResult = query_parameters("SELECT * FROM appNotes WHERE versionId = '?'", APPNOTE_SHOW_FOR_APP);
echo '<br /><br />The following notes are set to show on app page:<br />';
+ $iCount = 0;
while(($oRow = mysql_fetch_object($hResult)))
{
$oNote = new note(null, $oRow);
@@ -122,7 +167,40 @@ function fixNoteLinks()
echo 'ID: '.$oNote->objectGetId().'<br />';
echo 'App: '.$oApp->objectMakeLink().'<br />';
echo '<br />';
+ $iCount++;
}
+
+ echo "<br />$iCount in total<br />";
+
+ // Create links for ordinary notes
+ echo "<br /><br />Creating tags for ordinar notes<br />";
+ $hResult = query_parameters("SELECT * FROM appNotes WHERE versionId > '0' AND linkedWith = '0'");
+
+ $iTagsCreated = 0;
+ $iSkipped = 0;
+ while(($oRow = mysql_fetch_object($hResult)))
+ {
+ $hResultTag = query_parameters("SELECT COUNT(*) as count FROM tags_NoteVersion_assignments WHERE tagId = '?' AND taggedId = '?'", $oRow->versionId, $oRow->noteId);
+
+ $oRowTag = mysql_fetch_object($hResultTag);
+
+ if(!$oRowTag->count)
+ {
+ query_parameters("INSERT INTO tags_NoteVersion_assignments (tagId,taggedId) VALUES('?','?')", $oRow->versionId, $oRow->noteId);
+ $iTagsCreated++;
+ } else
+ {
+ $iSkipped++;
+ }
+ }
+
+ echo "Created $iTagsCreated note tags ($iSkipped already existed)<br />";
+
+
+ echo "<br />Deleting note links<br />";
+ $hResult = query_parameters("DELETE FROM appNotes WHERE linkedWith != '0'");
+ echo "Deleted ".mysql_affected_rows()." links<br />";
+
}
function showChoices()
More information about the wine-cvs
mailing list