Seite 1 von 2

anmerkung: snapshot contenido-cvs-2004-09-03.tar

Verfasst: Fr 10. Sep 2004, 11:10
von emergence
conlib/db_mysql.inc

es wurde ja die variable $cfg["nolock"] eingeführt wenn lock table nicht zur verfügung steht...

diese wird auch in der function lock verwendet

jedoch fehlt sie in der function unlock

diese sollte dann so aussehen...

Code: Alles auswählen

  function unlock() {
    global $cfg;
    if ($cfg["nolock"] == true)
    {
      return true;	
    }

    $res = $this->query("unlock tables");
    if (!$res) {
      $this->halt("unlock() failed.");
    }
    return $res;
  }
anmerkung noch zum setup beim erzeugen der config.php

die variable
$cfg["nolock"] wird nur dann eingefügt wenn lock table nicht gestattet ist...
sollte sie nicht immer vorhanden sein ?
zb standard

Code: Alles auswählen

$cfg["nolock"] = false;
ansonsten true

ach ja, wie siehts eigentlich aus mit
http://www.contenido.de/forum/viewtopic ... highlight=
und
http://www.contenido.de/forum/viewtopic ... 8844#28844

Verfasst: Fr 10. Sep 2004, 11:38
von timo
ich hab im moment gar keine zeit um mir irgendwas anzusehen.... :(

Verfasst: Fr 10. Sep 2004, 12:06
von emergence
das ist natürlich schlecht...

ich hab da noch einen netten gefunden...

hab mir die setup/index.php angesehen...

bei function screen_enter_mysql_data()

findet sich

Code: Alles auswählen

443:			if ($this -> globals["sql_target"] == 'upgrade')
444:			{
445:				$this -> globals["mode"] = 'upgrade';
das sollte aber

Code: Alles auswählen

445:				$this -> globals["mode"] = 'update';
sein...

es wird bei mode immer auf update geprüft, nicht jedoch auf upgrade...

Verfasst: Fr 10. Sep 2004, 15:03
von emergence
ich hab da ne frage
setup/index.php

bei function insert_sql()

findet sich

Code: Alles auswählen

		$result = mysql_query("SELECT idartlang, free_use_01, free_use_02, free_use_03 FROM ". $prefix."_art_lang");
		//echo "SELECT idartlang, free_use_01, free_use_02, free_use_03 FROM ". $prefix."_art_lang";

		$savedTM = "";

		if ($result !== false)
		{
			while ($data = mysql_fetch_array($result, MYSQL_ASSOC))
			{
				$savedTM[] = $data;
			}
		}
		//mysql_query ("ALTER TABLE ".$prefix."_keywords CHANGE 'keyword' 'idkeyword' INT( 10 ) DEFAULT '0' NOT NULL");

...


		if (is_array($savedTM))
		{
			foreach ($savedTM as $entry)
			{
				mysql_query("UPDATE ".$prefix."_art_lang SET time_move_cat = '".$entry["free_use_01"]."',".
			            	" time_target_cat ='".$entry["free_use_02"]."', time_online_move = '".$entry["free_use_03"]."' WHERE idartlang ='".$entry["idartlang"]."'");

			}
		}


ähm was macht die routine hier ?

anscheinend wurde das timemanagment mal damit gesteuert... ähm und in welcher version war das ?

Verfasst: Sa 11. Sep 2004, 09:42
von emergence
ich hab mir momentan etwas praktisches eingebaut...

in classes/class.inuse.php
bei function checkAndMark

Code: Alles auswählen

		global $sess, $auth, $notification, $area, $frame;
und

Code: Alles auswählen

if ($allowOverride == true && $auth->auth["uid"] == $obj->get("userid"))
durch

Code: Alles auswählen

		global $sess, $auth, $notification, $area, $frame, $perm;
und

Code: Alles auswählen

				if ($allowOverride == true && ($auth->auth["uid"] == $obj->get("userid") || $perm->have_perm()))
ersetzen...
das hat jetzt für mich den vorteil das es dem admin und sysadmin immer gestattet ist ein objekt zu entsperren unabhängig davon ob ein bearbeiter gerade mit diesem objekt arbeitet...

Verfasst: Mo 13. Sep 2004, 08:40
von emergence
noch was intressantes

bei con_inuse wird zeitweise das feld objectid leer gelassen...
das hat jetzt zur folge, das der artikel beim speichern von einem element zb CMS_HTML die meldung auftaucht zb:

Code: Alles auswählen

Artikel wird bearbeitet von test ()
ein entsperren mit override lock ist für den test user leider auch nicht möglich... das taucht dann immer wieder auf...
springt man in die übersicht oder editor wird keine sperre angezeigt...

ebenso intressant
ich bin bearbeiter eines artikels -> in con_inuse ist ein eintrag vorhanden...
dann wechsele ich in zb in den spaw und die url -> http://localhost/contenido/includes/inc ... ndedit.php?
wird geladen wird der eintrag in con_inuse wieder gelöscht...
sollte dieser nicht eingetragen bleiben ?

Verfasst: Mo 13. Sep 2004, 09:39
von emergence
ad.

Code: Alles auswählen

Artikel wird bearbeitet von test ()
das läßt sich doch relativ einfach nachvollziehen...

beispiel artikel auswählen - und man befindet sich im editor
in con_inuse ist alles korrekt vorhanden...
dann bei einem CMS_HTML element einfach mal auf save klicken...
in con_inuse fehlt nun die objectid *
nun schließt man einfach den browser ohne sich abzumelden
der eintrag in der con_inuse bleibt natürlich erhalten...
meldet man sich nun erneut an und wechselt in den artikel und versucht nochmal zu speichern kommt die obrige fehlermeldung...
lustigerweise kann dieser fall auch eintreten wenn man dann zulange im backend ist und rauskatapultiert wird...

* ich schätze es hängt damit zusammen dass die $idartlang bei
<form name="editcontent"...
nicht eingetragen wird...

Verfasst: Mo 13. Sep 2004, 09:41
von timo
ähm das mit dem leeren Feld in der con_inuse hatte ich noch nie...könnte das eventuell von deiner Änderung kommen?

Verfasst: Mo 13. Sep 2004, 09:55
von emergence
timo hat geschrieben:ähm das mit dem leeren Feld in der con_inuse hatte ich noch nie...könnte das eventuell von deiner Änderung kommen?
nein, ich habs gefunden

in einem älteren snapshot ist etwas enthalten, das in dem neuen nicht mehr an der selben position vorhanden war....

in der front_content.php fand sich vor

Code: Alles auswählen

	$col = new InUseCollection;
folgendes

Code: Alles auswählen

	$idartlang = getArtLang($idart, $lang);
ich habs aus versehen nicht mitkopiert...

nun gehts ohne probleme und die objectid wird immer gesetzt...
ein entsperren ist jetzt immer möglich, wenn man selbst der bearbeiter ist...

Verfasst: Mo 13. Sep 2004, 11:51
von emergence
ach ja noch was nettes...

beim installieren mit modulen und beispielen werden keine kategorien mehr in der db angelegt...
hängt vermutlich mit den tests der category_kickoff.php zusammen...

Verfasst: Mo 13. Sep 2004, 12:03
von timo
die category_kickoff wird aber nicht verwendet, soweit ich weiß?

Verfasst: Mo 13. Sep 2004, 12:06
von emergence
ad.
setup/index.php

bei function insert_sql()

hab mir das jetzt noch ein wenig angesehen...

bei einem upgrade hat das zur folge das alle zeitsteuerungseinstellungen
gelöscht werden...
ist glaube ich so nicht beabsichtigt... oder ?

vielleicht sollte dieser teil in das upgrade script der 4.2 version hinein...

Verfasst: Mo 13. Sep 2004, 12:22
von timo
öhm nicht wirklich?

Verfasst: Mo 13. Sep 2004, 12:25
von emergence
timo hat geschrieben:öhm nicht wirklich?
habs gerade getestet...
hab ne zeitsteuerung gesetzt...
upgrade
zeitsteuerung weg...

ergo schlecht...

Verfasst: Mo 13. Sep 2004, 12:26
von timo
aber das sind so code-teile, wo sich einerseits debugging nicht wirklich lohnt -> wegwerfen und neu machen

und andererseits problem ergeben, nicht nur von der 4.2 aus, sondern weil die konzepte da mehrfach geändert wurden...und trotz konzeptänderung der prozess der zeitsteuerung immer noch nicht richtig funktioniert.