Diskuze: Zdejší MVC a pluginy
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Přijde na to. Pokud používáš jmenné prostory tak do vendoru. Pokud ne tak bys měl mít odělenou logiku a data oddělená. U jmenných prostorů ale buddeš muset ještě celou aplikaci třetí strany upravit aby je využívala správně.
Záleží jaké MVC používáš. To "jednoduché MVC" nemá ještě žádnou robustní architekturu, takže do modelů. Pokud máš MVC z e-shopu, které "jednoduché MVC" rozšiřuje, tak tam do vendoru.
Hadam, ze pouzivas zdejsi jednoduche MVC, ktere sem taky blahove pouzival ... doporucuji ti hned hopsnout na nejaky framework, pokud to MVC chapes (Nette / Laravel ?) nebo si k tomu jednoduchemu MVC sednout, zkusit si na tom napsat vetsi appku, najit nedostatky a prakticky ho cely prekopat (jakoze zaklad nechat ale hoooodne ho rozsirit).
Ja nakonec skoncil tak, ze sem to zdejsi MVC reseni totalne prekopal k nepoznani ... ale stejne mi tam chybelo plno veci, az sem to nakonec hodil do kose a presel na Nette. Tim samozrejme nechci rict, ze to je spatne jen to je fakt jak rika nazev "jednoduche MVC" a to casem zacne byt problem. Poslouzilo mi ale i pro tvorbu internich appek pro dodavatelske spolecnosti Hyundaie a byli spokojeni!
Kazdopadne k dotazu ... externi pluginy apod. sem ze zacatku resil tak, ze sem si udelal slozku lib v korenovem adresari a tam sem uchovaval CSS + JS od stahnutych pluginu. Pak sem i to smazal a zacal pouzivat composer.
V seriálu e-shop je ukázané jak se to MVC dále rozšíří, není třeba nic vymýšlet
Děkuji za rady, už jsem na to jaksi přišel, ovšem se objevil problém s editorem tinyMCE, kdy v momentě, že chci přidávat obrázky pomocí file browseru, tak dobře, vyberu si obrázek, zobrazí se mi v okně pro edit, ale musím javascriptem odeslat data do souboru "postAcceptor.php" jako je psáno v oficiální dokumentaci tinyMCE. Zkoušel jsem plno způsobů, ale nevím, jak to správně napojit, pokud mě .htaccess vždy z /postAcceptor.php hodí na /postAcceptor a následně mě kontroler hodí na chybovou stránku (nebo pokud udělám v kontroleru vyjímku, nechá mě to přistoupit na /postAcceptor, ovšem data se do něj ze scriptu neodešlou. Tady jsou zdrojáky:
postAcceptor.php
$imageFolder = "img/";
reset ($_FILES);
$temp = current($_FILES);
if (is_uploaded_file($temp['tmp_name'])){
if (preg_match("/([^\w\s\d\-_~,;:\[\]\(\).])|([\.]{2,})/", $temp['name'])) {
header("HTTP/1.0 500 Invalid file name.");
return;
}
// Verify extension
if (!in_array(strtolower(pathinfo($temp['name'], PATHINFO_EXTENSION)), array("gif", "jpg", "png"))) {
header("HTTP/1.0 500 Invalid extension.");
return;
}
$filetowrite = $imageFolder . $temp['name'];
move_uploaded_file($temp['tmp_name'], $filetowrite);
echo json_encode(array('location' => $filetowrite));
} else {
// Notify editor that the upload failed
header("HTTP/1.0 500 Server Error");
}
a tinyMCE js plugin:
tinymce.init({
selector: "textarea[name=obsah], textarea[name=perex]",
theme: "modern",
paste_data_images: true,
plugins: [
"advlist autolink lists link image charmap print preview hr anchor pagebreak",
"searchreplace wordcount visualblocks visualchars code fullscreen",
"insertdatetime media nonbreaking save table contextmenu directionality",
"emoticons template paste textcolor colorpicker textpattern"
],
toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
toolbar2: "print preview media | forecolor backcolor emoticons",
image_title: true,
images_upload_url: '/postAcceptor.php',
file_picker_types: 'image',
images_upload_base_path: '/img/',
file_picker_callback: function(cb, value, meta) {
var input = document.createElement('input');
input.setAttribute('type', 'file');
input.setAttribute('accept', 'image/*');
input.onchange = function() {
var file = this.files[0];
var id = 'blobid' + (new Date()).getTime();
var blobCache = tinymce.activeEditor.editorUpload.blobCache;
var blobInfo = blobCache.create(id, file);
blobCache.add(blobInfo);
cb(blobInfo.blobUri(), { title: file.name });
};
input.click();
}
});
Děkuji za jakékoliv rady a nápady.
Hoď ho do ignorace.
RewriteRule ^postAcceptor.php$ - [L]
Zobrazeno 8 zpráv z 8.