|
Re: Besoin d'aide pour un regex |
|
Régulier
Inscrit: 10/09/2007 11:51
|
Bon j'ai tout refait maintenant ça passe mais ça ne me retourne pas ce que je veut: mais au lieu de me retourner le morceau d'url que je lui demande, avec print_r j'ai ceci dans le code source: je pige pas trop pourquoi il me sort tout ça et pourquoi y'a des parties en rouge. c'est pas gagné.
Posté le : 06/04/2015 18:30
|
|
|
Re: Besoin d'aide pour un regex |
|
Régulier
Inscrit: 10/09/2007 11:51
|
Y'avais une erreur avec le if mais ça ne change rien, je cherche tjrs comment faire. code final(regex a changer)
Posté le : 06/04/2015 17:11
|
|
|
Besoin d'aide pour un regex |
|
Régulier
Inscrit: 10/09/2007 11:51
|
Salut Je suis en train d'écrire un script pour récupérer un lien sur une page web (mon compte premium), j'ai juste un soucis avec le regex de l'url, je n'arrive pas à le faire fonctionner. Je fait un premier regex sur la page pour récup le code entre les balises <video> pas de soucis mais ensuite, je doit faire le tri et extraire 1 url en particulier. Voila a quoi ça ressemble:
$regex = '/<div id='vid'>(.*?)</div>/s'; if ( preg_match($regex, $content, $list) ) echo $list[0]; else print "Not found";
résultat de la variable:
<video id="example_video_1" class="video-js vjs-default-skin" controls preload="none" width="640" height="360"
poster="https://www72.uptobox.com/thumbnail/dfcdd7ad11b196101fc3983c79c402cf_big.jpg">
<source src='http://www72.uptobox.com/stream/5dtyu89173/360/0' type='video/mp4' data-res='360p' data-default="true" lang='unknow 0' idLang='0'/>
<source src='http://www72.uptobox.com/stream/5dtyu89173/480/0' type='video/mp4' data-res='480p' lang='unknow 0' idLang='0'/>
<source src='http://www72.uptobox.com/stream/5dtyu89173/720/0' type='video/mp4' data-res='720p' lang='unknow 0' idLang='0'/>
<source src='http://www72.uptobox.com/stream/5dtyu89173/1080/0' type='video/mp4' data-res='1080p' lang='unknow 0' idLang='0'/>
</video>
je veut extraire les urls en commençant par la plus haute résolution, si 1080p n'existe pas, je passe au 720p bref, le soucis c'est mon regex qui passe pas:
$regexurl = '/<source src='(.*?)' type='video/mp4' data-res='1080p'/s';
if ( preg_match($regexurl, $list[0], $listurl) )
echo $listurl[0];
else
$regexurl = '/<source src='(.*?)' type='video/mp4' data-res='720p'/s';
if ( preg_match($regexurl, $list[0], $listurl) )
echo $listurl[0];
else
print "url Not found";
et j'ai l'erreur suivante:
Unknown modifier 'p' in /customers/e/2/9/streamingfilm.me/httpd.www/recup_link.php on line 52 url Not found
j'ai essayer de mettre le p comme ceci[p] mais c'est pareil. j'ai essayé des tas de combinaison sans succés d'ou mon message. PS:les anti-slash disparaissent dans la balise code, ça me parrait pas normale. Bon voila une image pour tout voir: Merci de votre aide
Posté le : 06/04/2015 16:12
|
|
|
Re: Notifications qui ne fonctionne pas dans xoopstube |
|
Régulier
Inscrit: 10/09/2007 11:51
|
Salut On le vois au dessus à partir du cid mais je sais pas pourquoi il garde 0 alors qu'on a bien donnée une nouvelle id à la catégorie qu'on est en train de créer, d'ailleurs tout fonctionne parfaitement sauf cette variable du message. J'ai peut être pas compris ce que tu demandait, pourrait tu être plus clair car on voit comment est défini category_url, le soucis c'est que la variable $newid renvoi 0. Voila l'op en entier:
case 'addCat':
$groups = isset($_REQUEST['groups']) ? $_REQUEST['groups'] : array();
$cid = (isset($_REQUEST['cid'])) ? $_REQUEST['cid'] : 0;
$pid = (isset($_REQUEST['pid'])) ? $_REQUEST['pid'] : 0;
$weight = (isset($_REQUEST['weight']) && $_REQUEST['weight'] > 0) ? $_REQUEST['weight'] : 0;
$spotlighthis = (isset($_REQUEST['lid'])) ? $_REQUEST['lid'] : 0;
$spotlighttop = ($_REQUEST['spotlighttop'] == 1) ? 1 : 0;
$title = $xtubemyts->addslashes($_REQUEST['title']);
$descriptionb = $xtubemyts->addslashes($_REQUEST['description']);
$imgurl = (
$_REQUEST['imgurl'] && $_REQUEST['imgurl'] != 'blank.gif') ? $xtubemyts->addslashes($_REQUEST['imgurl']) : '';
$client_id = (isset($_REQUEST['client_id'])) ? $_REQUEST['client_id'] : 0;
if ($client_id > 0) {
$banner_id = 0;
} else {
$banner_id = (isset($_REQUEST['banner_id'])) ? $_REQUEST['banner_id'] : 0;
}
$nohtml = isset($_REQUEST['nohtml']);
$nosmiley = isset($_REQUEST['nosmiley']);
$noxcodes = isset($_REQUEST['noxcodes']);
$noimages = isset($_REQUEST['noimages']);
$nobreak = isset($_REQUEST['nobreak']);
if (!$cid) {
$cid = 0;
$sql = "INSERT INTO " . $xoopsDB->prefix('xoopstube_cat')
. " (cid, pid, title, imgurl, description, nohtml, nosmiley, noxcodes, noimages, nobreak, weight, spotlighttop, spotlighthis, client_id, banner_id ) VALUES ('', $pid, '$title', '$imgurl', '$descriptionb', '$nohtml', '$nosmiley', '$noxcodes', '$noimages', '$nobreak', '$weight', $spotlighttop, $spotlighthis, $client_id, $banner_id )";
if ($cid == 0) {
$newid = $xoopsDB->getInsertId();
}
// Notify of new category
global $xoopsModule;
$tags = array();
$tags['CATEGORY_NAME'] = $title;
$tags['CATEGORY_URL']
=
XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewcat.php?cid=' . intval($newid);
$notification_handler = &xoops_gethandler('notification');
$notification_handler->triggerEvent('global', 0, 'new_category', $tags);
$database_mess = _AM_XTUBE_CCATEGORY_CREATED;
} else {
if ($cid == $pid) {
redirect_header('category.php', 1, _AM_XTUBE_ERROR_CATISCAT);
exit();
}
$sql = "UPDATE " . $xoopsDB->prefix('xoopstube_cat')
. " SET title ='$title', imgurl='$imgurl', pid =$pid, description='$descriptionb', spotlighthis='$spotlighthis' , spotlighttop='$spotlighttop', nohtml='$nohtml', nosmiley='$nosmiley', noxcodes='$noxcodes', noimages='$noimages', nobreak='$nobreak', weight='$weight', client_id='$client_id', banner_id='$banner_id' WHERE cid="
. intval($cid);
$database_mess = _AM_XTUBE_CCATEGORY_MODIFIED;
}
if (!$result = $xoopsDB->query($sql)) {
XoopsErrorHandler_HandleError(E_USER_WARNING, $sql, __FILE__, __LINE__);
return FALSE;
}
redirect_header('category.php', 1, $database_mess);
break;
Posté le : 31/03/2015 16:17
|
|
|
Notifications qui ne fonctionne pas dans xoopstube |
|
Régulier
Inscrit: 10/09/2007 11:51
|
Salut Il y a pas mal de soucis avec les notifications dans xoopstube que j'aimerais régler. J'ai pas trouver d'infos sur la notification dans la doc et du coup, j'ai un peu de mal à tout comprendre. Si vous avez des infos la dessus qui pourrait m'aider à comprendre tout le processus, ça serait bien. les notifications automatique du bas de page ont l'air de fonctionner mais pas les validations, modifications. Pas de message à l'arrivée et pas d'erreur php qui pourrait m'orienter. Donc ... p'tit coup de mains please 1er ptit soucis: Dans le message de notifications de nouvelle categorie, il y a un pb avec le cid dans l'url (il reste à 0). Citation : auto-notification : Nouvelle catégorie de vidéos
Salutations Admin,
Une nouvelle catégorie de vidéos « Aoi Sekai no Chuushin de » a été créée sur StreamingFilm.
Suivez ce lien pour afficher cette catégorie de vidéos : http://streamingfilm.me/streaming/viewcat.php?cid=0
Suivez ce lien pour afficher l'index de la catégorie : http://streamingfilm.me/streaming/
-----------
Vous recevez ce message parce que vous avez demandé être informé lorsque de nouvelles catégories de vidéos sont ajoutés à notre site.
Si c'est une erreur ou si vous ne souhaitez plus recevoir de telles notifications, veuillez mettre à jour vos abonnements en visitant le lien ci-dessous : http://streamingfilm.me/notifications.php
Veuillez ne pas répondre à ce message. Je ne sais pas pourquoi le $newid ne fonctionne pas:
// Notify of new category
global $xoopsModule;
$tags = array();
$tags['CATEGORY_NAME'] = $title;
$tags['CATEGORY_URL']
=
XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewcat.php?cid=' . $newid;
$notification_handler = &xoops_gethandler('notification');
$notification_handler->triggerEvent('global', 0, 'new_category', $tags);
$database_mess = _AM_XTUBE_CCATEGORY_CREATED;
} else {
if ($cid == $pid) {
redirect_header('category.php', 1, _AM_XTUBE_ERROR_CATISCAT);
exit();
}
$sql = "UPDATE " . $xoopsDB->prefix('xoopstube_cat')
. " SET title ='$title', imgurl='$imgurl', pid =$pid, description='$descriptionb', spotlighthis='$spotlighthis' , spotlighttop='$spotlighttop', nohtml='$nohtml', nosmiley='$nosmiley', noxcodes='$noxcodes', noimages='$noimages', nobreak='$nobreak', weight='$weight', client_id='$client_id', banner_id='$banner_id' WHERE cid="
. intval($cid);
$database_mess = _AM_XTUBE_CCATEGORY_MODIFIED;
}
if (!$result = $xoopsDB->query($sql)) {
XoopsErrorHandler_HandleError(E_USER_WARNING, $sql, __FILE__, __LINE__);
return FALSE;
}
redirect_header('category.php', 1, $database_mess);
break;
Pourtant juste au dessus on a bien $newid qui est défini:
if (!$cid) {
$cid = 0;
$sql = "INSERT INTO " . $xoopsDB->prefix('xoopstube_cat')
. " (cid, pid, title, imgurl, description, nohtml, nosmiley, noxcodes, noimages, nobreak, weight, spotlighttop, spotlighthis, client_id, banner_id ) VALUES ('', $pid, '$title', '$imgurl', '$descriptionb', '$nohtml', '$nosmiley', '$noxcodes', '$noimages', '$nobreak', '$weight', $spotlighttop, $spotlighthis, $client_id, $banner_id )";
if ($cid == 0) {
$newid = $xoopsDB->getInsertId();
}
le template associé:
Salutations {X_UNAME},
Une nouvelle catégorie de vidéos « {CATEGORY_NAME} » a été créée sur {X_SITENAME}.
Suivez ce lien pour afficher cette catégorie de vidéos :
{CATEGORY_URL}
Suivez ce lien pour afficher l'index de la catégorie :
{X_MODULE_URL}
-----------
Vous recevez ce message parce que vous avez demandé être informé lorsque de nouvelles catégories de vidéos sont ajoutés à notre site.
Si c'est une erreur ou si vous ne souhaitez plus recevoir de telles notifications, veuillez mettre à jour vos abonnements en visitant le lien ci-dessous :
{X_UNSUBSCRIBE_URL}
Veuillez ne pas répondre à ce message.
-----------
{X_SITENAME} ({X_SITEURL})
Le(a) webmestre
{X_ADMINMAIL}
Posté le : 27/03/2015 10:00
|
|
|
Defacer et l'url rewriting ne font pas bon ménage |
|
Régulier
Inscrit: 10/09/2007 11:51
|
Salut Je viens de m'apercevoir d'un pb avec defacer. J'utilise xorewrite et du coup tout les réglages que j'ai fait dans defacer ne fonctionne pas. ils fonctionnent sur l'url d'origine modules/nom_de_module mais pas sur l'url réécrite et donc celle que j'utilise. le soucis c'est qu'on a pas le choix, on ne peut pas modifier ça sans toucher au code,j'ai pas encore trouvé ou ça ce passe, si quelqu'un connait bien ce module, serait il possible d'être orienté pour savoir ou agir. Je connais absolument pas ce module niveau code donc un ptit coup de pouce est le bienvenue. merci 9a devrait être sur admin_page.php En fait on choisi le module dans un menu deroulant et on a donc pas possibilité d'agir sur l'url. Ensuite on fourni juste la dernière partie de l'url. Faut donc que je modifie le code pour inclure mes nouvelles url. EDIT: J'ai trouvé le bout de code du formulaire mais ça va être plus compliqué que je pensais, je vois pas trop comment je peut faire, de plus ici on ne fait que choisir le module, l'url est formé ailleurs:
$mid = new XoopsFormSelect(_AM_DEFACER_PAGE_MODULE, 'page_moduleid', $obj->getVar('page_moduleid', 'e'));
$mid->customValidationCode[] = 'var value = document.getElementById('page_moduleid').value; if (value == 0){alert("' . _AM_DEFACER_SELECTMODULE_ERR . '"); return false;}';
$module_handler =& xoops_gethandler('module');
$criteria = new CriteriaCompo(new Criteria('hasmain', 1));
$criteria->add(new Criteria('isactive', 1));
//$criteria->setSort('name');
//$criteria->setOrder('ASC'); xoopsModule does not accpet this :(
$moduleslist = $module_handler->getList($criteria);
$module = $module_handler->get(1);
$list = array($module->getVar('mid') => $module->getVar('name'));
$moduleslist = $list + $moduleslist;
$mid->addOptionArray($moduleslist);
$form->addElement($mid, true);
Posté le : 25/03/2015 10:13
|
|
|
Re: Plus de 500 requête sur la page index de xoopstube (c'est beaucoup) |
|
Régulier
Inscrit: 10/09/2007 11:51
|
Re Merci olivee t'a raison c'est bien cette fonction qui est en cause, me reste plus qu'a la modifier car les catégories alternative servent à rien dans mon cas. EDIT: Problème résolu y'avais bien une boucle de requêtes concernant les catégories alternative. commenté comme suit:
function xtube_getTotalItems($sel_id = 0, $get_child = 0, $return_sql = 0) {
global $xoopsDB, $mytree, $_check_array;
if ($sel_id > 0) {
$sql = 'SELECT a.lid, a.cid, a.published FROM ' . $xoopsDB->prefix('xoopstube_videos') . ' a LEFT JOIN '
. $xoopsDB->prefix('xoopstube_altcat') . ' b' . ' ON b.lid=a.lid'
. ' WHERE a.published > 0 AND a.published <= ' . time() . ' AND (a.expired = 0 OR a.expired > ' . time()
. ') AND offline = 0 ' . ' AND (b.cid=a.cid OR (a.cid=' . $sel_id . ' OR b.cid=' . $sel_id . '))'
. ' GROUP BY a.lid, a.cid, a.published';
} else {
$sql = 'SELECT lid, cid, published FROM ' . $xoopsDB->prefix('xoopstube_videos')
. ' WHERE offline = 0 AND published > 0 AND published <= ' . time() . ' AND (expired = 0 OR expired > '
. time() . ')';
}
if ($return_sql == 1) {
return $sql;
}
$count = 0;
$published_date = 0;
$arr = array();
$result = $xoopsDB->query($sql);
while (list($lid, $cid, $published) = $xoopsDB->fetchRow($result)) {
if (TRUE == xtube_checkgroups()) {
$count++;
$published_date = ($published > $published_date) ? $published : $published_date;
}
}
/*
$child_count = 0;
if ($get_child == 1) {
$arr = $mytree->getAllChildId($sel_id);
$size = count($arr);
for ($i = 0; $i < count($arr); $i++) {
$query2 = 'SELECT a.lid, a.published, a.cid FROM ' . $xoopsDB->prefix('xoopstube_videos') . ' a LEFT JOIN '
. $xoopsDB->prefix('xoopstube_altcat') . ' b' . ' ON b.lid = a.lid'
. ' WHERE a.published > 0 AND a.published <= ' . time() . ' AND (a.expired = 0 OR a.expired > ' . time()
. ') AND offline = 0' . ' AND (b.cid=a.cid OR (a.cid=' . $arr[$i] . ' OR b.cid=' . $arr[$i]
. ')) GROUP BY a.lid, a.published, a.cid';
$result2 = $xoopsDB->query($query2);
while (list($lid, $published) = $xoopsDB->fetchRow($result2)) {
if ($published == 0) {
continue;
}
$published_date = ($published > $published_date) ? $published : $published_date;
$child_count++;
}
}
}*/
$info['count'] = $count /*+ $child_count*/;
$info['published'] = $published_date;
return $info;
}
Résultat: 490 requêtes de moins, il en reste 62, magnifique.
Posté le : 16/01/2015 02:45
|
|
|
Re: Plus de 500 requête sur la page index de xoopstube (c'est beaucoup) |
|
Régulier
Inscrit: 10/09/2007 11:51
|
Re Non aucun bloc. oui il y a la recherche alphabétique. Et j'ai bien un genre de menu, ou plutôt une liste des catégories principale qui correspond à cette requête du fichier index.php:
$sql = 'SELECT * FROM ' . $xoopsDB->prefix('xoopstube_cat') . ' WHERE pid=0 ORDER BY ' . $catsort;
pid = 0 donc bien seulement les categories principale. ensuite il y a la liste des derniers liens ajouté qui correspond bien aussi au fichier index:
$result = $xoopsDB->query(
'SELECT * FROM ' . $xoopsDB->prefix('xoopstube_videos') . ' WHERE published > 0
AND published <= ' . time() . '
AND (expired = 0 OR expired > ' . time() . ')
AND offline = 0
ORDER BY published DESC', $limit, $start
);
Je ne vois aucune requête sur index.php qui correspond à cette cascade de requête avec jointure de table. par contre, il est vrai que dans l'administration, il y a une option (que je garde désactivé) pour afficher aussi les sous catégories (ou dumoins les 5 première). ça doit correspondre à ceci juste en dessous de la première requête montré plus haut:
$catsort = $xoopsModuleConfig['sortcats'];
$sql = 'SELECT * FROM ' . $xoopsDB->prefix('xoopstube_cat') . ' WHERE pid=0 ORDER BY ' . $catsort;
$result = $xoopsDB->query($sql);
while ($myrow = $xoopsDB->fetchArray($result)) {
$countin++;
$subtotalvideoload = 0;
$totalvideoload = xtube_getTotalItems($myrow['cid'], 1);
$indicator = xtube_isnewimage($totalvideoload['published']);
if (xtube_checkgroups($myrow['cid'])) {
$title = $xtubemyts->htmlSpecialCharsStrip($myrow['title']);
$arr = array();
$arr = $mytree->getFirstChild($myrow['cid'], 'title');
$space = 1;
$chcount = 1;
$subcategories = '';
foreach ($arr as $ele) {
if (TRUE == xtube_checkgroups($ele['cid'])) {
if ($xoopsModuleConfig['subcats'] == 1) {
$chtitle = $xtubemyts->htmlSpecialCharsStrip($ele['title']);
if ($chcount > 5) {
$subcategories .= '...';
break;
}
if ($space > 0) {
$subcategories .= '<br />';
}
$subcategories
.= '<a href="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewcat.php?cid='
. $ele['cid'] . '">' . $chtitle . '</a>';
$space++;
$chcount++;
}
}
}
mais je ne vois toujours rien qui pourrait appeler à éxécuter les requêtes de viewcat.php sur l'index.php. EDIT: cette section d'affichage des sous catégories n'est pas en cause, je l'ai commenté et les requêtes sont toujours la. tu peut voir la page et les requêtes au complet ici: http://nsm08.casimages.com/img/2015/0 ... 140839421137512875641.pngEst ce que tu a une idée d'ou viennent toutes ces requêtes? est ce bien les requêtes de viewcat qui sont éxécuté? merci de ton aide
Posté le : 14/01/2015 20:11
|
|
|
Re: Plus de 500 requête sur la page index de xoopstube (c'est beaucoup) |
|
Régulier
Inscrit: 10/09/2007 11:51
|
salut
je cherche la solution, car les requêtes concerné ne proviennent pas du fichier index.php, c'est assez déroutant vu que c'est bien index.php qui est éxécuté.
Je croyais que les requêtes étaient celles du fichier viewcat.php car il y a des jointure de table et ça y ressemble bien, mais j'ai un doute.de plus je vois pas comment elles arrivent à être executé sur l'index car pas d'include.
Je cherche.
Posté le : 14/01/2015 04:21
|
|
|
Re: Evolution de RSSFit |
|
Régulier
Inscrit: 10/09/2007 11:51
|
re
oui, oui je sais, je suis pas en train de critiquer, je faisais juste un rapport sur l'état du module.
A suivre.
Posté le : 10/01/2015 16:37
|
|
|