Beiträge: 769 
	Themen: 108 
	Registriert seit: 23.08.2007
	
 MyBB-Version: 1.6
	 
 
	
		
		
		13.10.2010, 10:09 
(Dieser Beitrag wurde zuletzt bearbeitet: 13.10.2010, 10:14 von Plexxart.)
		
	 
	
		Hallo Forum 
Jetzt gibts ja in der 1.6 Version die Möglichkeit vor dem Betreff ein Präfix zu setzen und dieses habe ich in meinem Forum auch bei einigen Foren aktiviert.
 
Leider ists so, daß die User die Präfixauswahl manchmal vergessen oder einfach nicht mitbekommen, daß so eine Auswahl überhaupt möglich ist.
 
Jetzt habe ich ein Thema dazu in MyBBCooder dazu gelesen, welches den User bei nichtsetzen des Präfixes dazu auffordert dieses auszuwählen andernfalls wird der Beitrag nicht abgespeichert.
 https://www.mybb.de/forum/thread-22788.html
Leider hat dies wie das Thema auch zeigt, bei mir nicht optimal funktioniert.
 
Da ich das aber schon gerne hätte frage ich hier nochmals nach, obs eine Möglichkeit gibt dies mittels Code zu ändern.
 
Danke schon mal für eure Antworten.
	  
	
	
	
	
 
 
	
	
	
		
	Beiträge: 769 
	Themen: 108 
	Registriert seit: 23.08.2007
	
 MyBB-Version: 1.6
	 
 
	
	
		Hat denn keiner eine Idee von euch ? Oder ist die Scriptänderung zu umfangreich es einfach umzusetzen ?
	 
	
	
	
	
 
 
	
	
	
		
	Beiträge: 35 
	Themen: 2 
	Registriert seit: 17.10.2010
	
 MyBB-Version: 1.6
	 
 
	
		
		
		21.10.2010, 08:52 
(Dieser Beitrag wurde zuletzt bearbeitet: 21.10.2010, 08:53 von Mithrandir.)
		
	 
	
		Eine Idee, die ich noch überhaupt nicht getestet habe und kein Code, sondern nur der prinzipielle Ablauf: 
Code:         if(!$prefix || $prefix < 1) 
        { 
            $prefix = 0; 
        }
 
wurde anscheinend in 
 Code:         if(!$prefix || $prefix < 1) 
        { 
            $this->set_error("missing_prefix"); 
        }
 geändert.
 
Frage vor dem set_error noch die Forenid ab (geht vermutlich mit  $post['fid']) und definiere ein Array der Foren mit zu setzenden Präfix. Schaue nach, ob das aktuell benutzte Forum in dem Array steht, wenn ja, verwende set_error, wenn nein $prefix=0
 
Das hardcodierte Arrray ist natürlich nicht so schön und müsste immer wieder angepasst werden, sobald du die Präfixzuordnung änderst.
	  
	
	
MfG, 
Mithrandir 
 
MyBB 1.6 im Intranet unter Ubuntu 10.04.1 Server
 
	
	
 
 
	
	
	
		
	Beiträge: 769 
	Themen: 108 
	Registriert seit: 23.08.2007
	
 MyBB-Version: 1.6
	 
 
	
	
		 (21.10.2010, 08:52)Mithrandir schrieb:  Frage vor dem set_error noch die Forenid ab (geht vermutlich mit  $post['fid']) und definiere ein Array der Foren mit zu setzenden Präfix. Schaue nach, ob das aktuell benutzte Forum in dem Array steht, wenn ja, verwende set_error, wenn nein $prefix=0 
 
 
Das hardcodierte Arrray ist natürlich nicht so schön und müsste immer wieder angepasst werden, sobald du die Präfixzuordnung änderst. 
Danke dir für deine Hilfe, nur bin ich in php eher eine Null, somit ists mir nicht möglich den Code selbst zu erstellen.   
Mfg 
Walter
	  
	
	
	
	
 
 
	
	
	
		
	Beiträge: 1.939 
	Themen: 18 
	Registriert seit: 30.06.2007
	
 MyBB-Version: 1.6.6
	 
 
	
		
		
		21.10.2010, 12:40 
(Dieser Beitrag wurde zuletzt bearbeitet: 21.10.2010, 12:47 von linwinman.)
		
	 
	
		Hallo Walter, 
versuche es einmal mit folgendem Code:
 
ersetze in Datei ".../inc/datahandlers/post.php"
 PHP-Code:     /** 
     * Verify thread prefix. 
     *  
     * @return boolean True when valid, false when not valid. 
     */ 
    function verify_prefix() 
    { 
        $prefix = &$this->data['prefix']; 
         
        // If a valid prefix isn't supplied, don't assign one. 
        if(!$prefix || $prefix < 1) 
        { 
            $prefix = 0; 
        } 
         
        return true; 
    }  
 durch
 PHP-Code:     /** 
     * Verify thread prefix. 
     *  
     * @return boolean True when valid, false when not valid. 
     */ 
    function verify_prefix() 
    { 
        $prefix_forums = array("X", "Y"); 
        $fid = &$this->data['fid']; 
        $prefix = &$this->data['prefix']; 
         
        // prefix is mandatory in specific forums 
        if((!$prefix || $prefix < 1) && in_array($fid, $prefix_forums)) 
        { 
            $this->set_error("missing_prefix"); 
            return false; 
        } 
         
        return true; 
    }  
 - das Array "$prefix_forums" kannst du beliebig erweitern; ersetze dabei "X" und "Y" durch deine Foren-IDs.
	  
	
	
	
	
 
 
	
	
	
		
	Beiträge: 35 
	Themen: 2 
	Registriert seit: 17.10.2010
	
 MyBB-Version: 1.6
	 
 
	
		
		
		21.10.2010, 13:12 
(Dieser Beitrag wurde zuletzt bearbeitet: 21.10.2010, 13:29 von Mithrandir.)
		
	 
	
		mir gefiel ja mein Vorschlag mit dem Array nicht, deshalb ein Versuch, der die Datenbank auswertet - sprich die zugewiesenen Präfixe+Foren werden mit SQL ermittelt: 
Code:     function verify_prefix() 
    { 
        global $mybb, $db; 
         
        $post = &$this->data; 
        $prefix = &$this->data['prefix']; 
         
        // If a valid prefix isn't supplied, don't assign one. 
        if(!$prefix || $prefix < 1) 
        { 
        $query = $db->simple_select("threadprefixes", "COUNT(prefix) AS prefixcount", "forums='-1' OR ".$post['fid']." IN(forums)"); 
        $prefixinthisforum = $db->fetch_field($query, "prefixcount"); 
            if ($prefixinthisforum==0) 
            { 
            $prefix = 0; 
        } else { 
            $this->set_error("missing_prefix"); 
        } 
        } 
         
        return true; 
    }
 
Erklärung zum Kriterium: 
"forums='-1' OR ".$post['fid']." IN(forums)"
 
Präfixe, die allen Foren zugewiesen sind, erhalten -1 im Feld "forums". Somit gehe ich davon aus, dass die Präfixauswahl auch in jedem Forum nötig ist. Das Kriterium könnte also um den Filter verringert werden, wenn man nur kontrollieren will, ob eines der direkt zugewiesenen Präfixe gewählt wurde. Hm - ist das verständlich?
 
Ansonsten stehen die Foren-IDs durch Komma getrennt im Feld "forums" - das wird mit dem IN abgefragt. Es kommt also z.B. so etwas zustande: "2 in (forums)", wenn man im Forum 2 postet.
	  
	
	
MfG, 
Mithrandir 
 
MyBB 1.6 im Intranet unter Ubuntu 10.04.1 Server
 
	
	
 
 
	
	
	
		
	Beiträge: 769 
	Themen: 108 
	Registriert seit: 23.08.2007
	
 MyBB-Version: 1.6
	 
 
	
	
		Servus  
 
Ich danke euch beiden recht herzlich für die Lösungsvorschläge wobei ich gleich mal Linwinmans Vorschlag umgesetzt habe. 
 
Vielleicht könnte man auch eine Verbesserung in den neuen Versionen von Mybb übernehmen, daß man aussuchen kann in welchen Foren die Auswahl der Präfixe zwingend ist. 
 
Ist das eine gute Idee ?  
 
 
Ich habe dann noch in der 
 
.../inc/languages/deutsch_du/datahandler_post.lang.php 
 
ein neues error handling angelegt 
 
$l['postdata_missing_prefix'] = 'Prefix fehlt. Blaa Blubb.'; 
 
Danke nochmals ! 
 
Mfg 
Walter 
 
	 
	
	
	
	
 
 
	
	
	
		
	Beiträge: 25.820 
	Themen: 271 
	Registriert seit: 20.09.2005
	
	 
 
	
	
		IN (forums) funktioniert wahrscheinlich nicht...
	 
	
	
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
 
	
	
 
 
	
	
	
		
	Beiträge: 35 
	Themen: 2 
	Registriert seit: 17.10.2010
	
 MyBB-Version: 1.6
	 
 
	
	
		@Stefan: ich hab's ausprobiert - bei mir funktioniert's. Du kannst es auch einfach mit phpmyadmin simulieren und eine Abfrage wie 
 
select count(*) From mybb_threadprefixes where 2 in(forums) 
 
abschicken (2 ist natürlich ein Beispiel).
	 
	
	
MfG, 
Mithrandir 
 
MyBB 1.6 im Intranet unter Ubuntu 10.04.1 Server
 
	
	
 
 
	
	
	
		
	Beiträge: 25.820 
	Themen: 271 
	Registriert seit: 20.09.2005
	
	 
 
	
	
		Ich habe es ausprobiert, es funktioniert nicht, wenn ein Präfix in mehreren Foren verwendet wird.
	 
	
	
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
 
	
	
 
 
	 
 |